escript
Revision_Unversioneddirectory
|
#include "Dudley.h"
#include "NodeFile.h"
#include "ElementFile.h"
#include "TagMap.h"
#include "Util.h"
#include "paso/SystemMatrixPattern.h"
#include "escript/DataC.h"
Go to the source code of this file.
Classes | |
struct | Dudley_Mesh |
struct | Dudley_Mesh_findMatchingFaces_center |
Typedefs | |
typedef struct Dudley_Mesh | Dudley_Mesh |
typedef struct Dudley_Mesh_findMatchingFaces_center | Dudley_Mesh_findMatchingFaces_center |
typedef struct Dudley_Mesh Dudley_Mesh |
paso::SystemMatrixPattern_ptr Dudley_getPattern | ( | Dudley_Mesh * | mesh, |
bool | reduce_row_order, | ||
bool | reduce_col_order | ||
) |
References Dudley_makePattern(), Dudley_noError(), Dudley_resetError(), Dudley_Mesh::FullFullPattern, Dudley_Mesh::FullReducedPattern, Dudley_Mesh::ReducedFullPattern, and Dudley_Mesh::ReducedReducedPattern.
Referenced by dudley::MeshAdapter::newSystemMatrix(), and dudley::MeshAdapter::newTransportProblem().
paso::SystemMatrixPattern_ptr Dudley_makePattern | ( | Dudley_Mesh * | mesh, |
bool | reduce_row_order, | ||
bool | reduce_col_order | ||
) |
References Dudley_NodeFile::degreesOfFreedomConnector, Dudley_NodeFile::degreesOfFreedomDistribution, Dudley_NodeFile::degreesOfFreedomMapping, Dudley_IndexList_insertElements(), Dudley_noError(), Dudley_resetError(), Dudley_Mesh::Elements, esysUtils::Esys_MPIInfo_noError(), Dudley_Mesh::FaceElements, paso::Pattern::fromIndexListArray(), MATRIX_FORMAT_DEFAULT, Dudley_Mesh::MPIInfo, Dudley_Mesh::Nodes, Dudley_NodeMapping::numTargets, Dudley_Mesh::Points, Dudley_NodeFile::reducedDegreesOfFreedomConnector, Dudley_NodeFile::reducedDegreesOfFreedomDistribution, Dudley_NodeFile::reducedDegreesOfFreedomMapping, and Dudley_NodeMapping::target.
Referenced by Dudley_getPattern().
void Dudley_Mesh_addTagMap | ( | Dudley_Mesh * | mesh_p, |
const char * | name, | ||
index_t | tag_key | ||
) |
References Dudley_TagMap_insert(), and Dudley_Mesh::TagMap.
Referenced by Dudley_Mesh_read(), Dudley_Mesh_readGmsh(), Dudley_TriangularMesh_Tet4(), Dudley_TriangularMesh_Tri3(), dudley::loadMesh(), and dudley::MeshAdapter::setTagMap().
Dudley_Mesh* Dudley_Mesh_alloc | ( | char * | name, |
dim_t | numDim, | ||
esysUtils::JMPI & | mpi_info | ||
) |
References Dudley_Mesh::approximationOrder, Dudley_checkPtr(), Dudley_Mesh_free(), Dudley_NodeFile_alloc(), Dudley_noError(), Dudley_Mesh::Elements, Dudley_Mesh::FaceElements, Dudley_Mesh::integrationOrder, Dudley_Mesh::MPIInfo, Dudley_Mesh::Name, Dudley_Mesh::Nodes, Dudley_Mesh::Points, Dudley_Mesh::reducedApproximationOrder, Dudley_Mesh::reducedIntegrationOrder, Dudley_Mesh::reference_counter, and Dudley_Mesh::TagMap.
Referenced by Dudley_Mesh_read(), Dudley_Mesh_readGmsh(), Dudley_TriangularMesh_Tet4(), Dudley_TriangularMesh_Tri3(), and dudley::loadMesh().
void Dudley_Mesh_createColoring | ( | Dudley_Mesh * | in, |
index_t * | node_localDOF_map | ||
) |
void Dudley_Mesh_createMappings | ( | Dudley_Mesh * | in, |
index_t * | dof_distribution, | ||
index_t * | node_distribution | ||
) |
References Dudley_checkPtr(), Dudley_Mesh_createNodeFileMappings(), Dudley_Mesh_markNodes(), Dudley_noError(), Dudley_Util_packMask(), Dudley_Mesh::Nodes, Dudley_NodeFile::numNodes, and TRUE.
Referenced by dudley::loadMesh().
void Dudley_Mesh_createNodeFileMappings | ( | Dudley_Mesh * | in, |
dim_t | numReducedNodes, | ||
index_t * | indexReducedNodes, | ||
index_t * | dof_first_component, | ||
index_t * | nodes_first_component | ||
) |
References Dudley_NodeFile::degreesOfFreedomConnector, Dudley_NodeFile::degreesOfFreedomDistribution, Dudley_NodeFile::degreesOfFreedomId, Dudley_NodeFile::degreesOfFreedomMapping, Dudley_checkPtr(), Dudley_Mesh_createDOFMappingAndCoupling(), Dudley_NodeMapping_alloc(), Dudley_NodeMapping_free(), Dudley_noError(), Dudley_Util_packMask(), FALSE, Dudley_NodeFile::globalDegreesOfFreedom, Dudley_NodeFile::globalNodesIndex, Dudley_NodeFile::Id, Dudley_NodeMapping::map, MPI_INT, Dudley_NodeFile::MPIInfo, Dudley_Mesh::Nodes, Dudley_NodeFile::nodesDistribution, Dudley_NodeFile::nodesMapping, Dudley_NodeFile::numNodes, Dudley_NodeMapping::numTargets, Dudley_NodeFile::reducedDegreesOfFreedomConnector, Dudley_NodeFile::reducedDegreesOfFreedomDistribution, Dudley_NodeFile::reducedDegreesOfFreedomId, Dudley_NodeFile::reducedDegreesOfFreedomMapping, Dudley_NodeFile::reducedNodesDistribution, Dudley_NodeFile::reducedNodesId, Dudley_NodeFile::reducedNodesMapping, TRUE, and UNUSED.
Referenced by Dudley_Mesh_createMappings(), and Dudley_Mesh_prepare().
void Dudley_Mesh_distributeByRankOfDOF | ( | Dudley_Mesh * | in, |
dim_t * | distribution | ||
) |
void Dudley_Mesh_dump | ( | Dudley_Mesh * | in, |
char * | fname | ||
) |
void Dudley_Mesh_findMatchingFaces | ( | Dudley_NodeFile * | , |
Dudley_ElementFile * | , | ||
double | , | ||
double | , | ||
int * | , | ||
int * | , | ||
int * | , | ||
int * | |||
) |
References ABS, Dudley_NodeFile::Coordinates, DBLE, Dudley_checkPtr(), Dudley_Mesh_findMatchingFaces_compar(), Dudley_Mesh_lockingGridSize, Dudley_noError(), Dudley_setError(), Dudley_Util_Gather_double(), Dudley_ElementFile::etype, getDist, getElementName(), INDEX2, INDEX3, LenErrorMsg_MAX, MAX, MAX_numDim, MIN, Dudley_ElementFile::Nodes, Dudley_NodeFile::numDim, Dudley_ElementFile::numElements, Dudley_ElementFile::numNodes, numNodesOnFaceMap, Dudley_Mesh_findMatchingFaces_center::refId, reverseNodesMap, shiftNodesMap, TYPE_ERROR, and VALUE_ERROR.
int Dudley_Mesh_findMatchingFaces_compar | ( | const void * | , |
const void * | |||
) |
References Dudley_Mesh_lockingGridSize, FALSE, MAX_numDim, Dudley_Mesh_findMatchingFaces_center::refId, TRUE, and Dudley_Mesh_findMatchingFaces_center::x.
Referenced by Dudley_Mesh_findMatchingFaces().
dim_t Dudley_Mesh_FindMinDegreeNode | ( | paso::SystemMatrixPattern_ptr | pattern_p, |
index_t * | available, | ||
index_t | indicator | ||
) |
void Dudley_Mesh_free | ( | Dudley_Mesh * | ) |
References Dudley_ElementFile_free(), Dudley_NodeFile_free(), Dudley_TagMap_free(), Dudley_Mesh::Elements, Dudley_Mesh::FaceElements, Dudley_Mesh::Name, Dudley_Mesh::Nodes, Dudley_Mesh::Points, Dudley_Mesh::reference_counter, and Dudley_Mesh::TagMap.
Referenced by dudley::cleanupAndThrow(), Dudley_Mesh_alloc(), Dudley_Mesh_read(), Dudley_Mesh_readGmsh(), Dudley_TriangularMesh_Tet4(), dudley::loadMesh(), and dudley::MeshAdapter::~MeshAdapter().
index_t Dudley_Mesh_getDegree | ( | paso::SystemMatrixPattern_ptr | pattern_p, |
index_t * | label | ||
) |
dim_t Dudley_Mesh_getDim | ( | Dudley_Mesh * | ) |
References Dudley_Mesh::Nodes, and Dudley_NodeFile::numDim.
Referenced by Dudley_Mesh_resolveNodeIds(), Dudley_Mesh_write(), Dudley_PrintMesh_Info(), and dudley::MeshAdapter::getDim().
int Dudley_Mesh_getStatus | ( | Dudley_Mesh * | in | ) |
References Dudley_Mesh::Nodes, and Dudley_NodeFile::status.
Referenced by dudley::MeshAdapter::getStatus().
index_t Dudley_Mesh_getTag | ( | Dudley_Mesh * | mesh_p, |
const char * | name | ||
) |
References Dudley_TagMap_getTag(), and Dudley_Mesh::TagMap.
Referenced by dudley::MeshAdapter::getTag().
void Dudley_Mesh_glueFaces | ( | Dudley_Mesh * | self, |
double | safety_factor, | ||
double | tolerance, | ||
bool | |||
) |
bool Dudley_Mesh_isValidTagName | ( | Dudley_Mesh * | mesh_p, |
const char * | name | ||
) |
References Dudley_TagMap_isValidTagName(), and Dudley_Mesh::TagMap.
Referenced by dudley::MeshAdapter::isValidTagName().
void Dudley_Mesh_joinFaces | ( | Dudley_Mesh * | self, |
double | safety_factor, | ||
double | tolerance, | ||
bool | |||
) |
Dudley_Mesh* Dudley_Mesh_load | ( | char * | fname | ) |
void Dudley_Mesh_markNodes | ( | int * | , |
int | , | ||
Dudley_Mesh * | , | ||
bool | |||
) |
Dudley_Mesh* Dudley_Mesh_merge | ( | dim_t | , |
Dudley_Mesh ** | |||
) |
void Dudley_Mesh_optimizeDOFDistribution | ( | Dudley_Mesh * | in, |
dim_t * | distribution | ||
) |
References Dudley_NodeFile::Coordinates, Dudley_IndexList_insertElementsWithRowRangeNoMainDiagonal(), Dudley_noError(), Dudley_Mesh::Elements, Dudley_Mesh::FaceElements, paso::Pattern::fromIndexListArray(), Dudley_NodeFile::globalDegreesOfFreedom, INDEX2, MAX, esysUtils::mod_rank(), MPI_INT, Dudley_Mesh::MPIInfo, Dudley_Mesh::Nodes, Dudley_NodeFile::numDim, Dudley_NodeFile::numNodes, and Dudley_Mesh::Points.
Referenced by Dudley_Mesh_prepare().
void Dudley_Mesh_optimizeDOFLabeling | ( | Dudley_Mesh * | , |
dim_t * | |||
) |
References Dudley_IndexList_insertElementsWithRowRangeNoMainDiagonal(), Dudley_noError(), Dudley_Mesh::Elements, esysUtils::Esys_MPIInfo_noError(), Dudley_Mesh::FaceElements, paso::Pattern::fromIndexListArray(), Dudley_NodeFile::globalDegreesOfFreedom, MAX, esysUtils::mod_rank(), MPI_INT, Dudley_Mesh::MPIInfo, Dudley_Mesh::Nodes, Dudley_NodeFile::numNodes, and Dudley_Mesh::Points.
Referenced by Dudley_Mesh_prepare().
void Dudley_Mesh_optimizeElementOrdering | ( | Dudley_Mesh * | in | ) |
References Dudley_ElementFile_optimizeOrdering(), Dudley_noError(), Dudley_Mesh::Elements, Dudley_Mesh::FaceElements, and Dudley_Mesh::Points.
Referenced by Dudley_Mesh_prepare().
void Dudley_Mesh_optimizeNodeLabeling | ( | Dudley_Mesh * | mesh_p | ) |
void Dudley_Mesh_prepare | ( | Dudley_Mesh * | in, |
bool | optimize | ||
) |
References Dudley_checkPtr(), Dudley_Mesh_createNodeFileMappings(), Dudley_Mesh_distributeByRankOfDOF(), Dudley_Mesh_markNodes(), Dudley_Mesh_optimizeDOFDistribution(), Dudley_Mesh_optimizeDOFLabeling(), Dudley_Mesh_optimizeElementOrdering(), Dudley_Mesh_setOrders(), Dudley_Mesh_setTagsInUse(), Dudley_NodeFile_createDenseDOFLabeling(), Dudley_NodeFile_createDenseNodeLabeling(), Dudley_NodeFile_createDenseReducedDOFLabeling(), Dudley_NodeFile_createDenseReducedNodeLabeling(), Dudley_noError(), Dudley_Util_packMask(), Dudley_Mesh::MPIInfo, Dudley_Mesh::Nodes, Dudley_NodeFile::numNodes, and TRUE.
Referenced by Dudley_Mesh_read(), Dudley_Mesh_readGmsh(), Dudley_TriangularMesh_Tet4(), and Dudley_TriangularMesh_Tri3().
void Dudley_Mesh_print | ( | Dudley_Mesh * | in | ) |
References Dudley_ElementFile::Color, Dudley_NodeFile::Coordinates, Dudley_NodeFile::degreesOfFreedomMapping, Dudley_Mesh::Elements, Dudley_ElementFile::ename, Dudley_Mesh::FaceElements, Dudley_NodeFile::globalDegreesOfFreedom, Dudley_NodeFile::Id, Dudley_ElementFile::Id, INDEX2, Dudley_ElementFile::maxColor, Dudley_ElementFile::minColor, Dudley_Mesh::Name, Dudley_ElementFile::Nodes, Dudley_Mesh::Nodes, Dudley_NodeFile::nodesMapping, Dudley_NodeFile::numDim, Dudley_ElementFile::numElements, Dudley_NodeFile::numNodes, Dudley_ElementFile::numNodes, Dudley_ElementFile::Owner, Dudley_Mesh::Points, Dudley_NodeFile::reducedDegreesOfFreedomMapping, Dudley_NodeFile::reducedNodesMapping, Dudley_NodeFile::Tag, Dudley_ElementFile::Tag, and Dudley_NodeMapping::target.
Dudley_Mesh* Dudley_Mesh_read | ( | char * | , |
index_t | , | ||
index_t | , | ||
bool | |||
) |
References Dudley_ElementFile::Color, Dudley_NodeFile::Coordinates, Dudley_ElementFile_alloc(), Dudley_ElementFile_allocTable(), Dudley_Mesh_addTagMap(), Dudley_Mesh_alloc(), Dudley_Mesh_free(), Dudley_Mesh_prepare(), Dudley_Mesh_resolveNodeIds(), Dudley_NodeFile_allocTable(), Dudley_noError(), Dudley_NoRef, Dudley_resetError(), Dudley_setError(), Dudley_Mesh::Elements, eltTypeFromString(), ESYS_MPI_ERROR, Dudley_Mesh::FaceElements, FSCANF_CHECK, Dudley_NodeFile::globalDegreesOfFreedom, Dudley_NodeFile::Id, Dudley_ElementFile::Id, INDEX2, IO_ERROR, LenErrorMsg_MAX, LenString_MAX, esysUtils::makeInfo(), Dudley_ElementFile::maxColor, Dudley_ElementFile::minColor, MPI_COMM_WORLD, MPI_DOUBLE, MPI_INT, Dudley_ElementFile::Nodes, Dudley_Mesh::Nodes, Dudley_ElementFile::numNodes, Dudley_ElementFile::Owner, Dudley_Mesh::Points, Dudley_NodeFile::Tag, Dudley_ElementFile::Tag, TMPMEMREALLOC, and VALUE_ERROR.
Referenced by dudley::readMesh().
Dudley_Mesh* Dudley_Mesh_readGmsh | ( | char * | , |
index_t | , | ||
index_t | , | ||
index_t | , | ||
bool | , | ||
bool | |||
) |
References Dudley_ElementFile::Color, Dudley_NodeFile::Coordinates, Dudley_checkPtr(), Dudley_ElementFile_alloc(), Dudley_ElementFile_allocTable(), Dudley_Line2, Dudley_Mesh_addTagMap(), Dudley_Mesh_alloc(), Dudley_Mesh_free(), Dudley_Mesh_prepare(), Dudley_Mesh_resolveNodeIds(), Dudley_NodeFile_allocTable(), Dudley_noError(), Dudley_NoRef, Dudley_Point1, Dudley_resetError(), Dudley_setError(), Dudley_Tet4, Dudley_timer(), Dudley_Tri3, ripley::Elements, Dudley_Mesh::Elements, ripley::FaceElements, Dudley_Mesh::FaceElements, FSCANF_CHECK, Dudley_NodeFile::globalDegreesOfFreedom, Dudley_NodeFile::Id, Dudley_ElementFile::Id, INDEX2, IO_ERROR, LenErrorMsg_MAX, LenString_MAX, esysUtils::makeInfo(), MAX_numNodes_gmsh, Dudley_ElementFile::maxColor, Dudley_ElementFile::minColor, MPI_COMM_WORLD, Dudley_ElementFile::Nodes, Dudley_Mesh::Nodes, Dudley_ElementFile::Owner, Dudley_Mesh::Points, Dudley_NodeFile::Tag, and Dudley_ElementFile::Tag.
Referenced by dudley::readGmsh().
Dudley_Mesh* Dudley_Mesh_reference | ( | Dudley_Mesh * | ) |
References Dudley_Mesh::reference_counter.
void Dudley_Mesh_relableElementNodes | ( | int * | , |
int | , | ||
Dudley_Mesh * | |||
) |
References Dudley_ElementFile_relableNodes(), Dudley_Mesh::Elements, Dudley_Mesh::FaceElements, and Dudley_Mesh::Points.
Referenced by Dudley_Mesh_resolveNodeIds().
void Dudley_Mesh_resolveNodeIds | ( | Dudley_Mesh * | ) |
References Dudley_checkPtr(), Dudley_ElementFile_setNodeRange(), Dudley_Mesh_getDim(), Dudley_Mesh_markNodes(), Dudley_Mesh_relableElementNodes(), Dudley_NodeFile_alloc(), Dudley_NodeFile_allocTable(), Dudley_NodeFile_free(), Dudley_NodeFile_gather_global(), Dudley_noError(), Dudley_Util_packMask(), Dudley_Mesh::Elements, Dudley_Mesh::FaceElements, FALSE, INDEX_T_MAX, MAX, MIN, MPI_INT, MPI_MAX, Dudley_Mesh::MPIInfo, Dudley_Mesh::Nodes, and Dudley_Mesh::Points.
Referenced by Dudley_Mesh_distributeByRankOfDOF(), Dudley_Mesh_read(), Dudley_Mesh_readGmsh(), Dudley_TriangularMesh_Tet4(), and Dudley_TriangularMesh_Tri3().
void Dudley_Mesh_setCoordinates | ( | Dudley_Mesh * | , |
const escript::Data * | |||
) |
References Dudley_NodeFile_setCoordinates().
Referenced by dudley::MeshAdapter::setNewX().
void Dudley_Mesh_setElements | ( | Dudley_Mesh * | self, |
Dudley_ElementFile * | elements | ||
) |
References Dudley_ElementFile_free().
Referenced by Dudley_TriangularMesh_Tet4(), and Dudley_TriangularMesh_Tri3().
void Dudley_Mesh_setFaceElements | ( | Dudley_Mesh * | self, |
Dudley_ElementFile * | elements | ||
) |
References Dudley_ElementFile_free().
Referenced by Dudley_TriangularMesh_Tet4(), and Dudley_TriangularMesh_Tri3().
void Dudley_Mesh_setOrders | ( | Dudley_Mesh * | in | ) |
void Dudley_Mesh_setPoints | ( | Dudley_Mesh * | self, |
Dudley_ElementFile * | elements | ||
) |
References Dudley_ElementFile_free().
Referenced by Dudley_TriangularMesh_Tet4(), and Dudley_TriangularMesh_Tri3().
void Dudley_Mesh_setTagsInUse | ( | Dudley_Mesh * | in | ) |
void Dudley_Mesh_write | ( | Dudley_Mesh * | , |
char * | |||
) |
References Dudley_NodeFile::Coordinates, Dudley_Mesh_getDim(), Dudley_setError(), Dudley_Mesh::Elements, Dudley_ElementFile::ename, Dudley_Mesh::FaceElements, Dudley_NodeFile::globalDegreesOfFreedom, Dudley_NodeFile::Id, Dudley_ElementFile::Id, INDEX2, IO_ERROR, LenErrorMsg_MAX, Dudley_Mesh::MPIInfo, Dudley_TagMap::name, Dudley_Mesh::Name, Dudley_TagMap::next, Dudley_ElementFile::Nodes, Dudley_Mesh::Nodes, Dudley_ElementFile::numElements, Dudley_NodeFile::numNodes, Dudley_ElementFile::numNodes, Dudley_Mesh::Points, Dudley_NodeFile::Tag, Dudley_ElementFile::Tag, Dudley_TagMap::tag_key, and Dudley_Mesh::TagMap.
Referenced by dudley::MeshAdapter::write().
void Dudley_PrintMesh_Info | ( | Dudley_Mesh * | , |
bool | |||
) |
References Dudley_Mesh::approximationOrder, Dudley_ElementFile::Color, Dudley_NodeFile::Coordinates, Dudley_Mesh_getDim(), Dudley_Mesh::Elements, Dudley_ElementFile::ename, Dudley_ElementFile::etype, Dudley_Mesh::FaceElements, Dudley_NodeFile::globalDegreesOfFreedom, Dudley_NodeFile::globalNodesIndex, Dudley_NodeFile::globalReducedDOFIndex, Dudley_NodeFile::globalReducedNodesIndex, Dudley_NodeFile::Id, Dudley_ElementFile::Id, INDEX2, Dudley_Mesh::integrationOrder, Dudley_Mesh::MPIInfo, Dudley_TagMap::name, Dudley_Mesh::Name, Dudley_TagMap::next, Dudley_ElementFile::Nodes, Dudley_Mesh::Nodes, Dudley_ElementFile::numElements, Dudley_NodeFile::numNodes, Dudley_ElementFile::numNodes, Dudley_ElementFile::Owner, Dudley_Mesh::Points, Dudley_Mesh::reducedApproximationOrder, Dudley_Mesh::reducedIntegrationOrder, Dudley_NodeFile::Tag, Dudley_ElementFile::Tag, Dudley_TagMap::tag_key, and Dudley_Mesh::TagMap.
Referenced by dudley::MeshAdapter::Print_Mesh_Info().