.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "examples\03-Maxwell\Maxwell_Transformer_Coreloss.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_examples_03-Maxwell_Maxwell_Transformer_Coreloss.py>`
        to download the full example code.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_examples_03-Maxwell_Maxwell_Transformer_Coreloss.py:


Maxwell 3D: Transformer
-----------------------
This example shows how you can use PyAEDT to set core loss given a set
of Power-Volume [kw/m^3] curves at different frequencies.

.. GENERATED FROM PYTHON SOURCE LINES 8-11

Perform required imports
~~~~~~~~~~~~~~~~~~~~~~~~
Perform required imports.

.. GENERATED FROM PYTHON SOURCE LINES 11-18

.. code-block:: Python


    from pyaedt import downloads
    from pyaedt import generate_unique_folder_name
    from pyaedt import Maxwell3d
    from pyaedt.generic.constants import unit_converter
    from pyaedt.generic.general_methods import read_csv_pandas








.. GENERATED FROM PYTHON SOURCE LINES 19-22

Set AEDT version
~~~~~~~~~~~~~~~~
Set AEDT version.

.. GENERATED FROM PYTHON SOURCE LINES 22-25

.. code-block:: Python


    aedt_version = "2024.1"








.. GENERATED FROM PYTHON SOURCE LINES 26-29

Download .aedt file example
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Set local temporary folder to export the .aedt file to.

.. GENERATED FROM PYTHON SOURCE LINES 29-58

.. code-block:: Python


    temp_folder = generate_unique_folder_name()
    aedt_file = downloads.download_file("core_loss_transformer", "Ex2-PlanarTransformer_2023R2.aedtz", temp_folder)
    freq_curve_csv_25kHz = downloads.download_file("core_loss_transformer", "mf3_25kHz.csv", temp_folder)
    freq_curve_csv_100kHz = downloads.download_file("core_loss_transformer", "mf3_100kHz.csv", temp_folder)
    freq_curve_csv_200kHz = downloads.download_file("core_loss_transformer", "mf3_200kHz.csv", temp_folder)
    freq_curve_csv_400kHz = downloads.download_file("core_loss_transformer", "mf3_400kHz.csv", temp_folder)
    freq_curve_csv_700kHz = downloads.download_file("core_loss_transformer", "mf3_700kHz.csv", temp_folder)
    freq_curve_csv_1MHz = downloads.download_file("core_loss_transformer", "mf3_1MHz.csv", temp_folder)

    data = read_csv_pandas(filename=freq_curve_csv_25kHz)
    curves_csv_25kHz = list(zip(data[data.columns[0]],
                                data[data.columns[1]]))
    data = read_csv_pandas(filename=freq_curve_csv_100kHz)
    curves_csv_100kHz = list(zip(data[data.columns[0]],
                                 data[data.columns[1]]))
    data = read_csv_pandas(filename=freq_curve_csv_200kHz)
    curves_csv_200kHz = list(zip(data[data.columns[0]],
                                 data[data.columns[1]]))
    data = read_csv_pandas(filename=freq_curve_csv_400kHz)
    curves_csv_400kHz = list(zip(data[data.columns[0]],
                                 data[data.columns[1]]))
    data = read_csv_pandas(filename=freq_curve_csv_700kHz)
    curves_csv_700kHz = list(zip(data[data.columns[0]],
                                 data[data.columns[1]]))
    data = read_csv_pandas(filename=freq_curve_csv_1MHz)
    curves_csv_1MHz = list(zip(data[data.columns[0]],
                               data[data.columns[1]]))








.. GENERATED FROM PYTHON SOURCE LINES 59-62

Launch AEDT
~~~~~~~~~~~
Launch AEDT in graphical mode.

.. GENERATED FROM PYTHON SOURCE LINES 62-69

.. code-block:: Python


    m3d = Maxwell3d(projectname=aedt_file,
                    designname="02_3D eddycurrent_CmXY_for_thermal",
                    specified_version=aedt_version,
                    new_desktop_session=True,
                    non_graphical=False)





.. rst-class:: sphx-glr-script-out

 .. code-block:: none

    C:\actions-runner\_work\_tool\Python\3.10.9\x64\lib\subprocess.py:1072: ResourceWarning: subprocess 12236 is still running
      _warn("subprocess %s is still running" % self.pid,
    C:\actions-runner\_work\pyaedt\pyaedt\.venv\lib\site-packages\pyaedt\generic\settings.py:383: ResourceWarning: unclosed file <_io.TextIOWrapper name='D:\\Temp\\pyaedt_ansys.log' mode='a' encoding='cp1252'>
      self._logger = val




.. GENERATED FROM PYTHON SOURCE LINES 70-74

Set core loss at frequencies
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Create a new material, create a dictionary of Power-Volume [kw/m^3] points for a set of frequencies
retrieved from datasheet provided by supplier and finally set Power-Ferrite core loss model.

.. GENERATED FROM PYTHON SOURCE LINES 74-92

.. code-block:: Python


    mat = m3d.materials.add_material("newmat")
    freq_25kHz = unit_converter(25, unit_system="Freq", input_units="kHz", output_units="Hz")
    freq_100kHz = unit_converter(100, unit_system="Freq", input_units="kHz", output_units="Hz")
    freq_200kHz = unit_converter(200, unit_system="Freq", input_units="kHz", output_units="Hz")
    freq_400kHz = unit_converter(400, unit_system="Freq", input_units="kHz", output_units="Hz")
    freq_700kHz = unit_converter(700, unit_system="Freq", input_units="kHz", output_units="Hz")
    pv = {freq_25kHz: curves_csv_25kHz,
          freq_100kHz: curves_csv_100kHz,
          freq_200kHz: curves_csv_200kHz,
          freq_400kHz: curves_csv_400kHz,
          freq_700kHz: curves_csv_700kHz}
    m3d.materials[mat.name].set_coreloss_at_frequency(points_list_at_freq=pv,
                                                      coefficient_setup="kw_per_cubic_meter",
                                                      core_loss_model_type="Power Ferrite")
    coefficients = m3d.materials[mat.name].get_core_loss_coefficients(points_at_frequency=pv,
                                                                      coefficient_setup="kw_per_cubic_meter")








.. GENERATED FROM PYTHON SOURCE LINES 93-96

Save project and close AEDT
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Save the project and close AEDT.

.. GENERATED FROM PYTHON SOURCE LINES 96-99

.. code-block:: Python


    m3d.save_project()
    m3d.release_desktop()




.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    True




.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (0 minutes 47.615 seconds)


.. _sphx_glr_download_examples_03-Maxwell_Maxwell_Transformer_Coreloss.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: Maxwell_Transformer_Coreloss.ipynb <Maxwell_Transformer_Coreloss.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: Maxwell_Transformer_Coreloss.py <Maxwell_Transformer_Coreloss.py>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_