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 : #include "MooseVariableConstMonomial.h" 11 : #include "SubProblem.h" 12 : #include "SystemBase.h" 13 : #include "Assembly.h" 14 : 15 : #include "libmesh/quadrature.h" 16 : #include "libmesh/enum_to_string.h" 17 : 18 : registerMooseObject("MooseApp", MooseVariableConstMonomial); 19 : 20 : InputParameters 21 128276 : MooseVariableConstMonomial::validParams() 22 : { 23 128276 : auto params = MooseVariableBase::validParams(); 24 128276 : params.addClassDescription("Specialization for constant monomials that avoids unnecessary loops"); 25 128276 : params.set<MooseEnum>("family") = "MONOMIAL"; 26 128276 : params.set<MooseEnum>("order") = "CONSTANT"; 27 128276 : return params; 28 0 : } 29 : 30 55985 : MooseVariableConstMonomial::MooseVariableConstMonomial(const InputParameters & parameters) 31 55985 : : MooseVariable(parameters) 32 : { 33 55985 : if (_fe_type.order != CONSTANT || _fe_type.family != MONOMIAL) 34 4 : mooseError("This type is only meant for a CONSTANT " 35 : "MONOMIAL finite element basis. You have requested a ", 36 4 : Utility::enum_to_string(_fe_type.family), 37 : " family and order ", 38 4 : Utility::enum_to_string(Order(_fe_type.order))); 39 55981 : } 40 : 41 : void 42 137799370 : MooseVariableConstMonomial::computeElemValues() 43 : { 44 137799370 : _element_data->setGeometry(Moose::Volume); 45 137799370 : _element_data->computeMonomialValues(); 46 137799370 : } 47 : 48 : void 49 6721066 : MooseVariableConstMonomial::computeElemValuesFace() 50 : { 51 6721066 : _element_data->setGeometry(Moose::Face); 52 6721066 : _element_data->computeMonomialValues(); 53 6721066 : } 54 : 55 : void 56 0 : MooseVariableConstMonomial::computeNeighborValues() 57 : { 58 0 : _neighbor_data->setGeometry(Moose::Volume); 59 0 : _neighbor_data->computeMonomialValues(); 60 0 : } 61 : 62 : void 63 4727104 : MooseVariableConstMonomial::computeNeighborValuesFace() 64 : { 65 4727104 : _neighbor_data->setGeometry(Moose::Face); 66 4727104 : _neighbor_data->computeMonomialValues(); 67 4727104 : }