BELFEM
0.9.0
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
cl_Material_Iron.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_IRON_HPP
13
#define BELFEM_CL_MATERIAL_IRON_HPP
14
15
#include "
cl_Material_Ferromagnetic.hpp
"
16
#include "
cl_Bezier.hpp
"
17
18
namespace
belfem
19
{
20
namespace
material
21
{
22
class
Iron
:
public
Ferromagnetic
23
{
24
Bezier
* mReducedMagnetization = nullptr ;
25
Bezier
* mDebyeBezier = nullptr ;
26
27
Bezier
* mThermalExpansion = nullptr ;
28
Vector< real >
mThermalExpansionCryo ;
29
30
Cell< Vector< real >
> mDebyePolys ;
31
Vector< real >
mTDebyeSwitch ;
32
33
Vector< real >
mBSKohlerSwitch ;
34
Cell< Vector< real >
> mKohlerLongPolys ;
35
Cell< Vector< real >
> mKohlerTransPolys ;
36
Bezier
* mKohlerTransBezier = nullptr ;
37
public
:
38
39
Iron
(
const
real
RRR
=
BELFEM_QUIET_NAN
,
40
const
bool
aBuildTables =
true
);
41
42
~Iron
()
override
;
43
44
protected :
45
46
real
47
compute_mred
(
real
T )
const override
;
48
49
real
50
debye_custom
(
const
real
T )
const override
;
51
52
real
53
alpha_custom
(
const
real
T )
const override
;
54
55
real
56
kohler
(
const
real
B,
const
real
S,
const
real
beta)
const override
;
57
58
private
:
59
60
void
61
create_magnetization_curve();
62
63
void
64
create_debye_and_rho();
65
66
void
67
create_cp();
68
69
void
70
create_alpha();
71
72
void
73
set_constants();
74
75
void
76
create_kohler();
77
78
79
};
80
81
inline
82
real
Iron::compute_mred
(
real
T )
const
83
{
84
real
Tc = this->
constant_property
(
MaterialProperty::Tcurie
);
85
if
( T > Tc +
BELFEM_EPSILON
)
return
0.0 ;
86
return
mReducedMagnetization->y( T / Tc );
87
}
88
89
}
90
}
91
92
#endif
//BELFEM_CL_MATERIAL_IRON_HPP
cl_Bezier.hpp
cl_Material_Ferromagnetic.hpp
belfem::Bezier
Definition
cl_Bezier.hpp:30
belfem::Cell
Cell is a wrapper around the standard vector.
Definition
cl_Cell.hpp:42
belfem::Material::constant_property
real constant_property(const MaterialProperty aProperty) const
Get constant property value.
Definition
cl_Material.hpp:1787
belfem::Vector< real >
belfem::material::Ferromagnetic::Ferromagnetic
Ferromagnetic(const string &aLabel, const bool aBuildTables=true)
Definition
cl_Material_Ferromagnetic.cpp:18
belfem::material::Iron::Iron
Iron(const real RRR=BELFEM_QUIET_NAN, const bool aBuildTables=true)
Definition
cl_Material_Iron.cpp:21
belfem::material::Iron::debye_custom
real debye_custom(const real T) const override
Definition
cl_Material_Iron.cpp:232
belfem::material::Iron::kohler
real kohler(const real B, const real S, const real beta) const override
Kohler function for magnetoresistance.
Definition
cl_Material_Iron.cpp:338
belfem::material::Iron::alpha_custom
real alpha_custom(const real T) const override
Definition
cl_Material_Iron.cpp:241
belfem::material::Iron::compute_mred
real compute_mred(real T) const override
Definition
cl_Material_Iron.hpp:82
belfem::material
Definition
cl_BhCurve.cpp:19
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
belfem::BELFEM_EPSILON
constexpr real BELFEM_EPSILON
Definition
typedefs.hpp:90
belfem::MaterialProperty::Tcurie
@ Tcurie
Definition
cl_Material.hpp:188
belfem::MaterialProperty::RRR
@ RRR
Definition
cl_Material.hpp:182
belfem::real
double real
Definition
typedefs.hpp:36
BELFEM_QUIET_NAN
#define BELFEM_QUIET_NAN
Definition
typedefs.hpp:87
src
physics
materials
cl_Material_Iron.hpp
Generated by
1.18.0