BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
belfem::material::Nickel Class Reference

#include <cl_Material_Nickel.hpp>

Inheritance diagram for belfem::material::Nickel:
[legend]
Collaboration diagram for belfem::material::Nickel:
[legend]

Public Member Functions

 Nickel (const real RRR=BELFEM_QUIET_NAN, const bool aBuildTables=true)
 ~Nickel () override
Public Member Functions inherited from belfem::material::Ferromagnetic
 Ferromagnetic (const string &aLabel, const bool aBuildTables=true)
 ~Ferromagnetic () override
real compute_debye_from_rho (const real T, const real rho, const real theta_guess=BELFEM_QUIET_NAN) override
 Compute Debye temperature from measured resistivity.
real rho_mag (const real T) const
void set_angular_momentum (const real S)
Public Member Functions inherited from belfem::material::Metal
 Metal (const string &aLabel, const MaterialType aType, const bool aBuildTables=true)
 Constructor.
 ~Metal () override
 Destructor - deletes Debye integral splines.
void set_RRR (const real RRR) override
 Set residual resistivity ratio.
real compute_debye_from_cp (const real T, const real cp=BELFEM_QUIET_NAN, const real theta_guess=BELFEM_QUIET_NAN)
 Compute Debye temperature from specific heat capacity.
real compute_debye_from_cv (const real T, const real cv=BELFEM_QUIET_NAN, const real theta_guess=BELFEM_QUIET_NAN)
 Compute Debye temperature from the specific heat at constant volume.
real rho (const real T, const real B, const real beta) const override
 Electrical resistivity with magnetoresistance (Kohler's rule).
real drhodT (const real T, const real B, const real beta) const override
real drhodB (const real T, const real B, const real beta) const override
real drhodbeta (const real T, const real B, const real beta) const override
real lambda (const real T, const real B, const real beta) const override
 Thermal conductivity with magnetoresistance.
real dlambdadT (const real T, const real B, const real beta) const override
real dlambdadB (const real T, const real B, const real beta) const override
real dlambdadbeta (const real T, const real B, const real beta) const override
real l (real T) const override
 Relative length after thermal expansion.
void set_bh_curve (const BhCurve *aCurve) override
 Assign a B-H curve to this material.
real spline_property (const MaterialProperty aProperty, const real aX) const override
 Evaluate property using spline interpolation.
void set_rho_i_ref (const real T_ref, const real rho_i_ref, const real theta=BELFEM_QUIET_NAN)
 Set reference intrinsic resistivity for Bloch-Grüneisen model.
real J (const real Z) const
 Debye integral Jₙ(Z) = ∫₀^Z xⁿeˣ/(eˣ-1)² dx with n the Bloch–Grüneisen exponent ( 5 by default, see set_bloch_gruen_parameter; dispatched to J3/J4/J5/Jn ).
real J3 (const real Z) const
 Debye integral J₃(Z) = ∫₀^Z x³eˣ/(eˣ-1)² dx.
real J4 (const real Z) const
 Debye integral J₄(Z) = ∫₀^Z x⁴eˣ/(eˣ-1)² dx.
real J5 (const real Z) const
 Debye integral J₅(Z) = ∫₀^Z x⁵eˣ/(eˣ-1)² dx.
real Jn (const real Z) const
 Debye integral for arbitrary n.
real rho_custom (const real T) const override
 Total resistivity at zero field (overrides base class).
real rho_i_custom (const real T) const override
 Intrinsic resistivity (Bloch-Grüneisen model).
real lambda_custom (const real T) const override
 Thermal conductivity at zero field.
void create_rho ()
 Initialize resistivity properties.
void set_lambda_coefficients (const Vector< real > &aCoeffs)
 Set thermal conductivity model coefficients.
real group_velocity (const real T) const
 Phonon group velocity.
real grueneisen (const real T) const
 Grüneisen parameter.
void grueneisen (const real T, real &gamma, real &c) const
 Grüneisen parameter and speed of sound.
real cp_from_debye (const real T, const real theta) const
 Specific heat from Debye temperature.
real cv_from_debye (const real T, const real theta) const
 Specific heat at constant volume from Debye temperature ( Sommerfeld + Debye, no dilation term ).
real kohler_find_bs_crit (const real delta_rho_res)
 Find critical B·S for given relative resistivity increase.
void populate_rho_database ()
real H_bhcurve (const real B) const override
real mu_bhcurve (real H, const real T) const override
void dmudH_bhcurve (const real H, real &mu, real &dmudH) const override
const Vector< real > & lambda_coefficients () const
void set_table_flags (const bool aFlag) override
virtual real rho (const real T) const
 Electrical resistivity (isotropic).
virtual real lambda (const real T=gTroom) const
 Thermal conductivity (isotropic).
virtual real lambda (const real T, const real B_par, const real B_perp, const real J) const
 Thermal conductivity for HTS materials.
virtual real drhodT (const real T) const
virtual real dlambdadT (const real T=gTroom) const
virtual real dlambdadT (const real T, const real B_par, const real B_perp, const real J) const
Public Member Functions inherited from belfem::material::SplineLookupTable
 SplineLookupTable (const MaterialType aType, const bool aIsIsotropic=true)
 ~SplineLookupTable () override
void set_spline (const MaterialProperty aProperty, Spline *aSpline=nullptr)
 Assign a spline for property interpolation.
Splinespline (const MaterialProperty aProperty)
 Get spline for a property.
real spline_property (const MaterialProperty aProperty, const real aX) const override
 Evaluate property using spline interpolation.
real dspline_property (const MaterialProperty aProperty, const real aX) const override
real ddspline_property (const MaterialProperty aProperty, const real aX) const override
real l (real T) const override
 Relative length after thermal expansion, from integrated alpha spline.
Public Member Functions inherited from belfem::Material
 Material (const MaterialType aType, const bool aIsIsotropic=true)
 Constructor.
virtual ~Material ()
 Destructor - deletes owned B-H curves and Jc/n functions.
 Material (const Material &)=delete
Materialoperator= (const Material &)=delete
 Material (Material &&)=delete
Materialoperator= (Material &&)=delete
bool have (const MaterialProperty aProperty) const
 Check if a material property is available.
bool have_defect () const
 Check if the material has a defect.
bool have_heating () const
 Check if the material has a heating function.
bool use_piecewise () const
 Check if we use piecewise instead of power-law.
bool depends (const MaterialProperty aProperty, const MaterialDependency aDependency) const
 Check if a property depends on a specific variable.
const MaterialDependencyBitsetdependencies (const MaterialProperty aProperty) const
 Get all dependencies for a property.
bool is_isotropic () const
 Check if material is isotropic.
MaterialType type () const
 Get the material type.
const stringlabel () const
 Get material label.
const stringnumber () const
 Get material number/identifier.
void load_bh_curve (const material::BhCurve *aCurve)
 Activate a B-H curve as the permeability source (ferromagnets).
void flag (const uint8_t aIndex=0)
 Set flag (multi-purpose flag used by Kernel).
void unflag (const uint8_t aIndex=0)
 Clear flag.
bool is_flagged (const uint8_t aIndex=0) const
 Check if material is flagged.
bool is_constant (const MaterialProperty aProperty) const
 Check if a property is constant (temperature-independent).
virtual real density (const real T=gTroom) const
 Density as a function of temperature.
real ref_density () const
 Reference density at reference temperature.
real M () const
 Molar mass.
virtual real cp (const real T=gTroom) const
 Specific heat capacity.
virtual real dcpdT (const real T=gTroom) const
virtual real d2cpdT2 (const real T=gTroom) const
real rho_powerlaw (const real normJ) const
 Power law resistivity for HTS (constant jc and n).
real rho_powerlaw (const real normJ, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Constant \(J_c\) / \(n\) with spatially-dependent defect modulation \(J_c \rightarrow J_c \cdot d(x,y,z,t)\).
real rho_powerlaw (const real normJ, real normB, const real angleNxB) const
 Power law resistivity for HTS (field-dependent jc, constant n).
real rho_powerlaw (const real normJ, real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Field-dependent \(J_c(|B|, \angle)\) with spatial defect modulation.
real rho_powerlaw (const real normJ, const real T, real normB, const real angleNxB) const
 Power law resistivity for HTS (full temperature and field dependence).
real rho_powerlaw (const real normJ, const real T, real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Fully \((|B|, \angle, T)\)-dependent variant with spatial defect modulation applied to \(J_c\).
real rho_powerlaw (const real normJ, const real T) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Temperature-only variant.
real rho_powerlaw (const real normJ, const real T, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Temperature-only custom-callback variant with spatial defect modulation.
real rho_piecewise (const real normJ) const
 Piecewise resistivity for HTS (constant jc and n).
real rho_piecewise (const real normJ, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Constant \(J_c\) / \(n\) with spatially-dependent defect modulation \(J_c \rightarrow J_c \cdot d(x,y,z,t)\).
real rho_piecewise (const real normJ, real normB, const real angleNxB) const
 Piecewise resistivity for HTS (field-dependent jc, constant n).
real rho_piecewise (const real normJ, real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Field-dependent \(J_c(|B|, \angle)\) with spatial defect modulation.
real rho_piecewise (const real normJ, const real T, real normB, const real angleNxB) const
 Piecewise resistivity for HTS (full temperature and field dependence).
real rho_piecewise (const real normJ, const real T, real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Fully \((|B|, \angle, T)\)-dependent variant with spatial defect modulation applied to \(J_c\).
real rho_piecewise (const real normJ, const real T) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Temperature-only variant: \(J_c(T)\) and \(n(T)\) from the user-supplied callbacks Material::jc_custom() / Material::n_custom().
real rho_piecewise (const real normJ, const real T, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Temperature-only custom-callback variant with spatial defect modulation.
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.
real rho_riva (const real normJ, const real T, const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 defect overload: jc_eff = D(x,y,z,t)·jc throughout
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)
real drho_riva_dJ (const real normJ, const real T, const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
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 )
real drho_riva_dB (const real normJ, const real T, const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
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
real drho_riva_dT (const real normJ, const real T, const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
real n (const real normB, const real angleNxB, const real T) const
 Direct evaluation of the n-value as a function of \(|B|\), \(\angle(n,B)\) and \(T\).
real n (const real normB, const real angleNxB) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Field-dependent \(n(|B|, \angle(n,B))\) without temperature dependence.
real jc (const real normB, const real angleNxB, const real T) const
 Direct evaluation of the critical current density \(J_c(|B|, \angle(n,B), T)\).
real jc (const real normB, const real angleNxB) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Field-dependent \(J_c(|B|, \angle(n,B))\) without temperature dependence.
real jc (const real normB, const real angleNxB, const real T, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Variant with spatial defect modulation \(J_c \rightarrow J_c \cdot d(x,y,z,t)\).
real jc (const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Field-dependent \(J_c(|B|, \angle(n,B))\) with spatial defect modulation \(J_c \rightarrow J_c \cdot d(x,y,z,t)\).
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.
real drho_powerlaw_dJ (const real normJ, const real T, const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Fully \((|B|, \angle, T)\)-dependent variant with spatial defect modulation applied to \(J_c\).
real drho_powerlaw_dJ (const real normJ) const
 Analytic Jacobian \(d\rho_{eff}/dJ\) of the power-law model.
real drho_powerlaw_dJ (const real normJ, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Constant \(J_c\) / \(n\) with spatial defect modulation applied to \(J_c\).
real drho_powerlaw_dJ (const real normJ, const real T) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Temperature-only variant: \(J_c(T)\) and \(n(T)\) from Material::jc_custom() / Material::n_custom().
real drho_powerlaw_dJ (const real normJ, const real T, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Temperature-only custom-callback variant with spatial defect modulation.
real drho_powerlaw_dJ (const real normJ, const real normB, const real angleNxB) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Field-dependent \(J_c(|B|, \angle)\) via mJcFunction; \(n\) remains constant.
real drho_powerlaw_dJ (const real normJ, const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Field-dependent \(J_c(|B|, \angle)\) with spatial defect modulation; \(n\) remains constant.
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.
real drho_piecewise_dJ (const real normJ, const real T, const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Fully \((|B|, \angle, T)\)-dependent variant with spatial defect modulation applied to \(J_c\).
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,|B|,θ), n = n(T,|B|,θ) ).
real drho_powerlaw_dB (const real normJ, const real T, const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 defect overload: jc_eff = D(x)·jc throughout, djc_eff = D·djc
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), n(T) AND ρ_n(T) all move — the quench-feedback tangent ).
real drho_powerlaw_dT (const real normJ, const real T, const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 defect overload: jc_eff = D(x)·jc throughout, djc_eff = D·djc
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, θ
real drho_piecewise_dB (const real normJ, const real T, const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 defect overload: jc_eff = D(x)·jc throughout, djc_eff = D·djc
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 ).
real drho_piecewise_dT (const real normJ, const real T, const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 defect overload: jc_eff = D(x)·jc throughout, djc_eff = D·djc
real drho_piecewise_dJ (const real normJ) const
 Branch-aware Jacobian \(d\rho/dJ\) of the three-regime piecewise model.
real drho_piecewise_dJ (const real normJ, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Constant \(J_c\) / \(n\) with spatial defect modulation applied to \(J_c\).
real drho_piecewise_dJ (const real normJ, const real T) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Temperature-only variant: \(J_c(T)\) and \(n(T)\) from Material::jc_custom() / Material::n_custom().
real drho_piecewise_dJ (const real normJ, const real T, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Temperature-only custom-callback variant with spatial defect modulation.
real drho_piecewise_dJ (const real normJ, const real normB, const real angleNxB) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Field-dependent \(J_c(|B|, \angle)\) via mJcFunction; \(n\) remains constant.
real drho_piecewise_dJ (const real normJ, const real normB, const real angleNxB, const real x, const real y, const real z, const real t) const
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. Field-dependent \(J_c(|B|, \angle)\) with spatial defect modulation; \(n\) remains constant.
virtual real rho_i (const real T) const
 Intrinsic (phonon) electrical resistivity of a metal, ρ = ρ_i(T) + ρ_0.
virtual real H (const real B) const
 Magnetic field strength from flux density.
virtual real mu (const real H, const real T=BELFEM_QUIET_NAN) const
 Magnetic permeability.
virtual void dmudH (const real H, real &mu, real &dmudH) const
 Magnetic permeability and its derivative.
virtual real E (real T=gTroom) const
 Young's modulus.
virtual real nu (real T=gTroom) const
 Poisson's ratio.
virtual real G (real T=gTroom) const
 Shear modulus.
virtual real K (real T=gTroom) const
 Bulk modulus.
virtual real alpha (real T=gTroom) const
 Thermal expansion coefficient.
virtual real Rp02 (real T=gTroom) const
 Yield stress (0.2% offset).
virtual real debye (const real T) const
 Debye temperature.
void set_jc_function (const material::JcFunction *aFunction)
 Assign a critical current density function.
void set_n_function (const material::JcFunction *aFunction)
 Assign a power law exponent function.
void set_piecewise (const bool aUsePiecewise)
void set_resistivity_law (const ResistivityLaw aLaw)
ResistivityLaw resistivity_law () const
bool use_riva () const
virtual void set_user_defined_function (const MaterialProperty Property, const MaterialDependency Dependency, MatFunc1 *Function)
 Set a user-defined function with one dependency (for UserDefinedMaterial).
virtual void set_user_defined_function (const MaterialProperty Property, const MaterialDependency Dependency1, const MaterialDependency Dependency2, MatFunc2 *Function)
 Set a user-defined function with two dependencies (for UserDefinedMaterial).
virtual void set_user_defined_function (const MaterialProperty Property, const MaterialDependency Dependency1, const MaterialDependency Dependency2, const MaterialDependency Dependency3, MatFunc3 *Function)
 Set a user-defined function with three dependencies (for UserDefinedMaterial).
void set_user_defined_defect (DefectFunc *Function)
 Set a user-defined defect function with x, y, z, t dependencies.
void read_defect (const string &aLibraryPath, const string &aLabel)
 Read a defect from the library.
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 ].
void read_heating (const string &aLibraryPath, const string &aLabel)
 Read a heating function from a plugin library.
virtual real evaluate_polynomial (const MaterialProperty Property, const real T) const
 Evaluate a polynomial for a given property (for UserDefinedMaterial).
virtual real evaluate_derivative_of_polynomial (const MaterialProperty Property, const real T) const
virtual void set_user_defined_polynomial (const MaterialProperty Property, const std::vector< real > &Coefficients)
 Set a polynomial function for a property (for UserDefinedMaterial).
virtual void set_user_defined_polynomial (const MaterialProperty Property, const Cell< real > &Coefficients)
void set_label (const string &aLabel)
 PROTECTED INTERFACE FOR DERIVED MATERIALS.
void set_number (const string &aNumber)
 Set material number/identifier (for derived classes).
void set_have (const MaterialProperty aProperty, const bool aHave=true)
 Mark a property as available.
void reset_dependencies (const MaterialProperty aProperty)
 Reset all dependencies for a property.
void set_dependency (const MaterialProperty aProperty, const MaterialDependency aDependency)
 Add a dependency to a property.
void set_constant (const MaterialProperty aProperty, const real aValue)
 Define a property as constant.
void set_custom (const MaterialProperty aProperty)
 Mark property as using custom evaluation function.
real constant_property (const MaterialProperty aProperty) const
 Get constant property value.
virtual real jc_custom (const real T) const
virtual real n_custom (const real T) const
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.

Protected Member Functions

real compute_mred (real T) const override
real alpha_custom (const real T) const override
real debye_custom (const real T) const override
real kohler (const real B, const real S, const real beta) const override
 Kohler function for magnetoresistance.
real E_custom (const real T) const override
real dEdT_custom (const real T) const override
Protected Member Functions inherited from belfem::material::Ferromagnetic
real rho_custom (const real T) const override
Protected Member Functions inherited from belfem::material::Metal
Splinecreate_J_spline (const real aExponent)
 Create spline for Debye integral J_n(Z).
real rho_table (const real T, const real B, const real beta) const override
real drhodT_table (const real T, const real B, const real beta) const override
real drhodB_table (const real T, const real B, const real beta) const override
real drhodbeta_table (const real T, const real B, const real beta) const override
real rho_kohler (const real T, const real B, const real beta) const override
real drhodT_kohler (const real T, const real B, const real beta) const override
real drhodB_kohler (const real T, const real B, const real beta) const override
real drhodbeta_kohler (const real T, const real B, const real beta) const override
real cp_custom (const real T) const override
real dcpdT_custom (const real T) const override
real d2cpdT2_custom (const real T) const override
void set_kohler_dependencies ()
void set_bloch_gruen_parameter (const real n)
void create_cp (const Vector< real > &Px, const Vector< real > &Py, const Vector< real > &Qx, const Vector< real > &Qy, const Vector< real > &Rx={}, const Vector< real > &Ry={})
void create_mech (const real E0, const real b, const real T1, const real T2, const real nu2)
Protected Member Functions inherited from belfem::material::SplineLookupTable
void reset_spline (const MaterialProperty aProperty) override
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) override
void create_cryo_expansion (const Bezier *aThermalExpansion, Vector< real > &aThermalExpansionCryo, const real aTSwitch=BELFEM_QUIET_NAN)
void create_cryo_expansion (const real alpha, const real dalphadT, const real d2alphadT2, Vector< real > &aThermalExpansionCryo)
 cryogenic branch from alpha and its derivatives at the split temperature, for materials whose alpha( T ) is not a dL/L Bezier
void create_cryo_expansion_anchored (const real alpha, Vector< real > &aThermalExpansionCryo, const real aTSwitch=BELFEM_QUIET_NAN)
 cryogenic branch anchored on the VALUE of alpha at the split only.
real alpha_composite (const Bezier *aBezier, const Vector< real > &aPoly, const real T) const
 composite thermal expansion for a Material::alpha_custom() override: the Grueneisen polynomial aPoly below the switch temperature, the Bezier aBezier above it.
real set_alpha_switch_temperature (const real aTSwitch=BELFEM_QUIET_NAN)
 Fix the split temperature of the cryogenic expansion branch.
void create_low_temperature_alpha (const Bezier *aBezier, Vector< real > &aPoly, const real aTSwitch=BELFEM_QUIET_NAN)
 Fit the cryogenic branch alpha = C( T ) cp( T ) below the split temperature from a dL/L Bezier ( the pure metals ).
void create_low_temperature_alpha (const real alpha, const real dalphadT, const real d2alphadT2, Vector< real > &aPoly, const bool aCheckGuard=true)
 Same fit from alpha and its first two derivatives at the split temperature, which the caller evaluated from any alpha( T ) source after set_alpha_switch_temperature().
void create_spline (const MaterialProperty aProperty, const real adYdX0=BELFEM_QUIET_NAN, const real adXdX1=BELFEM_QUIET_NAN)
 PROPERTY EVALUATION FUNCTIONS.
Protected Member Functions inherited from belfem::Material
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, angleNxB ) set; the material consumes what its Jc / n functions depend on and ignores the rest.
real djc_eval_dB (const real T, const real normB, const real angleNxB) const
real dn_eval_dB (const real T, const real normB, const real angleNxB) const
 d(n)/d|B|, same routing as djc_eval_dB
real djc_eval_dT (const real T, const real normB, const real angleNxB) const
real dn_eval_dT (const real T, const real normB, const real angleNxB) const
 d(n)/dT, same routing as djc_eval_dT
real n_eval (const real T, const real normB, const real angleNxB) const
void check_riva_n_source () const
real n_eval_raw (const real T, const real normB, const real angleNxB) const
bool riva_rho_pl (const real normJ, const real jc, const real n, const real ec, real &rhoPL) const
void create_spline (const MaterialProperty aProperty, const real adYdX0=BELFEM_QUIET_NAN, const real adXdX1=BELFEM_QUIET_NAN)
 PROPERTY EVALUATION FUNCTIONS.
real alpha_switch_temperature () const
 Temperature below which alpha is taken from the Grueneisen branch.
real density_const (const real T) const
virtual real density_custom (const real T) const
real return_zero (const real T) const
 Shared binding for derivative channels that are identically zero.
real cp_const (const real T) const
real dcpdT_finite_difference (const real T) const
real d2cpdT2_finite_difference (const real T) const
real cp_spline (const real T) const
real dcpdT_spline (const real T) const
real d2cpdT2_spline (const real T) const
real lambda_const (const real T) const
real dlambdadT_finite_difference (const real T) const
real lambda_spline (const real T) const
real dlambdadT_spline (const real T) const
virtual real dlambdadT_custom (const real T) const
real drhodT_finite_difference (const real T) const
real rho_const (const real T) const
virtual real drhodT_custom (const real T) const
virtual real rho_spline (const real T) const
virtual real drhodT_spline (const real T) const
virtual real lambda_custom (const real T, const real normB, const real angle) const
virtual real lambda_table (const real T, const real normB, const real angle) const
real H_const (const real B) const
real mu_const (const real H, const real T) const
virtual real mu_custom (const real H, const real T) const
void dmudH_const (const real H, real &mu, real &dmudH) const
real E_const (const real T) const
real E_spline (const real T) const
real nu_const (const real T) const
real nu_spline (const real T) const
virtual real nu_custom (const real T) const
real alpha_const (const real T) const
real alpha_spline (const real T) const
real Rp02_const (const real T) const
real Rp02_spline (const real T) const
virtual real Rp02_custom (const real T) const
real debye_const (const real T) const
real debye_spline (const real T) const
real rho_i_spline (const real T) const

Additional Inherited Members

Protected Attributes inherited from belfem::material::Metal
SplinemSplineJ3 = nullptr
SplinemSplineJ4 = nullptr
SplinemSplineJ5 = nullptr
SplinemSplineJn = nullptr
Cell< Vector< real > > mCpPolys
Vector< realmTCpSwitch
BeziermCpBezierLow = nullptr
BeziermCpBezierMedium = nullptr
BeziermCpBezierHigh = nullptr
Vector< realmWachtmanYoung
Protected Attributes inherited from belfem::material::SplineLookupTable
Cell< Spline * > mSplines
Protected Attributes inherited from belfem::Material
real(Material::*) mFunctionRhoKohler (const real T, const real normB, const real angle) const = nullptr
real(Material::*) mFunctiondRhoKohlerdT (const real T, const real normB, const real angle) const = nullptr
real(Material::*) mFunctiondRhoKohlerdB (const real T, const real normB, const real angle) const = nullptr
real(Material::*) mFunctiondRhoKohlerdbeta (const real T, const real normB, const real angle) const = nullptr
real(Material::*) mFunctionH (const real B) const = nullptr
real(Material::*) mFunctionMu (const real H, const real T) const = nullptr
void(Material::*) mFunctionDMuDH (double, double &, double &) const = nullptr
const material::JcFunctionmJcFunction = nullptr
const material::JcFunctionmNFunction = nullptr

Constructor & Destructor Documentation

◆ Nickel()

belfem::material::Nickel::Nickel ( const real RRR = BELFEM_QUIET_NAN,
const bool aBuildTables = true )

◆ ~Nickel()

belfem::material::Nickel::~Nickel ( )
override

Member Function Documentation

◆ alpha_custom()

real belfem::material::Nickel::alpha_custom ( const real T) const
overrideprotectedvirtual

Reimplemented from belfem::Material.

◆ compute_mred()

real belfem::material::Nickel::compute_mred ( real T) const
inlineoverrideprotectedvirtual

Reimplemented from belfem::material::Ferromagnetic.

◆ debye_custom()

real belfem::material::Nickel::debye_custom ( const real T) const
inlineoverrideprotectedvirtual

Reimplemented from belfem::Material.

◆ dEdT_custom()

real belfem::material::Nickel::dEdT_custom ( const real T) const
inlineoverrideprotectedvirtual

Reimplemented from belfem::material::Metal.

◆ E_custom()

real belfem::material::Nickel::E_custom ( const real T) const
inlineoverrideprotectedvirtual

Reimplemented from belfem::material::Metal.

◆ kohler()

real belfem::material::Nickel::kohler ( const real B,
const real S,
const real beta ) const
overrideprotectedvirtual

Kohler function for magnetoresistance.

Parameters
BMagnetic field magnitude [T]
SSimilarity parameter S = ρ_ref/ρ₀(T)
betaAngle between field and current [rad]
Returns
Relative magnetoresistance Δρ/ρ₀

Must be implemented in derived classes (Copper, Silver, etc.). Returns NaN in base class.

Reimplemented from belfem::material::Metal.


The documentation for this class was generated from the following files: