BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_BhCurve.hpp
Go to the documentation of this file.
1/*
2 * BELFEM -- The Berkeley Lab Finite Element Framework
3 * Copyright (c) 2026, The Regents of the University of California,
4 * through Lawrence Berkeley National Laboratory (subject to receipt of any required
5 * approvals from the U.S. Dept. of Energy). All rights reserved.
6 *
7 * Developers: Christian Messe, Gregory Giard
8 *
9 * See the top-level LICENSE file for the complete license and disclaimer.
10 */
11
12#ifndef CL_BHCURVE_HPP
13#define CL_BHCURVE_HPP
14#include "typedefs.hpp"
15
16namespace belfem
17{
18 namespace material
19 {
20//------------------------------------------------------------------------------
21
60 class BhCurve
61 {
62//------------------------------------------------------------------------------
63 protected:
64//------------------------------------------------------------------------------
66 const string mPath ;
67 const string mLabel ;
68
69
70
71//------------------------------------------------------------------------------
72 public:
73//------------------------------------------------------------------------------
74
85 BhCurve( const string & aPath, const string & aLabel );
86
90 virtual ~BhCurve() = default ;
91
100 virtual real
101 nu( const real B ) const;
102
111 virtual real
112 mu( const real H ) const ;
113
126 virtual void
127 dmudH( const real H, real & mu, real & dmudH ) const ;
128
136 real
137 B( const real H ) const;
138
146 real
147 H( const real B ) const ;
148
149 };
150
151//------------------------------------------------------------------------------
152
153 inline real
154 BhCurve::B( const real H ) const
155 {
156 return this->mu( H ) * H ;
157 }
158
159 inline real
160 BhCurve::H( const real B ) const
161 {
162 return this->nu( B ) * B ;
163 }
164
165//------------------------------------------------------------------------------
166 }
167}
168#endif //CL_BHCURVE_HPP
virtual void dmudH(const real H, real &mu, real &dmudH) const
Permeability and its derivative with respect to H.
Definition cl_BhCurve.cpp:42
BhCurve(const string &aPath, const string &aLabel)
Constructor - records the database path and group label.
Definition cl_BhCurve.cpp:20
const proc_t mCommRank
MPI rank.
Definition cl_BhCurve.hpp:65
real H(const real B) const
Magnetic field intensity from flux density.
Definition cl_BhCurve.hpp:160
const string mLabel
Material label for error messages.
Definition cl_BhCurve.hpp:67
virtual ~BhCurve()=default
Virtual destructor ( the concrete curve owns and deletes its splines ).
virtual real mu(const real H) const
Permeability μ(H) = B/H.
Definition cl_BhCurve.cpp:35
real B(const real H) const
Magnetic flux density from field intensity.
Definition cl_BhCurve.hpp:154
const string mPath
path where data file is located
Definition cl_BhCurve.hpp:66
virtual real nu(const real B) const
Reluctivity ν(B) = H/B.
Definition cl_BhCurve.cpp:28
Definition cl_BhCurve.cpp:19
USER GUIDES:
Definition cl_Capacitor.cpp:16
int proc_t
Definition commtypes.hpp:29
double real
Definition typedefs.hpp:36