Public Types | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes

LCM::Topology Class Reference

#include <Topology.h>

Collaboration diagram for LCM::Topology:
Collaboration graph
[legend]

List of all members.

Public Types

enum  OutputType { UNIDIRECTIONAL_UNILEVEL, UNDIRECTIONAL_MULTILEVEL, BIDIRECTIONAL_UNILEVEL, BIDIRECTIONAL_MULTILEVEL }
 

Output the graph associated with the mesh to graphviz .dot file for visualization purposes.

More...

Public Member Functions

 Topology (std::string const &input_file, std::string const &output_file)
 Create mesh data structure.
 Topology (RCP< Albany::AbstractDiscretization > &discretization)
 Create mesh data structure.
 Topology (RCP< Albany::AbstractDiscretization > &discretization, RCP< AbstractFractureCriterion > &fracture_criterion)
 Create mesh data structure.
void setEntitiesOpen (std::map< EntityKey, bool > &open_entity_map)
 Iterates over the boundary entities of the mesh of (all entities of rank dimension-1) and checks fracture criterion.
void setEntitiesOpen ()
void setEntitiesOpen (EntityVector const &fractured_faces, std::map< EntityKey, bool > &open_entity_map)
 Iterates over the boundary entities contained in the passed-in vector and opens each edge traversed.
void outputToGraphviz (std::string const &output_filename, OutputType const output_type=UNIDIRECTIONAL_UNILEVEL)
void graphInitialization ()
 Initializes the default stk mesh object needed by class.
void removeExtraRelations ()
 Removes unneeded relations from the mesh.
void removeNodeRelations ()
 Creates temporary nodal connectivity for the elements and removes the relationships between the elements and nodes.
void removeMultiLevelRelations ()
 Our canonical graph representation has edges (relations) that connect vertices (entities) with a difference in dimension (rank) of exactly one.
std::vector< EntityVector > getElementToNodeConnectivity ()
 Returns array of pointers to Entities for the element to node relations.
void removeElementToNodeConnectivity (std::vector< EntityVector > &v)
 Returns array of pointers to Entities for the element to node relations.
void restoreElementToNodeConnectivity ()
 After mesh manipulations are complete, need to recreate a stk mesh understood by Albany_STKDiscretization.
void restoreElementToNodeConnectivity (std::vector< EntityVector > &v)
 After mesh manipulations are complete, need to recreate a stk mesh understood by Albany_STKDiscretization.
EntityVector getFaceNodes (Entity *entity)
 Determine the nodes associated with a face.
EntityVector getBoundaryEntityNodes (Entity const &boundary_entity)
void outputBoundary ()
 Output boundary.
void createBoundary ()
 Create boundary mesh.
EntityVector createSurfaceElementConnectivity (Entity const &face1, Entity const &face2)
 Create surface element connectivity.
void createStar (Entity &entity, std::set< EntityKey > &subgraph_entities, std::set< stkEdge, EdgeLessThan > &subgraph_edges)
 Create vectors describing the vertices and edges of the star of an entity in the stk mesh.
void splitOpenFaces ()
 Fractures all open boundary entities of the mesh.
void splitOpenFaces (std::map< EntityKey, bool > &open_entity_map)
void splitOpenFaces (std::map< EntityKey, bool > &open_entity_map, std::vector< EntityVector > &old_connectivity, std::vector< EntityVector > &new_connectivity)
void addElement (EntityRank entity_rank)
 Adds a new entity of rank 3 to the mesh.
void addEntities (std::vector< size_t > &requests)
 creates several entities at a time.
void removeEntity (Entity &entity)
 Removes an entity and all its connections.
void addRelation (Entity &source_entity, Entity &target_entity, EdgeId local_relation_id)
 Adds a relation between two entities.
void removeRelation (Entity &source_entity, Entity &target_entity, EdgeId local_relation_id)
 Removes the relation between two entities.
EntityVector getEntitiesByRank (BulkData const &mesh, EntityRank entity_rank)
 Returns a vector with all the mesh entities of a specific rank.
EntityVector::size_type getNumberEntitiesByRank (BulkData const &mesh, EntityRank entity_rank)
 Number of entities of a specific rank.
EdgeId getLocalRelationId (Entity const &source_entity, Entity const &target_entity)
 Gets the local relation id (0,1,2,...) between two entities.
int getNumberLowerRankEntities (Entity const &entity)
 Returns the total number of lower rank entities connected to a specific entity.
EntityVector getDirectlyConnectedEntities (Entity const &entity, EntityRank entity_rank)
 Returns a group of entities connected directly to a given entity.
bool findEntityInVector (EntityVector &entities, Entity *entity)
 Checks if an entity exists inside a specific vector.
EntityVector getBoundaryEntities (Entity const &entity, EntityRank entity_rank)
 Returns a group of entities connected indirectly to a given entity.
bool segmentIsConnected (Entity const &segment, Entity *node)
 Checks if a segment is connected to an input node.
EntityVector findAdjacentSegments (Entity const &segment, Entity *node)
 Finds the adjacent segments to a given segment.
EntityVector findCellRelations (Entity const &face)
 Returns all the highest dimensional topology entities to which a given face belongs.
EntityVector findSegmentsFromElement (Entity const &element)
 Returns all the segments at the boundary of a given element.
bool facesShareTwoPoints (Entity const &face1, Entity const &face2)
 Returns true if the faces share a segment (two points).
EntityVector findAdjacentSegmentsFromFace (std::vector< EntityVector > const &faces_inside_element, Entity const &face, int element_number)
 returns the adjacent segments from a given face
double * getPointerOfCoordinates (Entity *entity)
 Returns a pointer with the coordinates of a given entity.
EntityVector getFormerElementNodes (Entity const &element, std::vector< EntityVector > const &entities)
 Returns a vector with the corresponding former boundary nodes of an input entity.
void computeBarycentricCoordinates (EntityVector const &entities, Entity *barycenter)
 Generates the coordinate of a given barycenter "entities" is a vector with points that belong to the same entity of the barycenter(e.g segment, face, or element).
void barycentricSubdivision ()
 Barycentric subdivision.
std::vector< Entity * > getClosestNodes (std::vector< std::vector< double > > points)
 Finds the closest nodes(Entities of rank 0) to each of the three points in the input vector.
std::vector< Entity * > getClosestNodesOnSurface (std::vector< std::vector< double > > points)
 Finds the closest nodes(Entities of rank 0) to each of the three points in the input vectorThese nodes lie over the surface of the mesh.
double getDistanceNodeAndPoint (Entity *node, std::vector< double > point)
 calculates the distance between a node and a point
std::vector< std::vector
< double > > 
getCoordinatesOfTriangle (std::vector< double > const normalToPlane)
 Returns the coordinates of the points that form a equilateral triangle.
double randomNumber (double valMin, double valMax)
 Return a random number between two given numbers.
double getDistanceBetweenNodes (Entity *node1, Entity *node2)
 Returns the distance between two entities of rank 0 (nodes).
std::vector< double > getCoordinatesOfMaxAndMin ()
 Returns the coordinates of the max and min of x y and z in the order max of, min of x, max of y, min of y, max of z, min of z.
std::vector< Entity * > MeshEdgesShortestPath ()
 Returns the edges necessary to compute the shortest path on the outer surface of the mesh.
std::vector< std::vector< int > > shortestpathOnBoundaryFaces (std::vector< Entity * > const &nodes, std::vector< Entity * > const &MeshEdgesShortestPath)
 Returns the shortest path over the boundary faces given three input nodes and the edges that belong to the outer surface.
std::vector< std::vector< int > > shortestpath (std::vector< Entity * > const &nodes)
 Returns the shortest path between three input nodes.
std::vector< std::vector< int > > edgesDirections ()
 Returns the directions of all the edges of the input mesh.
std::vector< std::vector< int > > edgesDirectionsOuterSurface ()
 Returns the directions of all the boundary edges of the input mesh.
std::vector< std::vector< int > > facesDirections ()
 Returns the directions of all of the faces of the input mesh.
std::vector< double > facesAreas ()
 Returns a vector with the areas of each of the faces of the input mesh.
std::vector< std::vector< int > > boundaryOperator ()
 Returns the boundary operator of the input mesh.
std::vector< std::vector
< double > > 
outputForMpsFile ()
 returns the boundary operator along with the faces areas to create the columns of an mps file
std::vector< std::vector< int > > boundaryVector (std::vector< std::vector< int > > &shortPath)
 Returns the 1-D boundary required to compute the minimum surface of the input mesh.
std::vector< std::vector< int > > boundaryVectorOuterSurface (std::vector< std::vector< int > > &shortPath)
 Returns the 1-D boundary required to compute the minimum surface of the input mesh boundary faces.
std::vector< Entity * > MinimumSurfaceFaces (std::vector< int > VectorFromLPSolver)
 Returns the corresponding entities of rank 2 that build the minimum surface.
int NumberOfRepetitions (std::vector< Entity * > &entities, Entity *entity)
 Returns the number of times an entity is repeated in a vector.
std::vector< double > findCoordinates (unsigned int nodeIdentifier)
 Returns the coordinates of an input node.
void barycentricSubdivision_ ()
 ----------------------------------------------------------------------
void divideSegmentsHalf ()
 Divide former mesh segments by half.
void addcentroid ()
void connectcentroid ()
void addnewfaces ()
void connectnewfaces ()
void setSTKMeshStruct (RCP< Albany::AbstractSTKMeshStruct > const &sms)
 Accessors and mutators.
RCP
< Albany::AbstractSTKMeshStruct > & 
getSTKMeshStruct ()
void setDiscretization (RCP< Albany::AbstractDiscretization > const &d)
RCP
< Albany::AbstractDiscretization > & 
getDiscretization ()
BulkData * getBulkData ()
stk::mesh::fem::FEMMetaData * getMetaData ()
void setCellTopology (shards::CellTopology const &ct)
shards::CellTopology & getCellTopology ()
size_t const getSpaceDimension ()
EntityRank const getCellRank ()
EntityRank const getBoundaryRank ()
IntScalarFieldTypegetFractureState ()
void setFractureCriterion (RCP< AbstractFractureCriterion > const &fc)
RCP< AbstractFractureCriterion > & getFractureCriterion ()
bool isLocalEntity (Entity const &e)
void setFractureState (Entity const &e, FractureState const fs)
FractureState getFractureState (Entity const &e)
bool isInternal (Entity const &e)
bool isOpen (Entity const &e)
bool isInternalAndOpen (Entity const &e)
bool checkOpen (Entity const &e)
void initializeFractureState ()
 Initialization of the open field for fracture.

Protected Member Functions

 Topology ()
 Hide default constructor for Topology.

Private Member Functions

void createDiscretization ()
 Create Albany discretization.
void setHighestIds ()
 Assigns Ids to new nodes (not comptabile with STK) FIXME check this method.

Private Attributes

RCP
< Albany::AbstractDiscretization
discretization_
RCP
< Albany::AbstractSTKMeshStruct
stk_mesh_struct_
std::vector< EntityVector > connectivity_temp_
std::map< int, int > element_global_to_local_ids_
std::set< EntityPairfractured_faces_
std::vector< int > highest_ids_
shards::CellTopology cell_topology_
RCP< AbstractFractureCriterionfracture_criterion_
 Pointer to failure criterion object.

Detailed Description

Definition at line 19 of file Topology.h.


Member Enumeration Documentation

Output the graph associated with the mesh to graphviz .dot file for visualization purposes.

Parameters:
[in] output file

To create final output figure, run command below from terminal: dot -Tpng <gviz_output>.dot -o <gviz_output>.png

Enumerator:
UNIDIRECTIONAL_UNILEVEL 
UNDIRECTIONAL_MULTILEVEL 
BIDIRECTIONAL_UNILEVEL 
BIDIRECTIONAL_MULTILEVEL 

Definition at line 89 of file Topology.h.


Constructor & Destructor Documentation

LCM::Topology::Topology ( std::string const &  input_file,
std::string const &  output_file 
)

Create mesh data structure.

Parameters:
[in] input_file is exodus II input file name
[in] output_file is exodus II output file name

Use if want to create new Albany mesh object

Definition at line 26 of file Topology.cc.

LCM::Topology::Topology ( RCP< Albany::AbstractDiscretization > &  discretization  ) 

Create mesh data structure.

Parameters:
[in] Albany discretization object

Use if already have an Albany mesh object

Definition at line 95 of file Topology.cc.

LCM::Topology::Topology ( RCP< Albany::AbstractDiscretization > &  discretization,
RCP< AbstractFractureCriterion > &  fracture_criterion 
)

Create mesh data structure.

Parameters:
[in] Albany discretization object
[in] Fracture criterion object

Use if already have an Albany mesh object, and want to fracture the mesh based on a criterion.

Definition at line 121 of file Topology.cc.

LCM::Topology::Topology (  )  [protected]

Hide default constructor for Topology.

Definition at line 15 of file Topology.cc.


Member Function Documentation

void LCM::Topology::setEntitiesOpen ( std::map< EntityKey, bool > &  entity_open  ) 

Iterates over the boundary entities of the mesh of (all entities of rank dimension-1) and checks fracture criterion.

Parameters:
map of entity and boolean value is entity open

If fracture_criterion is met, the entity and all lower order entities associated with it are marked as open.

Definition at line 1503 of file Topology.cc.

void LCM::Topology::setEntitiesOpen (  ) 

Definition at line 1429 of file Topology.cc.

void LCM::Topology::setEntitiesOpen ( EntityVector const &  fractured_faces,
std::map< EntityKey, bool > &  entity_open 
)

Iterates over the boundary entities contained in the passed-in vector and opens each edge traversed.

Parameters:
vector of faces to open, map of entity and boolean value is entity opened

If entity is in the vector, the entity and all lower order entities associated with it are marked as open.

Parameters:
vector of edges to open, map of entity and boolean value is entity opened

If entity is in the vector, the entity and all lower order entities associated with it are marked as open.

Definition at line 1567 of file Topology.cc.

void LCM::Topology::outputToGraphviz ( std::string const &  output_filename,
OutputType const   output_type = UNIDIRECTIONAL_UNILEVEL 
)

Definition at line 1859 of file Topology.cc.

void LCM::Topology::graphInitialization (  ) 

Initializes the default stk mesh object needed by class.

Creates the full mesh representation of the mesh. Default stk mesh object has only elements and nodes. Function will delete unneeded relations between as described in Topology::remove_extra_relations().

Attention:
Function must be called before mesh modification begins.
Call function once. Creation of extra entities and relations is slow.

Definition at line 204 of file Topology.cc.

void LCM::Topology::removeExtraRelations (  ) 

Removes unneeded relations from the mesh.

stk::mesh::create_adjacent_entities creates full mesh representation of the mesh instead of the default of only the elements and nodes. All entities created by the function are connected through relationships. Graph algorithms require relationships to only exist between entities separated by one degree, e.g. elements and faces in a 3D graph. Function removes all other relationships.

Note:
Valid for 2D and 3D meshes.

Definition at line 304 of file Topology.cc.

void LCM::Topology::removeNodeRelations (  ) 

Creates temporary nodal connectivity for the elements and removes the relationships between the elements and nodes.

Attention:
Must be called every time before mesh topology changes begin.

Definition at line 364 of file Topology.cc.

void LCM::Topology::removeMultiLevelRelations (  ) 

Our canonical graph representation has edges (relations) that connect vertices (entities) with a difference in dimension (rank) of exactly one.

This method removes all relations that do not conform to the above, leaving intact those needed for STK (between cells and points). This is required for the graph fracture algorithm to work.

Definition at line 222 of file Topology.cc.

std::vector< EntityVector > LCM::Topology::getElementToNodeConnectivity (  ) 

Returns array of pointers to Entities for the element to node relations.

Definition at line 394 of file Topology.cc.

void LCM::Topology::removeElementToNodeConnectivity ( std::vector< EntityVector > &  v  ) 

Returns array of pointers to Entities for the element to node relations.

Definition at line 438 of file Topology.cc.

void LCM::Topology::restoreElementToNodeConnectivity (  ) 

After mesh manipulations are complete, need to recreate a stk mesh understood by Albany_STKDiscretization.

Recreates the nodal connectivity using connectivity_temp_.

Attention:
must be called before mesh modification has ended

Definition at line 472 of file Topology.cc.

void LCM::Topology::restoreElementToNodeConnectivity ( std::vector< EntityVector > &  v  ) 

After mesh manipulations are complete, need to recreate a stk mesh understood by Albany_STKDiscretization.

Definition at line 507 of file Topology.cc.

EntityVector LCM::Topology::getFaceNodes ( Entity entity  ) 

Determine the nodes associated with a face.

Parameters:
[in] Face entity
Returns:
vector of nodes for the face

Return an ordered list of nodes which describe the input face. In 2D, the face of the element is a line segment. In 3D, the face is a surface. Generalized for all element types valid in stk_mesh. Valid in 2D and 3D.

Attention:
Assumes all mesh elements are same type.

Definition at line 533 of file Topology.cc.

EntityVector LCM::Topology::getBoundaryEntityNodes ( Entity const &  boundary_entity  ) 

Definition at line 563 of file Topology.cc.

void LCM::Topology::outputBoundary (  ) 

Output boundary.

Definition at line 682 of file Topology.cc.

void LCM::Topology::createBoundary (  ) 

Create boundary mesh.

Definition at line 608 of file Topology.cc.

EntityVector LCM::Topology::createSurfaceElementConnectivity ( Entity const &  face1,
Entity const &  face2 
)

Create surface element connectivity.

Parameters:
[in] Face 1
[in] Face 2
Returns:
Cohesive connectivity

Given the two faces after insertion process, create the connectivity of the cohesive element.

Attention:
Assumes that all elements have the same topology

Definition at line 748 of file Topology.cc.

void LCM::Topology::createStar ( Entity entity,
std::set< EntityKey > &  subgraph_entities,
std::set< stkEdge, EdgeLessThan > &  subgraph_edges 
)

Create vectors describing the vertices and edges of the star of an entity in the stk mesh.

Parameters:
[in] source entity of the star
list of entities in the star
list of edges in the star

The star of a graph vertex is defined as the vertex and all higher order vertices which are connected to it when traversing up the graph from the input vertex.

Attention:
Valid for entities of all ranks

Definition at line 830 of file Topology.cc.

void LCM::Topology::splitOpenFaces (  ) 

Fractures all open boundary entities of the mesh.

Parameters:
[in] map of entity and boolean value is entity open

Iterate through the faces of the mesh and split into two faces if marked as open. The elements associated with an open face are separated. All lower order entities of the face are updated for a consistent mesh.

Todo:
generalize the function for 2D meshes

Definition at line 867 of file Topology.cc.

void LCM::Topology::splitOpenFaces ( std::map< EntityKey, bool > &  open_entity_map  ) 

Definition at line 1259 of file Topology.cc.

void LCM::Topology::splitOpenFaces ( std::map< EntityKey, bool > &  open_entity_map,
std::vector< EntityVector > &  old_connectivity,
std::vector< EntityVector > &  new_connectivity 
)
void LCM::Topology::addElement ( EntityRank  entity_rank  ) 

Adds a new entity of rank 3 to the mesh.

void LCM::Topology::addEntities ( std::vector< size_t > &  requests  ) 

creates several entities at a time.

The information about the type of entity and the amount of entities is contained in the input vector called: "requests"

void LCM::Topology::removeEntity ( Entity entity  ) 

Removes an entity and all its connections.

void LCM::Topology::addRelation ( Entity source_entity,
Entity target_entity,
EdgeId  local_relation_id 
)

Adds a relation between two entities.

void LCM::Topology::removeRelation ( Entity source_entity,
Entity target_entity,
EdgeId  local_relation_id 
)

Removes the relation between two entities.

EntityVector LCM::Topology::getEntitiesByRank ( BulkData const &  mesh,
EntityRank  entity_rank 
)

Returns a vector with all the mesh entities of a specific rank.

EntityVector::size_type LCM::Topology::getNumberEntitiesByRank ( BulkData const &  mesh,
EntityRank  entity_rank 
)

Number of entities of a specific rank.

EdgeId LCM::Topology::getLocalRelationId ( Entity const &  source_entity,
Entity const &  target_entity 
)

Gets the local relation id (0,1,2,...) between two entities.

int LCM::Topology::getNumberLowerRankEntities ( Entity const &  entity  ) 

Returns the total number of lower rank entities connected to a specific entity.

EntityVector LCM::Topology::getDirectlyConnectedEntities ( Entity const &  entity,
EntityRank  entity_rank 
)

Returns a group of entities connected directly to a given entity.

The input rank is the rank of the returned entities.

bool LCM::Topology::findEntityInVector ( EntityVector &  entities,
Entity entity 
)

Checks if an entity exists inside a specific vector.

EntityVector LCM::Topology::getBoundaryEntities ( Entity const &  entity,
EntityRank  entity_rank 
)

Returns a group of entities connected indirectly to a given entity.

e.g. of returns: nodes that belong to a face segments or nodes that belong to an element The input rank is the rank of the returned entities. The input rank must be lower than that of the input entity

bool LCM::Topology::segmentIsConnected ( Entity const &  segment,
Entity node 
)

Checks if a segment is connected to an input node.

Returns "true" if the segment connects to the node.

EntityVector LCM::Topology::findAdjacentSegments ( Entity const &  segment,
Entity node 
)

Finds the adjacent segments to a given segment.

The adjacent segments are connected to a given common point. it returns adjacent segments

EntityVector LCM::Topology::findCellRelations ( Entity const &  face  ) 

Returns all the highest dimensional topology entities to which a given face belongs.

EntityVector LCM::Topology::findSegmentsFromElement ( Entity const &  element  ) 

Returns all the segments at the boundary of a given element.

Including those connected between the faces barycenters and the faces boundary nodes

bool LCM::Topology::facesShareTwoPoints ( Entity const &  face1,
Entity const &  face2 
)

Returns true if the faces share a segment (two points).

EntityVector LCM::Topology::findAdjacentSegmentsFromFace ( std::vector< EntityVector > const &  faces_inside_element,
Entity const &  face,
int  element_number 
)

returns the adjacent segments from a given face

double* LCM::Topology::getPointerOfCoordinates ( Entity entity  ) 

Returns a pointer with the coordinates of a given entity.

EntityVector LCM::Topology::getFormerElementNodes ( Entity const &  element,
std::vector< EntityVector > const &  entities 
)

Returns a vector with the corresponding former boundary nodes of an input entity.

void LCM::Topology::computeBarycentricCoordinates ( EntityVector const &  entities,
Entity barycenter 
)

Generates the coordinate of a given barycenter "entities" is a vector with points that belong to the same entity of the barycenter(e.g segment, face, or element).

void LCM::Topology::barycentricSubdivision (  ) 

Barycentric subdivision.

std::vector<Entity*> LCM::Topology::getClosestNodes ( std::vector< std::vector< double > >  points  ) 

Finds the closest nodes(Entities of rank 0) to each of the three points in the input vector.

EntityVector

std::vector<Entity*> LCM::Topology::getClosestNodesOnSurface ( std::vector< std::vector< double > >  points  ) 

Finds the closest nodes(Entities of rank 0) to each of the three points in the input vectorThese nodes lie over the surface of the mesh.

double LCM::Topology::getDistanceNodeAndPoint ( Entity node,
std::vector< double >  point 
)

calculates the distance between a node and a point

std::vector<std::vector<double> > LCM::Topology::getCoordinatesOfTriangle ( std::vector< double > const   normalToPlane  ) 

Returns the coordinates of the points that form a equilateral triangle.

This triangle lies on the plane that intersects the ellipsoid.

double LCM::Topology::randomNumber ( double  valMin,
double  valMax 
)

Return a random number between two given numbers.

double LCM::Topology::getDistanceBetweenNodes ( Entity node1,
Entity node2 
)

Returns the distance between two entities of rank 0 (nodes).

std::vector<double> LCM::Topology::getCoordinatesOfMaxAndMin (  ) 

Returns the coordinates of the max and min of x y and z in the order max of, min of x, max of y, min of y, max of z, min of z.

std::vector<Entity*> LCM::Topology::MeshEdgesShortestPath (  ) 

Returns the edges necessary to compute the shortest path on the outer surface of the mesh.

std::vector<std::vector<int> > LCM::Topology::shortestpathOnBoundaryFaces ( std::vector< Entity * > const &  nodes,
std::vector< Entity * > const &  MeshEdgesShortestPath 
)

Returns the shortest path over the boundary faces given three input nodes and the edges that belong to the outer surface.

std::vector<std::vector<int> > LCM::Topology::shortestpath ( std::vector< Entity * > const &  nodes  ) 

Returns the shortest path between three input nodes.

std::vector<std::vector<int> > LCM::Topology::edgesDirections (  ) 

Returns the directions of all the edges of the input mesh.

std::vector<std::vector<int> > LCM::Topology::edgesDirectionsOuterSurface (  ) 

Returns the directions of all the boundary edges of the input mesh.

std::vector<std::vector<int> > LCM::Topology::facesDirections (  ) 

Returns the directions of all of the faces of the input mesh.

std::vector<double> LCM::Topology::facesAreas (  ) 

Returns a vector with the areas of each of the faces of the input mesh.

std::vector<std::vector<int> > LCM::Topology::boundaryOperator (  ) 

Returns the boundary operator of the input mesh.

matrix that has nonzeros only

std::vector<std::vector<double> > LCM::Topology::outputForMpsFile (  ) 

returns the boundary operator along with the faces areas to create the columns of an mps file

std::vector<std::vector<int> > LCM::Topology::boundaryVector ( std::vector< std::vector< int > > &  shortPath  ) 

Returns the 1-D boundary required to compute the minimum surface of the input mesh.

The input to this function is a shortest path (composed by egdes) between three nodes

std::vector<std::vector<int> > LCM::Topology::boundaryVectorOuterSurface ( std::vector< std::vector< int > > &  shortPath  ) 

Returns the 1-D boundary required to compute the minimum surface of the input mesh boundary faces.

The input to this function is a shortest path (composed by edges) between three nodes

std::vector<Entity*> LCM::Topology::MinimumSurfaceFaces ( std::vector< int >  VectorFromLPSolver  ) 

Returns the corresponding entities of rank 2 that build the minimum surface.

It takes as an input the resulting vector taken from the solution of the linear programming solver

int LCM::Topology::NumberOfRepetitions ( std::vector< Entity * > &  entities,
Entity entity 
)

Returns the number of times an entity is repeated in a vector.

std::vector<double> LCM::Topology::findCoordinates ( unsigned int  nodeIdentifier  ) 

Returns the coordinates of an input node.

The input is the identifier of a node

void LCM::Topology::barycentricSubdivision_ (  ) 

----------------------------------------------------------------------

Practice creating the barycentric subdivision

void LCM::Topology::divideSegmentsHalf (  ) 

Divide former mesh segments by half.

void LCM::Topology::addcentroid (  ) 
void LCM::Topology::connectcentroid (  ) 
void LCM::Topology::addnewfaces (  ) 
void LCM::Topology::connectnewfaces (  ) 
void LCM::Topology::setSTKMeshStruct ( RCP< Albany::AbstractSTKMeshStruct > const &  sms  )  [inline]

Accessors and mutators.

Definition at line 612 of file Topology.h.

RCP<Albany::AbstractSTKMeshStruct>& LCM::Topology::getSTKMeshStruct (  )  [inline]

Definition at line 616 of file Topology.h.

void LCM::Topology::setDiscretization ( RCP< Albany::AbstractDiscretization > const &  d  )  [inline]

Definition at line 620 of file Topology.h.

RCP<Albany::AbstractDiscretization>& LCM::Topology::getDiscretization (  )  [inline]

Definition at line 624 of file Topology.h.

BulkData* LCM::Topology::getBulkData (  )  [inline]

Definition at line 628 of file Topology.h.

stk::mesh::fem::FEMMetaData* LCM::Topology::getMetaData (  )  [inline]

Definition at line 632 of file Topology.h.

void LCM::Topology::setCellTopology ( shards::CellTopology const &  ct  )  [inline]

Definition at line 636 of file Topology.h.

shards::CellTopology& LCM::Topology::getCellTopology (  )  [inline]

Definition at line 640 of file Topology.h.

size_t const LCM::Topology::getSpaceDimension (  )  [inline]

Definition at line 644 of file Topology.h.

EntityRank const LCM::Topology::getCellRank (  )  [inline]

Definition at line 647 of file Topology.h.

EntityRank const LCM::Topology::getBoundaryRank (  )  [inline]

Definition at line 650 of file Topology.h.

IntScalarFieldType& LCM::Topology::getFractureState (  )  [inline]

Definition at line 657 of file Topology.h.

void LCM::Topology::setFractureCriterion ( RCP< AbstractFractureCriterion > const &  fc  )  [inline]

Definition at line 661 of file Topology.h.

RCP<AbstractFractureCriterion>& LCM::Topology::getFractureCriterion (  )  [inline]

Definition at line 665 of file Topology.h.

bool LCM::Topology::isLocalEntity ( Entity const &  e  )  [inline]

Definition at line 669 of file Topology.h.

void LCM::Topology::setFractureState ( Entity const &  e,
FractureState const   fs 
) [inline]

Definition at line 676 of file Topology.h.

FractureState LCM::Topology::getFractureState ( Entity const &  e  )  [inline]

Definition at line 687 of file Topology.h.

bool LCM::Topology::isInternal ( Entity const &  e  )  [inline]

Definition at line 695 of file Topology.h.

bool LCM::Topology::isOpen ( Entity const &  e  )  [inline]

Definition at line 711 of file Topology.h.

bool LCM::Topology::isInternalAndOpen ( Entity const &  e  )  [inline]

Definition at line 716 of file Topology.h.

bool LCM::Topology::checkOpen ( Entity const &  e  )  [inline]

Definition at line 721 of file Topology.h.

void LCM::Topology::initializeFractureState (  ) 

Initialization of the open field for fracture.

Definition at line 139 of file Topology.cc.

void LCM::Topology::createDiscretization (  )  [private]

Create Albany discretization.

Called by constructor

Definition at line 171 of file Topology.cc.

void LCM::Topology::setHighestIds (  )  [private]

Assigns Ids to new nodes (not comptabile with STK) FIXME check this method.


Member Data Documentation

Definition at line 749 of file Topology.h.

Definition at line 751 of file Topology.h.

std::vector<EntityVector> LCM::Topology::connectivity_temp_ [private]

Definition at line 753 of file Topology.h.

std::map<int, int> LCM::Topology::element_global_to_local_ids_ [private]

Definition at line 755 of file Topology.h.

Definition at line 757 of file Topology.h.

std::vector<int> LCM::Topology::highest_ids_ [private]

Definition at line 759 of file Topology.h.

shards::CellTopology LCM::Topology::cell_topology_ [private]
Attention:
Topology of elements in mesh. Only valid if one element type used. Will not give correct results if mesh has multiple element types.

Definition at line 764 of file Topology.h.

Pointer to failure criterion object.

Definition at line 767 of file Topology.h.


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