MFEM  v4.4.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
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

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

Definition at line 170 of file mtop_integrators.hpp.

Member Function Documentation

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.

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.

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.

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: