#include <Topology.h>
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 () |
IntScalarFieldType & | getFractureState () |
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< EntityPair > | fractured_faces_ |
std::vector< int > | highest_ids_ |
shards::CellTopology | cell_topology_ |
RCP< AbstractFractureCriterion > | fracture_criterion_ |
Pointer to failure criterion object. |
Definition at line 19 of file Topology.h.
Output the graph associated with the mesh to graphviz .dot file for visualization purposes.
[in] | output | file |
To create final output figure, run command below from terminal: dot -Tpng <gviz_output>.dot -o <gviz_output>.png
UNIDIRECTIONAL_UNILEVEL | |
UNDIRECTIONAL_MULTILEVEL | |
BIDIRECTIONAL_UNILEVEL | |
BIDIRECTIONAL_MULTILEVEL |
Definition at line 89 of file Topology.h.
LCM::Topology::Topology | ( | std::string const & | input_file, | |
std::string const & | output_file | |||
) |
Create mesh data structure.
[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.
[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.
[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.
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.
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.
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.
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().
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.
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.
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_.
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.
[in] | Face | entity |
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.
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.
Given the two faces after insertion process, create the connectivity of the cohesive element.
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.
[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.
Definition at line 830 of file Topology.cc.
void LCM::Topology::splitOpenFaces | ( | ) |
Fractures all open boundary entities of the mesh.
[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.
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
Checks if a segment is connected to an input node.
Returns "true" if the segment connects to the 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
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.
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
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] |
void LCM::Topology::setHighestIds | ( | ) | [private] |
Assigns Ids to new nodes (not comptabile with STK) FIXME check this method.
RCP<Albany::AbstractDiscretization> LCM::Topology::discretization_ [private] |
Definition at line 749 of file Topology.h.
RCP<Albany::AbstractSTKMeshStruct> LCM::Topology::stk_mesh_struct_ [private] |
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.
std::set<EntityPair> LCM::Topology::fractured_faces_ [private] |
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] |
Definition at line 764 of file Topology.h.
RCP<AbstractFractureCriterion> LCM::Topology::fracture_criterion_ [private] |
Pointer to failure criterion object.
Definition at line 767 of file Topology.h.