MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
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 real_t 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.
 
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.
 
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.
 
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.
 
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()

real_t 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: