Source code for pyleecan.Tests.Validation.Simulation.test_CEFC_002_save_mag

from numpy import zeros, ones, pi, array

from ....Classes.Simu1 import Simu1
from ....Tests.Validation.Machine.CEFC_Lam import CEFC_Lam

from ....Classes.InputCurrent import InputCurrent
from ....Classes.ImportGenVectLin import ImportGenVectLin
from ....Classes.ImportMatrixVal import ImportMatrixVal
from ....Classes.MagFEMM import MagFEMM
from ....Classes.Output import Output
from ....Tests import save_validation_path as save_path
from os.path import join

import matplotlib.pyplot as plt
import json
import numpy as np
from ....Functions.FEMM import GROUP_SC


[docs]def test_CEFC_002(): """Validation of the TOYOTA Prius 2004 interior magnet (V shape) with distributed winding 50 kW peak, 400 Nm peak at 1500 rpm from publication from publication Z. Yang, M. Krishnamurthy and I. P. Brown, "Electromagnetic and vibrational characteristic of IPM over full torque-speed range," Electric Machines & Drives Conference (IEMDC), 2013 IEEE International, Chicago, IL, 2013, pp. 295-302. """ simu = Simu1(name="SM_CEFC_002_save_mag", machine=CEFC_Lam, struct=None) # Definition of the enforced output of the electrical module Nr = ImportMatrixVal(value=ones(1) * 3000) Is = ImportMatrixVal(value=array([[2.25353053e02, 2.25353053e02, 2.25353053e02]])) time = ImportGenVectLin(start=0, stop=1, num=1, endpoint=True) angle = ImportGenVectLin(start=0, stop=2 * pi, num=1024, endpoint=False) simu.input = InputCurrent( Is=Is, Ir=None, # No winding on the rotor Nr=Nr, angle_rotor=None, # Will be computed time=time, angle=angle, ) # Definition of the magnetic simulation (no symmetry) simu.mag = MagFEMM( is_stator_linear_BH=2, is_rotor_linear_BH=2, is_get_mesh=True, is_save_FEA=True, is_sliding_band=False, ) out = Output(simu=simu) out.post.legend_name = "Slotless lamination" simu.run() out.plot_mesh(mesh=out.mag.meshsolution.mesh[0], title="FEA Mesh") # out.plot_mesh_field(meshsolution=out.mag.meshsolution, title="Permeability") out.plot_mesh_field( mesh=out.mag.meshsolution.mesh[0], title="Permeability", field=out.mag.meshsolution.solution[0].face["mu"], ) fig = plt.gcf() fig.savefig(join(save_path, "test_CEFC_002_save_mag")) # Test save with MeshSolution object in out out.save(save_path=save_path) load_path = join(save_path, "Output.json") # Test to load the Meshsolution object (inside the output): with open(load_path) as json_file: json_tmp = json.load(json_file) FEMM = Output(init_dict=json_tmp) # To test that the "mu" is still a ndarray after saving and loading out.plot_mesh_field( mesh=FEMM.mag.meshsolution.mesh[0], title="Permeability", field=FEMM.mag.meshsolution.solution[0].face["mu"], )