17#define propfuncNonADValueOnly(want) \
18 virtual Real want##_from_T(const Real &) const \
20 mooseError(__PRETTY_FUNCTION__, " not implemented."); \
27#define propfuncNonADDerivatives(want) \
28 virtual void want##_from_T(const Real & T, Real & val, Real & d##want##dT) const \
30 solidPropError(__PRETTY_FUNCTION__, " derivatives not implemented."); \
32 val = want##_from_T(T); \
40#define propfuncAD(want) \
41 virtual ADReal want##_from_T(const ADReal & T) const \
44 Real raw = T.value(); \
46 want##_from_T(raw, x, dxdT); \
49 result.derivatives() = T.derivatives() * dxdT; \
57#define propfunc(want) propfuncNonADValueOnly(want) propfuncNonADDerivatives(want) propfuncAD(want)
69#pragma GCC diagnostic push
70#pragma GCC diagnostic ignored "-Woverloaded-virtual"
103 virtual Real cp_integral(
const Real & )
const
105 mooseError(__PRETTY_FUNCTION__,
" not implemented.");
111 void e_from_T(
const Real &
T, Real & val, Real & dedT)
const;
122 template <
typename... Args>
123 void solidPropError(Args... args)
const
133 const Real _T_zero_e;
136#pragma GCC diagnostic pop
const InputParameters & parameters() const
void mooseError(Args &&... args) const
void mooseWarning(Args &&... args) const
const bool _allow_imperfect_jacobians
Flag to set unimplemented Jacobian entries to zero.
Common class for solid properties that are a function of temperature.
static InputParameters validParams()
propfunc(k) propfunc(cp) propfunc(rho) virtual Real cp_integral(const Real &) const
Compute a solid property as a function of temperature (Kelvin)
Real e_from_T(const Real &T) const
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real