FEM Magnetics Toolbox

Table of Contents:

  • 1 FEM Magnetics Toolbox (FEMMT)
    • 1.1 Overview features
      • 1.1.1 Stable features
      • 1.1.2 Experimental features (under development)
      • 1.1.3 Planned features (Roadmap for 202x)
      • 1.1.4 Not supported features
    • 1.2 Documentation
    • 1.3 Literature
    • 1.4 Installation
      • 1.4.1 ONELAB installation
      • 1.4.2 Further steps for macOS(ARM)
      • 1.4.3 Install FEMMT
    • 1.5 Minimal example
    • 1.6 GUI (Experimental)
    • 1.7 Troubleshooting
    • 1.8 Bug Reports
    • 1.9 Contributing
    • 1.10 Changelog
    • 1.11 License
    • 1.12 History and project status
    • 1.13 FEMMT development version (for developers only)
      • 1.13.1 Basics
      • 1.13.2 Counting arrow system
    • 1.14 GUI (Experimental)
  • 2 User Guide: How to create a FEMMT model
    • 2.1 Working directory
    • 2.2 Creating a core
      • 2.2.1 Material database
    • 2.3 Adding air gaps to the core
    • 2.4 Set insulation distances
    • 2.5 Add windings to the winding window
      • 2.5.1 Virtual Winding Windows
      • 2.5.2 Winding types and winding schemes
        • 2.5.2.1 ConductorArrangement
        • 2.5.2.2 WrapParaType
    • 2.6 Add conductors
      • 2.6.1 Add conductors to virtual winding windows
        • 2.6.1.1 Alignment
        • 2.6.1.2 Placement Strategies
        • 2.6.1.3 Zigzag Condition
    • 2.7 Create model and start simulation
    • 2.8 Mesh Customization
      • 2.8.1 Conductor meshing
      • 2.8.2 Manually Adapting the Mesh
      • 2.8.3 Viewing the Mesh in Gmsh
    • 2.9 [Optional] Create thermal simulation
    • 2.10 How to Read the Result Log
      • 2.10.1 Example Result Log
        • 2.10.1.1 log_electro_magnetic.json File in Frequency Domain
        • 2.10.1.2 log_electro_magnetic.json File in Time Domain
        • 2.10.1.3 results_thermal.json File
    • 2.11 Warnings and Failures
  • 3 Winding types
  • 4 FEMMT class and function documentation
    • 4.1 The MagneticComponent class
      • MagneticComponent
        • MagneticComponent.__init__()
        • MagneticComponent.create_model()
        • MagneticComponent.excitation_sweep()
        • MagneticComponent.femm_reference()
        • MagneticComponent.femm_thermal_validation()
        • MagneticComponent.mesh()
        • MagneticComponent.set_air_gaps()
        • MagneticComponent.set_core()
        • MagneticComponent.set_insulation()
        • MagneticComponent.set_stray_path()
        • MagneticComponent.set_winding_windows()
        • MagneticComponent.single_simulation()
        • MagneticComponent.thermal_simulation()
    • 4.2 The Core class
      • Core
        • Core.__init__()
    • 4.3 The AirGaps class
      • AirGaps
        • AirGaps.__init__()
        • AirGaps.add_air_gap()
    • 4.4 The Insulation class
      • Insulation
        • Insulation.__init__()
        • Insulation.add_core_insulations()
        • Insulation.add_winding_insulations()
    • 4.5 The Conductor class
      • Conductor
        • Conductor.__init__()
        • Conductor.set_litz_round_conductor()
        • Conductor.set_rectangular_conductor()
        • Conductor.set_solid_round_conductor()
    • 4.6 The WindingWindow class
      • WindingWindow
        • WindingWindow.__init__()
        • WindingWindow.combine_vww()
        • WindingWindow.split_window()
    • 4.7 The VirtualWindingWindow class
      • VirtualWindingWindow
        • VirtualWindingWindow.__init__()
        • VirtualWindingWindow.set_interleaved_winding()
        • VirtualWindingWindow.set_winding()
    • 4.8 The LogParser class
      • FEMMTLogParser
        • FEMMTLogParser.__init__()
        • FEMMTLogParser.plot_frequency_sweep_losses()
        • FEMMTLogParser.plot_frequency_sweep_winding_params()
      • FileData
        • FileData.core_2daxi_total_volume
        • FileData.file_path
        • FileData.sweeps
        • FileData.total_core_eddy_losses
        • FileData.total_core_hyst_losses
        • FileData.total_core_losses
        • FileData.total_cost
        • FileData.total_winding_losses
      • SweepData
        • SweepData.core_eddy_losses
        • SweepData.core_hyst_losses
        • SweepData.frequency
        • SweepData.winding_losses
        • SweepData.windings
      • WindingData
        • WindingData.active_power
        • WindingData.apparent_power
        • WindingData.current
        • WindingData.flux
        • WindingData.flux_over_current
        • WindingData.reactive_power
        • WindingData.turns
        • WindingData.voltage
    • 4.9 Enumerations
      • enumerations
    • 4.10 Helper functions
      • axial_wavelength()
      • calculate_average()
      • calculate_cylinder_volume()
      • calculate_quadrature_integral()
      • calculate_rms()
      • calculate_squared_quadrature_integral()
      • check_mqs_condition()
      • compare_fft_list()
      • conductivity_temperature()
      • convert_air_gap_corner_points_to_center_and_distance()
      • core_database()
      • cost_function_core()
      • cost_function_total()
      • cost_function_winding()
      • cost_material_database()
      • create_folders()
      • create_open_circuit_excitation_sweep()
      • create_physical_group()
      • fft()
      • find_common_frequencies()
      • find_result_log_file()
      • get_coupling_matrix()
      • get_dict_with_unique_keys()
      • get_dicts_with_keys_and_values()
      • get_flux_linkages_from_log()
      • get_inductance_matrix()
      • get_mean_coupling_factors()
      • get_number_of_turns_of_winding()
      • get_self_inductances_from_log()
      • hysteresis_current_excitation()
      • install_pyfemm_if_missing()
      • list_to_complex()
      • litz_calculate_number_layers()
      • litz_calculate_number_strands()
      • litz_database()
      • plot_fourier_coefficients()
      • pm_core_inner_diameter_calculator()
      • point_is_in_rect()
      • sort_out_small_harmonics()
      • store_as_npy_in_directory()
      • time_current_vector_to_fft_excitation()
      • visualize_coupling_factors()
      • visualize_flux_linkages()
      • visualize_inductance_matrix()
      • visualize_inductance_matrix_coefficients()
      • visualize_mean_coupling_factors()
      • visualize_mean_mutual_inductances()
      • visualize_mutual_inductances()
      • visualize_self_inductances()
      • visualize_self_resistances()
      • visualize_simulation_results()
      • wave_vector()
      • wire_material_database()
    • 4.11 Model helper functions
      • define_center_tapped_insulation()
    • 4.12 Reluctance model helper functions
      • MagneticCircuit
        • MagneticCircuit.add_column_to_data_matrix()
        • MagneticCircuit.air_gap_reluctance_single()
        • MagneticCircuit.air_gap_reluctance_single_new()
        • MagneticCircuit.air_gap_reluctance_sweep()
        • MagneticCircuit.air_gap_reluctance_sweep_new()
        • MagneticCircuit.calculate_inductance()
        • MagneticCircuit.core_reluctance()
        • MagneticCircuit.get_parameters_position_dict()
        • MagneticCircuit.input_pre_check()
      • create_data_matrix()
      • distributed_type_1()
      • distributed_type_2()
      • plot_limitation()
      • plot_r_basic()
    • 4.13 Topology helper functions
      • check_if_primary_conductor_row_fits_in_vww()
      • create_stacked_winding_windows()
      • place_center_tapped_conductor_row()
      • place_windings_in_vwws()
      • set_center_tapped_windings()
    • 4.14 Constants
  • 5 Developer Notes for FEMMT
    • 5.1 Variable naming
      • 5.1.1 Geometry variables
      • 5.1.2 currents, temperature
      • 5.1.3 Material variables
    • 5.2 Winding creation
    • 5.3 General file overview
    • 5.4 Recommended Pycharm settings
      • 5.4.1 Exclude simulation directory from indexing
      • 5.4.2 Line length
      • 5.4.3 Pycharm code highlighting for pro-files
    • 5.5 Lint check
    • 5.6 Build documentation
FEM Magnetics Toolbox
  • Search


© Copyright 2025, LEA, Paderborn University.

Built with Sphinx using a theme provided by Read the Docs.