Overture  Version 25
Classes | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
AdvancingFront Class Reference

#include <AdvancingFront.h>

Collaboration diagram for AdvancingFront:
Collaboration graph
[legend]

Classes

struct  cmpFace
 

Public Member Functions

 AdvancingFront ()
 
 AdvancingFront (intArray &initialFaces, realArray &xyz_in, MappingInformation *backgroundMappings_=NULL)
 
virtual ~AdvancingFront ()
 
void initialize (intArray &initialFaces, realArray &xyz_in, MappingInformation *backgroundMappings_=NULL, intArray &initialFaceSurfaceMapping_=Overture::nullIntegerDistributedArray())
 
bool isFrontEmpty () const
 
int insertFace (const ArraySimple< int > &vertexIDs, int z1, int z2)
 
int advanceFront (int nSteps=1)
 
AdvancingFrontParametersgetParameters ()
 
const AdvancingFrontParametersgetParameters () const
 
PriorityQueue::iterator getFrontIteratorForFace (const ArraySimple< int > &faceVertices)
 
bool existsInFront (const ArraySimple< int > &)
 
bool existsInFront (const int p1, const int p2)
 
void plot (PlotStuff &ps, PlotStuffParameters &psp)
 
bool expandFront ()
 
const vector< Face * > & getFaces () const
 
const PriorityQueuegetFront () const
 
const realArraygetVertices ()
 
const vector< vector< int > > & getElements () const
 
intArray generateElementList (bool removeUnusedNodes=true)
 
intArray generateElementFaceList ()
 
int getRangeDimension () const
 
int getDomainDimension () const
 
int getNumberOfVertices () const
 
int getNumberOfFaces () const
 
int getNumberOfElements () const
 
real getAverageFaceSize () const
 
realArraygetFaceNormals ()
 
bool vertexIsOnFront (int v)
 
const realCompositeGridFunctiongetControlFunction () const
 
void setControlFunction (const CompositeGrid &controlGrid_, const realCompositeGridFunction &controlFunction_)
 
void destroyFront ()
 
int computeTransformationAtPoint (realArray &midPt, ArraySimple< real > &T)
 

Protected Types

enum  TimingsEnum {
  totalTime =0, initializeAdv, findExistingCandidates, existingInit,
  existingInCircle, existingInCircleInit, existingInCircle_1, existingInCircle_2,
  existingInCircle_3, existingInCircle_4, existingInCircle_5, existingInCircle_trav,
  existingAdj, computeNew, creationInsertion, creationInsertion_1,
  creationInsertion_2, creationInsertion_20, creationInsertion_21, creationInsertion_3,
  insertion, intersections, getCircleCent, faceTrans,
  faceTrans_1, faceTrans_2, faceTrans_3, faceTrans_4,
  elemQual, numberOfTimings
}
 

Protected Member Functions

real computeNormalizedGrowthDistance (real, real)
 
void gatherExistingCandidates (const Face &face, real distance, ArraySimple< real > &pIdealTrans, ArraySimple< real > &pIdealPhys, ArraySimple< real > &T, ArraySimple< real > &Tinv, vector< int > &existing_candidates, vector< int > &existing_candidates_neighb, vector< int > &local_nodes)
 
void computeVertexCandidates (const ArraySimple< real > &currentFaceVerticesTrans, const ArraySimple< real > &pIdealTrans, vector< int > &existing_candidates, const ArraySimple< real > &T, ArraySimple< real > &new_candidates, real rad)
 
bool makeTriTetFromExistingVertices (const Face &currentFace, int newElementID, const vector< int > &existing_candidates, const vector< int > &local_nodes, vector< PriorityQueue::iterator > &oldFrontFaces)
 
bool makeTriTetFromNewVertex (const Face &currentFace, int newElementID, ArraySimple< real > &new_candidates, vector< int > &local_nodes)
 
bool makeTriOnSurface (const Face &currentFace, int newElementID, const vector< int > &existing_candidates, ArraySimple< real > &new_candidates, vector< PriorityQueue::iterator > &oldFrontFaces)
 
bool isFaceConsistent (const ArraySimple< int > &, const Face &filterFace)
 
bool isFaceConsistent (const ArraySimple< real > &, const Face &filterFace)
 
bool isFaceConsistent2D (const ArraySimple< real > &p1, const ArraySimple< real > &p2, const int filterFace) const
 
bool isFaceConsistent2D (int v1, int v2, int filterFace) const
 
bool isFaceConsistent3D (const ArraySimple< int > &, const Face &filterFace)
 
bool isFaceConsistent3D (const ArraySimple< real > &, const Face &filterFace)
 
bool isOnFacePlane (const Face &face, ArraySimple< real > &vertex)
 
bool checkVertexDirection (const Face &face, const ArraySimple< real > &vertex) const
 
ArraySimpleFixed< real, 3, 1, 1, 1 > computeSurfaceNormal (const ArraySimpleFixed< real, 3, 1, 1, 1 > &vert, int subsurf=-1)
 
void computeFaceNormal (const ArraySimple< real > &vertices, ArraySimple< real > &normal, int subsurf=-1)
 
void addFaceToFront (Face &)
 
bool auxiliaryCheck (ArraySimple< real > &candNormal, ArraySimple< real > &faceNormal)
 
int resizeFaces (int newSize)
 
int addPoint (const ArraySimple< real > &newPt)
 
void addFaceToElement (int face, int elem)
 
void removeFaceFromFront (PriorityQueue::iterator &)
 
int transformCoordinatesToParametricSpace (realArray &xyz_in, realArray &xyz_param)
 
void computeFaceTransformation (const Face &face, ArraySimple< real > &T, ArraySimple< real > &Tinv)
 
void computeFaceNormalTransformation (const realArray &vertices, ArraySimple< real > &T, double stretch=1.0)
 
real computeElementQuality (int element)
 
void improveQuality ()
 
bool newElementVertexCheck (const Face &currentFace, vector< int > &local_nodes, ArraySimpleFixed< real, 3, 1, 1, 1 > &pc, int filterNode=-1)
 
void removeUnusedNodes ()
 

Protected Attributes

AdvancingFrontParameters parameters
 
int nFacesFront
 
int nFacesTotal
 
int nFacesEst
 
int nptsTotal
 
int nptsEst
 
int nElements
 
int nElementsEst
 
int rangeDimension
 
int domainDimension
 
int nFacesPerElementMax
 
int nVerticesPerFaceMax
 
int nexpansions
 
real averageFaceSize
 
vector< Face * > faces
 
vector< int > foo
 
vector< vector< int > > elements
 
realArray elementQuality
 
PriorityQueue front
 
realArray xyz
 
realArray faceNormals
 
intArray initialFaceSurfaceMapping
 
real timing [numberOfTimings]
 
map< int, vector
< PriorityQueue::iterator >
, cmpFace
pointFaceMapping
 
GeometricADT< Face * > faceSearcher
 
GeometricADT< int > vertexSearcher
 
CompositeGrid controlGrid
 
realCompositeGridFunction controlFunction
 
MappingInformation backgroundMappings
 

Member Enumeration Documentation

Enumerator
totalTime 
initializeAdv 
findExistingCandidates 
existingInit 
existingInCircle 
existingInCircleInit 
existingInCircle_1 
existingInCircle_2 
existingInCircle_3 
existingInCircle_4 
existingInCircle_5 
existingInCircle_trav 
existingAdj 
computeNew 
creationInsertion 
creationInsertion_1 
creationInsertion_2 
creationInsertion_20 
creationInsertion_21 
creationInsertion_3 
insertion 
intersections 
getCircleCent 
faceTrans 
faceTrans_1 
faceTrans_2 
faceTrans_3 
faceTrans_4 
elemQual 
numberOfTimings 

Constructor & Destructor Documentation

AdvancingFront::AdvancingFront ( )
AdvancingFront::AdvancingFront ( intArray &  initialFaces,
realArray xyz_in,
MappingInformation backgroundMappings_ = NULL 
)
AdvancingFront::~AdvancingFront ( )
virtual

Member Function Documentation

void AdvancingFront::addFaceToElement ( int  face,
int  elem 
)
protected
void AdvancingFront::addFaceToFront ( Face face)
protected
int AdvancingFront::addPoint ( const ArraySimple< real > &  newPt)
protected
int AdvancingFront::advanceFront ( int  nSteps = 1)
bool AdvancingFront::auxiliaryCheck ( ArraySimple< real > &  candNormal,
ArraySimple< real > &  faceNormal 
)
protected
bool AdvancingFront::checkVertexDirection ( const Face face,
const ArraySimple< real > &  vertex 
) const
protected
real AdvancingFront::computeElementQuality ( int  element)
protected
void AdvancingFront::computeFaceNormal ( const ArraySimple< real > &  vertices,
ArraySimple< real > &  normal,
int  subsurf = -1 
)
protected
void AdvancingFront::computeFaceNormalTransformation ( const realArray vertices,
ArraySimple< real > &  T,
double  stretch = 1.0 
)
protected

References pow().

void AdvancingFront::computeFaceTransformation ( const Face face,
ArraySimple< real > &  T,
ArraySimple< real > &  Tinv 
)
protected
real AdvancingFront::computeNormalizedGrowthDistance ( real  sizePhys,
real  sizeTrans 
)
protected

References delta.

ArraySimpleFixed< real, 3, 1, 1, 1 > AdvancingFront::computeSurfaceNormal ( const ArraySimpleFixed< real, 3, 1, 1, 1 > &  vert,
int  subsurf = -1 
)
protected
int AdvancingFront::computeTransformationAtPoint ( realArray midPt,
ArraySimple< real > &  T 
)
void AdvancingFront::computeVertexCandidates ( const ArraySimple< real > &  currentFaceVerticesTrans,
const ArraySimple< real > &  pIdealTrans,
vector< int > &  existing_candidates,
const ArraySimple< real > &  T,
ArraySimple< real > &  new_candidates,
real  rad 
)
protected
void AdvancingFront::destroyFront ( )

References ArraySimple< T >::redim().

Referenced by Ugen::updateHybrid().

bool AdvancingFront::existsInFront ( const ArraySimple< int > &  faceVertices)

References faceVerticesAreSame().

bool AdvancingFront::existsInFront ( const int  p1,
const int  p2 
)
bool AdvancingFront::expandFront ( )
void AdvancingFront::gatherExistingCandidates ( const Face face,
real  distance,
ArraySimple< real > &  pIdealTrans,
ArraySimple< real > &  pIdealPhys,
ArraySimple< real > &  T,
ArraySimple< real > &  Tinv,
vector< int > &  existing_candidates,
vector< int > &  existing_candidates_neighb,
vector< int > &  local_nodes 
)
protected
intArray AdvancingFront::generateElementFaceList ( )
intArray AdvancingFront::generateElementList ( bool  removeUnusedNodes = true)
real AdvancingFront::getAverageFaceSize ( ) const
inline

References averageFaceSize.

const realCompositeGridFunction& AdvancingFront::getControlFunction ( ) const
inline
int AdvancingFront::getDomainDimension ( ) const
inline
const vector< vector<int> >& AdvancingFront::getElements ( ) const
inline

References elements.

Referenced by PlotIt::plotAdvancingFront().

realArray& AdvancingFront::getFaceNormals ( )
inline

References faceNormals.

Referenced by PlotIt::plotAdvancingFront().

const vector<Face *>& AdvancingFront::getFaces ( ) const
inline
const PriorityQueue& AdvancingFront::getFront ( ) const
inline

References front.

Referenced by PlotIt::plotAdvancingFront().

PriorityQueue::iterator AdvancingFront::getFrontIteratorForFace ( const ArraySimple< int > &  faceVertices)

References faceVerticesAreSame().

int AdvancingFront::getNumberOfElements ( ) const
inline
int AdvancingFront::getNumberOfFaces ( ) const
inline
int AdvancingFront::getNumberOfVertices ( ) const
inline
AdvancingFrontParameters& AdvancingFront::getParameters ( )
inline
const AdvancingFrontParameters& AdvancingFront::getParameters ( ) const
inline

References parameters.

int AdvancingFront::getRangeDimension ( ) const
inline
const realArray& AdvancingFront::getVertices ( )
inline
void AdvancingFront::improveQuality ( )
protected
void AdvancingFront::initialize ( intArray &  initialFaces,
realArray xyz_in,
MappingInformation backgroundMappings_ = NULL,
intArray &  initialFaceSurfaceMapping_ = Overture::nullIntegerDistributedArray() 
)
int AdvancingFront::insertFace ( const ArraySimple< int > &  vertexIDs,
int  z1,
int  z2 
)
bool AdvancingFront::isFaceConsistent ( const ArraySimple< int > &  ,
const Face filterFace 
)
protected
bool AdvancingFront::isFaceConsistent ( const ArraySimple< real > &  ,
const Face filterFace 
)
protected
bool AdvancingFront::isFaceConsistent2D ( const ArraySimple< real > &  p1,
const ArraySimple< real > &  p2,
const int  filterFace 
) const
protected
bool AdvancingFront::isFaceConsistent2D ( int  v1,
int  v2,
int  filterFace 
) const
protected
bool AdvancingFront::isFaceConsistent3D ( const ArraySimple< int > &  facev,
const Face filterFace 
)
protected
bool AdvancingFront::isFaceConsistent3D ( const ArraySimple< real > &  facev,
const Face filterFace 
)
protected
bool AdvancingFront::isFrontEmpty ( ) const
bool AdvancingFront::isOnFacePlane ( const Face face,
ArraySimple< real > &  vertex 
)
protected
bool AdvancingFront::makeTriOnSurface ( const Face currentFace,
int  newElementID,
const vector< int > &  existing_candidates,
ArraySimple< real > &  new_candidates,
vector< PriorityQueue::iterator > &  oldFrontFaces 
)
protected
bool AdvancingFront::makeTriTetFromExistingVertices ( const Face currentFace,
int  newElementID,
const vector< int > &  existing_candidates,
const vector< int > &  local_nodes,
vector< PriorityQueue::iterator > &  oldFrontFaces 
)
protected
bool AdvancingFront::makeTriTetFromNewVertex ( const Face currentFace,
int  newElementID,
ArraySimple< real > &  new_candidates,
vector< int > &  local_nodes 
)
protected
bool AdvancingFront::newElementVertexCheck ( const Face currentFace,
vector< int > &  local_nodes,
ArraySimpleFixed< real, 3, 1, 1, 1 > &  pc,
int  filterNode = -1 
)
protected
void AdvancingFront::plot ( PlotStuff ps,
PlotStuffParameters psp 
)
void AdvancingFront::removeFaceFromFront ( PriorityQueue::iterator delIter)
protected
void AdvancingFront::removeUnusedNodes ( )
protected
int AdvancingFront::resizeFaces ( int  newSize)
protected
void AdvancingFront::setControlFunction ( const CompositeGrid controlGrid_,
const realCompositeGridFunction controlFunction_ 
)
inline
int AdvancingFront::transformCoordinatesToParametricSpace ( realArray xyz_in,
realArray xyz_param 
)
protected
bool AdvancingFront::vertexIsOnFront ( int  v)

Member Data Documentation

real AdvancingFront::averageFaceSize
protected

Referenced by getAverageFaceSize().

MappingInformation AdvancingFront::backgroundMappings
protected
realCompositeGridFunction AdvancingFront::controlFunction
protected
CompositeGrid AdvancingFront::controlGrid
protected

Referenced by setControlFunction().

int AdvancingFront::domainDimension
protected

Referenced by getDomainDimension().

realArray AdvancingFront::elementQuality
protected
vector< vector<int> > AdvancingFront::elements
protected

Referenced by getElements().

realArray AdvancingFront::faceNormals
protected

Referenced by getFaceNormals().

vector<Face *> AdvancingFront::faces
protected

Referenced by getFaces().

GeometricADT<Face *> AdvancingFront::faceSearcher
protected
vector<int> AdvancingFront::foo
protected
PriorityQueue AdvancingFront::front
protected

Referenced by getFront().

intArray AdvancingFront::initialFaceSurfaceMapping
protected
int AdvancingFront::nElements
protected

Referenced by getNumberOfElements().

int AdvancingFront::nElementsEst
protected
int AdvancingFront::nexpansions
protected
int AdvancingFront::nFacesEst
protected
int AdvancingFront::nFacesFront
protected
int AdvancingFront::nFacesPerElementMax
protected
int AdvancingFront::nFacesTotal
protected

Referenced by getNumberOfFaces().

int AdvancingFront::nptsEst
protected
int AdvancingFront::nptsTotal
protected

Referenced by getNumberOfVertices().

int AdvancingFront::nVerticesPerFaceMax
protected
AdvancingFrontParameters AdvancingFront::parameters
protected

Referenced by getParameters().

map<int, vector< PriorityQueue::iterator >, cmpFace> AdvancingFront::pointFaceMapping
protected
int AdvancingFront::rangeDimension
protected

Referenced by getRangeDimension().

real AdvancingFront::timing[numberOfTimings]
protected
GeometricADT<int> AdvancingFront::vertexSearcher
protected
realArray AdvancingFront::xyz
protected

Referenced by getVertices().


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