Skip to content

Commit

Permalink
update docu to 0.5.0
Browse files Browse the repository at this point in the history
  • Loading branch information
gituser789 committed Feb 6, 2024
1 parent eb6b5c6 commit 85c47f8
Show file tree
Hide file tree
Showing 109 changed files with 15,633 additions and 2,810 deletions.
2 changes: 1 addition & 1 deletion main/.buildinfo
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: c08bb9ba31cef4d023e1263d9f4d47d8
config: fbd1734ecc60ece5e15056baef0bdd75
tags: 645f666f9bcd5a90fca523b33c5a78b7
4 changes: 4 additions & 0 deletions main/0.4.0/.buildinfo
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 0e6b7cb3adf6c1d1caf802bb4d999377
tags: 645f666f9bcd5a90fca523b33c5a78b7
Binary file added main/0.4.0/.doctrees/developer_notes.doctree
Binary file not shown.
Binary file added main/0.4.0/.doctrees/environment.pickle
Binary file not shown.
Binary file added main/0.4.0/.doctrees/index.doctree
Binary file not shown.
Binary file added main/0.4.0/.doctrees/intro.doctree
Binary file not shown.
Binary file added main/0.4.0/.doctrees/introduction.doctree
Binary file not shown.
Binary file not shown.
Binary file added main/0.4.0/.doctrees/winding_types.doctree
Binary file not shown.
Binary file added main/0.4.0/_images/FEMMT_Screenshot.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/Single_FoilHorizontal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/Single_Full.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/Single_Hexagonal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/Single_Square.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/Single_SquareFullWidth.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/counting_arrow_system.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/femmt_gui_definition.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/geometry_air_gap.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/geometry_core.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/geometry_insulation.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/geometry_thermal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/geometry_translated.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added main/0.4.0/_images/geometry_winding_windows.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
40 changes: 40 additions & 0 deletions main/0.4.0/_sources/developer_notes.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
Developer Notes for FEMMT
===========================

This chapter contains some useful information when developing with femmt.

Winding creation
-----------------

Since there are multiple possible virtual winding windows containing currently up to 2 conductors it is necessary to have a global order for every conductor.
This order is set by the winding_number which is given to the Conductor on creation.
This results in multiple lists containg the same conductor objects (called windings) in different objects:

1. Every virtual winding window contains a list of conductors. This list either contains one conductor (single winding) or two conductors (interleaved winding). When setting the interleaved winding the order of conductors is given by the order of the parameters. First given winding -> winding[0], second given winding -> winding[1].
2. The magnetic component contains a list of conductors too. This list contains every unique conductor from every virtual winding window. The order of the windings list in magnetic component is given by the winding_number (sorted in ascending order). This means that the conductor with the lowest winding_number is at position 0 of the winding list: windings[0].

Example:

2 conductors are created: Conductor0(winding_index=0) and Conductor1(winding_index=1). Additionaly 2 virtual winding windows are created.
The first virtual winding window only contains Conductor0, the second virtual winding window contains both conductors.
The following winding lists are created:

- VirtualWindingWindow0: windings = [Conductor0]
- VirtualWindingWindow1: windings = [Conductor0, Conductor1]
- MagneticComponent: windings = [Conductor0, Conductor1]

If Conductor1 has a lower winding_index than Conductor0 only the list in magnetic component would change since it does not change
the parameter order for setInterleavedWinding() in VirtualWindingWindow1:

- MagneticComponent: windings = [Conductor1, Conductor0]

The order of the conductors in the magnetic component windings list is very important for the simulation.
When creating the model and running the simulation the order of the conductors in MagneticComponent.windings is used to determine
if the conductor is the primary, secondary (, tertiary, ...) winding.

In the TwoDaxiSymmetric class points for every conductor are created. Those points are stored in a list called p_conductor.
p_conductor[0] is a list containing the points for every turn of the conductor with the lowest winding_index (primary winding).
p_conductors[1] is a list containing the points for every turn of the conductor with the second lowest winding_index (secondary winding).

Currently the magnetic solver only supports primary and secondary windings, therefore it is useless to create more conductors.
However the implemented structure is capable of working with n windings.
15 changes: 15 additions & 0 deletions main/0.4.0/_sources/index.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Welcome to FEM Magnetics Toolbox's documentation!
"""""""""""""""""""""""""""""""""""""""""""""""""""""

.. toctree::
:maxdepth: 6
:caption: Table of Contents:

intro


Indices and tables
"""""""""""""""""""""""""""""""""""""""""""""""""""""

* :ref:`genindex`

88 changes: 88 additions & 0 deletions main/0.4.0/_sources/intro.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
.. sectnum::


.. include:: introduction.rst

.. _user_guide_model_creation:

.. include:: user_guide_model_creation.rst

.. _winding_types:

.. include:: winding_types.rst

FEMMT class and function documentation
=======================================
The ``MagneticComponent`` class
---------------------------------------
.. currentmodule:: femmt.MagneticComponent

.. autoclass:: MagneticComponent
:members: set_core, set_air_gaps, set_insulation, set_stray_path, set_winding_window, create_model, single_simulation, excitation_sweep, mesh, thermal_simulation, femm_reference, femm_thermal_validation
:special-members: __init__

The ``Core`` class
--------------------------------------
.. autoclass:: femmt.Model.Core
:special-members: __init__

The ``AirGaps`` class
--------------------------------------
.. autoclass:: femmt.Model.AirGaps
:members: add_air_gap
:special-members: __init__

The ``Insulation`` class
--------------------------------------
.. autoclass:: femmt.Model.Insulation
:members: add_winding_insulations, add_core_insulations
:special-members: __init__

The ``Conductor`` class
--------------------------------------
.. autoclass:: femmt.Model.Conductor
:members: set_rectangular_conductor, set_solid_round_conductor, set_litz_round_conductor
:special-members: __init__

The ``WindingWindow`` class
--------------------------------------
.. autoclass:: femmt.Model.WindingWindow
:members: split_window, combine_vww
:special-members: __init__

The ``VirtualWindingWindow`` class
--------------------------------------
.. autoclass:: femmt.Model.VirtualWindingWindow
:members: set_winding, set_interleaved_winding
:special-members: __init__

The ``LogParser`` class
-----------------------------------
.. autoclass:: femmt.FEMMTLogParser
:members: plot_frequency_sweep_losses, plot_frequency_sweep_winding_params
:special-members: __init__

.. autoclass:: femmt.FileData
:members:
:undoc-members:

.. autoclass:: femmt.SweepData
:members:
:undoc-members:

.. autoclass:: femmt.WindingData
:members:
:undoc-members:

``Enumerations``
---------------------------------
.. automodule:: femmt.Enumerations
:members:
:undoc-members:

Helper functions
---------------------------------
.. automodule:: femmt.Functions
:members: core_database, litz_database, wire_material_database

.. include:: developer_notes.rst
136 changes: 136 additions & 0 deletions main/0.4.0/_sources/introduction.rst.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,136 @@
FEM Magnetics Toolbox (FEMMT)
=============================

Python toolbox to generate preconfigured figures for FEM simulation
tools in power electronics.

The toolbox contains two parts, a reluctance module and a FEM module.

* The reluctance module is for pre-calculations
* The FEM module is for detailed calculations

Installation
---------------

To run FEMMT, python (version 3.8 or above) and onelab is needed.

ONELAB installation
~~~~~~~~~~~~~~~~~~~~~~~

- Go to https://onelab.info/
- Download the Desktop Version for your OS (Windows, Linux or macOS)
- Unpack the software and remember the file path. This will be needed
later when installing FEMMT.

Install FEMMT
~~~~~~~~~~~~~~~~~

FEMMT can be installed using the python pip package manager.
Either a release version can be installed using pip or a developement version by downloading this repository.

FEMMT release version (recommended)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This installs the stable release version.

::

pip install femmt

FEMMT development version (for developers only)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

This is the latest development version with the latest features. Note:
You may need to install `git <https://git-scm.com/downloads>`__.
Also have a look at the `developers notes </developers_notes.md>`__.


::

cd /Documents/Folder/of/Interest/FEMMT
git clone [email protected]:upb-lea/FEM_Magnetics_Toolbox.git
pip install -e .

FEMMT is using the material database. To use the latest version for developing, also install the material database in developer mode.

::

cd /Documents/Folder/of/Interest/materialdatabase
git clone [email protected]:upb-lea/materialdatabase.git
pip install -e .



Examples
-----------

This toolbox is able to build a complete FEM simulation from simple
Python code. The following figure shows the Python code on the left and
the corresponding FEM simulation on the right. |image_femmt_screenshot|

Code examples can be found in this `example file </femmt/examples/basic_example.py>`__. This file is updated
regulary.

Basics
~~~~~~~~~~

The magnetic component can be an inductor, a transformer, or a
transformer with integrated stray path. The parameterization process is
divided into the following steps:

1. Chose simulation type,
2. set core parameters (geometry, material),
3. set air gap parameters (position, height),
4. set conductor parameters (litz/solid wire),
5. start simulation with given frequencies and currents and phases.

Please have a look at the `basic_example </femmt/examples/basic_example.py>`__.

The examples contain among other things:

* Geometries: Coil, transformer, transformer with integrated stray path,
* wire and stranded wire definition,
* air gaps definition,
* excitation with different frequencies, amplitudes and phases.

The simulation results can be found in `working_directory/results/result_log_electro_magnetic.json`. Working directory can either be set by the user otherwise it located at `/python-side-packages-path/femmt`.
In it you can find

* power loss in the core: hysteresis losses and eddy current losses,
* losses per winding and for each individual winding,
* self- and mutual inductances.

For a more detailed guide on how to create a model, plase have a look :ref:`here <user_guide_model_creation>`.

Counting arrow system
~~~~~~~~~~~~~~~~~~~~~~~~~

Defined as depicted here:

|image_counting_arrow_system|

GUI (Experimental)
-------------------

There is a first preview for a GUI. Installing this is a bit cumbersome
at first, but will be simplified in the future:

* Download the complete repository via ``Code`` -> ``Download ZIP`` and unpack it.
* install the development version of femmt as described above
* run python ``downloads/path-to_femmt/femmt/gui/femmt_gui.py``

Please note, the GUI is experimental.

|image_gui_definition|

FEMM Validation (for developers only)
--------------------------------------

For verification purposes a FEMM model can be created in FEMMT. To do this
FEMM needs to be installed as well as the FEMM python package.
The functionality is limited, e.g. the air gaps are limited to the 'center'-type. Other types, like 'percent' are not implemented.


.. |image_femmt_screenshot| image:: ../images/FEMMT_Screenshot.png
.. |image_counting_arrow_system| image:: ../images/counting_arrow_system.png
.. |image_gui_definition| image:: ../images/femmt_gui_definition.png
Loading

0 comments on commit 85c47f8

Please sign in to comment.