- sourceName of H(curl) conforming ND variable to copy.
C++ Type:VariableName
Unit:(no unit assumed)
Controllable:No
Description:Name of H(curl) conforming ND variable to copy.
- variableThe name of the variable that this object applies to
C++ Type:AuxVariableName
Unit:(no unit assumed)
Controllable:No
Description:The name of the variable that this object applies to
MFEMNDtoRTAux
Overview
Auxkernel for copying the DoFs of a source variable defined on an conforming Nedelec (ND) finite element (FE) space into a target variable defined on an conforming Raviart-Thomas (RT) FE space.
This auxkernel is intended ONLY for two-dimensional MFEM ND to RT FE spaces. In 2D MFEM, the ND to RT bases are related by a 90 degree rotation, so copying the ND coefficients into a compatible RT space can be used to represent the rotated field.
This is useful in 2D magnetostatic postprocessing. After solving for the scalar field , representing the out-of-plane component of the magnetic vector potential, the gradient may be computed in an ND space using MFEMGradAux. The magnetic flux density is then given by a 90-degree rotation of this gradient.
Example Input File Syntax
[AuxKernels<<<{"href": "../../../syntax/AuxKernels/index.html"}>>>]
[J]
type = MFEMScalarProjectionAux<<<{"description": "Projects a scalar coefficient onto a scalar MFEM auxvariable", "href": "MFEMScalarProjectionAux.html"}>>>
variable<<<{"description": "The name of the variable that this object applies to"}>>> = J
coefficient<<<{"description": "Name of the scalar coefficient to project. A functor is any of the following: a variable, an MFEM material property, a function, a postprocessor or a number."}>>> = J_source
[]
[gradAz]
type = MFEMGradAux<<<{"description": "Calculates the gradient of an H1 conforming source variable and stores the result on an H(curl) conforming ND result auxvariable", "href": "MFEMGradAux.html"}>>>
variable<<<{"description": "The name of the variable that this object applies to"}>>> = gradAz
source<<<{"description": "Scalar H1 MFEMVariable to take the gradient of."}>>> = Az
[]
[B_from_gradAz]
type = MFEMNDtoRTAux<<<{"description": "Copies the DoFs of a 2D Nedelec H(curl) MFEM Variable into a Raviart-Thomas H(div) MFEM Variable. In 2D ONLY this represents a 90 degree rotation because the RT basis is the rotated ND basis.", "href": "MFEMNDtoRTAux.html"}>>>
variable<<<{"description": "The name of the variable that this object applies to"}>>> = B
source<<<{"description": "Name of H(curl) conforming ND variable to copy."}>>> = gradAz
scale_factor<<<{"description": "Optional scale factor. Negative values can be used to flip the sign of the rotation."}>>> = 1.0
[]
[](test/tests/mfem/auxkernels/2Dmagnetostatic.i)Input Parameters
- execute_onTIMESTEP_ENDThe list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
Default:TIMESTEP_END
C++ Type:ExecFlagEnum
Controllable:No
Description:The list of flag(s) indicating when this object should be executed. For a description of each flag, see https://mooseframework.inl.gov/source/interfaces/SetupInterface.html.
- scale_factor1Optional scale factor. Negative values can be used to flip the sign of the rotation.
Default:1
C++ Type:double
Unit:(no unit assumed)
Controllable:No
Description:Optional scale factor. Negative values can be used to flip the sign of the rotation.
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.