Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : #ifdef MOOSE_MFEM_ENABLED 11 : 12 : #include "MFEMQuadratureFunctionBase.h" 13 : #include "MFEMProblem.h" 14 : 15 : InputParameters 16 4320 : MFEMQuadratureFunctionBase::validParams() 17 : { 18 4320 : InputParameters params = MFEMObject::validParams(); 19 8640 : params.registerBase("MFEMQuadratureFunction"); 20 8640 : params.registerSystemAttributeName("MFEMQuadratureFunction"); 21 25920 : params.addRequiredRangeCheckedParam<int>( 22 : "order", 23 : "order>=0", 24 : "Order of the quadrature rule the projected values are stored on. This must match the " 25 : "integration rule used by the objects consuming this coefficient."); 26 8640 : MooseEnum updates(MFEMQuadratureFunctionCoefficientBase::getUpdatePolicyOptions(), "NONLINEAR"); 27 12960 : params.addParam<MooseEnum>( 28 : "updates", 29 : updates, 30 : "When the stored values are re-projected from the source coefficient: 'none' projects " 31 : "exactly once, 'time' re-projects when the simulation time changes, 'nonlinear' additionally " 32 : "re-projects whenever solution variables change (i.e. on each nonlinear iteration)."); 33 8640 : return params; 34 4320 : } 35 : 36 34 : MFEMQuadratureFunctionBase::MFEMQuadratureFunctionBase(const InputParameters & parameters) 37 : : MFEMObject(parameters), 38 68 : _qspace(&getMFEMProblem().mesh().getMFEMParMesh(), getParam<int>("order")) 39 : { 40 34 : } 41 : 42 : MFEMQuadratureFunctionCoefficientBase::UpdatePolicy 43 34 : MFEMQuadratureFunctionBase::updatePolicy() const 44 : { 45 136 : return getParam<MooseEnum>("updates") 46 68 : .getEnum<MFEMQuadratureFunctionCoefficientBase::UpdatePolicy>(); 47 : } 48 : 49 : #endif