XIOS
1.0
Xml I/O Server
|
#include <mesh.hpp>
Fonctions membres publiques | |
CMesh (void) | |
////////////////////// Définitions ////////////////////// /// Plus de détails... | |
~CMesh (void) | |
void | createMesh (const CArray< double, 1 > &, const CArray< double, 1 > &, const CArray< double, 2 > &, const CArray< double, 2 > &) |
Plus de détails... | |
void | createMeshEpsilon (const MPI_Comm &, const CArray< double, 1 > &, const CArray< double, 1 > &, const CArray< double, 2 > &, const CArray< double, 2 > &) |
Plus de détails... | |
void | getGlobalNghbFaces (const int, const MPI_Comm &, const CArray< int, 1 > &, const CArray< double, 2 > &, const CArray< double, 2 > &, CArray< int, 2 > &) |
void | getLocalNghbFaces (const int, const CArray< int, 1 > &, const CArray< double, 2 > &, const CArray< double, 2 > &, CArray< int, 2 > &, CArray< int, 1 > &) |
Fonctions membres publiques statiques | |
static CMesh * | getMesh (StdString, int) |
Plus de détails... | |
Attributs publics | |
int | nbNodesGlo |
int | nbEdgesGlo |
int | node_start |
int | node_count |
int | edge_start |
int | edge_count |
bool | nodesAreWritten |
bool | edgesAreWritten |
bool | facesAreWritten |
CArray< double, 1 > | node_lon |
CArray< double, 1 > | node_lat |
CArray< double, 1 > | edge_lon |
CArray< double, 1 > | edge_lat |
CArray< int, 2 > | edge_nodes |
CArray< double, 1 > | face_lon |
CArray< double, 1 > | face_lat |
CArray< int, 2 > | face_nodes |
CArray< int, 2 > | face_edges |
CArray< int, 2 > | edge_faces |
CArray< int, 2 > | face_faces |
Types privés | |
typedef std::pair< double, double > | pairDouble |
typedef std::pair< int, int > | pairInt |
Fonctions membres privées | |
void | getGloNghbFacesNodeType (const MPI_Comm &, const CArray< int, 1 > &, const CArray< double, 2 > &, const CArray< double, 2 > &, CArray< int, 2 > &) |
Plus de détails... | |
void | getGloNghbFacesEdgeType (const MPI_Comm &, const CArray< int, 1 > &, const CArray< double, 2 > &, const CArray< double, 2 > &, CArray< int, 2 > &) |
Plus de détails... | |
void | getLocNghbFacesNodeType (const CArray< int, 1 > &, const CArray< double, 2 > &, const CArray< double, 2 > &, CArray< int, 2 > &, CArray< int, 1 > &) |
void | getLocNghbFacesEdgeType (const CArray< int, 1 > &, const CArray< double, 2 > &, const CArray< double, 2 > &, CArray< int, 2 > &, CArray< int, 1 > &) |
vector< size_t > | createHashes (const double, const double) |
Plus de détails... | |
Attributs privés | |
int | nbNodes_ |
int | nbEdges_ |
int | nbFaces_ |
CClientClientDHTSizet * | pNodeGlobalIndex |
CClientClientDHTSizet * | pEdgeGlobalIndex |
Attributs privés statiques | |
static std::map< StdString, CMesh > | meshList = std::map <StdString, CMesh>() |
static std::map< StdString, vector< int > > | domainList = std::map <StdString, vector<int> >() |
|
private |
|
private |
xios::CMesh::CMesh | ( | void | ) |
xios::CMesh::~CMesh | ( | void | ) |
Définition à la ligne 29 du fichier mesh.cpp.
Références pEdgeGlobalIndex, et pNodeGlobalIndex.
|
private |
Creates two hash values for each dimension, longitude and latitude.
[in] | longitude | Node longitude in degrees. |
[in] | latitude | Node latitude in degrees ranged from 0 to 360. |
Définition à la ligne 148 du fichier mesh.cpp.
Références xios::hashPair().
Référencé par createMeshEpsilon(), getGloNghbFacesEdgeType(), getGloNghbFacesNodeType(), et getLocNghbFacesNodeType().
void xios::CMesh::createMesh | ( | const CArray< double, 1 > & | lonvalue, |
const CArray< double, 1 > & | latvalue, | ||
const CArray< double, 2 > & | bounds_lon, | ||
const CArray< double, 2 > & | bounds_lat | ||
) |
Creates or updates a mesh for the three types of mesh elements: nodes, edges, and faces.
[in] | lonvalue | Array of longitudes. |
[in] | latvalue | Array of latitudes. |
[in] | bounds_lon | Array of boundary longitudes. Its size depends on the element type. |
[in] | bounds_lat | Array of boundary latitudes. Its size depends on the element type. |
void xios::CMesh::createMeshEpsilon | ( | const MPI_Comm & | comm, |
const CArray< double, 1 > & | lonvalue, | ||
const CArray< double, 1 > & | latvalue, | ||
const CArray< double, 2 > & | bounds_lon, | ||
const CArray< double, 2 > & | bounds_lat | ||
) |
Creates or updates a mesh for the three types of mesh elements: nodes, edges, and faces. Precision check is implemented with two hash values for each dimension, longitude and latitude.
[in] | comm | |
[in] | lonvalue | Array of longitudes. |
[in] | latvalue | Array of latitudes. |
[in] | bounds_lon | Array of boundary longitudes. Its size depends on the element type. |
[in] | bounds_lat | Array of boundary latitudes. Its size depends on the element type. |
Définition à la ligne 416 du fichier mesh.cpp.
Références xios::CClientClientDHTTemplate< T, HierarchyPolicy >::computeIndexInfoMapping(), xios::count, createHashes(), edge_count, edge_faces, edge_lat, edge_lon, edge_nodes, edge_start, edgesAreWritten, face_edges, face_faces, face_lat, face_lon, face_nodes, facesAreWritten, xios::generateNodeIndex(), xios::CClientClientDHTTemplate< T, HierarchyPolicy >::getInfoIndexMap(), xios::hashPairOrdered(), nbEdges_, nbEdgesGlo, nbFaces_, nbNodes_, nbNodesGlo, node_count, node_lat, node_lon, node_start, nodesAreWritten, xios::nvertex, pEdgeGlobalIndex, pNodeGlobalIndex, xios::CArray< ValueType, NumDims, Allocator >::resize(), xios::CArray< ValueType, NumDims, Allocator >::resizeAndPreserve(), et xios::CArray< ValueType, NumDims, Allocator >::size().
Référencé par xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
void xios::CMesh::getGlobalNghbFaces | ( | const int | nghbType, |
const MPI_Comm & | comm, | ||
const CArray< int, 1 > & | face_idx, | ||
const CArray< double, 2 > & | bounds_lon, | ||
const CArray< double, 2 > & | bounds_lat, | ||
CArray< int, 2 > & | nghbFaces | ||
) |
Définition à la ligne 1953 du fichier mesh.cpp.
Références getGloNghbFacesEdgeType(), et getGloNghbFacesNodeType().
Référencé par xios::CDomainAlgorithmExpand::expandDomainEdgeConnectivity(), et xios::CDomainAlgorithmExpand::expandDomainNodeConnectivity().
|
private |
Finds neighboring cells of a local domain for edge-type of neighbors.
[in] | comm | |
[in] | face_idx | Array with global indexes. |
[in] | bounds_lon | Array of boundary longitudes. |
[in] | bounds_lat | Array of boundary latitudes. |
[out] | nghbFaces | 2D array of storing global indexes of neighboring cells and their owner procs. |
Définition à la ligne 1772 du fichier mesh.cpp.
Références xios::CClientClientDHTTemplate< T, HierarchyPolicy >::computeIndexInfoMapping(), createHashes(), xios::generateNodeIndex(), xios::CClientClientDHTTemplate< T, HierarchyPolicy >::getInfoIndexMap(), xios::hashPairOrdered(), xios::nvertex, xios::CArray< ValueType, NumDims, Allocator >::resize(), et xios::CArray< ValueType, NumDims, Allocator >::resizeAndPreserve().
Référencé par getGlobalNghbFaces().
|
private |
Finds neighboring cells of a local domain for node-type of neighbors.
[in] | comm | |
[in] | face_idx | Array with global indexes. |
[in] | bounds_lon | Array of boundary longitudes. |
[in] | bounds_lat | Array of boundary latitudes. |
[out] | nghbFaces | 2D array of storing global indexes of neighboring cells and their owner procs. |
Définition à la ligne 1616 du fichier mesh.cpp.
Références xios::CClientClientDHTTemplate< T, HierarchyPolicy >::computeIndexInfoMapping(), createHashes(), xios::generateNodeIndex(), xios::CClientClientDHTTemplate< T, HierarchyPolicy >::getInfoIndexMap(), xios::nvertex, xios::CArray< ValueType, NumDims, Allocator >::resize(), et xios::CArray< ValueType, NumDims, Allocator >::resizeAndPreserve().
Référencé par getGlobalNghbFaces().
void xios::CMesh::getLocalNghbFaces | ( | const int | nghbType, |
const CArray< int, 1 > & | face_idx, | ||
const CArray< double, 2 > & | bounds_lon, | ||
const CArray< double, 2 > & | bounds_lat, | ||
CArray< int, 2 > & | nghbFaces, | ||
CArray< int, 1 > & | nbNghbFaces | ||
) |
Définition à la ligne 1975 du fichier mesh.cpp.
Références getLocNghbFacesEdgeType(), et getLocNghbFacesNodeType().
Référencé par xios::CDomainAlgorithmComputeConnectivity::computeLocalConnectivity().
|
private |
Définition à la ligne 2059 du fichier mesh.cpp.
Références xios::make_ordered_pair(), xios::nvertex, et xios::CArray< ValueType, NumDims, Allocator >::resize().
Référencé par getLocalNghbFaces().
|
private |
Définition à la ligne 1996 du fichier mesh.cpp.
Références createHashes(), xios::hashPairOrdered(), xios::nvertex, et xios::CArray< ValueType, NumDims, Allocator >::resize().
Référencé par getLocalNghbFaces().
Returns a pointer to a mesh. If a mesh has not been created, creates it and adds its name to the list of meshes meshList.
[in] | meshName | The name of a mesh ("name" attribute of a domain). |
[in] | nvertex | Number of verteces (1 for nodes, 2 for edges, 3 and up for faces). |
Définition à la ligne 45 du fichier mesh.cpp.
Références domainList, et meshList.
Référencé par xios::CDomain::assignMesh().
int xios::CMesh::edge_count |
Définition à la ligne 39 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
CArray<int, 2> xios::CMesh::edge_faces |
Définition à la ligne 56 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
CArray<double, 1> xios::CMesh::edge_lat |
Définition à la ligne 49 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
CArray<double, 1> xios::CMesh::edge_lon |
Définition à la ligne 48 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
CArray<int, 2> xios::CMesh::edge_nodes |
Définition à la ligne 50 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
int xios::CMesh::edge_start |
Définition à la ligne 38 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
bool xios::CMesh::edgesAreWritten |
Définition à la ligne 42 du fichier mesh.hpp.
Référencé par createMeshEpsilon().
CArray<int, 2> xios::CMesh::face_edges |
Définition à la ligne 55 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
CArray<int, 2> xios::CMesh::face_faces |
Définition à la ligne 57 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
CArray<double, 1> xios::CMesh::face_lat |
Définition à la ligne 53 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
CArray<double, 1> xios::CMesh::face_lon |
Définition à la ligne 52 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
CArray<int, 2> xios::CMesh::face_nodes |
Définition à la ligne 54 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
bool xios::CMesh::facesAreWritten |
Définition à la ligne 43 du fichier mesh.hpp.
Référencé par createMeshEpsilon().
|
private |
Définition à la ligne 82 du fichier mesh.hpp.
Référencé par createMeshEpsilon().
int xios::CMesh::nbEdgesGlo |
Définition à la ligne 34 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
|
private |
Définition à la ligne 83 du fichier mesh.hpp.
Référencé par createMeshEpsilon().
|
private |
Définition à la ligne 81 du fichier mesh.hpp.
Référencé par createMeshEpsilon().
int xios::CMesh::nbNodesGlo |
Définition à la ligne 33 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
int xios::CMesh::node_count |
Définition à la ligne 37 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
CArray<double, 1> xios::CMesh::node_lat |
Définition à la ligne 46 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
CArray<double, 1> xios::CMesh::node_lon |
Définition à la ligne 45 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
int xios::CMesh::node_start |
Définition à la ligne 36 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et xios::CNc4DataOutput::writeUnstructuredDomainUgrid().
bool xios::CMesh::nodesAreWritten |
Définition à la ligne 41 du fichier mesh.hpp.
Référencé par createMeshEpsilon().
|
private |
Définition à la ligne 88 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et ~CMesh().
|
private |
Définition à la ligne 87 du fichier mesh.hpp.
Référencé par createMeshEpsilon(), et ~CMesh().