10#ifdef MOOSE_MFEM_ENABLED
20 mfem::Coefficient & a_theta, mfem::VectorCoefficient & grad_a_theta)
21 :
mfem::VectorCoefficient(2), _a_theta(a_theta), _grad_a_theta(grad_a_theta)
27 mfem::ElementTransformation & T,
28 const mfem::IntegrationPoint & ip)
33 mfem::Vector physical_point;
34 T.Transform(ip, physical_point);
36 const mfem::real_t r = physical_point[0];
37 const mfem::real_t A =
_a_theta.Eval(T, ip);
39 const mfem::real_t dA_dr = A_grad[0];
40 const mfem::real_t dA_dz = A_grad[1];
54 "Calculates the meridional curl associated with an azimuthal scalar variable A_theta "
55 "on a 2D meridional mesh with x = r and y = z, and stores the result in a vector "
58 MFEMExecutedObject::addRequiredDependencyParam<VariableName>(
59 params,
"source",
"Scalar H1 MFEMVariable storing A_theta.");
66 _curl_coef(getScalarCoefficientByName(getParam<VariableName>(
"source")),
67 getVectorCoefficientByName(getParam<VariableName>(
"source") +
"_grad"))
registerMooseObject("MooseApp", MFEMMeridionalCurlAux)
Class to construct an auxiliary solver used to update a real auxvariable.
static InputParameters validParams()
mfem::ParGridFunction & _result_var
Reference to result gridfunction.
Auxiliary kernel computing the meridional curl associated with an azimuthal scalar field A_theta.
virtual void execute() override
Computes the auxvariable.
MFEMMeridionalCurlAux(const InputParameters ¶meters)
static InputParameters validParams()
Moose::MFEM::MeridionalCurlVectorCoefficient _curl_coef
Custom coefficient implementing meridional curl.
void Eval(mfem::Vector &V, mfem::ElementTransformation &T, const mfem::IntegrationPoint &ip) override
mfem::VectorCoefficient & _grad_a_theta
MeridionalCurlVectorCoefficient(mfem::Coefficient &a_theta, mfem::VectorCoefficient &grad_a_theta)
mfem::Coefficient & _a_theta
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).