BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_Material_Ferromagnetic.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, through
4 * 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 BELFEM_CL_MATERIAL_FERROMAGNETIC_HPP
13#define BELFEM_CL_MATERIAL_FERROMAGNETIC_HPP
14
15#include "cl_Material_Metal.hpp"
16
17namespace belfem
18{
19 namespace material
20 {
21 class Ferromagnetic : public Metal
22 {
23 real mBrillouinS = BELFEM_QUIET_NAN ;
24 real mBrillouinP = BELFEM_QUIET_NAN ;
25 real mBrillouinQ = BELFEM_QUIET_NAN ;
26 real mBrillouinR = BELFEM_QUIET_NAN ;
27 real mBrillouinP2 = BELFEM_QUIET_NAN ;
28 real mBrillouinQ2 = BELFEM_QUIET_NAN ;
29 public:
30
31 Ferromagnetic( const string & aLabel,
32 const bool aBuildTables = true );
33
34 ~Ferromagnetic() override;
35
36
37 real
38 compute_debye_from_rho( const real T, const real rho, const real theta_guess=BELFEM_QUIET_NAN ) override ;
39
40
41 // to be moved into private
42 real
43 rho_mag( const real T ) const ;
44
45 void
46 set_angular_momentum( const real S );
47
48 protected:
49
50 real
51 rho_custom( const real T ) const override;
52
53
54 virtual real
55 compute_mred( real T ) const ;
56
57
58 private:
59 void
60 brillouin(
61 real x,
62 real & B,
63 real & dBdx ) const ;
64 };
65
66 }
67}
68
69#endif //BELFEM_CL_MATERIAL_FERROMAGNETIC_HPP
virtual real compute_mred(real T) const
Definition cl_Material_Ferromagnetic.cpp:43
Ferromagnetic(const string &aLabel, const bool aBuildTables=true)
Definition cl_Material_Ferromagnetic.cpp:18
real compute_debye_from_rho(const real T, const real rho, const real theta_guess=BELFEM_QUIET_NAN) override
Compute Debye temperature from measured resistivity.
Definition cl_Material_Ferromagnetic.cpp:87
real rho_custom(const real T) const override
Definition cl_Material_Ferromagnetic.cpp:76
void set_angular_momentum(const real S)
Definition cl_Material_Ferromagnetic.cpp:32
real rho_mag(const real T) const
Definition cl_Material_Ferromagnetic.cpp:93
real rho(const real T, const real B, const real beta) const override
Electrical resistivity with magnetoresistance (Kohler's rule).
Definition cl_Material_Metal.hpp:578
Metal(const string &aLabel, const MaterialType aType, const bool aBuildTables=true)
Constructor.
Definition cl_Material_Metal.cpp:33
Definition cl_BhCurve.cpp:19
USER GUIDES:
Definition cl_Capacitor.cpp:16
double real
Definition typedefs.hpp:36
#define BELFEM_QUIET_NAN
Definition typedefs.hpp:87