BELFEM 0.9.0
Berkeley Lab Finite Element Framework
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
16#include "cl_Bezier.hpp"
17
18namespace 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
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
83 {
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
Definition cl_Bezier.hpp:30
Cell is a wrapper around the standard vector.
Definition cl_Cell.hpp:42
real constant_property(const MaterialProperty aProperty) const
Get constant property value.
Definition cl_Material.hpp:1787
Ferromagnetic(const string &aLabel, const bool aBuildTables=true)
Definition cl_Material_Ferromagnetic.cpp:18
Iron(const real RRR=BELFEM_QUIET_NAN, const bool aBuildTables=true)
Definition cl_Material_Iron.cpp:21
real debye_custom(const real T) const override
Definition cl_Material_Iron.cpp:232
real kohler(const real B, const real S, const real beta) const override
Kohler function for magnetoresistance.
Definition cl_Material_Iron.cpp:338
real alpha_custom(const real T) const override
Definition cl_Material_Iron.cpp:241
real compute_mred(real T) const override
Definition cl_Material_Iron.hpp:82
Definition cl_BhCurve.cpp:19
USER GUIDES:
Definition cl_Capacitor.cpp:16
constexpr real BELFEM_EPSILON
Definition typedefs.hpp:90
@ Tcurie
Definition cl_Material.hpp:188
@ RRR
Definition cl_Material.hpp:182
double real
Definition typedefs.hpp:36
#define BELFEM_QUIET_NAN
Definition typedefs.hpp:87