MFEM  v4.1.0
Finite element discretization library
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
mfem::TMOP_Integrator Class Reference

A TMOP integrator class based on any given TMOP_QualityMetric and TargetConstructor. More...

#include <tmop.hpp>

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

Public Member Functions

 TMOP_Integrator (TMOP_QualityMetric *m, TargetConstructor *tc)
 
 ~TMOP_Integrator ()
 
void SetCoefficient (Coefficient &w1)
 Sets a scaling Coefficient for the quality metric term of the integrator. More...
 
void EnableLimiting (const GridFunction &n0, const GridFunction &dist, Coefficient &w0, TMOP_LimiterFunction *lfunc=NULL)
 Adds a limiting term to the integrator (general version). More...
 
void EnableLimiting (const GridFunction &n0, Coefficient &w0, TMOP_LimiterFunction *lfunc=NULL)
 Adds a limiting term to the integrator with limiting distance function (dist in the general version of the method) equal to 1. More...
 
void SetLimitingNodes (const GridFunction &n0)
 Update the original/reference nodes used for limiting. More...
 
virtual double GetElementEnergy (const FiniteElement &el, ElementTransformation &T, const Vector &elfun)
 Computes the integral of W(Jacobian(Trt)) over a target zone. More...
 
virtual void AssembleElementVector (const FiniteElement &el, ElementTransformation &T, const Vector &elfun, Vector &elvect)
 Perform the local action of the NonlinearFormIntegrator. More...
 
virtual void AssembleElementGrad (const FiniteElement &el, ElementTransformation &T, const Vector &elfun, DenseMatrix &elmat)
 Assemble the local gradient matrix. More...
 
void EnableNormalization (const GridFunction &x)
 Computes the normalization factors of the metric and limiting integrals using the mesh position given by x. More...
 
void ParEnableNormalization (const ParGridFunction &x)
 
- Public Member Functions inherited from mfem::NonlinearFormIntegrator
void SetIntRule (const IntegrationRule *ir)
 Prescribe a fixed IntegrationRule to use (when ir != NULL) or let the integrator choose (when ir == NULL). More...
 
void SetIntegrationRule (const IntegrationRule &irule)
 Prescribe a fixed IntegrationRule to use. More...
 
virtual void AssembleFaceVector (const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Tr, const Vector &elfun, Vector &elvect)
 Perform the local action of the NonlinearFormIntegrator resulting from a face integral term. More...
 
virtual void AssembleFaceGrad (const FiniteElement &el1, const FiniteElement &el2, FaceElementTransformations &Tr, const Vector &elfun, DenseMatrix &elmat)
 Assemble the local action of the gradient of the NonlinearFormIntegrator resulting from a face integral term. More...
 
virtual void AssemblePA (const FiniteElementSpace &fes)
 Method defining partial assembly. More...
 
virtual void AssemblePA (const FiniteElementSpace &trial_fes, const FiniteElementSpace &test_fes)
 
virtual void AddMultPA (const Vector &x, Vector &y) const
 Method for partially assembled action. More...
 
virtual ~NonlinearFormIntegrator ()
 

Protected Member Functions

void ComputeNormalizationEnergies (const GridFunction &x, double &metric_energy, double &lim_energy)
 
- Protected Member Functions inherited from mfem::NonlinearFormIntegrator
 NonlinearFormIntegrator (const IntegrationRule *ir=NULL)
 

Protected Attributes

TMOP_QualityMetricmetric
 
const TargetConstructortargetC
 
Coefficientcoeff1
 
double metric_normal
 
const GridFunctionnodes0
 
Coefficientcoeff0
 
const GridFunctionlim_dist
 
TMOP_LimiterFunctionlim_func
 
double lim_normal
 
DenseMatrix DSh
 
DenseMatrix DS
 
DenseMatrix Jrt
 
DenseMatrix Jpr
 
DenseMatrix Jpt
 
DenseMatrix P
 
DenseMatrix PMatI
 
DenseMatrix PMatO
 
- Protected Attributes inherited from mfem::NonlinearFormIntegrator
const IntegrationRuleIntRule
 

Detailed Description

A TMOP integrator class based on any given TMOP_QualityMetric and TargetConstructor.

Represents \( \int W(Jpt) dx \) over a target zone, where W is the metric's strain energy density function, and Jpt is the Jacobian of the target->physical coordinates transformation. The virtual target zone is defined by the TargetConstructor.

Definition at line 728 of file tmop.hpp.

Constructor & Destructor Documentation

mfem::TMOP_Integrator::TMOP_Integrator ( TMOP_QualityMetric m,
TargetConstructor tc 
)
inline
Parameters
[in]mTMOP_QualityMetric that will be integrated (not owned).
[in]tcTarget-matrix construction algorithm to use (not owned).

Definition at line 769 of file tmop.hpp.

mfem::TMOP_Integrator::~TMOP_Integrator ( )
inline

Definition at line 776 of file tmop.hpp.

Member Function Documentation

void mfem::TMOP_Integrator::AssembleElementGrad ( const FiniteElement el,
ElementTransformation Tr,
const Vector elfun,
DenseMatrix elmat 
)
virtual

Assemble the local gradient matrix.

Reimplemented from mfem::NonlinearFormIntegrator.

Definition at line 1262 of file tmop.cpp.

void mfem::TMOP_Integrator::AssembleElementVector ( const FiniteElement el,
ElementTransformation Tr,
const Vector elfun,
Vector elvect 
)
virtual

Perform the local action of the NonlinearFormIntegrator.

Reimplemented from mfem::NonlinearFormIntegrator.

Definition at line 1168 of file tmop.cpp.

void mfem::TMOP_Integrator::ComputeNormalizationEnergies ( const GridFunction x,
double &  metric_energy,
double &  lim_energy 
)
protected

Definition at line 1384 of file tmop.cpp.

void mfem::TMOP_Integrator::EnableLimiting ( const GridFunction n0,
const GridFunction dist,
Coefficient w0,
TMOP_LimiterFunction lfunc = NULL 
)

Adds a limiting term to the integrator (general version).

With this addition, the integrator becomes \( \int w1 W(Jpt) + w0 f(x, x_0, d) dx \), where the second term measures the change with respect to the original physical positions, n0.

Parameters
[in]n0Original mesh node coordinates.
[in]distLimiting physical distances.
[in]w0Coefficient scaling the limiting term.
[in]lfuncTMOP_LimiterFunction defining the limiting term f. If NULL, a TMOP_QuadraticLimiter will be used. The TMOP_Integrator assumes ownership of this pointer.

Definition at line 1038 of file tmop.cpp.

void mfem::TMOP_Integrator::EnableLimiting ( const GridFunction n0,
Coefficient w0,
TMOP_LimiterFunction lfunc = NULL 
)

Adds a limiting term to the integrator with limiting distance function (dist in the general version of the method) equal to 1.

Definition at line 1056 of file tmop.cpp.

void mfem::TMOP_Integrator::EnableNormalization ( const GridFunction x)

Computes the normalization factors of the metric and limiting integrals using the mesh position given by x.

Definition at line 1366 of file tmop.cpp.

double mfem::TMOP_Integrator::GetElementEnergy ( const FiniteElement el,
ElementTransformation T,
const Vector elfun 
)
virtual

Computes the integral of W(Jacobian(Trt)) over a target zone.

Parameters
[in]elType of FiniteElement.
[in]TMesh element transformation.
[in]elfunPhysical coordinates of the zone.

Reimplemented from mfem::NonlinearFormIntegrator.

Definition at line 1074 of file tmop.cpp.

void mfem::TMOP_Integrator::ParEnableNormalization ( const ParGridFunction x)

Definition at line 1374 of file tmop.cpp.

void mfem::TMOP_Integrator::SetCoefficient ( Coefficient w1)
inline

Sets a scaling Coefficient for the quality metric term of the integrator.

With this addition, the integrator becomes \( \int w1 W(Jpt) dx \).

Note that the Coefficient is evaluated in the physical configuration and not in the target configuration which may be undefined.

Definition at line 784 of file tmop.hpp.

void mfem::TMOP_Integrator::SetLimitingNodes ( const GridFunction n0)
inline

Update the original/reference nodes used for limiting.

Definition at line 806 of file tmop.hpp.

Member Data Documentation

Coefficient* mfem::TMOP_Integrator::coeff0
protected

Definition at line 743 of file tmop.hpp.

Coefficient* mfem::TMOP_Integrator::coeff1
protected

Definition at line 735 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::DS
protected

Definition at line 761 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::DSh
protected

Definition at line 761 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::Jpr
protected

Definition at line 761 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::Jpt
protected

Definition at line 761 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::Jrt
protected

Definition at line 761 of file tmop.hpp.

const GridFunction* mfem::TMOP_Integrator::lim_dist
protected

Definition at line 745 of file tmop.hpp.

TMOP_LimiterFunction* mfem::TMOP_Integrator::lim_func
protected

Definition at line 747 of file tmop.hpp.

double mfem::TMOP_Integrator::lim_normal
protected

Definition at line 749 of file tmop.hpp.

TMOP_QualityMetric* mfem::TMOP_Integrator::metric
protected

Definition at line 731 of file tmop.hpp.

double mfem::TMOP_Integrator::metric_normal
protected

Definition at line 737 of file tmop.hpp.

const GridFunction* mfem::TMOP_Integrator::nodes0
protected

Definition at line 742 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::P
protected

Definition at line 761 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::PMatI
protected

Definition at line 761 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::PMatO
protected

Definition at line 761 of file tmop.hpp.

const TargetConstructor* mfem::TMOP_Integrator::targetC
protected

Definition at line 732 of file tmop.hpp.


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