BELFEM
0.9.3
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
cl_JcFunction_ModifiedKim.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 BELFEM_CL_JCFUNCTIONMODIFIEDKIM_HPP
13
#define BELFEM_CL_JCFUNCTIONMODIFIEDKIM_HPP
14
15
#include "
cl_JcFunction.hpp
"
16
17
namespace
belfem
18
{
19
namespace
material
20
{
21
//------------------------------------------------------------------------------
22
59
class
JcFunctionModifiedKim
:
public
JcFunction
60
{
61
const
real
mJc0 ;
62
const
real
mB0 ;
63
const
real
mK2 ;
64
const
real
mAlpha ;
65
66
public
:
67
80
JcFunctionModifiedKim
(
81
const
real
jc0,
82
const
real
B0,
83
const
real
k2,
84
const
real
alpha ) :
85
mJc0( jc0 ), mB0( B0 ), mK2( k2 ), mAlpha(
alpha
)
86
{
87
this->
set_dependency
(
JcParameter::normB
);
88
this->
set_dependency
(
JcParameter::angleNxB
);
89
}
90
91
~JcFunctionModifiedKim
()
override
=
default
;
92
106
real
107
eval
(
const
real
normB,
const
real
angle )
const override
108
{
109
real
c = std::cos( angle );
110
real
c2 = c * c;
111
real
s2 = 1.0 - c2;
112
113
return
mJc0 /
114
std::pow( 1. +
115
std::sqrt( ( mK2 * s2 + c2 ) ) * normB / mB0, mAlpha );
116
117
}
118
131
real
132
deval_dB
(
const
real
normB,
const
real
angle,
const
real
T )
const override
133
{
134
real
c = std::cos( angle );
135
real
c2 = c * c;
136
real
s2 = 1.0 - c2;
137
real
s = std::sqrt( mK2 * s2 + c2 );
138
real
jc
= mJc0 / std::pow( 1. + s * normB / mB0, mAlpha );
139
140
return
-mAlpha *
jc
* s / ( mB0 + s * normB );
141
}
142
};
143
}
144
}
145
#endif
//BELFEM_CL_JCFUNCTIONMODIFIEDKIM_HPP
cl_JcFunction.hpp
Base class hierarchy for critical current density (Jc) and n-value functions.
belfem::material::JcFunction::set_dependency
void set_dependency(const JcParameter aParameter)
Mark function as depending on a parameter.
Definition
cl_JcFunction.cpp:20
belfem::material::JcFunction::JcFunction
JcFunction()=default
belfem::material::JcFunctionModifiedKim::eval
real eval(const real normB, const real angle) const override
Evaluate Jc at given field and angle.
Definition
cl_JcFunction_ModifiedKim.hpp:107
belfem::material::JcFunctionModifiedKim::JcFunctionModifiedKim
JcFunctionModifiedKim(const real jc0, const real B0, const real k2, const real alpha)
Constructor for modified Kim model.
Definition
cl_JcFunction_ModifiedKim.hpp:80
belfem::material::JcFunctionModifiedKim::~JcFunctionModifiedKim
~JcFunctionModifiedKim() override=default
belfem::material::JcFunctionModifiedKim::deval_dB
real deval_dB(const real normB, const real angle, const real T) const override
Derivative of eval with respect to the field magnitude.
Definition
cl_JcFunction_ModifiedKim.hpp:132
belfem::material
Definition
cl_BhCurve.cpp:19
belfem::material::JcParameter::angleNxB
@ angleNxB
Definition
cl_JcFunction.hpp:82
belfem::material::JcParameter::normB
@ normB
Definition
cl_JcFunction.hpp:81
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
belfem::MaterialProperty::alpha
@ alpha
Definition
cl_Material.hpp:161
belfem::MaterialProperty::jc
@ jc
Definition
cl_Material.hpp:186
belfem::real
double real
Definition
typedefs.hpp:36
src
physics
materials
cl_JcFunction_ModifiedKim.hpp
Generated by
1.18.0