{"id":13728456,"url":"https://github.com/upb-lea/FEM_Magnetics_Toolbox","last_synced_at":"2025-05-08T00:31:45.772Z","repository":{"id":37465792,"uuid":"328956756","full_name":"upb-lea/FEM_Magnetics_Toolbox","owner":"upb-lea","description":"An Open-Source FEM Magnetics Toolbox for Power Electronic Magnetic Components","archived":false,"fork":false,"pushed_at":"2024-05-07T22:51:23.000Z","size":50645,"stargazers_count":52,"open_issues_count":9,"forks_count":10,"subscribers_count":4,"default_branch":"main","last_synced_at":"2024-05-11T05:42:43.370Z","etag":null,"topics":["fem-simulation","finite-element-methods","inductors","power-electronics","python","simulation"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/upb-lea.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":"Contributing.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-01-12T10:53:12.000Z","updated_at":"2024-05-13T14:53:50.245Z","dependencies_parsed_at":"2023-10-02T08:12:13.098Z","dependency_job_id":"36d74c20-8255-454c-816f-4eae53ea896a","html_url":"https://github.com/upb-lea/FEM_Magnetics_Toolbox","commit_stats":{"total_commits":1099,"total_committers":18,"mean_commits":61.05555555555556,"dds":0.5696087352138308,"last_synced_commit":"ab8071479257c4122780ec0a5c8333be8c49d6cb"},"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upb-lea%2FFEM_Magnetics_Toolbox","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upb-lea%2FFEM_Magnetics_Toolbox/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upb-lea%2FFEM_Magnetics_Toolbox/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/upb-lea%2FFEM_Magnetics_Toolbox/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/upb-lea","download_url":"https://codeload.github.com/upb-lea/FEM_Magnetics_Toolbox/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224679934,"owners_count":17351893,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fem-simulation","finite-element-methods","inductors","power-electronics","python","simulation"],"created_at":"2024-08-03T02:00:42.769Z","updated_at":"2024-11-14T19:31:11.166Z","avatar_url":"https://github.com/upb-lea.png","language":"Python","funding_links":[],"categories":["Magnetics"],"sub_categories":[],"readme":"FEM Magnetics Toolbox (FEMMT)\n=============================\n\nThis README only provides a short overview. For more information please have a look at the detailed documentation `here \u003chttps://upb-lea.github.io/FEM_Magnetics_Toolbox/intro.html\u003e`__.\n\nPython toolbox to generate preconfigured figures for FEM simulation tools in power electronics.\n\nThe toolbox is accessible via python code or a graphical user interface\n(GUI), which current development status is experimental.\n\nAll core shapes are simulated as 2D symmetric cores, as shown in the figure.\n\n|geometry_translated|\n\n\n\nOverview features\n-------------------\n\nStable features\n~~~~~~~~~~~~~~~~~\n\n* Component features:\n    * 2D axi-symmetric cylindrical simplification\n    * `Inductor \u003chttps://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_inductor.py\u003e`__, `2-winding transformer \u003chttps://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer.py\u003e`__, `n-winding transformer \u003chttps://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer_6_windings.py\u003e`__\n    * Arbitrary (distributed) air gap positioning in center leg\n    * Variety of winding interleaving schemes\n    * Special geometries:\n        * `Center tapped transformer \u003chttps://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer_center_tapped.py\u003e`__\n        * `Magnetic shunt \u003chttps://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer_integrated.py\u003e`__ (transformer with integrated inductor)\n        * `Stacked core \u003chttps://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/femmt/examples/basic_transformer_stacked.py\u003e`__ (transformer with integrated inductor)\n    * Round litz wire, implemented according to `Niyomsatian et al.: Frequency-domain homogenization for litz-wire bundles in finite element calculations \u003chttps://ieeexplore.ieee.org/document/9007233\u003e`__\n    * Round and rectangular solid wires\n    * Different winding schemes (hexagonal, left/right, top/down, ...)\n    * Parallel connection of solid wires\n    * Insulation distances (winding2core, winding2winding)\n    * Many `examples \u003chttps://github.com/upb-lea/FEM_Magnetics_Toolbox/tree/main/femmt/examples\u003e`__ to learn and understand FEMMT\n    * Databases\n         * Litz wire database\n         * Core geometry database\n         * Conductor materials: temperature curves\n         * Ferrit materials: permeability / permittivity `material database \u003chttps://github.com/upb-lea/materialdatabase\u003e`__ (datasheets and own measurements)\n\n* Solver features:\n    * Implemented using `ONELAB \u003chttps://onelab.info/\u003e`__\n    * Current excitation\n    * Frequency domain solver\n    * Litz wire loss model for proximity and skin effect (`Niyomsatian et al.: Frequency-domain homogenization for impedance characterization of litz-wire transformers in 2-D finite element models \u003chttps://ieeexplore.ieee.org/document/7695378\u003e`__)\n    * Core loss calculation for real materials (data from material database)\n        * Amplitude dependent loss angle (Local resolution of complex permeability)\n        * Equivalent permittivity data for eddy current calculations\n        * Effect of dimensional resonance is considered\n    * Thermal solver\n        * Thermal conduction (Poisson equation)\n        * Fixed temperature and isolation boundary conditions\n        * Verified model for potted core\n\n* Pre/Post processing:\n    * Linear eddy current analysis via input current based FFT\n    * Pre-visualization of ferrite material (measurement) data interpolation\n    * Field visualization in gmsh GUI (magnetic flux density, eddy current losses, ...)\n    * Inductance matrix for n-winding transformer\n    * Transformer equivalent diagrams for 2- and 3-winding transformer\n\n* Optimization:\n    * Parallel computing to speed up simulations (no cpu core limitation)\n    * Examples for Pareto optimization to adapt to your own optimization problem\n\n\nExperimental features (under development)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n* Component features:\n    * Reluctance module is currently working for a single optimization example and not fully implemented yet.\n* Solver features:\n    * Time domain solver is experimental\n* Optimization:\n    * Advanced optimization algorithms by connecting to `optuna \u003chttps://github.com/optuna/optuna\u003e`__\n* GUI:\n    * Experimental in general\n\nPlanned features (Roadmap for 202x)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n* Solver features:\n    * Core loss calculation from non-sinusoidal flux\n    * Local temperature dependency (currently only lumped temperature assignment, e.g. general temperature for all windings)\n\nNot supported features\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n* Not supported component features:\n    * Toroidal core\n\n* Not supported solver features:\n    * Voltage excitation\n\n\nDocumentation\n-------------------\nPlease have a look at the `documentation \u003chttps://upb-lea.github.io/FEM_Magnetics_Toolbox/intro.html\u003e`__. You will find tutorials and a function description.\n\nLiterature\n-------------------\n\n* `An Open-Source FEM Magnetics Toolbox for Power Electronic Magnetic Components \u003chttps://ieeexplore.ieee.org/document/9862128\u003e`__\n\n* `An Open-Source FEM Magnetic Toolbox for Calculating Electric and Thermal Behavior of Power Electronic Magnetic Components \u003chttps://ieeexplore.ieee.org/document/9907554\u003e`__\n\nInstallation\n---------------\n\nTo run FEMMT python (version 3.10 or above) and onelab is needed.\n\nONELAB installation\n~~~~~~~~~~~~~~~~~~~~~~~\n\n-  Go to https://onelab.info/\n-  Download the Desktop Version for your OS (Windows, Linux or macOS)\n-  Unpack the software and remember the file path. This will be needed\n   later when installing FEMMT.\n\nFurther steps for macOS(ARM)\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n-  Go to https://onelab.info/\n-  Download the Desktop Version for Windows\n-  Copy the \"conveks.py\" and \"Onelab.py\" files and paste them into the \"onelab\" folder\n-  Go to http://getdp.info/\n-  Download the macOS(ARM) Version\n-  Open the downloaded folder, navigate to \"bin\" and copy the \"getdp\" application file\n-  Paste the copied file into your \"onelab\" folder\n\nInstall FEMMT\n~~~~~~~~~~~~~~~~~\n\nFEMMT can be installed using the python pip package manager.\nThis is the stable release version (recommended).\n\n::\n\n   pip install femmt\n\nFor working with the latest version, refer to the `documentation \u003chttps://upb-lea.github.io/FEM_Magnetics_Toolbox/intro.html\u003e`__.\n\nMinimal example\n------------------\n\nThis toolbox is able to build a complete FEM simulation from simple\nPython code. The following figure shows the Python code on the left and\nthe corresponding FEM simulation on the right. |FEMMT_Screenshot|\n\nTo run a minimal example please have a look at the `examples \u003chttps://github.com/upb-lea/FEM_Magnetics_Toolbox/tree/main/femmt/examples\u003e`__.\n\nGUI (Experimental)\n-------------------\n\nThere is a first preview for a GUI. Installing this is a bit cumbersome\nat first, but will be simplified in the future:\n\n* Download the complete repository via ``Code`` -\u003e ``Download ZIP`` and unpack it.\n* Or clone the repository\n* Install the development version of femmt using ``pip install -e .``\n* Run python ``.../path-to_femmt/femmt/gui/femmt_gui.py``\n\nPlease note, the GUI is experimental.\n\n|femmt_gui_definition|\n\nTroubleshooting\n-------------------\nIf the working directory is within OneDrive, there are problems writing .dat files, which are basic for FEMMT. The following error messages appear:\n\n::\n\n    The system cannot find the file specified: your_directory/femmt/electro_magnetic/Strands_Coefficients/coeff/pB_RS_la0.6_4layer.dat\n    FileNotFoundError: [Errno 2] No such file or directory: your_directory/results/values/j2F_1.dat\n\n\n\nThe solution is to place the working directory of FEMMT including the Python virtual environment outside the OneDrive folder.\n\n\n\nBug Reports\n--------------\n\nPlease use the issues report button within github to report bugs.\n\nContributing\n---------------\n\nPull requests are welcome. For major changes, please open an issue first\nto discuss what you would like to change. For contributing, please refer\nto this `section \u003chttps://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/Contributing.rst\u003e`__.\n\nChangelog\n------------\n\nFind the changelog `here \u003chttps://github.com/upb-lea/FEM_Magnetics_Toolbox/blob/main/CHANGELOG.md\u003e`__.\n\nLicense\n----------\n\n`GPLv3 \u003chttps://choosealicense.com/licenses/gpl-3.0/\u003e`__\n\nHistory and project status\n------------------------------\n\nThis project was initially written in matlab using FEMM simulation tool.\nIt became clear that the project was no longer a small project. The\nproject should be completely rewritten, because many new complex levels\nhave been added. To place the project in the open source world, the\nprogramming language python is used.\n\n.. |geometry_translated| image:: docs/images/geometry_translated.png\n.. |FEMMT_Screenshot| image:: docs/images/FEMMT_Screenshot.png\n.. |femmt_gui_definition| image:: docs/images/femmt_gui_definition.png\n.. |counting_arrow_system| image:: docs/images/counting_arrow_system.png\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupb-lea%2FFEM_Magnetics_Toolbox","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fupb-lea%2FFEM_Magnetics_Toolbox","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fupb-lea%2FFEM_Magnetics_Toolbox/lists"}