MFEM  v4.6.0
Finite element discretization library
Public Member Functions | List of all members
mfem::ParametricLinearDiffusion Class Reference

#include <mtop_integrators.hpp>

Inheritance diagram for mfem::ParametricLinearDiffusion:
[legend]
Collaboration diagram for mfem::ParametricLinearDiffusion:
[legend]

Public Member Functions

 ParametricLinearDiffusion (BaseQFunction &qfunm)
 
virtual double GetElementEnergy (const Array< const FiniteElement *> &el, const Array< const FiniteElement *> &pel, ElementTransformation &Tr, const Array< const Vector *> &elfun, const Array< const Vector *> &pelfun) override
 Computes the local energy. More...
 
virtual void AssembleElementVector (const Array< const FiniteElement *> &el, const Array< const FiniteElement *> &pel, ElementTransformation &Tr, const Array< const Vector *> &elfun, const Array< const Vector *> &pelfun, const Array< Vector *> &elvec) override
 Computes the element's residual. More...
 
virtual void AssembleElementGrad (const Array< const FiniteElement *> &el, const Array< const FiniteElement *> &pel, ElementTransformation &Tr, const Array< const Vector *> &elfun, const Array< const Vector *> &pelfun, const Array2D< DenseMatrix *> &elmats) override
 Computes the stiffness/tangent matrix. More...
 
virtual void AssemblePrmElementVector (const Array< const FiniteElement *> &el, const Array< const FiniteElement *> &pel, ElementTransformation &Tr, const Array< const Vector *> &elfun, const Array< const Vector *> &alfun, const Array< const Vector *> &pelfun, const Array< Vector *> &elvec) override
 
- Public Member Functions inherited from mfem::ParametricBNLFormIntegrator
virtual void AssembleFaceVector (const Array< const FiniteElement *> &el1, const Array< const FiniteElement *> &el2, const Array< const FiniteElement *> &pel1, const Array< const FiniteElement *> &pel2, FaceElementTransformations &Tr, const Array< const Vector *> &elfun, const Array< const Vector *> &pelfun, const Array< Vector *> &elvect)
 
virtual void AssemblePrmFaceVector (const Array< const FiniteElement *> &el1, const Array< const FiniteElement *> &el2, const Array< const FiniteElement *> &pel1, const Array< const FiniteElement *> &pel2, FaceElementTransformations &Tr, const Array< const Vector *> &elfun, const Array< const Vector *> &alfun, const Array< const Vector *> &pelfun, const Array< Vector *> &pelvect)
 
virtual void AssembleFaceGrad (const Array< const FiniteElement *> &el1, const Array< const FiniteElement *> &el2, const Array< const FiniteElement *> &pel1, const Array< const FiniteElement *> &pel2, FaceElementTransformations &Tr, const Array< const Vector *> &elfun, const Array< const Vector *> &pelfun, const Array2D< DenseMatrix *> &elmats)
 Assemble the local gradient matrix on faces of the elements. More...
 
virtual ~ParametricBNLFormIntegrator ()
 

Detailed Description

Provides implementation of an integrator for linear diffusion with parametrization provided by a density field. The setup is standard for topology optimization problems.

Definition at line 167 of file mtop_integrators.hpp.

Constructor & Destructor Documentation

◆ ParametricLinearDiffusion()

mfem::ParametricLinearDiffusion::ParametricLinearDiffusion ( BaseQFunction qfunm)
inline

Definition at line 170 of file mtop_integrators.hpp.

Member Function Documentation

◆ AssembleElementGrad()

void mfem::ParametricLinearDiffusion::AssembleElementGrad ( const Array< const FiniteElement *> &  el,
const Array< const FiniteElement *> &  pel,
ElementTransformation Tr,
const Array< const Vector *> &  elfun,
const Array< const Vector *> &  pelfun,
const Array2D< DenseMatrix *> &  elmats 
)
overridevirtual

Computes the stiffness/tangent matrix.

Reimplemented from mfem::ParametricBNLFormIntegrator.

Definition at line 151 of file mtop_integrators.cpp.

◆ AssembleElementVector()

void mfem::ParametricLinearDiffusion::AssembleElementVector ( const Array< const FiniteElement *> &  el,
const Array< const FiniteElement *> &  pel,
ElementTransformation Tr,
const Array< const Vector *> &  elfun,
const Array< const Vector *> &  pelfun,
const Array< Vector *> &  elvec 
)
overridevirtual

Computes the element's residual.

Reimplemented from mfem::ParametricBNLFormIntegrator.

Definition at line 82 of file mtop_integrators.cpp.

◆ AssemblePrmElementVector()

void mfem::ParametricLinearDiffusion::AssemblePrmElementVector ( const Array< const FiniteElement *> &  el,
const Array< const FiniteElement *> &  pel,
ElementTransformation Tr,
const Array< const Vector *> &  elfun,
const Array< const Vector *> &  alfun,
const Array< const Vector *> &  pelfun,
const Array< Vector *> &  elvec 
)
overridevirtual

Computes the product of the adjoint solution and the derivative of the residual with respect to the parametric fields.

Reimplemented from mfem::ParametricBNLFormIntegrator.

Definition at line 220 of file mtop_integrators.cpp.

◆ GetElementEnergy()

double mfem::ParametricLinearDiffusion::GetElementEnergy ( const Array< const FiniteElement *> &  el,
const Array< const FiniteElement *> &  pel,
ElementTransformation Tr,
const Array< const Vector *> &  elfun,
const Array< const Vector *> &  pelfun 
)
overridevirtual

Computes the local energy.

Reimplemented from mfem::ParametricBNLFormIntegrator.

Definition at line 17 of file mtop_integrators.cpp.


The documentation for this class was generated from the following files: