B-H curve for ferromagnetic materials. More...
#include <cl_BhCurve.hpp>
Public Member Functions | |
| BhCurve (const string &aPath, const string &aLabel) | |
| Constructor - records the database path and group label. | |
| virtual | ~BhCurve ()=default |
| Virtual destructor ( the concrete curve owns and deletes its splines ). | |
| virtual real | nu (const real B) const |
| Reluctivity ν(B) = H/B. | |
| virtual real | mu (const real H) const |
| Permeability μ(H) = B/H. | |
| virtual void | dmudH (const real H, real &mu, real &dmudH) const |
| Permeability and its derivative with respect to H. | |
| real | B (const real H) const |
| Magnetic flux density from field intensity. | |
| real | H (const real B) const |
| Magnetic field intensity from flux density. | |
Protected Attributes | |
| const proc_t | mCommRank |
| MPI rank. | |
| const string | mPath |
| path where data file is located | |
| const string | mLabel |
| Material label for error messages. | |
B-H curve for ferromagnetic materials.
Represents the magnetization curve B(H) and its inverse H(B) for ferromagnetic materials using cubic spline interpolation of tabulated data.
The curve provides:
For fields above saturation (B > Bsat or H > Hsat), the material behaves linearly with an offset due to saturation magnetization:
Data file format (HDF5 database):
Usage (BhCurve is abstract; construct the concrete BhSplineCurve):
Constructor - records the database path and group label.
| aPath | Path to the HDF5 database file (e.g. "bhdata.hdf5") |
| aLabel | Group name to load (e.g. "RoxieIron") |
The concrete BhSplineCurve opens the HDF5 file, selects the group named aLabel and reads the pre-computed cubic splines "bnur" ( ν(B) ) and "hnur" ( 1/μ(H) ) together with the saturation scalars "bsat" and "hsat"; Msat is derived from these.
|
virtualdefault |
Virtual destructor ( the concrete curve owns and deletes its splines ).
Magnetic flux density from field intensity.
| H | Magnetic field intensity magnitude [A/m] |
Convenience function: B = μ(H) · H
Permeability and its derivative with respect to H.
| H | Magnetic field intensity magnitude [A/m] | |
| [out] | mu | Permeability μ(H) [T·m/A] |
| [out] | dmudH | Derivative dμ/dH [T·m/A²] |
Computes both μ and dμ/dH efficiently for Newton-Raphson iterations in nonlinear magnetic FEM solvers.
For H < Hsat: Uses spline evaluation and derivative For H ≥ Hsat: Analytical formulas for linear regime
Reimplemented in belfem::material::BhSplineCurve.
Magnetic field intensity from flux density.
| B | Magnetic flux density magnitude [T] |
Convenience function: H = ν(B) · B
Permeability μ(H) = B/H.
| H | Magnetic field intensity magnitude [A/m] |
For H < Hsat: Uses cubic spline interpolation For H ≥ Hsat: Returns μ₀·(1 + Msat/H)
Reimplemented in belfem::material::BhSplineCurve.
Reluctivity ν(B) = H/B.
| B | Magnetic flux density magnitude [T] |
For B < Bsat: Uses cubic spline interpolation For B ≥ Bsat: Returns ν₀ - Msat/B (linear + offset)
Reimplemented in belfem::material::BhSplineCurve.
|
protected |
MPI rank.
|
protected |
path where data file is located