Source code for pyleecan.Methods.Simulation.VarSimu.gen_datakeeper_list
from ....Classes.DataKeeper import DataKeeper
from ....Functions.Load.import_class import import_class
def gen_datakeeper_list(self, ref_simu):
"""Generate default DataKeepers according the reference simulation type"""
datakeeper_list = []
# To avoid adding twice a DataKeeper
symbol_list = [dk.symbol for dk in self.datakeeper_list]
# For multi-simulation of multi-simulation (different DataKeepe<r)
is_multi = ref_simu.var_simu is not None
# Dynamic import to avoid loop
InputCurrent = import_class("pyleecan.Classes", "InputCurrent", "")
# Save speed
if not is_multi and "N0" not in symbol_list:
datakeeper_list.append(
DataKeeper(
name="Speed",
symbol="N0",
unit="rpm",
keeper="lambda output: output.elec.N0",
)
)
# Get default datakeeper
if ref_simu.elec or isinstance(ref_simu.input, InputCurrent):
datakeeper_list.extend(self.get_elec_datakeeper(symbol_list, is_multi=is_multi))
if ref_simu.mag:
datakeeper_list.extend(self.get_mag_datakeeper(symbol_list, is_multi=is_multi))
if ref_simu.force:
datakeeper_list.extend(
self.get_force_datakeeper(symbol_list, is_multi=is_multi)
)
self.datakeeper_list.extend(datakeeper_list)