femagtools 1.8.16__tar.gz → 1.8.18__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {femagtools-1.8.16/src/femagtools.egg-info → femagtools-1.8.18}/PKG-INFO +2 -2
- {femagtools-1.8.16 → femagtools-1.8.18}/pyproject.toml +1 -1
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/__init__.py +1 -1
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/airgap.py +5 -1
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/area.py +52 -23
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/areabuilder.py +69 -46
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/converter.py +25 -5
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/fslrenderer.py +2 -2
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/geom.py +264 -68
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/machine.py +38 -8
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/symmetry.py +20 -5
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/femag.py +27 -16
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/machine/__init__.py +2 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/machine/effloss.py +10 -4
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/machine/pm.py +72 -68
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/machine/sm.py +15 -15
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/plot/bch.py +3 -1
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/plot/char.py +5 -16
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/plot/nc.py +67 -34
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/shortcircuit.py +10 -3
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/utils.py +5 -4
- {femagtools-1.8.16 → femagtools-1.8.18/src/femagtools.egg-info}/PKG-INFO +2 -2
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools.egg-info/requires.txt +1 -1
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_machine.py +1 -2
- {femagtools-1.8.16 → femagtools-1.8.18}/LICENSE +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/MANIFEST.in +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/README.md +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/setup.cfg +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/amazon.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/amela.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/asm.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/bch.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/bchxml.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/condor.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/conductor.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/config.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/convert.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dakota.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dakota_femag.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dakotaout.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/docker.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/__init__.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/concat.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/conv.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/corner.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/dumprenderer.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/dxfparser.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/femparser.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/functions.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/journal.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/plotrenderer.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/shape.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/dxfsl/svgparser.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/ecloss.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/erg.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/forcedens.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/fsl.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/getset.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/gmsh.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/google.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/grid.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/heat_source_network.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/hxy.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/isa7.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/jhb.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/job.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/leakinduc.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/losscoeffs.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/machine/afpm.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/machine/im.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/machine/sizing.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/machine/utils.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/magnet.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/mcv.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/me.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/model.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/moo/__init__.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/moo/algorithm.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/moo/population.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/moo/problem.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/moo/test/AlgorithmTest.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/moo/test/PopulationTest.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/moo/test/ProblemTest.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/moproblem.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/multiproc.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/mxw2msh.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/nc.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/netlist.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/ntib.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/opt.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/parstudy.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/plot/__init__.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/plot/fieldlines.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/plot/fluxdens.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/plot/forcedens.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/plot/machine.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/plot/mcv.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/plot/phasor.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/plot/wdg.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/poc.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/semi_fea.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/svgfsl/converter.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/FE-losses.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/afm_rotor.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/afm_stator.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/airgapinduc.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/asyn_motor.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/basic_modpar.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/bertotti.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/calc_field_ts.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/calc_therm_field.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/cogg_calc.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/colorgrad.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/com_motor_sim.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/conduct-data.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/connect_models.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/cu_losses.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/displ_stator_rotor.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/ec-rotorbar.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/fe-contr.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/fieldcalc.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/gen_hairpin_winding.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/gen_winding.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/inductances.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/ld_lq_fast.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/leak_dist_wind.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/leak_evol_wind.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/leak_tooth_wind.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/magnet-data.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/magnetFC2.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/magnetIron.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/magnetIron2.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/magnetIron3.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/magnetIron4.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/magnetIron5.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/magnetIronV.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/magnetSector.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/magnetSectorLinear.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/magnetShell.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/magnetShell2.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/mesh-airgap.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/modal_analysis.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/modified_steinmetz.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/mult_cal_fast.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/new_model.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/noloadflux-rot.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/noloadflux.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/noloadfluxdc.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/open.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/plots.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/pm_sym_f_cur.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/pm_sym_fast.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/pm_sym_loss.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/prepare_thermal.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/psd_psq_fast.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/psi-torq-rem-rot.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/psi-torq-rem.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/psi-torq-rot.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/ring.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/rot_hsm.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/rotorAsyn.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/rotorKs2.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/rotor_msh.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/rotor_winding.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/shortcircuit.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/srm.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/stator1.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/stator2.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/stator3Linear.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/stator4.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/statorBG.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/statorRing.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/statorRotor3.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/stator_msh.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/therm-dynamic.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/therm_static.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/templates/torq_calc.mako +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/tks.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/ts.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/vbf.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/vtu.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/windings.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools/zmq.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools.egg-info/SOURCES.txt +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools.egg-info/dependency_links.txt +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools.egg-info/entry_points.txt +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/femagtools.egg-info/top_level.txt +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/__init__.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/engines/__init__.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/engines/test_amazon.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/engines/test_config.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/geom/__init__.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/geom/test_functions.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/geom/test_point_inside.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/moo/__init__.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/moo/test_algorithm.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/moo/test_population.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/moo/test_problem.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_afpm.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_airgap_induction.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_amela.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_asm.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_bchreader.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_conductor.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_convert.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_dxfsl.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_effloss.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_erg.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_femag.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_forcedens.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_fsl.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_heat_source_network.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_hxy.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_im.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_isa7.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_jhb.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_job.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_losscoeffs.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_magncurv.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_magnet.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_mcv.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_mcvreader.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_me.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_model.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_nc.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_parident.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_parstudy.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_pocfile.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_sizing.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_sm.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_tksreader.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_ts.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_vbfreader.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_vtu.py +0 -0
- {femagtools-1.8.16 → femagtools-1.8.18}/src/tests/test_windings.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: femagtools
|
3
|
-
Version: 1.8.
|
3
|
+
Version: 1.8.18
|
4
4
|
Summary: Python API for FEMAG
|
5
5
|
Author-email: Ronald Tanner <tar@semafor.ch>, Dapu Zhang <dzhang@gtisoft.com>, Beat Holm <hob@semafor.ch>, Günther Amsler <amg@semafor.ch>, Nicolas Mauchle <mau@semafor.ch>
|
6
6
|
License: Copyright (c) 2016-2023, Semafor Informatik & Energie AG, Basel
|
@@ -38,7 +38,7 @@ Requires-Python: >=3.7
|
|
38
38
|
Description-Content-Type: text/markdown
|
39
39
|
License-File: LICENSE
|
40
40
|
Requires-Dist: numpy
|
41
|
-
Requires-Dist: scipy
|
41
|
+
Requires-Dist: scipy<=1.14.1
|
42
42
|
Requires-Dist: mako
|
43
43
|
Requires-Dist: six
|
44
44
|
Requires-Dist: lmfit
|
@@ -24,7 +24,11 @@ def fft(pos: list, b: list, pmod=0) -> dict:
|
|
24
24
|
Bamp = r['a']
|
25
25
|
alfa0 = r['alfa0']
|
26
26
|
T0 = r['T0']
|
27
|
-
|
27
|
+
try:
|
28
|
+
npoles = 2*round(360/T0)
|
29
|
+
except ZeroDivisionError:
|
30
|
+
npoles=0
|
31
|
+
pass
|
28
32
|
logger.info("flux density: %s poles B amp %f ",
|
29
33
|
npoles, r['a'])
|
30
34
|
return dict(Bamp=Bamp, npoles=npoles,
|
@@ -475,6 +475,19 @@ class Area(object):
|
|
475
475
|
|
476
476
|
self.alpha = round(alpha_angle(self.min_angle, self.max_angle), 3)
|
477
477
|
|
478
|
+
def set_close_to_start_end_angles(self, startangle, endangle):
|
479
|
+
logger.debug("set_close_to_start_end_angles(%s, %s)",startangle, endangle)
|
480
|
+
logger.debug(">> %s: min/max = %s/%s", self.identifier(), self.min_angle, self.max_angle)
|
481
|
+
if np.isclose(startangle, endangle): # full
|
482
|
+
self.close_to_startangle = True
|
483
|
+
self.close_to_endangle = True
|
484
|
+
return
|
485
|
+
|
486
|
+
self.close_to_startangle = np.isclose(self.min_angle, startangle,
|
487
|
+
1e-04, 1e-04)
|
488
|
+
self.close_to_endangle = np.isclose(self.max_angle, endangle,
|
489
|
+
1e-04, 1e-04)
|
490
|
+
|
478
491
|
def center_is_inside(self, center):
|
479
492
|
if less(self.min_x, center[0], rtol=1e-03, atol=1e-04) and \
|
480
493
|
greater(self.max_x, center[0], rtol=1e-03, atol=1e-04) and \
|
@@ -552,12 +565,17 @@ class Area(object):
|
|
552
565
|
return (self.close_to_startangle and self.close_to_endangle)
|
553
566
|
|
554
567
|
def is_in_touch_with_area(self, geom, a):
|
568
|
+
if self.is_one_circle_element():
|
569
|
+
return False
|
570
|
+
if a.is_one_circle_element():
|
571
|
+
return False
|
572
|
+
|
555
573
|
n1 = self.area[0].n1
|
556
574
|
n2 = a.area[0].n2
|
557
575
|
try:
|
558
576
|
return nx.has_path(geom.g, n1, n2)
|
559
|
-
except nx.NetworkXError:
|
560
|
-
logger.warning("has_path() failed")
|
577
|
+
except nx.NetworkXError as e:
|
578
|
+
logger.warning("has_path() failed: %s", e)
|
561
579
|
return False
|
562
580
|
|
563
581
|
def has_connection(self, geom, a, ndec):
|
@@ -958,6 +976,23 @@ class Area(object):
|
|
958
976
|
return False
|
959
977
|
return True
|
960
978
|
|
979
|
+
def is_line_inside(self, p1, p2):
|
980
|
+
if self.is_point_inside(p1):
|
981
|
+
if self.is_point_inside(p2):
|
982
|
+
logger.debug("Border: Type of area %s is %s",
|
983
|
+
self.identifier(), self.type)
|
984
|
+
return True
|
985
|
+
if self.the_point_is_inside_area(p2):
|
986
|
+
logger.debug("Inside: Type of area %s is %s",
|
987
|
+
self.identifier(), self.type)
|
988
|
+
return True
|
989
|
+
elif self.is_point_inside(p2):
|
990
|
+
if self.the_point_is_inside_area(p1):
|
991
|
+
logger.debug("Inside: Type of area %s is %s",
|
992
|
+
self.identifier(), self.type)
|
993
|
+
return True
|
994
|
+
return False
|
995
|
+
|
961
996
|
def get_best_point_inside(self, geom):
|
962
997
|
px1 = self.min_x - 5
|
963
998
|
px2 = self.max_x + 5
|
@@ -1172,6 +1207,11 @@ class Area(object):
|
|
1172
1207
|
continue
|
1173
1208
|
return r
|
1174
1209
|
|
1210
|
+
def is_one_circle_element(self):
|
1211
|
+
if len(self.area) == 1:
|
1212
|
+
return is_Circle(self.area[0])
|
1213
|
+
return False
|
1214
|
+
|
1175
1215
|
def is_circle(self):
|
1176
1216
|
e = self.area[0]
|
1177
1217
|
if len(self.area) == 1:
|
@@ -1419,11 +1459,7 @@ class Area(object):
|
|
1419
1459
|
opposite_radius = max_radius
|
1420
1460
|
|
1421
1461
|
airgap_toleranz = (self.max_dist - self.min_dist) / 50.0 # 2%
|
1422
|
-
|
1423
|
-
self.close_to_startangle = np.isclose(self.min_angle, startangle,
|
1424
|
-
1e-04, 1e-04)
|
1425
|
-
self.close_to_endangle = np.isclose(self.max_angle, endangle,
|
1426
|
-
1e-04, 1e-04)
|
1462
|
+
self.set_close_to_start_end_angles(startangle, endangle)
|
1427
1463
|
self.surface = self.area_size()
|
1428
1464
|
|
1429
1465
|
def mark_stator_subregions(self,
|
@@ -1454,10 +1490,7 @@ class Area(object):
|
|
1454
1490
|
opposite_radius = r_out
|
1455
1491
|
airgap_toleranz = (self.max_dist - self.min_dist) / 50.0 # 2%
|
1456
1492
|
|
1457
|
-
self.
|
1458
|
-
1e-04, 1e-04)
|
1459
|
-
self.close_to_endangle = np.isclose(self.max_angle, alpha,
|
1460
|
-
1e-04, 1e-04)
|
1493
|
+
self.set_close_to_start_end_angles(0.0, alpha)
|
1461
1494
|
self.surface = self.area_size()
|
1462
1495
|
|
1463
1496
|
logger.debug("\n***** mark_stator_subregions [{}] *****"
|
@@ -1563,7 +1596,10 @@ class Area(object):
|
|
1563
1596
|
logger.debug("***** air #3")
|
1564
1597
|
|
1565
1598
|
if self.close_to_startangle or self.close_to_endangle:
|
1566
|
-
|
1599
|
+
if stator_size > 0.0:
|
1600
|
+
f = self.surface / stator_size
|
1601
|
+
else:
|
1602
|
+
f = 0.0
|
1567
1603
|
if f < 0.02: # area_size less then 2 percent of stator size
|
1568
1604
|
# Luftloch
|
1569
1605
|
self.type = TYPE_AIR # air
|
@@ -1607,10 +1643,7 @@ class Area(object):
|
|
1607
1643
|
opposite_radius = r_out
|
1608
1644
|
airgap_toleranz = (self.max_dist - self.min_dist) / 50.0 # 2%
|
1609
1645
|
|
1610
|
-
self.
|
1611
|
-
1e-04, 1e-04)
|
1612
|
-
self.close_to_endangle = np.isclose(self.max_angle, endangle,
|
1613
|
-
1e-04, 1e-04)
|
1646
|
+
self.set_close_to_start_end_angles(startangle, endangle)
|
1614
1647
|
|
1615
1648
|
logger.debug("\n***** mark_EESM_rotor_subregions [{}] *****"
|
1616
1649
|
.format(self.id))
|
@@ -1680,10 +1713,7 @@ class Area(object):
|
|
1680
1713
|
opposite_radius = r_out
|
1681
1714
|
airgap_toleranz = (self.max_dist - self.min_dist) / 50.0 # 2%
|
1682
1715
|
|
1683
|
-
self.
|
1684
|
-
1e-04, 1e-04)
|
1685
|
-
self.close_to_endangle = np.isclose(self.max_angle, endangle,
|
1686
|
-
1e-04, 1e-04)
|
1716
|
+
self.set_close_to_start_end_angles(startangle, endangle)
|
1687
1717
|
|
1688
1718
|
logger.debug("\n***** mark_PMSM_rotor_subregions [{}] *****"
|
1689
1719
|
.format(self.id))
|
@@ -1788,8 +1818,7 @@ class Area(object):
|
|
1788
1818
|
logger.debug(">>> air is a circle")
|
1789
1819
|
return self.type
|
1790
1820
|
|
1791
|
-
self.
|
1792
|
-
self.close_to_endangle = np.isclose(self.max_angle, alpha)
|
1821
|
+
self.set_close_to_start_end_angles(self, 0.0, alpha)
|
1793
1822
|
|
1794
1823
|
if self.is_magnet_rectangle():
|
1795
1824
|
self.type = TYPE_MAGNET_RECT # magnet embedded
|
@@ -1831,7 +1860,7 @@ class Area(object):
|
|
1831
1860
|
return 0.0
|
1832
1861
|
return np.pi * e.radius**2
|
1833
1862
|
|
1834
|
-
nodes = [n for n in self.
|
1863
|
+
nodes = [n for n in self.virtual_nodes(parts=4)]
|
1835
1864
|
return area_size(nodes)
|
1836
1865
|
|
1837
1866
|
def set_surface(self, mirrored):
|
@@ -730,31 +730,12 @@ class AreaBuilder(object):
|
|
730
730
|
logger.debug("end of create_inner_corner_auxiliary_areas")
|
731
731
|
return created
|
732
732
|
|
733
|
-
def get_airgap_line(self,
|
733
|
+
def get_airgap_line(self, n1, n2, end_node):
|
734
734
|
logger.debug("get_airgap_line")
|
735
735
|
|
736
736
|
self.set_edge_attributes()
|
737
737
|
|
738
|
-
|
739
|
-
if not nodes:
|
740
|
-
logger.debug("end of get_airgap_line: no nodes found")
|
741
|
-
return [], []
|
742
|
-
|
743
|
-
n1 = nodes[0]
|
744
|
-
if points_are_close(start_node, n1):
|
745
|
-
n2 = nodes[-1]
|
746
|
-
else:
|
747
|
-
n2 = n1
|
748
|
-
for n1 in nodes[1:]:
|
749
|
-
if points_are_close(start_node, n1):
|
750
|
-
break
|
751
|
-
n2 = n1
|
752
|
-
|
753
|
-
if not points_are_close(start_node, n1):
|
754
|
-
logger.debug("end of get_airgap_line: not close to start-node")
|
755
|
-
return [], []
|
756
|
-
|
757
|
-
logger.debug("START EDGE FOUND: %s - %s", n1, n2)
|
738
|
+
logger.debug("START EDGE IS: %s - %s", n1, n2)
|
758
739
|
nodes = [n1, n2]
|
759
740
|
info = self.get_edge_info(n1, n2)
|
760
741
|
elements = [info.element]
|
@@ -768,28 +749,37 @@ class AreaBuilder(object):
|
|
768
749
|
nodes.append(n2)
|
769
750
|
elements.append(info.element)
|
770
751
|
|
771
|
-
logger.debug("end of get_airgap_line
|
752
|
+
logger.debug("end of get_airgap_line: %s nodes", len(nodes))
|
772
753
|
return nodes, elements
|
773
754
|
|
755
|
+
def get_upper_border_line(self):
|
756
|
+
start_node = self.geom.end_corners[-1]
|
757
|
+
end_node = self.geom.start_corners[-1]
|
758
|
+
next_node = self.get_right_neighbor(start_node)
|
759
|
+
logger.debug("UPPER NODES start=%s, next=%s, end=%s", start_node, next_node, end_node)
|
760
|
+
return self.get_airgap_line(start_node, next_node, end_node)
|
761
|
+
|
762
|
+
def get_lower_border_line(self):
|
763
|
+
start_node = self.geom.start_corners[0]
|
764
|
+
end_node = self.geom.end_corners[0]
|
765
|
+
next_node = self.get_left_neighbor(start_node)
|
766
|
+
logger.debug("LOWER NODES start=%s, next=%s, end=%s", start_node, next_node, end_node)
|
767
|
+
return self.get_airgap_line(start_node, next_node, end_node)
|
768
|
+
|
774
769
|
def get_inner_airgap_line(self):
|
775
|
-
logger.debug("
|
770
|
+
logger.debug("get_inner_airgap_line()")
|
776
771
|
assert(self.geom.is_inner)
|
777
772
|
assert(self.geom.area_list)
|
773
|
+
return self.get_upper_border_line()
|
778
774
|
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
start_node = self.geom.end_corners[-1]
|
785
|
-
logger.debug("START NODE %s", start_node)
|
786
|
-
end_node = self.geom.start_corners[-1]
|
787
|
-
logger.debug("END NODE %s", end_node)
|
788
|
-
|
789
|
-
return self.get_airgap_line(start_node, end_node, area[0])
|
775
|
+
def get_inner_opposite_airgap_line(self):
|
776
|
+
logger.debug("get_inner_opposite_airgap_line()")
|
777
|
+
assert(self.geom.is_inner)
|
778
|
+
assert(self.geom.area_list)
|
779
|
+
return self.get_lower_border_line()
|
790
780
|
|
791
781
|
def close_outer_winding_areas(self):
|
792
|
-
logger.debug("close_outer_winding_areas")
|
782
|
+
logger.debug("begin close_outer_winding_areas")
|
793
783
|
|
794
784
|
airgap_line, airgap_el = self.get_outer_airgap_line()
|
795
785
|
logger.debug("Outer Airgap with %s Nodes", len(airgap_line))
|
@@ -830,24 +820,53 @@ class AreaBuilder(object):
|
|
830
820
|
dist_prev = dist
|
831
821
|
alpha_prev = alpha
|
832
822
|
|
823
|
+
logger.debug("end close_outer_winding_areas: lines=%s", lines_created)
|
833
824
|
return lines_created > 0
|
834
825
|
|
826
|
+
def get_left_neighbor(self, start_node):
|
827
|
+
nbrs = self.geom.get_neighbors(start_node)
|
828
|
+
start_alpha = normalise_angle(alpha_line(start_node, self.geom.center))
|
829
|
+
next_angle = 0.0
|
830
|
+
next_node = None
|
831
|
+
for n in nbrs:
|
832
|
+
alpha = normalise_angle(alpha_line(start_node, n))
|
833
|
+
angle = alpha_angle(start_alpha, alpha)
|
834
|
+
if angle > next_angle:
|
835
|
+
next_angle = angle
|
836
|
+
next_node = n
|
837
|
+
|
838
|
+
logger.debug("Left neighbor is %s", next_node)
|
839
|
+
return next_node
|
840
|
+
|
841
|
+
def get_right_neighbor(self, start_node):
|
842
|
+
nbrs = self.geom.get_neighbors(start_node)
|
843
|
+
start_alpha = normalise_angle(alpha_line(start_node, self.geom.center))
|
844
|
+
next_angle = 99
|
845
|
+
next_node = None
|
846
|
+
for n in nbrs:
|
847
|
+
alpha = normalise_angle(alpha_line(start_node, n))
|
848
|
+
angle = alpha_angle(start_alpha, alpha)
|
849
|
+
if angle < next_angle:
|
850
|
+
next_angle = angle
|
851
|
+
next_node = n
|
852
|
+
|
853
|
+
logger.debug("Right neighbor is %s", next_node)
|
854
|
+
return next_node
|
855
|
+
|
835
856
|
def get_outer_airgap_line(self):
|
836
|
-
logger.debug("
|
857
|
+
logger.debug("get_outer_airgap_line()")
|
837
858
|
assert(self.geom.is_outer)
|
838
859
|
assert(self.geom.area_list)
|
860
|
+
return self.get_lower_border_line()
|
839
861
|
|
840
|
-
|
841
|
-
|
842
|
-
|
843
|
-
|
844
|
-
|
845
|
-
start_node = self.geom.start_corners[0]
|
846
|
-
logger.debug("START NODE %s", start_node)
|
847
|
-
end_node = self.geom.end_corners[0]
|
848
|
-
logger.debug("END NODE %s", end_node)
|
862
|
+
def get_outer_opposite_airgap_line(self):
|
863
|
+
logger.debug("get_outer_opposite_airgap_line()")
|
864
|
+
assert(self.geom.is_outer)
|
865
|
+
assert(self.geom.area_list)
|
866
|
+
return self.get_upper_border_line()
|
849
867
|
|
850
|
-
|
868
|
+
# same procedure as inner airgap line
|
869
|
+
return self.get_inner_airgap_line()
|
851
870
|
|
852
871
|
def create_one_area_group(self, areas):
|
853
872
|
logger.debug("begin of create_one_area_group")
|
@@ -915,9 +934,13 @@ class AreaBuilder(object):
|
|
915
934
|
max_x = 0
|
916
935
|
area = None
|
917
936
|
for a in area_list:
|
937
|
+
if a.is_one_circle_element():
|
938
|
+
continue
|
918
939
|
if a.max_x > max_x:
|
919
940
|
max_x = a.max_x
|
920
941
|
area = a
|
942
|
+
if area is None:
|
943
|
+
return False
|
921
944
|
|
922
945
|
x0, y0 = -9999.0, 0.0
|
923
946
|
for x, y in area.list_of_nodes():
|
@@ -168,6 +168,10 @@ def symmetry_search(machine,
|
|
168
168
|
def build_machine_rotor(machine, inner, mindist, plt, EESM=False, single=False):
|
169
169
|
logger.debug("Begin of build_machine_rotor")
|
170
170
|
|
171
|
+
if machine.part == 1:
|
172
|
+
logger.error("Full machine rotor without symmetrylines")
|
173
|
+
sys.exit(1)
|
174
|
+
|
171
175
|
if machine.has_windings():
|
172
176
|
logger.debug("do nothing here with windings in rotor")
|
173
177
|
logger.debug("End of build_machine_rotor")
|
@@ -202,6 +206,18 @@ def build_machine_rotor(machine, inner, mindist, plt, EESM=False, single=False):
|
|
202
206
|
title="Rotor Magnet Slice after Rebuild")
|
203
207
|
|
204
208
|
rebuild = False
|
209
|
+
if machine_temp.magnets_missing(EESM):
|
210
|
+
mag = machine_temp.looking_for_one_possible_magnet()
|
211
|
+
if mag:
|
212
|
+
if machine.is_mirrored():
|
213
|
+
rebuild = machine_temp.create_mirror_lines_outside_magnets()
|
214
|
+
if machine_temp.create_auxiliary_lines():
|
215
|
+
rebuild = True
|
216
|
+
if rebuild:
|
217
|
+
machine_temp.rebuild_subregions(EESM, single=single)
|
218
|
+
machine_temp.geom.force_area_as_magnet(mag)
|
219
|
+
return machine_temp
|
220
|
+
|
205
221
|
if machine_temp.has_magnets_in_the_middle():
|
206
222
|
logger.debug("Magnets cut")
|
207
223
|
rebuild = machine_temp.create_mirror_lines_outside_magnets()
|
@@ -246,6 +262,10 @@ def build_machine_stator(machine, inner, mindist, plt, EESM=False, single=False)
|
|
246
262
|
logger.debug("Begin of build_machine_stator")
|
247
263
|
timer = Timer(start_it=True)
|
248
264
|
|
265
|
+
if machine.part == 1:
|
266
|
+
logger.error("Full stator without symmetrylines")
|
267
|
+
sys.exit(1)
|
268
|
+
|
249
269
|
if not machine.geom.is_stator():
|
250
270
|
logger.debug("Rotor with windings")
|
251
271
|
|
@@ -432,10 +452,10 @@ def convert(dxfile,
|
|
432
452
|
return dict(error='unknown location {}'.format(part[1]))
|
433
453
|
else:
|
434
454
|
if da:
|
435
|
-
logger.
|
455
|
+
logger.warning("distance airgap (da) ignored")
|
436
456
|
da = 0.0
|
437
457
|
if dy:
|
438
|
-
logger.
|
458
|
+
logger.warning("distance yoke (dy) ignored")
|
439
459
|
dy = 0.0
|
440
460
|
|
441
461
|
split_ini = split
|
@@ -508,13 +528,13 @@ def convert(dxfile,
|
|
508
528
|
p, basegeom,
|
509
529
|
title="Before finding Machine")
|
510
530
|
|
511
|
-
machine_base = basegeom.get_machine()
|
512
531
|
if show_plots:
|
513
532
|
p.render_elements(basegeom, Shape,
|
514
533
|
title=input_file.name,
|
515
534
|
with_hull=False,
|
516
535
|
rows=3, cols=2, num=1, show=debug_mode)
|
517
536
|
|
537
|
+
machine_base = basegeom.get_machine()
|
518
538
|
if not machine_base.is_a_machine():
|
519
539
|
logger.warn("it's Not a Machine")
|
520
540
|
return dict(error='machine not detected')
|
@@ -1064,7 +1084,7 @@ def create_femag_parameters_stator(motor, position):
|
|
1064
1084
|
params['da1'] = 2*motor.geom.min_radius
|
1065
1085
|
params['slot_area'] = motor.slot_area()
|
1066
1086
|
params['stator'] = _create_stator_parameters(motor)
|
1067
|
-
params['machine'] = motor
|
1087
|
+
#params['machine'] = motor
|
1068
1088
|
return params
|
1069
1089
|
|
1070
1090
|
|
@@ -1080,5 +1100,5 @@ def create_femag_parameters_rotor(motor, position):
|
|
1080
1100
|
params['da1'] = 2*motor.geom.min_radius
|
1081
1101
|
params['slot_area'] = motor.slot_area()
|
1082
1102
|
params['rotor'] = _create_rotor_parameters(motor)
|
1083
|
-
params['machine'] = motor
|
1103
|
+
#params['machine'] = motor
|
1084
1104
|
return params
|
@@ -270,7 +270,7 @@ class FslRenderer(object):
|
|
270
270
|
for area in geom.list_of_areas():
|
271
271
|
if area.number_of_elements() > 1:
|
272
272
|
p = area.get_point_inside(geom)
|
273
|
-
if p:
|
273
|
+
if p and area.type > 0:
|
274
274
|
self.content.append("x0, y0 = {}, {}".format(p[0], p[1]))
|
275
275
|
# self.content.append("point(x0, y0, red, 4)") # for debugging
|
276
276
|
self.content.append("create_mesh_se(x0, y0)")
|
@@ -324,7 +324,7 @@ class FslRenderer(object):
|
|
324
324
|
self.content.append(
|
325
325
|
'x0_shaft, y0_shaft = x0, y0')
|
326
326
|
|
327
|
-
|
327
|
+
self.content.append("create_mesh(x0, y0)\n")
|
328
328
|
|
329
329
|
txt = ["if x0_iron_yoke > 0.0 then",
|
330
330
|
" if mcvkey_yoke ~= 'dummy' then",
|