12#ifndef BELFEM_CL_MATERIAL_HPP
13#define BELFEM_CL_MATERIAL_HPP
61#pragma clang diagnostic push
62#pragma clang diagnostic ignored "-Wformat-security"
63#pragma clang diagnostic ignored "-Wformat"
64#pragma clang diagnostic ignored "-Wunused-variable"
65#pragma clang diagnostic ignored "-Wunused-parameter"
67#elif defined(__GNUC__) || defined(__GNUG__)
68#pragma GCC diagnostic push
69#pragma GCC diagnostic ignored "-Wformat"
70#pragma GCC diagnostic ignored "-Wunused-variable"
71#pragma GCC diagnostic ignored "-Wunused-parameter"
73#elif defined(BELFEM_INTEL)
77#pragma warning(disable: 1011)
79#pragma warning(disable: 177)
81#pragma warning(disable: 1595)
95 class SplineLookupTable ;
275 const bool mIsIsotropic ;
279 string mNumber =
"" ;
334 HeatFunc * mHeatFunction = nullptr ;
339 void * mDefectHandle = nullptr ;
342 void * mHeatHandle = nullptr ;
474 flag(
const uint8_t aIndex = 0 );
477 unflag(
const uint8_t aIndex = 0 );
480 is_flagged(
const uint8_t aIndex = 0 )
const ;
776 n(
const real normB,
const real angleNxB,
const real T )
const ;
779 n(
const real normB,
const real angleNxB )
const ;
785 jc(
const real normB,
const real angleNxB )
const ;
966 H(
const real B )
const ;
1187 const string & aLabel ) ;
1210 const string & aLabel ) ;
1227 const real T )
const ;
1232 const real T )
const ;
1250 const std::vector< real > & Coefficients ) ;
1369 const real aStep=4.0 ) ;
1572 const uint aStartBC,
1576 const real aStep=4.0 ) ;
1580 inline const string &
1586 inline const string &
1601 BELFEM_ASSERT( aIndex < 8,
"Flag index %u out of bounds (must be < 8)",
1602 (
unsigned int ) aIndex );
1603 mFlags |= ( 1 << aIndex );
1609 BELFEM_ASSERT( aIndex < 8,
"Flag index %u out of bounds (must be < 8)",
1610 (
unsigned int ) aIndex );
1611 mFlags &= ~( 1 << aIndex );
1617 BELFEM_ASSERT( aIndex < 8,
"Flag index %u out of bounds (must be < 8)",
1618 (
unsigned int ) aIndex );
1619 return mFlags & ( 1 << aIndex );
1625 return mHaveProperty.test(
static_cast< size_t >( aProperty ) ) ;
1631 return mDefectFunction != nullptr ;
1637 return mHeatFunction != nullptr ;
1655 return mResistivityLaw ;
1661 return mPropertyDependencies(
static_cast< size_t >( aProperty ) )->test(
static_cast< uint >( aDependency ));
1667 return mPropertyDependencies(
static_cast< size_t >( aProperty ) ) ;
1673 return mIsIsotropic ;
1679 return ! std::isnan( mConstantProperties(
static_cast< index_t >( aProperty ) ) ) ;
1686 return mConstantProperties(
static_cast< size_t >( aProperty ) ) ;
1695 "Material '%s' does not have density assigned", this->
label().c_str() ) ;
1697 return ( this->*mFunctionDensity )( T );
1704 "Wrong function call for Material::density");
1712 "Material %s does not have a reference density set", mLabel.c_str() );
1714 "Material %s does not have a temperature for the reference density set", mLabel.c_str() );
1728 "Material %s does not have a reference density set", mLabel.c_str() );
1742 return ( this->*mFunctionCp )( T );
1755 return (this->*mFunctiondCpdT )( T ) ;
1762 return (this->*mFunctiond2CpdT2 )( T ) ;
1810 "Material does not have thermal conductivity" ) ;
1811 return (this->*mFunctionLambda )( T ) ;
1825 "Material does not have thermal conductivity" ) ;
1827 return (this->*mFunctiondLambdadT )( T ) ;
1854 "Material %s does not have thermal conductivity", mLabel.c_str() ) ;
1857 "wrong function call for Material::lambda in material %s", mLabel.c_str() ) ;
1859 return this->
lambda( T );
1867 "Material %s does not have thermal conductivity", mLabel.c_str() ) ;
1870 "wrong function call for Material::dlambdadT in material %s", mLabel.c_str() ) ;
1880 "Material %s does not have thermal conductivity", mLabel.c_str() ) ;
1883 "wrong function call for Material::dlambdadB in material %s", mLabel.c_str() ) ;
1893 "Material %s does not have thermal conductivity", mLabel.c_str() ) ;
1896 "wrong function call for Material::dlambdadbeta in material %s", mLabel.c_str() ) ;
1908 "Material %s does not have thermal conductivity", mLabel.c_str() ) ;
1912 return this->
lambda( T );
1920 "Material %s does not have thermal conductivity", mLabel.c_str() ) ;
1923 "wrong function call for Material::dlambdadT in material %s", mLabel.c_str() ) ;
1935 "Material %s does not have electric resistivity", mLabel.c_str() ) ;
1937 return ( this->*mFunctionRho )( T ) ;
1945 "Material %s does not have electric resistivity", mLabel.c_str() ) ;
1947 return ( this->*mFunctiondRhodT )( T ) ;
1988 "wrong function call for Material::rho in %s", mLabel.c_str() ) ;
1990 return this->
rho( T );
2000 "wrong function call for Material::drhodT in %s", mLabel.c_str() ) ;
2002 return this->
drhodT( T );
2012 "wrong function call for Material::drhodB in %s", mLabel.c_str() ) ;
2021 "wrong function call for Material::drhodbeta in %s", mLabel.c_str() ) ;
2076 "Material %s does not have Youngs Modulus", mLabel.c_str() ) ;
2077 return ( this->*mFunctionE )( T );
2098 "Material %s is not isotropic", mLabel.c_str() ) ;
2100 "Material does not have Poisson Ratio" ) ;
2102 return ( this->*mFunctionNu )( T );
2122 return this->
E( T ) / ( 2.0 * ( 1.0 + this->
nu( T ) ) ) ;
2130 return this->
E( T ) / ( 3.0 * ( 1.0 - 2.0 * this->
nu( T ) ) ) ;
2140 "Material %s does not have thermal expansion", mLabel.c_str() ) ;
2142 return ( this->*mFunctionAlpha )( T );
2166 "Material %s does not have yield stress", mLabel.c_str() ) ;
2168 return ( this->*mFunctionRp02 )( T );
2190 "Material %s does not have Debye temperature", mLabel.c_str() ) ;
2192 return ( this->*mFunctionDebye )( T );
2210 return ( this->*mFunctionRhoI )( T );
2225 "%s: alpha split temperature is not set, create_low_temperature_alpha() "
2226 "must run before alpha is evaluated", mLabel.c_str() );
2227 return mTAlphaSwitch ;
2235 BELFEM_ASSERT( mHeatFunction !=
nullptr ,
"No heat function set for material %s", mLabel.c_str() ) ;
2236 return this->mHeatFunction( x, y, z, time ) ;
2250#if defined(__clang__)
2251#pragma clang diagnostic pop
2253#elif defined(__GNUC__) || defined(__GNUG__)
2254#pragma GCC diagnostic pop
2256#elif defined(BELFEM_INTEL)
#define BELFEM_ASSERT(aCheck,...)
Definition assert.hpp:244
Base class hierarchy for critical current density (Jc) and n-value functions.
Bitset()=default
trivial constructor
Base class for all materials in BELFEM.
Definition cl_Material.hpp:270
void reset_dependencies(const MaterialProperty aProperty)
Definition cl_Material.cpp:237
virtual real drhodB_kohler(const real T, const real normB, const real angleJxB) const
Definition cl_Material.cpp:615
virtual void dmudH_bhcurve(const real H, real &mu, real &dmudH) const
Definition cl_Material.cpp:987
virtual real dEdT_custom(const real T) const
Definition cl_Material.cpp:532
real dcpdT_spline(const real T) const
Definition cl_Material.hpp:1792
void set_user_defined_heating(HeatFunc *Function)
Set a user-defined volumetric heat load [ W/m³ ] as a function of x, y, z [ m ] and t [ s ].
Definition cl_Material.cpp:793
virtual real d2cpdT2(const real T=gTroom) const
Definition cl_Material.hpp:1758
virtual real H(const real B) const
Magnetic field strength from flux density.
Definition cl_Material.hpp:2029
real Rp02_spline(const real T) const
Definition cl_Material.hpp:2178
const MaterialDependencyBitset * dependencies(const MaterialProperty aProperty) const
Definition cl_Material.hpp:1665
void set_label(const string &aLabel)
PROTECTED INTERFACE FOR DERIVED MATERIALS.
Definition cl_Material.cpp:205
bool have(const MaterialProperty aProperty) const
Definition cl_Material.hpp:1623
void dmudH_const(const real H, real &mu, real &dmudH) const
Definition cl_Material.hpp:2063
Material(const MaterialType aType, const bool aIsIsotropic=true)
Definition cl_Material.cpp:149
void set_constant(const MaterialProperty aProperty, const real aValue)
Definition cl_Material.cpp:257
bool is_constant(const MaterialProperty aProperty) const
Definition cl_Material.hpp:1677
real rho_powerlaw(const real normJ) const
Power law resistivity for HTS (constant jc and n).
Definition powerlaws.hpp:202
virtual real K(real T=gTroom) const
Bulk modulus.
Definition cl_Material.hpp:2128
virtual real rho(const real T) const
Electrical resistivity (isotropic).
Definition cl_Material.hpp:1931
virtual real jc_custom(const real T) const
Definition cl_Material.cpp:581
virtual real drhodT_kohler(const real T, const real normB, const real angleJxB) const
Definition cl_Material.cpp:608
real lambda_const(const real T) const
Definition cl_Material.hpp:1815
real n(const real normB, const real angleNxB, const real T) const
Direct evaluation of the n-value as a function of , and .
Definition powerlaws.hpp:992
void set_resistivity_law(const ResistivityLaw aLaw)
Definition cl_Material.cpp:807
virtual real E(real T=gTroom) const
Young's modulus.
Definition cl_Material.hpp:2072
real cp_const(const real T) const
Definition cl_Material.hpp:1746
MaterialType type() const
Definition cl_Material.hpp:1593
virtual void dmudH(const real H, real &mu, real &dmudH) const
Magnetic permeability and its derivative.
Definition cl_Material.hpp:2057
virtual real drhodbeta_table(const real T, const real normB, const real angleJxB) const
Definition cl_Material.cpp:650
real rho_const(const real T) const
Definition cl_Material.hpp:1958
virtual real lambda(const real T=gTroom) const
Thermal conductivity (isotropic).
Definition cl_Material.hpp:1806
real n_eval_raw(const real T, const real normB, const real angleNxB) const
Definition powerlaws.hpp:94
real drho_riva_dB(const real normJ, const real T, const real normB, const real angleNxB) const
dρ/d|B| of rho_riva: w²·dρ_PL/dB ( dρ_n/dB = 0 on this path )
Definition powerlaws.hpp:2615
virtual real alpha_custom(const real T) const
Definition cl_Material.cpp:553
virtual real lambda_custom(const real T) const
Definition cl_Material.cpp:512
virtual real evaluate_polynomial(const MaterialProperty Property, const real T) const
Evaluate a polynomial for a given property (for UserDefinedMaterial).
Definition cl_Material.cpp:924
Material(Material &&)=delete
virtual real rho_spline(const real T) const
Definition cl_Material.hpp:1970
const material::JcFunction * mJcFunction
Definition cl_Material.hpp:404
virtual real cp(const real T=gTroom) const
Specific heat capacity.
Definition cl_Material.hpp:1738
bool depends(const MaterialProperty aProperty, const MaterialDependency aDependency) const
Definition cl_Material.hpp:1659
real dcpdT_finite_difference(const real T) const
Definition cl_Material.hpp:1772
virtual real drhodT(const real T) const
Definition cl_Material.hpp:1941
bool is_isotropic() const
Definition cl_Material.hpp:1671
bool use_piecewise() const
Definition cl_Material.hpp:1641
void load_bh_curve(const material::BhCurve *aCurve)
Activate a B-H curve as the permeability source (ferromagnets).
Definition cl_Material.cpp:957
void set_number(const string &aNumber)
Definition cl_Material.cpp:211
virtual real drhodbeta_kohler(const real T, const real normB, const real angleJxB) const
Definition cl_Material.cpp:622
virtual real spline_property(const MaterialProperty aProperty, const real aX) const
Definition cl_Material.cpp:999
void set_user_defined_defect(DefectFunc *Function)
Set a user-defined defect function with x, y, z, t dependencies.
Definition cl_Material.cpp:785
real drho_piecewise_dT(const real normJ, const real T, const real normB, const real angleNxB) const
Derivative of piecewise resistivity with respect to T at fixed J, |B|, θ ( T-leg ).
Definition powerlaws.hpp:2209
real jc_eval(const real T, const real normB, const real angleNxB) const
O1 "full-signature policy" helpers: the assembly path always passes the full ( T, normB,...
Definition powerlaws.hpp:84
real dlambdadT_spline(const real T) const
Definition cl_Material.hpp:1844
void set_custom(const MaterialProperty aProperty)
Definition cl_Material.cpp:396
virtual real drhodT_custom(const real T) const
Definition cl_Material.hpp:1964
real drho_piecewise_dB(const real normJ, const real T, const real normB, const real angleNxB) const
Derivative of piecewise resistivity with respect to |B| at fixed J, T, θ
Definition powerlaws.hpp:2058
void read_heating(const string &aLibraryPath, const string &aLabel)
Read a heating function from a plugin library.
Definition cl_Material.cpp:894
real H_const(const real B) const
Definition cl_Material.hpp:2035
real drho_piecewise_dJ(const real normJ, const real T, const real normB, const real angleNxB) const
Derivative of piecewise resistivity with respect to current density magnitude.
Definition powerlaws.hpp:1830
real(Material::*) mFunctiondRhoKohlerdB(const real T, const real normB, const real angle) const
Definition cl_Material.hpp:395
real debye_const(const real T) const
Definition cl_Material.hpp:2196
real cp_spline(const real T) const
Definition cl_Material.hpp:1786
real drho_riva_dJ(const real normJ, const real T, const real normB, const real angleNxB) const
dρ/d|J| of rho_riva: w²·dρ_PL/dJ with w = ρ_n/(ρ_PL+ρ_n)
Definition powerlaws.hpp:2584
virtual real dlambdadB(const real T, const real B, const real beta) const
Definition cl_Material.hpp:1876
real density_const(const real T) const
Definition cl_Material.hpp:1701
real drhodT_finite_difference(const real T) const
Definition cl_Material.hpp:1951
real(Material::*) mFunctiondRhoKohlerdT(const real T, const real normB, const real angle) const
Definition cl_Material.hpp:394
virtual real rho_i(const real T) const
Intrinsic (phonon) electrical resistivity of a metal, ρ = ρ_i(T) + ρ_0.
Definition cl_Material.hpp:2208
real return_zero(const real T) const
Shared binding for derivative channels that are identically zero.
Definition cl_Material.hpp:1766
real dn_eval_dB(const real T, const real normB, const real angleNxB) const
d(n)/d|B|, same routing as djc_eval_dB
Definition powerlaws.hpp:128
virtual void set_bh_curve(const material::BhCurve *aCurve)
Assign a B-H curve to this material.
Definition cl_Material.cpp:671
void(Material::*) mFunctionDMuDH(double, double &, double &) const
Definition cl_Material.hpp:400
void set_dependency(const MaterialProperty aProperty, const MaterialDependency aDependency)
Definition cl_Material.cpp:246
void set_jc_function(const material::JcFunction *aFunction)
Assign a critical current density function.
Definition cl_Material.cpp:677
virtual void set_user_defined_polynomial(const MaterialProperty Property, const std::vector< real > &Coefficients)
Set a polynomial function for a property (for UserDefinedMaterial).
Definition cl_Material.cpp:949
bool have_defect() const
Definition cl_Material.hpp:1629
virtual real rho_custom(const real T) const
Definition cl_Material.cpp:574
real volumetric_heatload(const real x, const real y, const real z, const real time) const
Artificial volumetric heat load [ W/m³ ] from the heating plugin.
Definition cl_Material.hpp:2233
virtual real dlambdadT_custom(const real T) const
Definition cl_Material.cpp:519
void set_have(const MaterialProperty aProperty, const bool aHave=true)
Definition cl_Material.cpp:224
virtual real drhodB(const real T, const real B, const real beta) const
Definition cl_Material.hpp:2009
virtual real mu_bhcurve(const real H, const real T) const
Definition cl_Material.cpp:979
real drho_powerlaw_dB(const real normJ, const real T, const real normB, const real angleNxB) const
Derivative of power-law resistivity with respect to |B| at fixed J, T, θ ( jc = jc(T,...
Definition powerlaws.hpp:2002
virtual real density_custom(const real T) const
Definition cl_Material.hpp:1709
static real piecewise_bezier_sqrt(const real a, const real b, const real c)
Definition powerlaws.hpp:67
virtual real evaluate_derivative_of_polynomial(const MaterialProperty Property, const real T) const
Definition cl_Material.cpp:932
virtual real drhodT_table(const real T, const real normB, const real angleJxB) const
Definition cl_Material.cpp:636
real rho_piecewise(const real normJ) const
Piecewise resistivity for HTS (constant jc and n).
Definition powerlaws.hpp:430
const string & number() const
Empty if the material has no number.
Definition cl_Material.hpp:1587
real(Material::*) mFunctionMu(const real H, const real T) const
Definition cl_Material.hpp:399
virtual real lambda_table(const real T, const real normB, const real angle) const
Definition cl_Material.cpp:664
real djc_eval_dB(const real T, const real normB, const real angleNxB) const
Definition powerlaws.hpp:120
bool riva_rho_pl(const real normJ, const real jc, const real n, const real ec, real &rhoPL) const
Definition powerlaws.hpp:2519
real n_eval(const real T, const real normB, const real angleNxB) const
Definition powerlaws.hpp:104
real jc(const real normB, const real angleNxB, const real T) const
Direct evaluation of the critical current density .
Definition powerlaws.hpp:1023
virtual real rho_i_custom(const real T) const
Definition cl_Material.cpp:594
void set_piecewise(const bool aUsePiecewise)
Definition cl_Material.cpp:800
real djc_eval_dT(const real T, const real normB, const real angleNxB) const
Definition powerlaws.hpp:144
real dn_eval_dT(const real T, const real normB, const real angleNxB) const
d(n)/dT, same routing as djc_eval_dT
Definition powerlaws.hpp:152
real M() const
Molar mass [kg/mol].
Definition cl_Material.hpp:1732
virtual real H_bhcurve(const real B) const
Definition cl_Material.cpp:972
const string & label() const
Definition cl_Material.hpp:1581
void flag(const uint8_t aIndex=0)
Definition cl_Material.hpp:1599
virtual real drhodT_spline(const real T) const
Definition cl_Material.hpp:1976
real Rp02_const(const real T) const
Definition cl_Material.hpp:2172
virtual real drhodbeta(const real T, const real B, const real beta) const
Definition cl_Material.hpp:2018
bool have_heating() const
Definition cl_Material.hpp:1635
virtual void set_user_defined_function(const MaterialProperty Property, const MaterialDependency Dependency, MatFunc1 *Function)
Set a user-defined function with one dependency (for UserDefinedMaterial).
Definition cl_Material.cpp:755
real drho_powerlaw_dT(const real normJ, const real T, const real normB, const real angleNxB) const
Derivative of power-law resistivity with respect to T at fixed J, |B|, θ ( T-leg: jc(T),...
Definition powerlaws.hpp:2151
ResistivityLaw resistivity_law() const
Definition cl_Material.hpp:1653
virtual real rho_table(const real T, const real normB, const real angleJxB) const
Definition cl_Material.cpp:629
virtual real dspline_property(const MaterialProperty aProperty, const real aX) const
Definition cl_Material.cpp:1006
real nu_spline(const real T) const
Definition cl_Material.hpp:2112
void check_riva_n_source() const
Definition cl_Material.cpp:818
virtual real density(const real T=gTroom) const
Density as a function of temperature.
Definition cl_Material.hpp:1692
virtual real drhodB_table(const real T, const real normB, const real angleJxB) const
Definition cl_Material.cpp:643
void unflag(const uint8_t aIndex=0)
Definition cl_Material.hpp:1607
Material & operator=(const Material &)=delete
real debye_spline(const real T) const
Definition cl_Material.hpp:2202
virtual real G(real T=gTroom) const
Shear modulus.
Definition cl_Material.hpp:2120
real dlambdadT_finite_difference(const real T) const
Definition cl_Material.hpp:1831
real constant_property(const MaterialProperty aProperty) const
Definition cl_Material.hpp:1683
virtual real nu_custom(const real T) const
Definition cl_Material.cpp:539
virtual real l(real T) const
Relative length after thermal expansion.
Definition cl_Material.cpp:1038
virtual real dlambdadbeta(const real T, const real B, const real beta) const
Definition cl_Material.hpp:1889
Material & operator=(Material &&)=delete
virtual real rho_kohler(const real T, const real normB, const real angleJxB) const
Definition cl_Material.cpp:601
real(Material::*) mFunctionRhoKohler(const real T, const real normB, const real angle) const
Definition cl_Material.hpp:393
virtual real ddspline_property(const MaterialProperty aProperty, const real aX) const
Definition cl_Material.cpp:1013
real E_const(const real T) const
Definition cl_Material.hpp:2081
virtual void set_table_flags(const bool aFlag)
Definition cl_Material.cpp:993
virtual real dcpdT_custom(const real T) const
Definition cl_Material.cpp:499
real alpha_spline(const real T) const
Definition cl_Material.hpp:2152
Material(const Material &)=delete
virtual real Rp02(real T=gTroom) const
Yield stress (0.2% offset).
Definition cl_Material.hpp:2162
real nu_const(const real T) const
Definition cl_Material.hpp:2106
real d2cpdT2_spline(const real T) const
Definition cl_Material.hpp:1798
virtual void set_RRR(const real RRR)
RRR = rho( 273 K ) / rho( 0 K ); noble metals only.
Definition cl_Material.cpp:217
real E_spline(const real T) const
Definition cl_Material.hpp:2087
const material::JcFunction * mNFunction
Definition cl_Material.hpp:405
real drho_riva_dT(const real normJ, const real T, const real normB, const real angleNxB) const
dρ/dT of rho_riva: w²·dρ_PL/dT + (1−w)²·dρ_n/dT
Definition powerlaws.hpp:2658
real(Material::*) mFunctiondRhoKohlerdbeta(const real T, const real normB, const real angle) const
Definition cl_Material.hpp:396
real lambda_spline(const real T) const
Definition cl_Material.hpp:1838
virtual real debye_custom(const real T) const
Definition cl_Material.cpp:567
real d2cpdT2_finite_difference(const real T) const
Definition cl_Material.hpp:1779
virtual real E_custom(const real T) const
Definition cl_Material.cpp:525
virtual real mu_custom(const real H, const real T) const
Definition cl_Material.cpp:546
real drho_powerlaw_dJ(const real normJ, const real T, const real normB, const real angleNxB) const
Derivative of power-law resistivity with respect to current density magnitude.
Definition powerlaws.hpp:1251
virtual real cp_custom(const real T) const
Definition cl_Material.cpp:492
real mu_const(const real H, const real T) const
Definition cl_Material.hpp:2049
real(Material::*) mFunctionH(const real B) const
Definition cl_Material.hpp:398
virtual real d2cpdT2_custom(const real T) const
Definition cl_Material.cpp:506
real alpha_const(const real T) const
Definition cl_Material.hpp:2146
virtual real debye(const real T) const
Debye temperature.
Definition cl_Material.hpp:2186
void read_defect(const string &aLibraryPath, const string &aLabel)
Read a defect from the library.
Definition cl_Material.cpp:864
virtual real dlambdadT(const real T=gTroom) const
Definition cl_Material.hpp:1821
void set_n_function(const material::JcFunction *aFunction)
Assign a power law exponent function.
Definition cl_Material.cpp:705
virtual real dcpdT(const real T=gTroom) const
Definition cl_Material.hpp:1751
real alpha_switch_temperature() const
Temperature below which alpha is taken from the Grueneisen branch.
Definition cl_Material.hpp:2222
real ref_density() const
Reference density at reference temperature.
Definition cl_Material.hpp:1725
virtual real mu(const real H, const real T=BELFEM_QUIET_NAN) const
Magnetic permeability.
Definition cl_Material.hpp:2043
virtual real nu(real T=gTroom) const
Poisson's ratio.
Definition cl_Material.hpp:2095
bool use_riva() const
Definition cl_Material.hpp:1647
bool is_flagged(const uint8_t aIndex=0) const
Definition cl_Material.hpp:1615
virtual real alpha(real T=gTroom) const
Thermal expansion coefficient.
Definition cl_Material.hpp:2136
real rho_i_spline(const real T) const
Definition cl_Material.hpp:2214
real rho_riva(const real normJ, const real T, const real normB, const real angleNxB) const
Riva-law resistivity: the superconducting power-law channel in parallel with the normal-state channel...
Definition powerlaws.hpp:2554
virtual real n_custom(const real T) const
Definition cl_Material.cpp:588
virtual real Rp02_custom(const real T) const
Definition cl_Material.cpp:560
real drhodB(const real T, const real B, const real beta) const override
Definition cl_Material_Alloy.hpp:173
real dlambdadT(const real T, const real B, const real beta) const override
Definition cl_Material_Alloy.hpp:213
real lambda(const real T, const real B, const real beta) const override
Thermal conductivity with magnetoresistance.
Definition cl_Material_Alloy.hpp:207
real drhodT(const real T, const real B, const real beta) const override
Definition cl_Material_Alloy.hpp:157
real drhodbeta(const real T, const real B, const real beta) const override
Definition cl_Material_Alloy.hpp:190
real rho(const real T, const real B, const real beta) const override
Electrical resistivity with magnetoresistance (Kohler's rule).
Definition cl_Material_Alloy.hpp:145
B-H curve for ferromagnetic materials.
Definition cl_BhCurve.hpp:61
Base class for critical current density (Jc) and n-value functions.
Definition cl_JcFunction.hpp:135
Definition cl_Material_SplineLookupTable.hpp:25
real l(real T) const override
Relative length after thermal expansion, from integrated alpha spline.
Definition cl_Material_SplineLookupTable.hpp:182
real ddspline_property(const MaterialProperty aProperty, const real aX) const override
Definition cl_Material_SplineLookupTable.hpp:174
void reset_spline(const MaterialProperty aProperty) override
Definition cl_Material_SplineLookupTable.cpp:115
real dspline_property(const MaterialProperty aProperty, const real aX) const override
Definition cl_Material_SplineLookupTable.hpp:166
void create_spline(real(Material::*aFunction)(const real aT) const, const MaterialProperty aProperty, const uint aStartBC, const uint aEndBC, const real adYdX0, const real adYdX1, const real aStep) override
Definition cl_Material_SplineLookupTable.cpp:123
real spline_property(const MaterialProperty aProperty, const real aX) const override
Definition cl_Material_SplineLookupTable.hpp:158
const real nu0
inverse of magnetic constant in (A*m)/(V*s)
Definition constants.hpp:80
USER GUIDES:
Definition cl_Capacitor.cpp:16
constexpr size_t gNumNonConstantMaterialProperties
Number of non-constant material properties.
Definition cl_Material.hpp:202
ResistivityLaw
E-J law used for a superconductor's resistivity.
Definition cl_Material.hpp:224
@ PowerLaw
Definition cl_Material.hpp:225
@ Riva
Definition cl_Material.hpp:227
@ Piecewise
Definition cl_Material.hpp:226
unit get_unit(const MaterialProperty aProperty)
Definition cl_Material.cpp:57
std::array< real, 7 > unit
Definition typedefs.hpp:71
MaterialDependency
Definition cl_Material.hpp:124
@ UNDEFINED
Definition cl_Material.hpp:133
@ angleBxJ
Definition cl_Material.hpp:127
@ Jc
Definition cl_Material.hpp:131
@ UserDefined
Definition cl_SourceFunction.hpp:66
constexpr real gTroom
Definition typedefs.hpp:63
unsigned int uint
Definition typedefs.hpp:30
constexpr real gTAlphaSwitchMax
Upper bound for the thermal expansion split temperature [K].
Definition cl_Material.hpp:47
real MatFunc1(const Material *, const real)
Definition cl_Material.hpp:232
int proc_t
Definition commtypes.hpp:29
constexpr real gDefaultEcrit
Critical electric field of the power law, in V/m, when none is given.
Definition cl_Material.hpp:55
real MatFunc3(const Material *, const real, const real, const real)
Definition cl_Material.hpp:234
MaterialProperty
All material properties that can be defined.
Definition cl_Material.hpp:153
@ nu
Definition cl_Material.hpp:156
@ gamma
Definition cl_Material.hpp:174
@ A_electron_magnon
Definition cl_Material.hpp:189
@ T_max
Definition cl_Material.hpp:171
@ UNDEFINED
Definition cl_Material.hpp:194
@ rho_0
Definition cl_Material.hpp:183
@ ref_density
Definition cl_Material.hpp:172
@ kohler_trans
Definition cl_Material.hpp:165
@ alpha
Definition cl_Material.hpp:161
@ ec
Definition cl_Material.hpp:185
@ A_bloch_gruen
Definition cl_Material.hpp:180
@ density
Definition cl_Material.hpp:154
@ E
Definition cl_Material.hpp:155
@ debye0K
Definition cl_Material.hpp:177
@ density_correction
Definition cl_Material.hpp:192
@ Tcurie
Definition cl_Material.hpp:188
@ M
Definition cl_Material.hpp:168
@ q
Definition cl_Material.hpp:176
@ A_spin_disorder
Definition cl_Material.hpp:190
@ rho
Definition cl_Material.hpp:160
@ mu
Definition cl_Material.hpp:159
@ lambda
Definition cl_Material.hpp:158
@ rho0_pure
Definition cl_Material.hpp:193
@ debye
Definition cl_Material.hpp:163
@ cp
Definition cl_Material.hpp:157
@ rho_i
Definition cl_Material.hpp:164
@ rho_i_ref
Definition cl_Material.hpp:178
@ Rp02
Definition cl_Material.hpp:162
@ jc
Definition cl_Material.hpp:186
@ layer_thickness
Definition cl_Material.hpp:184
@ kohler_long
Definition cl_Material.hpp:166
@ T_ref_rho_i
Definition cl_Material.hpp:179
@ Gamma
Definition cl_Material.hpp:169
@ T_ref_density
Definition cl_Material.hpp:173
@ n_bloch_gruen
Definition cl_Material.hpp:181
@ RRR
Definition cl_Material.hpp:182
@ grueneisen
Definition cl_Material.hpp:191
@ T_crit
Definition cl_Material.hpp:167
real HeatFunc(const real, const real, const real, const real)
Definition cl_Material.hpp:236
uint32_t index_t
Definition typedefs.hpp:52
real MatFunc2(const Material *, const real, const real)
Definition cl_Material.hpp:233
constexpr size_t gNumMaterialProperties
Definition cl_Material.hpp:204
constexpr real gFinDiffDeltaT
Definition typedefs.hpp:66
real DefectFunc(const real, const real, const real, const real)
Definition cl_Material.hpp:235
double real
Definition typedefs.hpp:36
Bitset< static_cast< size_t >(MaterialDependency::UNDEFINED) > MaterialDependencyBitset
Definition cl_Material.hpp:136
MaterialType
Material classification based on physical behavior.
Definition cl_Material.hpp:113
@ HTS
Definition cl_Material.hpp:116
@ LookupAlloy
Definition cl_Material.hpp:118
@ PureMetal
Definition cl_Material.hpp:117
@ NonMetal
Definition cl_Material.hpp:120
@ CompositeAlloy
Definition cl_Material.hpp:119
string to_string(const DomainType aDomainType)
Definition en_DomainType.cpp:21
Inline E–J resistivity models for HTS materials and their Jacobians.
#define BELFEM_QUIET_NAN
Definition typedefs.hpp:86