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 MFEM_ENABLED 11 : 12 : #include "MFEML2Error.h" 13 : #include "MFEMProblem.h" 14 : 15 : registerMooseObject("MooseApp", MFEML2Error); 16 : 17 : InputParameters 18 8646 : MFEML2Error::validParams() 19 : { 20 8646 : InputParameters params = MFEMPostprocessor::validParams(); 21 8646 : params.addClassDescription( 22 : "Computes L2 error $\\left\\Vert u_{ex} - u_{h}\\right\\Vert_{\\rm L2}$ for " 23 : "gridfunctions using H1 or L2 elements."); 24 8646 : params.addParam<MFEMScalarCoefficientName>("function", 25 : "The analytic solution to compare against."); 26 8646 : params.addParam<VariableName>("variable", 27 : "Name of the variable of which to find the norm of the error."); 28 8646 : return params; 29 0 : } 30 : 31 8 : MFEML2Error::MFEML2Error(const InputParameters & parameters) 32 : : MFEMPostprocessor(parameters), 33 8 : _var_name(getParam<VariableName>("variable")), 34 8 : _coeff_name(getParam<MFEMScalarCoefficientName>("function")), 35 8 : _coeff(getScalarCoefficient(_coeff_name)), 36 16 : _var(getMFEMProblem().getProblemData().gridfunctions.GetRef(_var_name)) 37 : { 38 8 : } 39 : 40 : void 41 6 : MFEML2Error::initialize() 42 : { 43 6 : } 44 : 45 : void 46 6 : MFEML2Error::execute() 47 : { 48 6 : } 49 : 50 : PostprocessorValue 51 9 : MFEML2Error::getValue() const 52 : { 53 9 : return _var.ComputeL2Error(_coeff); 54 : } 55 : 56 : #endif