Public Member Functions | Private Member Functions | Private Attributes
quadricMetric Class Reference
Inheritance diagram for quadricMetric:
Inheritance graph
[legend]
Collaboration diagram for quadricMetric:
Collaboration graph
[legend]

Public Member Functions

 quadricMetric (partTetMeshSimplex &simplex)
 
 ~quadricMetric ()
 
void optimizeNodePosition (const scalar tol=0.001)
 
- Public Member Functions inherited from simplexSmoother
 simplexSmoother (partTetMeshSimplex &simplex)
 construct from partTetMeshSimplex More...
 
virtual ~simplexSmoother ()
 

Private Member Functions

scalar evaluateMetric () const
 evaluate the value of the metric More...
 
void evaluateGradients (vector &grad, tensor &gradGrad) const
 evaluate metric gradients More...
 

Private Attributes

pointp_
 free vertex More...
 
DynList< vector, 64 > normals_
 normals of triangles forming the outer hull More...
 
DynList< point, 64 > centres_
 centres of triangles forming the outer hull More...
 

Additional Inherited Members

- Protected Attributes inherited from simplexSmoother
DynList< point, 128 > & points_
 mesh points More...
 
const DynList< partTet, 128 > & tets_
 list tets around the given vertex More...
 
const label pointI_
 label of the point More...
 
boundBox bb_
 bound box More...
 

Detailed Description

Definition at line 51 of file quadricMetric.H.

Constructor & Destructor Documentation

◆ quadricMetric()

◆ ~quadricMetric()

Definition at line 97 of file quadricMetric.C.

Member Function Documentation

◆ evaluateMetric()

scalar evaluateMetric ( ) const
private

evaluate the value of the metric

Definition at line 42 of file quadricMetric.C.

References quadricMetric::centres_, forAll, quadricMetric::normals_, quadricMetric::p_, and Foam::sqr().

Referenced by quadricMetric::optimizeNodePosition().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ evaluateGradients()

void evaluateGradients ( vector grad,
tensor gradGrad 
) const
private

evaluate metric gradients

Definition at line 52 of file quadricMetric.C.

References quadricMetric::centres_, forAll, Foam::fvc::grad(), quadricMetric::normals_, quadricMetric::p_, Vector< scalar >::zero, and Tensor::zero.

Referenced by quadricMetric::optimizeNodePosition().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ optimizeNodePosition()

void optimizeNodePosition ( const scalar  tol = 0.001)
virtual

find the best position such that all tets making a simplex have a positive volume

store previous value

evaluate gradients

calculate displacement

it seems that this direction is wrong

Implements simplexSmoother.

Definition at line 104 of file quadricMetric.C.

References simplexSmoother::bb_, quadricMetric::centres_, boundBox::contains(), Foam::det(), Foam::endl(), quadricMetric::evaluateGradients(), quadricMetric::evaluateMetric(), forAll, Foam::func(), Foam::Info, Foam::inv(), Foam::mag(), Foam::magSqr(), boundBox::max(), boundBox::min(), VectorSpace< Vector< scalar >, scalar, 3 >::nComponents, quadricMetric::normals_, quadricMetric::p_, relax(), Foam::sqr(), and Vector< scalar >::zero.

Here is the call graph for this function:

Field Documentation

◆ p_

point& p_
private

◆ normals_

DynList<vector, 64> normals_
private

normals of triangles forming the outer hull

Definition at line 60 of file quadricMetric.H.

Referenced by quadricMetric::evaluateGradients(), quadricMetric::evaluateMetric(), quadricMetric::optimizeNodePosition(), and quadricMetric::quadricMetric().

◆ centres_

DynList<point, 64> centres_
private

centres of triangles forming the outer hull

Definition at line 63 of file quadricMetric.H.

Referenced by quadricMetric::evaluateGradients(), quadricMetric::evaluateMetric(), quadricMetric::optimizeNodePosition(), and quadricMetric::quadricMetric().


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