Processing math: 100%
MFEM  v4.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 ~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 607 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 648 of file tmop.hpp.

mfem::TMOP_Integrator::~TMOP_Integrator ( )
inline

Definition at line 655 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 1088 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 996 of file tmop.cpp.

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

Definition at line 1208 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 867 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 885 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 1190 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 903 of file tmop.cpp.

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

Definition at line 1198 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 663 of file tmop.hpp.

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

Update the original/reference nodes used for limiting.

Definition at line 685 of file tmop.hpp.

Member Data Documentation

Coefficient* mfem::TMOP_Integrator::coeff0
protected

Definition at line 622 of file tmop.hpp.

Coefficient* mfem::TMOP_Integrator::coeff1
protected

Definition at line 614 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::DS
protected

Definition at line 640 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::DSh
protected

Definition at line 640 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::Jpr
protected

Definition at line 640 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::Jpt
protected

Definition at line 640 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::Jrt
protected

Definition at line 640 of file tmop.hpp.

const GridFunction* mfem::TMOP_Integrator::lim_dist
protected

Definition at line 624 of file tmop.hpp.

TMOP_LimiterFunction* mfem::TMOP_Integrator::lim_func
protected

Definition at line 626 of file tmop.hpp.

double mfem::TMOP_Integrator::lim_normal
protected

Definition at line 628 of file tmop.hpp.

TMOP_QualityMetric* mfem::TMOP_Integrator::metric
protected

Definition at line 610 of file tmop.hpp.

double mfem::TMOP_Integrator::metric_normal
protected

Definition at line 616 of file tmop.hpp.

const GridFunction* mfem::TMOP_Integrator::nodes0
protected

Definition at line 621 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::P
protected

Definition at line 640 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::PMatI
protected

Definition at line 640 of file tmop.hpp.

DenseMatrix mfem::TMOP_Integrator::PMatO
protected

Definition at line 640 of file tmop.hpp.

const TargetConstructor* mfem::TMOP_Integrator::targetC
protected

Definition at line 611 of file tmop.hpp.


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