@bryn This is my code, I use v8.2.2
def run_simulation(value1, value2):
print(f"Running simulation for values: {value1}_{value2}")
# Define the version to use for default values
# s2=time.time()
#simulation
# Creating the simulation
simulation1 = emlf.ElectroQsOhmicSimulation()
simulation1.Name =f"{value1}_{value2}"
# Mapping the components and entities
component__plane_x = simulation1.AllComponents["Plane X+"]
component__plane_x = simulation1.AllComponents["Plane X-"]
component__background = simulation1.AllComponents["Background"]
component__plane_y = simulation1.AllComponents["Plane Y+"]
component__plane_y = simulation1.AllComponents["Plane Y-"]
component__plane_z = simulation1.AllComponents["Plane Z+"]
component__plane_z = simulation1.AllComponents["Plane Z-"]
component__overall_field = simulation1.AllComponents["Overall Field"]
entity_0 = model.AllEntities()["Cz_Cylinder 1"]
entity_1 = model.AllEntities()["Fpz_Cylinder 1"]
entity_2 = model.AllEntities()["Fp1_Cylinder 1"]
entity_3 = model.AllEntities()["AF7_Cylinder 1"]
entity_4 = model.AllEntities()["F7_Cylinder 1"]
entity_5 = model.AllEntities()["FT7_Cylinder 1"]
entity_6 = model.AllEntities()["T7_Cylinder 1"]
entity_7 = model.AllEntities()["TP7_Cylinder 1"]
entity_8 = model.AllEntities()["P7_Cylinder 1"]
entity_9 = model.AllEntities()["PO7_Cylinder 1"]
entity_10 = model.AllEntities()["O1_Cylinder 1"]
entity_11 = model.AllEntities()["Oz_Cylinder 1"]
entity_12 = model.AllEntities()["O2_Cylinder 1"]
entity_13 = model.AllEntities()["PO8_Cylinder 1"]
entity_14 = model.AllEntities()["P8_Cylinder 1"]
entity_15 = model.AllEntities()["TP8_Cylinder 1"]
entity_16 = model.AllEntities()["T8_Cylinder 1"]
entity_17 = model.AllEntities()["FT8_Cylinder 1"]
entity_18 = model.AllEntities()["F8_Cylinder 1"]
entity_19 = model.AllEntities()["AF8_Cylinder 1"]
entity_20 = model.AllEntities()["Fp2_Cylinder 1"]
entity_21 = model.AllEntities()["AFz_Cylinder 1"]
entity_22 = model.AllEntities()["AF3_Cylinder 1"]
entity_23 = model.AllEntities()["F5_Cylinder 1"]
entity_24 = model.AllEntities()["FC5_Cylinder 1"]
entity_25 = model.AllEntities()["C5_Cylinder 1"]
entity_26 = model.AllEntities()["CP5_Cylinder 1"]
entity_27 = model.AllEntities()["P5_Cylinder 1"]
entity_28 = model.AllEntities()["PO3_Cylinder 1"]
entity_29 = model.AllEntities()["POz_Cylinder 1"]
entity_30 = model.AllEntities()["PO4_Cylinder 1"]
entity_31 = model.AllEntities()["P6_Cylinder 1"]
entity_32 = model.AllEntities()["CP6_Cylinder 1"]
entity_33= model.AllEntities()["C6_Cylinder 1"]
entity_34 = model.AllEntities()["FC6_Cylinder 1"]
entity_35 = model.AllEntities()["F6_Cylinder 1"]
entity_36 = model.AllEntities()["AF4_Cylinder 1"]
entity_37 = model.AllEntities()["Fz_Cylinder 1"]
entity_38 = model.AllEntities()["F1_Cylinder 1"]
entity_39 = model.AllEntities()["F3_Cylinder 1"]
entity_40 = model.AllEntities()["FC3_Cylinder 1"]
entity_41 = model.AllEntities()["C3_Cylinder 1"]
entity_42 = model.AllEntities()["CP3_Cylinder 1"]
entity_43 = model.AllEntities()["P3_Cylinder 1"]
entity_44 = model.AllEntities()["P1_Cylinder 1"]
entity_45 = model.AllEntities()["Pz_Cylinder 1"]
entity_46 = model.AllEntities()["P2_Cylinder 1"]
entity_47 = model.AllEntities()["P4_Cylinder 1"]
entity_48 = model.AllEntities()["CP4_Cylinder 1"]
entity_49 = model.AllEntities()["C4_Cylinder 1"]
entity_50 = model.AllEntities()["FC4_Cylinder 1"]
entity_51 = model.AllEntities()["F4_Cylinder 1"]
entity_52 = model.AllEntities()["F2_Cylinder 1"]
entity_53 = model.AllEntities()["FCz_Cylinder 1"]
entity_54 = model.AllEntities()["FC1_Cylinder 1"]
entity_55 = model.AllEntities()["C1_Cylinder 1"]
entity_56 = model.AllEntities()["CP1_Cylinder 1"]
entity_57 = model.AllEntities()["CPz_Cylinder 1"]
entity_58 = model.AllEntities()["CP2_Cylinder 1"]
entity_59 = model.AllEntities()["C2_Cylinder 1"]
entity_60 = model.AllEntities()["FC2_Cylinder 1"]
entity__bone_cortical = model.AllEntities()["Bone_cortical"]
entity__vein = model.AllEntities()["Vein"]
entity__other_tissues = model.AllEntities()["Other_tissues"]
entity__nerve_cranial_ii_optic = model.AllEntities()["Nerve_cranial_II_optic"]
entity__muscle_ocular = model.AllEntities()["Muscle_ocular"]
entity__bone_cancellous = model.AllEntities()["Bone_cancellous"]
entity__spinal_cord = model.AllEntities()["Spinal_cord"]
entity__skin = model.AllEntities()["Skin"]
entity__cerebrum_white_matter = model.AllEntities()["Cerebrum_white_matter"]
entity__eyes = model.AllEntities()["Eyes"]
entity__air_internal = model.AllEntities()["Air_internal"]
entity__mucosa = model.AllEntities()["Mucosa"]
entity__cerebrospinal_fluid = model.AllEntities()["Cerebrospinal_fluid"]
entity__dura = model.AllEntities()["Dura"]
entity__artery = model.AllEntities()["Artery"]
entity__cerebrum_grey_matter = model.AllEntities()["Cerebrum_grey_matter"]
# 创建一个映射表,将数字索引与实体名称关联起来
entity_mapping = {
0: "Cz_Cylinder 1",
1: "Fpz_Cylinder 1",
2: "Fp1_Cylinder 1",
3: "AF7_Cylinder 1",
4: "F7_Cylinder 1",
5: "FT7_Cylinder 1",
6: "T7_Cylinder 1",
7: "TP7_Cylinder 1",
8: "P7_Cylinder 1",
9: "PO7_Cylinder 1",
10: "O1_Cylinder 1",
11: "Oz_Cylinder 1",
12: "O2_Cylinder 1",
13: "PO8_Cylinder 1",
14: "P8_Cylinder 1",
15: "TP8_Cylinder 1",
16: "T8_Cylinder 1",
17: "FT8_Cylinder 1",
18: "F8_Cylinder 1",
19: "AF8_Cylinder 1",
20: "Fp2_Cylinder 1",
21: "AFz_Cylinder 1",
22: "AF3_Cylinder 1",
23: "F5_Cylinder 1",
24: "FC5_Cylinder 1",
25: "C5_Cylinder 1",
26: "CP5_Cylinder 1",
27: "P5_Cylinder 1",
28: "PO3_Cylinder 1",
29: "POz_Cylinder 1",
30: "PO4_Cylinder 1",
31: "P6_Cylinder 1",
32: "CP6_Cylinder 1",
33: "C6_Cylinder 1",
34: "FC6_Cylinder 1",
35: "F6_Cylinder 1",
36: "AF4_Cylinder 1",
37: "Fz_Cylinder 1",
38: "F1_Cylinder 1",
39: "F3_Cylinder 1",
40: "FC3_Cylinder 1",
41: "C3_Cylinder 1",
42: "CP3_Cylinder 1",
43: "P3_Cylinder 1",
44: "P1_Cylinder 1",
45: "Pz_Cylinder 1",
46: "P2_Cylinder 1",
47: "P4_Cylinder 1",
48: "CP4_Cylinder 1",
49: "C4_Cylinder 1",
50: "FC4_Cylinder 1",
51: "F4_Cylinder 1",
52: "F2_Cylinder 1",
53: "FCz_Cylinder 1",
54: "FC1_Cylinder 1",
55: "C1_Cylinder 1",
56: "CP1_Cylinder 1",
57: "CPz_Cylinder 1",
58: "CP2_Cylinder 1",
59: "C2_Cylinder 1",
60: "FC2_Cylinder 1"
}
# 确保输入的值是整数类型
value1 = int(value1)
value2 = int(value2)
# 根据输入的数字索引获取对应的实体名称
entity_name1 = entity_mapping.get(value1)
entity_name2 = entity_mapping.get(value2)
# 检查实体名称是否存在
if entity_name1 is None:
raise KeyError(f"Entity for value {value1} does not exist")
if entity_name2 is None:
raise KeyError(f"Entity for value {value2} does not exist")
# 获取对应的实体对象
entity_value1 = model.AllEntities()[entity_name1]
entity_value2 = model.AllEntities()[entity_name2]
# 打印结果,确认是否正确
print(f"Entity for value1 ({value1}): {entity_value1}")
print(f"Entity for value2 ({value2}): {entity_value2}")
# Editing QuasiStaticSetupSettings "Setup
quasi_static_setup_settings = [x for x in simulation1.AllSettings if isinstance(x, emlf.QuasiStaticSetupSettings) and x.Name == "Setup"][0]
quasi_static_setup_settings.Frequency = 2000.0, units.Hz
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__skin]
mat = database["IT'IS LF 4.2"]["Skin"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Skin"
material_settings.MassDensity = 1109.0, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 0.1482971014492752, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 1135.619382618975
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__air_internal]
mat = database["IT'IS LF 4.2"]["Air"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Air 1"
material_settings.MassDensity = 1.164091552938177, Unit("kg/m^3")
material_settings.Name = "Air 1"
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__cerebrospinal_fluid]
mat = database["IT'IS LF 4.2"]["Cerebrospinal Fluid"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Cerebrospinal Fluid"
material_settings.MassDensity = 1007.0, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 1.878999709695023, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 108.9999972649334
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__cerebrum_white_matter]
mat = database["IT'IS LF 4.2"]["Brain (White Matter)"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Brain (White Matter)"
material_settings.MassDensity = 1041.0, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 0.3479543931346832, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 69810.68883114036
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__mucosa]
mat = database["IT'IS LF 4.2"]["Mucous Membrane"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Mucous Membrane"
material_settings.MassDensity = 1102.0, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 0.4610075264456888, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 434932.19242741907
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__dura]
mat = database["IT'IS LF 4.2"]["Dura"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Dura"
material_settings.MassDensity = 1174.0, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 0.06, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 5343.990898234167
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__eyes]
mat = database["IT'IS LF 4.2"]["Eye (Aqueous Humor)"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Eye (Aqueous Humor)"
material_settings.MassDensity = 993.7770167788401, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 1.878999709695023, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 108.9999972649334
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__artery, entity__vein]
mat = database["IT'IS LF 4.2"]["Blood"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Blood"
material_settings.MassDensity = 1049.75, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 0.6624597361833767, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 5258.608390020375
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__spinal_cord]
mat = database["IT'IS LF 4.2"]["Spinal Cord"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Spinal Cord"
material_settings.MassDensity = 1075.0, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 0.6109538492063492, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 69911.4914652573
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__nerve_cranial_ii_optic]
mat = database["IT'IS LF 4.2"]["Nerve"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Nerve"
material_settings.MassDensity = 1075.0, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 0.3479543931346832, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 69911.4914652573
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__muscle_ocular]
mat = database["IT'IS LF 4.2"]["Muscle"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Muscle"
material_settings.MassDensity = 1090.4, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 0.4610075264456888, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 434932.19242741907
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__bone_cortical]
mat = database["IT'IS LF 4.2"]["Bone (Cortical)"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Bone (Cortical)"
material_settings.MassDensity = 1908.0, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 0.00630199709513435, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 2702.3711256306647
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__cerebrum_grey_matter]
mat = database["IT'IS LF 4.2"]["Brain (Grey Matter)"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Brain (Grey Matter)"
material_settings.MassDensity = 1044.5, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 0.4190548817650446, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 164062.99316639948
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__other_tissues]
material_settings.ElectricProps.Conductivity = 0.087, Unit("S/m")
simulation1.Add(material_settings, components)
# Adding a new MaterialSettings
material_settings = emlf.MaterialSettings()
components = [entity__bone_cancellous]
mat = database["IT'IS LF 4.2"]["Bone (Cancellous)"]
if mat is not None:
simulation1.LinkMaterialWithDatabase(material_settings, mat)
else:
# Fallback if material is not found
material_settings.Name = "Bone (Cancellous)"
material_settings.MassDensity = 1178.333333333333, Unit("kg/m^3")
material_settings.ElectricProps.Conductivity = 0.08045952772338552, Unit("S/m")
material_settings.ElectricProps.RelativePermittivity = 12320.035797440474
simulation1.Add(material_settings, components)
# Editing BoundarySettings "Boundary Settings
boundary_settings = [x for x in simulation1.AllSettings if isinstance(x, emlf.BoundarySettings) and x.Name == "Boundary Settings"][0]
components = [component__plane_x, component__plane_x, component__plane_y, component__plane_y, component__plane_z, component__plane_z]
simulation1.Add(boundary_settings, components)
boundary_settings.BoundaryType = boundary_settings.BoundaryType.enum.Flux
# Adding a new BoundarySettings
boundary_settings = emlf.BoundarySettings()
components = [entity_value1]
boundary_settings.Name = "Boundary Settings 1"
boundary_settings.DirichletValue = 1.0, units.Volts
simulation1.Add(boundary_settings, components)
# Adding a new BoundarySettings
boundary_settings = emlf.BoundarySettings()
components = [entity_value2]
boundary_settings.Name = "Boundary Settings 2"
boundary_settings.DirichletValue = -1.0, units.Volts
simulation1.Add(boundary_settings, components)
# Editing GlobalGridSettings "Grid (Empty)
global_grid_settings = simulation1.GlobalGridSettings
global_grid_settings.PaddingMode = global_grid_settings.PaddingMode.enum.Manual
global_grid_settings.BottomPadding = numpy.array([0.0, 0.0, 0.0]), units.MilliMeters
global_grid_settings.TopPadding = numpy.array([0.0, 0.0, 0.0]), units.MilliMeters
# Adding a new ManualGridSettings
manual_grid_settings = simulation1.AddManualGridSettings([entity_0, entity_1, entity_2,entity_3,entity_4,entity_5,entity_6,entity_7,entity_8,entity_9,entity_10,
entity_11,entity_12,entity_13,entity_14,entity_15,entity_16,entity_17,entity_18,entity_19,entity_20,
entity_21,entity_22,entity_23,entity_24,entity_25,entity_26,entity_27,entity_28,entity_29,entity_30,
entity_31,entity_32,entity_33,entity_34,entity_35,entity_36,entity_37,entity_38,entity_39,entity_40,
entity_41,entity_42,entity_43,entity_44,entity_45,entity_46,entity_47,entity_48,entity_49,entity_50,
entity_51,entity_52,entity_53,entity_54,entity_55,entity_56,entity_57,entity_58,entity_59,entity_60])
manual_grid_settings.MaxStep = numpy.array([1.0, 1.0, 1.0]), units.MilliMeters
manual_grid_settings.Resolution = numpy.array([0.3, 0.3, 0.3]), units.MilliMeters
manual_grid_settings.Priority = 0.0
# Adding a new ManualGridSettings
manual_grid_settings = simulation1.AddManualGridSettings([entity__air_internal, entity__artery, entity__bone_cancellous, entity__bone_cortical, entity__cerebrospinal_fluid, entity__cerebrum_grey_matter, entity__cerebrum_white_matter, entity__dura, entity__eyes, entity__mucosa, entity__muscle_ocular, entity__nerve_cranial_ii_optic, entity__other_tissues, entity__skin, entity__spinal_cord, entity__vein])
manual_grid_settings.MaxStep = numpy.array([1.0, 1.0, 1.0]), units.MilliMeters
manual_grid_settings.Resolution = numpy.array([0.3, 0.3, 0.3]), units.MilliMeters
manual_grid_settings.Priority = 0.0
# Editing AutomaticVoxelerSettings "Automatic Voxeler Settings
automatic_voxeler_settings = [x for x in simulation1.AllSettings if isinstance(x, emlf.AutomaticVoxelerSettings) and x.Name == "Automatic Voxeler Settings"][0]
components = [entity__air_internal, entity__artery, entity__bone_cancellous, entity__bone_cortical, entity__cerebrospinal_fluid, entity__cerebrum_grey_matter, entity__cerebrum_white_matter, entity__dura, entity__eyes, entity__mucosa, entity__muscle_ocular, entity__nerve_cranial_ii_optic, entity__other_tissues, entity__skin, entity__spinal_cord, entity__vein]
simulation1.Add(automatic_voxeler_settings, components)
automatic_voxeler_settings.Priority = 1
# Adding a new AutomaticVoxelerSettings
automatic_voxeler_settings = emlf.AutomaticVoxelerSettings()
#components = [entity_f5__cylinder1, entity_p5__cylinder1]
components = [entity_value1, entity_value2]
automatic_voxeler_settings.Name = "electrodes"
simulation1.Add(automatic_voxeler_settings, components)
automatic_voxeler_settings.Priority = 0
# Editing SolverSettings "Solver
solver_settings = simulation1.SolverSettings
solver_settings.NumberOfProcesses = 2
# Update the materials with the new frequency parameters
simulation1.UpdateAllMaterials()
# Update the grid with the new parameters
simulation1.UpdateGrid()
#
simulation1.CreateVoxels(r"F:\Huilin\sim4life_pro\script\head_TI\head_TI-4.smash")
# Add the simulation to the UI
document.AllSimulations.Add( simulation1 )
simulation1.RunSimulation(wait=True)
# Output directory
output_dir = r"G:\MHL\TI_head\IXI025\interprate\tacs_2000Hz"
# Output file
output_file1 = os.path.join(output_dir, f"{value1}_{value2}.txt")
output_file2 = os.path.join(output_dir, f"{value1}_{value2}_T1_interpolation.txt")
# Add a new ModelToGridFilter
inputs = []
model_to_grid_filter = analysis.core.ModelToGridFilter(inputs=inputs)
model_to_grid_filter.Name = "Image"
model_to_grid_filter.Entity = model.AllEntities()["IXI025-Guys-0852-T1"] # The model entity corresponding to the T1w-image
model_to_grid_filter.UpdateAttributes()
simulation1 = document.AllSimulations[f"{value1}_{value2}"]
simulation_extractor1 = simulation1.Results()
# Adding a new EmSensorExtractor
em_sensor_extractor1 = simulation_extractor1["Overall Field"]
em_sensor_extractor1.FrequencySettings.ExtractedFrequency = u"All"
document.AllAlgorithms.Add(em_sensor_extractor1)
# Adding a new CurrentExtractor
inputs1 = [em_sensor_extractor1.Outputs["EM Potential(x,y,z,f0)"], em_sensor_extractor1.Outputs["J(x,y,z,f0)"]]
current_extractor1 = analysis.extractors.CurrentExtractor(inputs=inputs1)
current_extractor1.IsoSurfacePerCentThreshold = 30
current_extractor1.UpdateAttributes()
document.AllAlgorithms.Add(current_extractor1)
# Adding a new DataTableHTMLViewer
output1 = current_extractor1.Outputs["Total Flux(J(x,y,z,f0))"]
output1.Update()
comp1 = output1.Data.GetComponent(0)
flux1 = np.real(comp1)[0]
inputs1 = [em_sensor_extractor1.Outputs["EM E(x,y,z,f0)"]]
user_defined_field_normalizer1 = analysis.field.UserDefinedFieldNormalizer(inputs=inputs1)
user_defined_field_normalizer1.Target.Value = 1.0 / (flux1 * 1000)
user_defined_field_normalizer1.Name = f"{value1}_{value2}"
user_defined_field_normalizer1.UpdateAttributes()
document.AllAlgorithms.Add(user_defined_field_normalizer1)
# Adding a new FieldDataTextExporter
inputs1 = [user_defined_field_normalizer1.Outputs["EM E(x,y,z,f0)"]]
field_data_text_exporter1 = analysis.exporters.FieldDataTextExporter(inputs=inputs1)
field_data_text_exporter1.FileName = output_file1
field_data_text_exporter1.UpdateAttributes()
document.AllAlgorithms.Add(field_data_text_exporter1)
field_data_text_exporter1.Update(overwrite=True)
inputs2 = [model_to_grid_filter.Outputs[0]]
field_data_text_exporter2 = analysis.exporters.FieldDataTextExporter(inputs=inputs2)
field_data_text_exporter2.FileName = output_file2
field_data_text_exporter2.UpdateAttributes()
document.AllAlgorithms.Add(field_data_text_exporter2)
field_data_text_exporter2.Update(overwrite=True)