14 #include "libmesh/dense_vector.h" 31 const ADReal & f2_end_value,
32 const ADReal & df1dx_end_value,
33 const ADReal & df2dx_end_value)
37 DenseMatrix<ADReal> mat(4, 4);
50 mat(2, 1) = 2.0 *
_x1;
55 mat(3, 1) = 2.0 *
_x2;
59 DenseVector<ADReal> rhs(4);
60 rhs(0) = f1_end_value;
61 rhs(1) = f2_end_value;
62 rhs(2) = df1dx_end_value;
63 rhs(3) = df2dx_end_value;
65 DenseVector<ADReal> coefs(4);
66 mat.lu_solve(rhs, coefs);
79 mooseAssert(
_initialized,
"initialize() must be called.");
bool _initialized
Flag that transition has been initialized.
DualNumber< Real, DNDerivativeType, true > ADReal
virtual ADReal value(const ADReal &x, const ADReal &f1, const ADReal &f2) const override
Computes the transition value.
const std::vector< double > x
ADCubicTransition(const ADReal &x_center, const ADReal &transition_width)
Constructor.
Base class for smooth transitions between two functions of one variable.
const ADReal _x2
Right end point of transition.
void initialize(const ADReal &f1_end_value, const ADReal &f2_end_value, const ADReal &df1dx_end_value, const ADReal &df2dx_end_value)
Computes the derivative of the transition value.
const ADReal _x1
Left end point of transition.
MooseUnits pow(const MooseUnits &, int)