https://mooseframework.inl.gov
Loading...
Searching...
No Matches
NLDiffusionIntegrator.h
Go to the documentation of this file.
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#pragma once
13#include "libmesh/ignore_warnings.h"
14#include <mfem.hpp>
15#include "libmesh/restore_warnings.h"
16
17namespace Moose::MFEM
18{
24class NLDiffusionIntegrator : public mfem::NonlinearFormIntegrator
25{
26public:
27 NLDiffusionIntegrator(mfem::Coefficient & k,
28 mfem::Coefficient & dk_du,
29 const mfem::GridFunction * gf,
30 const mfem::IntegrationRule * ir = nullptr);
31
32 virtual void AssembleElementVector(const mfem::FiniteElement & el,
33 mfem::ElementTransformation & Tr,
34 const mfem::Vector & elfun,
35 mfem::Vector & elvect) override;
36 virtual void AssembleElementGrad(const mfem::FiniteElement & el,
37 mfem::ElementTransformation & Tr,
38 const mfem::Vector & elfun,
39 mfem::DenseMatrix & elmat) override;
40
41protected:
42 mfem::DiffusionIntegrator _diffusion_integ;
43 mfem::GradientGridFunctionCoefficient _grad_trial;
44 mfem::ScalarVectorProductCoefficient _neg_grad_trial;
45 mfem::ScalarVectorProductCoefficient _neg_dk_du_grad_trial;
46 mfem::MixedScalarWeakDivergenceIntegrator _weak_div_integ;
47 mfem::SumIntegrator _sum{0};
48};
49}
50
51#endif
virtual void AssembleElementVector(const mfem::FiniteElement &el, mfem::ElementTransformation &Tr, const mfem::Vector &elfun, mfem::Vector &elvect) override
mfem::DiffusionIntegrator _diffusion_integ
virtual void AssembleElementGrad(const mfem::FiniteElement &el, mfem::ElementTransformation &Tr, const mfem::Vector &elfun, mfem::DenseMatrix &elmat) override
mfem::GradientGridFunctionCoefficient _grad_trial
mfem::ScalarVectorProductCoefficient _neg_grad_trial
mfem::ScalarVectorProductCoefficient _neg_dk_du_grad_trial
mfem::MixedScalarWeakDivergenceIntegrator _weak_div_integ
Utilities for converting between vector(s) of libMesh Points and MFEM Vector(s).