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 "NLScaleIntegrator.h"
13 :
14 : namespace Moose::MFEM
15 : {
16 :
17 : void
18 46844 : NLScaleIntegrator::AssembleElementVector(const mfem::FiniteElement & el,
19 : mfem::ElementTransformation & Tr,
20 : const mfem::Vector & elfun,
21 : mfem::Vector & elvect)
22 : {
23 46844 : CheckIntegrator();
24 46844 : _integrator->AssembleElementVector(el, Tr, elfun, elvect);
25 46844 : elvect *= _scale;
26 46844 : }
27 :
28 : void
29 0 : NLScaleIntegrator::AssembleFaceVector(const mfem::FiniteElement & el1,
30 : const mfem::FiniteElement & el2,
31 : mfem::FaceElementTransformations & Tr,
32 : const mfem::Vector & elfun,
33 : mfem::Vector & elvect)
34 : {
35 0 : CheckIntegrator();
36 0 : _integrator->AssembleFaceVector(el1, el2, Tr, elfun, elvect);
37 0 : elvect *= _scale;
38 0 : }
39 :
40 : void
41 30820 : NLScaleIntegrator::AssembleElementGrad(const mfem::FiniteElement & el,
42 : mfem::ElementTransformation & Tr,
43 : const mfem::Vector & elfun,
44 : mfem::DenseMatrix & elmat)
45 : {
46 30820 : CheckIntegrator();
47 30820 : _integrator->AssembleElementGrad(el, Tr, elfun, elmat);
48 30820 : elmat *= _scale;
49 30820 : }
50 :
51 : void
52 0 : NLScaleIntegrator::AssembleFaceGrad(const mfem::FiniteElement & el1,
53 : const mfem::FiniteElement & el2,
54 : mfem::FaceElementTransformations & Tr,
55 : const mfem::Vector & elfun,
56 : mfem::DenseMatrix & elmat)
57 : {
58 0 : CheckIntegrator();
59 0 : _integrator->AssembleFaceGrad(el1, el2, Tr, elfun, elmat);
60 0 : elmat *= _scale;
61 0 : }
62 :
63 : mfem::real_t
64 0 : NLScaleIntegrator::GetElementEnergy(const mfem::FiniteElement & el,
65 : mfem::ElementTransformation & Tr,
66 : const mfem::Vector & elfun)
67 : {
68 0 : CheckIntegrator();
69 0 : return _scale * _integrator->GetElementEnergy(el, Tr, elfun);
70 : }
71 :
72 : } // namespace Moose::MFEM
73 :
74 : #endif
|