BELFEM
0.9.0
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
cl_Material_Magnesia.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_MAGNESIA_HPP
13
#define BELFEM_CL_MATERIAL_MAGNESIA_HPP
14
15
#include "
cl_Material_Metal.hpp
"
16
#include "
cl_Bezier.hpp
"
17
#include "
fn_polyval.hpp
"
18
19
namespace
belfem
20
{
21
namespace
material
22
{
23
class
Magnesia
:
public
SplineLookupTable
24
{
25
26
// Young's modulus and Poisson's ratio polynomials
27
Cell< Vector< real >
> mYoungPolys ;
28
Cell< Vector< real >
> mPoissonPolys ;
29
Cell< Vector< real >
> mCpPolys ;
30
Cell< Vector< real >
> mLambdaPolys ;
31
real
mTYoungSwitch ;
32
real
mTPoissonSwitch ;
33
Vector< real >
mTCpSwitch ;
34
Vector< real >
mTLambdaSwitch ;
35
Bezier
* mThermalExpansion = nullptr ;
36
Vector< real >
mThermalExpansionCryo ;
37
38
public
:
39
Magnesia
();
40
~Magnesia
()
override
;
41
42
protected
:
43
44
real
45
E_custom
(
const
real
T )
const override
;
46
47
real
48
nu_custom
(
const
real
T )
const override
;
49
50
real
51
alpha_custom
(
const
real
T )
const override
;
52
53
real
54
cp_custom
(
const
real
T )
const override
;
55
56
real
57
lambda_custom
(
const
real
T )
const override
;
58
59
private
:
60
61
void
62
set_constants();
63
64
void
65
create_alpha();
66
67
void
68
create_mech();
69
70
void
71
create_cp();
72
73
void
74
create_lambda();
75
76
};
77
78
inline
real
79
Magnesia::E_custom
(
const
real
T )
const
80
{
81
if
( T < mTYoungSwitch )
82
{
83
return
polyval
( mYoungPolys( 0 ), T*T );
84
}
85
else
86
{
87
return
polyval
( mYoungPolys( 1 ), T );
88
}
89
}
90
91
inline
real
92
Magnesia::nu_custom
(
const
real
T )
const
93
{
94
if
( T < mTPoissonSwitch )
95
{
96
return
polyval
( mPoissonPolys( 0 ), T*T );
97
}
98
else
99
{
100
return
polyval
( mPoissonPolys( 1 ), T );
101
}
102
}
103
104
}
105
}
106
#endif
//BELFEM_CL_MATERIAL_MAGNESIA_HPP
cl_Bezier.hpp
cl_Material_Metal.hpp
belfem::Bezier
Definition
cl_Bezier.hpp:30
belfem::Cell
Cell is a wrapper around the standard vector.
Definition
cl_Cell.hpp:42
belfem::Vector< real >
belfem::material::Magnesia::E_custom
real E_custom(const real T) const override
Definition
cl_Material_Magnesia.hpp:79
belfem::material::Magnesia::Magnesia
Magnesia()
Definition
cl_Material_Magnesia.cpp:23
belfem::material::Magnesia::lambda_custom
real lambda_custom(const real T) const override
Definition
cl_Material_Magnesia.cpp:269
belfem::material::Magnesia::cp_custom
real cp_custom(const real T) const override
Definition
cl_Material_Magnesia.cpp:248
belfem::material::Magnesia::nu_custom
real nu_custom(const real T) const override
Definition
cl_Material_Magnesia.hpp:92
belfem::material::Magnesia::alpha_custom
real alpha_custom(const real T) const override
Definition
cl_Material_Magnesia.cpp:242
belfem::material::SplineLookupTable::SplineLookupTable
SplineLookupTable(const MaterialType aType, const bool aIsIsotropic=true)
Definition
cl_Material_SplineLookupTable.cpp:17
fn_polyval.hpp
Evaluates a polynomial.
belfem::material
Definition
cl_BhCurve.cpp:19
belfem::material::polyval
T polyval(const std::vector< T > &coeffs, const T x)
Definition
cl_Material_UserDefined.hpp:28
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
belfem::real
double real
Definition
typedefs.hpp:36
src
physics
materials
cl_Material_Magnesia.hpp
Generated by
1.18.0