Source code for pyleecan.Methods.Output.Output.getter.get_BH_stator
# -*- coding: utf-8 -*-
from .....Methods.Output.Output.getter import GetOutError
from .....Classes.OutGeoLam import OutGeoLam
[docs]def get_BH_stator(self):
"""Return the B(H) curve of the stator material
Parameters
----------
self : Output
an Output object
Returns
-------
BH: numpy.ndarray
B(H) values (two colums matrix: H and B(H))
"""
# Already available => Return
if (
self.geo is not None
and self.geo.stator is not None
and self.geo.stator.BH_curve is not None
):
return self.geo.stator.BH_curve
# Check if possible to get the BH curve
if (
self.simu is None
or self.simu.machine is None
or self.simu.machine.stator is None
or self.simu.machine.stator.mat_type is None
):
raise GetOutError(
"Output.simu.machine.stator.mat_type is not Set, can't get the B(H) curve"
)
mat_type = self.simu.machine.stator.mat_type
if mat_type.mag is None:
raise GetOutError("stator materials magnetic property is not set")
# Compute and store the BH curve
BH = mat_type.mag.get_BH()
if self.geo.stator is None:
self.geo.stator = OutGeoLam()
self.geo.stator._set_None()
self.geo.stator.BH_curve = BH
return BH
[docs]class BHShapeError(Exception):
"""Raised when the BH curve has not the expected shape"""
pass