- kernelKernel to perform amr with
C++ Type:std::string
Controllable:No
Description:Kernel to perform amr with
- variableVariable to perform amr with
C++ Type:VariableName
Unit:(no unit assumed)
Controllable:No
Description:Variable to perform amr with
MFEML2ZienkiewiczZhuIndicator
Summary
Child class of MFEMIndicator that supplies an mfem::L2ZienkiewiczZhuEstimator to the MFEMRefinementMarker.
Overview
This class implements createEstimator(). If the user doesn't supply an FESpace for the smoothed flux, then the method creates and stores an H1 finite element collection. Similarly, if the user doesn't supply an FESpace for the discontinuous flux, then the method creates and stores an L2 finite element collection. Be aware that the vector dimensions for each of these should match the space dimension and that these spaces must be defined on the same mesh used by the variable associated with the chosen kernel.
We can then construct the mfem::L2ZienkiewiczZhuEstimator object using the bilinear form integrator associated with the chosen kernel, the grid function associated with the variable, and the two finite element spaces we created for the fluxes. This object needs the underlying mfem::BilinearFormIntegrator to implement the method ComputeElementFlux(). Practically speaking, this means the only kernels we can attach this indicator to are MFEMDiffusionKernel, MFEMCurlCurlKernel and MFEMLinearElasticityKernel.
This object is accessed once (by an MFEMRefinementMarker) using the getEstimator() method.
Example Input File Syntax
[Adaptivity<<<{"href": "../../../syntax/Adaptivity/index.html"}>>>]
[Indicators<<<{"href": "../../../syntax/Adaptivity/Indicators/index.html"}>>>]
[l2zz]
type = MFEML2ZienkiewiczZhuIndicator<<<{"description": "Base class for MFEM objects backed directly by MooseObject.", "href": "MFEML2ZienkiewiczZhuIndicator.html"}>>>
variable<<<{"description": "Variable to perform amr with"}>>> = concentration
kernel<<<{"description": "Kernel to perform amr with"}>>> = diff
[]
[]
[Markers<<<{"href": "../../../syntax/Adaptivity/Markers/index.html"}>>>]
[ref]
type = MFEMRefinementMarker<<<{"description": "Base class for MFEM objects backed directly by MooseObject.", "href": "../markers/MFEMRefinementMarker.html"}>>>
threshold<<<{"description": "Elements above this percentage of the max error will be refined. Must be between 0 and 1!"}>>> = 0.7
indicator<<<{"description": "Estimator to use"}>>> = l2zz
max_h_level<<<{"description": "Max number of h-refinement steps"}>>> = 1
[]
[]
[](test/tests/mfem/kernels/diffusion_amr.i)Input Parameters
- flux_fespaceFE space to write the flux into
C++ Type:MFEMFESpaceName
Controllable:No
Description:FE space to write the flux into
- smooth_flux_fespaceFE space to write the smooth flux into
C++ Type:MFEMFESpaceName
Controllable:No
Description:FE space to write the smooth flux into
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.