Skip to content

Commit 3bc3b84

Browse files
author
Sebastian Schachten
committed
changed powerloss -> power loss density
updated docstring of function calc_hystersis_losses_with_MagNet_model_PB_based_on_mesh_results
1 parent 9563e87 commit 3bc3b84

2 files changed

Lines changed: 14 additions & 9 deletions

File tree

femmt/component.py

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -246,15 +246,20 @@ def calc_hystersis_losses_with_MagNet_model_PB_based_on_reluctance(self, peak_ma
246246
elif b_wave is WaveformType.Custom:
247247
b_wave = custom_b_wave * b_field_peak
248248

249-
power_loss = ff.calc_powerloss_from_MagNet_model_PB(material_name=self.core.material.material, b_wave=b_wave, frequency=self.frequency,
250-
temperature=self.core.material.temperature) * self.calculate_core_volume()
249+
power_loss = ff.calc_power_loss_from_MagNet_model_PB(material_name=self.core.material.material, b_wave=b_wave, frequency=self.frequency,
250+
temperature=self.core.material.temperature) * self.calculate_core_volume()
251251
return power_loss
252252

253253
def calc_hystersis_losses_with_MagNet_model_PB_based_on_mesh_results(self, b_wave: WaveformType = WaveformType.Sine,
254254
custom_b_wave: np.ndarray = None) -> float:
255255
"""
256256
Calculate the hysteresis losses with the MagNet model of Paderborn University based on FEM-simulation results.
257257
258+
- uses the local magnetic flux densitiy in each mesh cell
259+
- arbitrary waveforms are possible. But FEM simulation assumes a sinusoidal waveform and the peak of the magnetic flux density result of each mesh cell
260+
is used to linearly scale the arbitrary waveform to its max. value
261+
- for each mesh cell, the magnet model is applied
262+
258263
:param b_wave: type of the waveform of the magnetic flux density/magnetizing current
259264
:type b_wave: WaveformType
260265
:param custom_b_wave: normalized signal of the magnetic flux density/magnetizing current (normalized -> amplitude of 1)
@@ -269,9 +274,9 @@ def calc_hystersis_losses_with_MagNet_model_PB_based_on_mesh_results(self, b_wav
269274
elif b_wave is WaveformType.Custom:
270275
b_wave = np.array([custom_b_wave * b for b in flux])
271276

272-
hyst_losses_density = ff.calc_powerloss_from_MagNet_model_PB(material_name=self.core.material.material, b_wave=b_wave,
273-
frequency=np.array([self.frequency] * b_wave.shape[0]),
274-
temperature=np.array([self.core.material.temperature] * b_wave.shape[0]))
277+
hyst_losses_density = ff.calc_power_loss_from_MagNet_model_PB(material_name=self.core.material.material, b_wave=b_wave,
278+
frequency=np.array([self.frequency] * b_wave.shape[0]),
279+
temperature=np.array([self.core.material.temperature] * b_wave.shape[0]))
275280
power_loss = float(np.dot(hyst_losses_density, volume))
276281
return power_loss
277282

femmt/functions.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2767,9 +2767,9 @@ def compare_excel_files(femmt_excel_path: str, femm_excel_path: str, comparison_
27672767
worksheet.set_column('A:Z', 35)
27682768

27692769

2770-
def calc_powerloss_from_MagNet_model_PB(material_name: Material, b_wave: np.ndarray, frequency: float, temperature: float) -> float | None:
2770+
def calc_power_loss_from_MagNet_model_PB(material_name: Material, b_wave: np.ndarray, frequency: float, temperature: float) -> float | None:
27712771
"""
2772-
Calculate the powerloss density with the help of the trained neural network of the MagNet Challenge 2023.
2772+
Calculate the power loss density with the help of the trained neural network of the MagNet Challenge 2023.
27732773
27742774
:param material_name: Name of the material
27752775
:type material_name: Material
@@ -2783,8 +2783,8 @@ def calc_powerloss_from_MagNet_model_PB(material_name: Material, b_wave: np.ndar
27832783
"""
27842784
if material_name.value in ["3C90", "3C92", "3C94", "3C95", "3E6", "3F4", "77", "78", "79", "ML95S", "T37", "N27", "N30", "N49", "N87"]:
27852785
mdl = mh.loss.LossModel(material=material_name.value, team="paderborn")
2786-
powerloss, h_wave = mdl(b_wave, frequency, temperature)
2787-
return powerloss
2786+
power_loss_density, h_wave = mdl(b_wave, frequency, temperature)
2787+
return power_loss_density
27882788
else:
27892789
logger.warning("Material" + str(material_name.value) + " not supported by MagNet Models.")
27902790
return None

0 commit comments

Comments
 (0)