24 using ACSwitchingBase =
typename std::conditional<is_ad, ADAllenCahnBase<Real>,
ACBulk<Real>>::type;
27 class ACSwitchingTempl :
public ACSwitchingBase<is_ad>
33 virtual void initialSetup()
override;
37 VariableName _etai_name;
40 std::vector<MaterialPropertyName> _Fj_names;
44 std::vector<const GenericMaterialProperty<Real, is_ad> *> _prop_Fj;
47 std::vector<MaterialPropertyName> _hj_names;
50 std::vector<const GenericMaterialProperty<Real, is_ad> *> _prop_dhjdetai;
52 using ACSwitchingBase<is_ad>::_qp;
53 using ACSwitchingBase<is_ad>::_var;
54 using ACSwitchingBase<is_ad>::_test;
57 class ACSwitching :
public ACSwitchingTempl<false>
62 virtual void initialSetup()
override;
65 virtual Real computeDFDOP(PFFunctionType type)
override;
66 virtual Real computeQpOffDiagJacobian(
unsigned int jvar)
override;
69 std::vector<std::vector<const MaterialProperty<Real> *>> _prop_dFjdarg;
72 std::vector<const MaterialProperty<Real> *> _prop_d2hjdetai2;
75 std::vector<std::vector<const MaterialProperty<Real> *>> _prop_d2hjdetaidarg;
78 class ADACSwitching :
public ACSwitchingTempl<true>
81 using ACSwitchingTempl<true>::ACSwitchingTempl;
84 virtual ADReal computeDFDOP()
override;
DualNumber< Real, DNDerivativeType, true > ADReal
InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real