#include <TempestRemapper.hpp>
Public Types | |
enum | TempestMeshType { DEFAULT = -1 , CS = 0 , RLL = 1 , ICO = 2 , ICOD = 3 , OVERLAP_FILES = 4 , OVERLAP_MEMORY = 5 , OVERLAP_MOAB = 6 } |
Public Types inherited from moab::Remapper | |
enum | IntersectionContext { DEFAULT = -1 , SourceMesh = 0 , TargetMesh = 1 , OverlapMesh = 2 , CoveringMesh = 3 , SourceMeshWithGhosts = 4 , TargetMeshWithGhosts = 5 } |
Public Member Functions | |
TempestRemapper (moab::Interface *mbInt, bool offlineMode=false) | |
virtual | ~TempestRemapper () |
virtual ErrorCode | initialize (bool initialize_fsets=true) |
Initialize the TempestRemapper object internal datastructures including the mesh sets and TempestRemap mesh references. More... | |
virtual ErrorCode | clear () |
Deallocate and clear any memory initialized in the TempestRemapper object More... | |
moab::ErrorCode | GenerateMesh (Remapper::IntersectionContext ctx, TempestMeshType type) |
Generate a mesh in memory of given type (CS/RLL/ICO/MPAS(structured)) and store it under the context specified by the user. More... | |
moab::ErrorCode | LoadMesh (Remapper::IntersectionContext ctx, std::string inputFilename, TempestMeshType type) |
Load a mesh from disk of given type and store it under the context specified by the user. More... | |
moab::ErrorCode | ConstructCoveringSet (double tolerance=1e-8, double radius_src=1.0, double radius_tgt=1.0, double boxeps=0.1, bool regional_mesh=false, bool gnomonic=true, int order=1) |
Construct a source covering mesh such that it completely encompasses the target grid in parallel. This operation is critical to ensure that the parallel advancing-front intersection algorithm can the intersection mesh only locally without any process communication. More... | |
moab::ErrorCode | ComputeOverlapMesh (bool kdtree_search=true, bool use_tempest=false, int nLayers=0) |
Compute the intersection mesh between the source and target grids that have been instantiated in the Remapper. This function invokes the parallel advancing-front intersection algorithm internally for spherical meshes and can handle arbitrary unstructured grids (CS, RLL, ICO, MPAS) with and without holes. More... | |
moab::ErrorCode | ConvertTempestMesh (Remapper::IntersectionContext ctx) |
Convert the TempestRemap mesh object to a corresponding MOAB mesh representation according to the intersection context. More... | |
moab::ErrorCode | ConvertMeshToTempest (Remapper::IntersectionContext ctx) |
Convert the MOAB mesh representation to a corresponding TempestRemap mesh object according to the intersection context. More... | |
Mesh * | GetMesh (Remapper::IntersectionContext ctx) |
Get the TempestRemap mesh object according to the intersection context. More... | |
void | SetMesh (Remapper::IntersectionContext ctx, Mesh *mesh, bool overwrite=true) |
Set the TempestRemap mesh object according to the intersection context. More... | |
void | SetMeshSet (Remapper::IntersectionContext ctx, moab::EntityHandle mset, moab::Range *entities=nullptr) |
Mesh * | GetCoveringMesh () |
Get the covering mesh (TempestRemap) object. More... | |
moab::EntityHandle & | GetMeshSet (Remapper::IntersectionContext ctx) |
Get the MOAB mesh set corresponding to the intersection context. More... | |
moab::EntityHandle | GetMeshSet (Remapper::IntersectionContext ctx) const |
Const overload. Get the MOAB mesh set corresponding to the intersection context. More... | |
moab::Range & | GetMeshEntities (Remapper::IntersectionContext ctx) |
Get the mesh element entities corresponding to the intersection context. More... | |
const moab::Range & | GetMeshEntities (Remapper::IntersectionContext ctx) const |
Const overload. Get the mesh element entities corresponding to the intersection context. More... | |
moab::Range & | GetMeshVertices (Remapper::IntersectionContext ctx) |
Get the mesh vertices corresponding to the intersection context. Useful for point-cloud meshes More... | |
const moab::Range & | GetMeshVertices (Remapper::IntersectionContext ctx) const |
Const overload. Get the mesh vertices corresponding to the intersection context. Useful for point-cloud meshes. More... | |
moab::EntityHandle & | GetCoveringSet () |
Get access to the underlying source covering set if available. Else return the source set. More... | |
void | SetMeshType (Remapper::IntersectionContext ctx, const std::vector< int > &metadata) |
Set the mesh type corresponding to the intersection context More... | |
void | ResetMeshSet (Remapper::IntersectionContext ctx, moab::EntityHandle meshSet) |
reconstruct mesh, used now only for IO; need a better solution maybe More... | |
TempestMeshType | GetMeshType (Remapper::IntersectionContext ctx) const |
Get the mesh type corresponding to the intersection context More... | |
int | GetGlobalID (Remapper::IntersectionContext ctx, int localID) |
Get the global ID corresponding to the local entity ID according to the context (source, target, intersection) More... | |
int | GetLocalID (Remapper::IntersectionContext ctx, int globalID) |
Get the local ID corresponding to the global entity ID according to the context (source, target, intersection) More... | |
moab::ErrorCode | WriteTempestIntersectionMesh (std::string strOutputFileName, const bool fAllParallel, const bool fInputConcave, const bool fOutputConcave) |
Gather the overlap mesh and asssociated source/target data and write it out to disk using the TempestRemap output interface. This information can then be used with the "GenerateOfflineMap" tool in TempestRemap as needed. More... | |
moab::ErrorCode | GenerateCSMeshMetadata (const int ntot_elements, moab::Range &entities, moab::Range *secondary_entities, const std::string &dofTagName, int nP) |
Generate the necessary metadata and specifically the GLL node numbering for DoFs for a CS mesh. This negates the need for running external code like HOMME to output the numbering needed for computing maps. The functionality is used through the mbconvert tool to compute processor-invariant Global DoF IDs at GLL nodes. More... | |
moab::ErrorCode | GenerateMeshMetadata (Mesh &mesh, const int ntot_elements, moab::Range &entities, moab::Range *secondary_entities, const std::string dofTagName, int nP) |
Generate the necessary metadata for DoF node numbering in a given mesh. Currently, only the functionality to generate numbering on CS grids is supported. More... | |
moab::ErrorCode | ComputeGlobalLocalMaps () |
Compute the local and global IDs for elements in source/target/coverage meshes. More... | |
moab::ErrorCode | GetOverlapAugmentedEntities (moab::Range &sharedGhostEntities) |
Get all the ghosted overlap entities that were accumulated to enable conservation in parallel More... | |
moab::ErrorCode | assign_vertex_element_IDs (Tag idtag, EntityHandle this_set, const int dimension=2, const int start_id=1) |
Internal method to assign vertex and element global IDs if one does not exist already More... | |
ErrorCode | GetIMasks (Remapper::IntersectionContext ctx, std::vector< int > &masks) |
Get the masks that could have been defined. More... | |
Public Member Functions inherited from moab::Remapper | |
Remapper (moab::Interface *mbInt) | |
virtual | ~Remapper () |
moab::Interface * | get_interface () |
ErrorCode | LoadNativeMesh (std::string filename, moab::EntityHandle &meshset, std::vector< int > &metadata, const char *readopts=0) |
Public Attributes | |
const bool | offlineWorkflow |
bool | meshValidate |
bool | constructEdgeMap |
Static Public Attributes | |
static const bool | verbose = true |
Private Member Functions | |
moab::ErrorCode | convert_overlap_mesh_sorted_by_source () |
moab::ErrorCode | load_tempest_mesh_private (std::string inputFilename, Mesh **tempest_mesh) |
moab::ErrorCode | convert_mesh_to_tempest_private (Mesh *mesh, moab::EntityHandle meshset, moab::Range &entities, moab::Range *pverts) |
moab::ErrorCode | convert_tempest_mesh_private (TempestMeshType type, Mesh *mesh, moab::EntityHandle &meshset, moab::Range &entities, moab::Range *vertices) |
moab::ErrorCode | augment_overlap_set () |
Friends | |
class | TempestOnlineMap |
Additional Inherited Members | |
Protected Attributes inherited from moab::Remapper | |
Interface * | m_interface |
Definition at line 36 of file TempestRemapper.hpp.
Enumerator | |
---|---|
DEFAULT | |
CS | |
RLL | |
ICO | |
ICOD | |
OVERLAP_FILES | |
OVERLAP_MEMORY | |
OVERLAP_MOAB |
Definition at line 54 of file TempestRemapper.hpp.
|
inline |
Definition at line 43 of file TempestRemapper.hpp.
|
virtual |
Definition at line 102 of file TempestRemapper.cpp.
References clear().
ErrorCode moab::TempestRemapper::assign_vertex_element_IDs | ( | Tag | idtag, |
EntityHandle | this_set, | ||
const int | dimension = 2 , |
||
const int | start_id = 1 |
||
) |
Internal method to assign vertex and element global IDs if one does not exist already
Definition at line 1026 of file TempestRemapper.cpp.
References entities, ErrorCode, moab::Interface::get_entities_by_dimension(), moab::Remapper::m_interface, MB_CHK_ERR, MB_CHK_SET_ERR, MB_SUCCESS, and moab::Interface::tag_set_data().
Referenced by main().
|
private |
Referenced by ComputeOverlapMesh().
|
virtual |
Deallocate and clear any memory initialized in the TempestRemapper object
Definition at line 107 of file TempestRemapper.cpp.
References moab::Range::clear(), gid_to_lid_covsrc, gid_to_lid_src, gid_to_lid_tgt, lid_to_gid_covsrc, lid_to_gid_src, lid_to_gid_tgt, m_covering_source, m_covering_source_entities, m_covering_source_vertices, m_overlap, m_overlap_entities, m_source, m_source_entities, m_source_vertices, m_target, m_target_entities, m_target_vertices, MB_SUCCESS, point_cloud_source, point_cloud_target, and size.
Referenced by main(), and ~TempestRemapper().
ErrorCode moab::TempestRemapper::ComputeGlobalLocalMaps | ( | ) |
Compute the local and global IDs for elements in source/target/coverage meshes.
Definition at line 872 of file TempestRemapper.cpp.
References convert_mesh_to_tempest_private(), ErrorCode, gid_to_lid_covsrc, gid_to_lid_src, gid_to_lid_tgt, moab::Interface::globalId_tag(), lid_to_gid_covsrc, lid_to_gid_src, lid_to_gid_tgt, m_covering_source, m_covering_source_entities, m_covering_source_set, m_covering_source_vertices, moab::Remapper::m_interface, m_source_entities, m_source_vertices, m_target, m_target_entities, m_target_vertices, MB_CHK_ERR, MB_CHK_SET_ERR, MB_SUCCESS, point_cloud_source, point_cloud_target, rank, moab::Range::size(), and moab::Interface::tag_get_data().
Referenced by ComputeOverlapMesh().
ErrorCode moab::TempestRemapper::ComputeOverlapMesh | ( | bool | kdtree_search = true , |
bool | use_tempest = false , |
||
int | nLayers = 0 |
||
) |
Compute the intersection mesh between the source and target grids that have been instantiated in the Remapper. This function invokes the parallel advancing-front intersection algorithm internally for spherical meshes and can handle arbitrary unstructured grids (CS, RLL, ICO, MPAS) with and without holes.
Definition at line 1379 of file TempestRemapper.cpp.
References augment_overlap_set(), moab::Range::begin(), ComputeGlobalLocalMaps(), convert_overlap_mesh_sorted_by_source(), moab::AEntityFactory::create_vert_elem_adjacencies(), dbgprint, moab::Range::empty(), moab::Range::end(), moab::Range::erase(), ErrorCode, moab::Skinner::find_skin(), moab::IntxUtils::fix_degenerate_quads(), moab::AEntityFactory::get_adjacencies(), moab::MeshTopoUtil::get_bridge_adjacencies(), moab::Interface::get_entities_by_dimension(), moab::Interface::globalId_tag(), moab::Range::insert(), moab::Intx2Mesh::intersect_meshes(), moab::Intx2Mesh::intersect_meshes_kdtree(), is_parallel, m_covering_source, m_covering_source_set, moab::Remapper::m_interface, m_overlap, m_overlap_set, m_source, m_target, m_target_set, mb, MB_CHK_ERR, MB_CHK_SET_ERR, MB_SUCCESS, mbintx, moab::Range::merge(), moab::AEntityFactory::notify_create_entity(), point_cloud_target, moab::IntxAreaUtils::positive_orientation(), rank, rrmgrids, moab::DebugOutput::set_prefix(), moab::Range::size(), size, moab::subtract(), moab::Interface::tag_get_data(), moab::Interface::tag_get_handle(), moab::AEntityFactory::vert_elem_adjacencies(), and moab::Interface::write_mesh().
Referenced by main().
ErrorCode moab::TempestRemapper::ConstructCoveringSet | ( | double | tolerance = 1e-8 , |
double | radius_src = 1.0 , |
||
double | radius_tgt = 1.0 , |
||
double | boxeps = 0.1 , |
||
bool | regional_mesh = false , |
||
bool | gnomonic = true , |
||
int | order = 1 |
||
) |
Construct a source covering mesh such that it completely encompasses the target grid in parallel. This operation is critical to ensure that the parallel advancing-front intersection algorithm can the intersection mesh only locally without any process communication.
Definition at line 1238 of file TempestRemapper.cpp.
References moab::Interface::add_entities(), moab::AdaptiveKDTree::build_tree(), moab::Interface::create_meshset(), ErrorCode, moab::Intx2Mesh::FindMaxEdges(), moab::IntxAreaUtils::GaussQuadrature, moab::Interface::get_connectivity(), moab::Interface::get_coords(), moab::Interface::get_entities_by_dimension(), moab::Range::insert(), is_parallel, m_covering_source, m_covering_source_entities, m_covering_source_set, m_covering_source_vertices, moab::Remapper::m_interface, m_source, m_source_entities, m_source_set, m_source_set_with_ghosts, m_source_vertices, m_target_entities, m_target_set, moab::Intx2Mesh::max_edges_1, moab::Intx2Mesh::max_edges_2, max_source_edges, max_target_edges, MB_CHK_ERR, MB_CHK_SET_ERR, mbintx, MESHSET_SET, moab::AdaptiveKDTree::point_search(), rank, rrmgrids, moab::Intx2Mesh::set_box_error(), moab::Intx2Mesh::set_error_tolerance(), moab::Intx2MeshOnSphere::set_radius_destination_mesh(), moab::Intx2MeshOnSphere::set_radius_source_mesh(), moab::Range::size(), moab::tolerance, and moab::Interface::write_file().
Referenced by main().
|
private |
Definition at line 585 of file TempestRemapper.cpp.
References moab::Range::begin(), moab::Range::clear(), moab::Range::compactness(), constructEdgeMap, moab::Range::end(), ErrorCode, moab::Interface::get_connectivity(), moab::Interface::get_coords(), moab::Interface::get_entities_by_dimension(), moab::Interface::globalId_tag(), iface, moab::Range::index(), moab::Remapper::m_interface, MB_CHK_ERR, MB_SUCCESS, offlineWorkflow, moab::Range::size(), and moab::Interface::tag_get_data().
Referenced by ComputeGlobalLocalMaps(), ConvertMeshToTempest(), and ResetMeshSet().
|
private |
Definition at line 745 of file TempestRemapper.cpp.
References moab::Range::begin(), moab::Range::clear(), moab::Range::end(), ErrorCode, moab::Interface::get_connectivity(), moab::Interface::get_coords(), moab::Interface::get_entities_by_dimension(), gid_to_lid_covsrc, gid_to_lid_tgt, iface, moab::IntPairComparator(), is_parallel, moab::Remapper::m_interface, m_overlap, m_overlap_entities, m_overlap_set, MB_CHK_ERR, MB_SUCCESS, moab::Range::size(), size, moab::Interface::tag_get_data(), and moab::Interface::tag_get_handle().
Referenced by ComputeOverlapMesh(), and ConvertMeshToTempest().
|
private |
Definition at line 256 of file TempestRemapper.cpp.
References moab::Interface::add_entities(), moab::Interface::create_element(), dbgprint, entities, ErrorCode, moab::Interface::globalId_tag(), iface, is_root, moab::Remapper::m_interface, MB_CHK_SET_ERR, MB_SUCCESS, MB_TAG_CREAT, MB_TAG_DENSE, MB_TYPE_INTEGER, MBPOLYGON, MBQUAD, MBTRI, moab::Interface::query_interface(), rank, moab::DebugOutput::set_prefix(), moab::Interface::tag_get_handle(), moab::Interface::tag_set_data(), and verbose.
Referenced by ConvertTempestMesh().
ErrorCode moab::TempestRemapper::ConvertMeshToTempest | ( | Remapper::IntersectionContext | ctx | ) |
Convert the MOAB mesh representation to a corresponding TempestRemap mesh object according to the intersection context.
Definition at line 546 of file TempestRemapper.cpp.
References convert_mesh_to_tempest_private(), convert_overlap_mesh_sorted_by_source(), dbgprint, ErrorCode, is_root, m_overlap, m_source, m_source_entities, m_source_set, m_source_vertices, m_target, m_target_entities, m_target_set, m_target_vertices, MB_CHK_SET_ERR, moab::Remapper::OverlapMesh, point_cloud_source, point_cloud_target, rank, moab::DebugOutput::set_prefix(), moab::Range::size(), moab::Remapper::SourceMesh, moab::Remapper::TargetMesh, and verbose.
Referenced by CreateTempestMesh(), and main().
ErrorCode moab::TempestRemapper::ConvertTempestMesh | ( | Remapper::IntersectionContext | ctx | ) |
Convert the TempestRemap mesh object to a corresponding MOAB mesh representation according to the intersection context.
Definition at line 227 of file TempestRemapper.cpp.
References convert_tempest_mesh_private(), moab::Remapper::DEFAULT, is_root, m_overlap, m_overlap_entities, m_overlap_set, m_overlap_type, m_source, m_source_entities, m_source_set, m_source_type, m_source_vertices, m_target, m_target_entities, m_target_set, m_target_type, m_target_vertices, MB_CHK_SET_ERR, moab::Remapper::SourceMesh, moab::Remapper::TargetMesh, and verbose.
Referenced by main().
ErrorCode moab::TempestRemapper::GenerateCSMeshMetadata | ( | const int | ntot_elements, |
moab::Range & | entities, | ||
moab::Range * | secondary_entities, | ||
const std::string & | dofTagName, | ||
int | nP | ||
) |
Generate the necessary metadata and specifically the GLL node numbering for DoFs for a CS mesh. This negates the need for running external code like HOMME to output the numbering needed for computing maps. The functionality is used through the mbconvert
tool to compute processor-invariant Global DoF IDs at GLL nodes.
Definition at line 1058 of file TempestRemapper.cpp.
References ErrorCode, GenerateMeshMetadata(), MB_CHK_SET_ERR, MB_INVALID_SIZE, and MB_SUCCESS.
moab::ErrorCode moab::TempestRemapper::GenerateMesh | ( | Remapper::IntersectionContext | ctx, |
TempestMeshType | type | ||
) |
Generate a mesh in memory of given type (CS/RLL/ICO/MPAS(structured)) and store it under the context specified by the user.
ErrorCode moab::TempestRemapper::GenerateMeshMetadata | ( | Mesh & | mesh, |
const int | ntot_elements, | ||
moab::Range & | entities, | ||
moab::Range * | secondary_entities, | ||
const std::string | dofTagName, | ||
int | nP | ||
) |
Generate the necessary metadata for DoF node numbering in a given mesh. Currently, only the functionality to generate numbering on CS grids is supported.
Definition at line 1081 of file TempestRemapper.cpp.
References moab::Range::begin(), moab::Range::end(), entities, ErrorCode, moab::Interface::get_coords(), moab::Remapper::m_interface, MB_CHK_SET_ERR, MB_INVALID_SIZE, MB_SUCCESS, MB_TAG_CREAT, MB_TAG_DENSE, MB_TYPE_INTEGER, moab::Interface::tag_get_handle(), and moab::Interface::tag_set_data().
Referenced by GenerateCSMeshMetadata(), and main().
|
inline |
Get the covering mesh (TempestRemap) object.
Definition at line 591 of file TempestRemapper.hpp.
References m_covering_source.
Referenced by moab::TempestOnlineMap::TempestOnlineMap().
|
inline |
Get access to the underlying source covering set if available. Else return the source set.
Definition at line 596 of file TempestRemapper.hpp.
References m_covering_source_set.
|
inline |
Get the global ID corresponding to the local entity ID according to the context (source, target, intersection)
Definition at line 601 of file TempestRemapper.hpp.
References moab::Remapper::CoveringMesh, moab::Remapper::DEFAULT, lid_to_gid_covsrc, lid_to_gid_src, lid_to_gid_tgt, moab::Remapper::OverlapMesh, moab::Remapper::SourceMesh, moab::Remapper::SourceMeshWithGhosts, and moab::Remapper::TargetMesh.
ErrorCode moab::TempestRemapper::GetIMasks | ( | Remapper::IntersectionContext | ctx, |
std::vector< int > & | masks | ||
) |
Get the masks that could have been defined.
Definition at line 2196 of file TempestRemapper.cpp.
References moab::Remapper::CoveringMesh, ErrorCode, moab::Remapper::m_interface, m_source_entities, m_source_vertices, m_target_entities, m_target_vertices, MB_CHK_SET_ERR, MB_SUCCESS, MB_TAG_CREAT, MB_TAG_DENSE, MB_TYPE_INTEGER, moab::Remapper::OverlapMesh, point_cloud_source, point_cloud_target, moab::Range::size(), moab::Remapper::SourceMesh, moab::Interface::tag_get_data(), moab::Interface::tag_get_handle(), and moab::Remapper::TargetMesh.
|
inline |
Get the local ID corresponding to the global entity ID according to the context (source, target, intersection)
Definition at line 619 of file TempestRemapper.hpp.
References moab::Remapper::CoveringMesh, moab::Remapper::DEFAULT, gid_to_lid_covsrc, gid_to_lid_src, gid_to_lid_tgt, moab::Remapper::OverlapMesh, moab::Remapper::SourceMesh, moab::Remapper::SourceMeshWithGhosts, and moab::Remapper::TargetMesh.
|
inline |
Get the TempestRemap mesh object according to the intersection context.
Definition at line 349 of file TempestRemapper.hpp.
References moab::Remapper::CoveringMesh, moab::Remapper::DEFAULT, m_covering_source, m_overlap, m_source, m_target, moab::Remapper::OverlapMesh, moab::Remapper::SourceMesh, and moab::Remapper::TargetMesh.
Referenced by CreateTempestMesh(), main(), and moab::TempestOnlineMap::TempestOnlineMap().
|
inline |
Get the mesh element entities corresponding to the intersection context.
Definition at line 468 of file TempestRemapper.hpp.
References moab::Remapper::CoveringMesh, moab::Remapper::DEFAULT, m_covering_source_entities, m_overlap_entities, m_source_entities, m_target_entities, MB_SET_ERR_RET_VAL, moab::Remapper::OverlapMesh, moab::Remapper::SourceMesh, and moab::Remapper::TargetMesh.
Referenced by main().
|
inline |
Const overload. Get the mesh element entities corresponding to the intersection context.
Definition at line 486 of file TempestRemapper.hpp.
References moab::Remapper::CoveringMesh, moab::Remapper::DEFAULT, m_covering_source_entities, m_overlap_entities, m_source_entities, m_target_entities, MB_SET_ERR_RET_VAL, moab::Remapper::OverlapMesh, moab::Remapper::SourceMesh, and moab::Remapper::TargetMesh.
|
inline |
Get the MOAB mesh set corresponding to the intersection context.
Definition at line 424 of file TempestRemapper.hpp.
References moab::Remapper::CoveringMesh, moab::Remapper::DEFAULT, m_covering_source_set, m_overlap_set, m_source_set, m_source_set_with_ghosts, m_target_set, m_target_set_with_ghosts, MB_SET_ERR_RET_VAL, moab::Remapper::OverlapMesh, moab::Remapper::SourceMesh, moab::Remapper::SourceMeshWithGhosts, moab::Remapper::TargetMesh, and moab::Remapper::TargetMeshWithGhosts.
Referenced by CreateTempestMesh(), and main().
|
inline |
Const overload. Get the MOAB mesh set corresponding to the intersection context.
Definition at line 446 of file TempestRemapper.hpp.
References moab::Remapper::CoveringMesh, moab::Remapper::DEFAULT, m_covering_source_set, m_overlap_set, m_source_set, m_source_set_with_ghosts, m_target_set, m_target_set_with_ghosts, MB_SET_ERR_RET_VAL, moab::Remapper::OverlapMesh, moab::Remapper::SourceMesh, moab::Remapper::SourceMeshWithGhosts, moab::Remapper::TargetMesh, and moab::Remapper::TargetMeshWithGhosts.
|
inline |
Get the mesh type corresponding to the intersection context
Definition at line 575 of file TempestRemapper.hpp.
References moab::Remapper::DEFAULT, DEFAULT, m_overlap_type, m_source_type, m_target_type, moab::Remapper::OverlapMesh, moab::Remapper::SourceMesh, and moab::Remapper::TargetMesh.
|
inline |
Get the mesh vertices corresponding to the intersection context. Useful for point-cloud meshes
Definition at line 504 of file TempestRemapper.hpp.
References moab::Remapper::CoveringMesh, moab::Remapper::DEFAULT, m_covering_source_vertices, m_source_vertices, m_target_vertices, MB_SET_ERR_RET_VAL, moab::Remapper::SourceMesh, and moab::Remapper::TargetMesh.
Referenced by main().
|
inline |
Const overload. Get the mesh vertices corresponding to the intersection context. Useful for point-cloud meshes.
Definition at line 520 of file TempestRemapper.hpp.
References moab::Remapper::CoveringMesh, moab::Remapper::DEFAULT, m_covering_source_vertices, m_source_vertices, m_target_vertices, MB_SET_ERR_RET_VAL, moab::Remapper::SourceMesh, and moab::Remapper::TargetMesh.
moab::ErrorCode moab::TempestRemapper::GetOverlapAugmentedEntities | ( | moab::Range & | sharedGhostEntities | ) |
Get all the ghosted overlap entities that were accumulated to enable conservation in parallel
Definition at line 705 of file TempestRemapper.cpp.
References moab::Range::clear(), ErrorCode, moab::Range::insert(), MB_CHK_ERR, MB_CHK_SET_ERR, MB_SUCCESS, moab::Range::merge(), size, moab::Range::size(), and moab::subtract().
Referenced by main().
|
virtual |
Initialize the TempestRemapper object internal datastructures including the mesh sets and TempestRemap mesh references.
Definition at line 53 of file TempestRemapper.cpp.
References moab::Interface::create_meshset(), ErrorCode, is_parallel, is_root, m_covering_source, moab::Remapper::m_interface, m_overlap, m_overlap_set, m_source, m_source_set, m_source_set_with_ghosts, m_target, m_target_set, MB_CHK_SET_ERR, MB_SUCCESS, MESHSET_SET, point_cloud_source, point_cloud_target, rank, and size.
Referenced by main().
|
private |
Definition at line 178 of file TempestRemapper.cpp.
References constructEdgeMap, moab::error(), is_root, MB_SUCCESS, meshValidate, and verbose.
Referenced by LoadMesh().
ErrorCode moab::TempestRemapper::LoadMesh | ( | Remapper::IntersectionContext | ctx, |
std::string | inputFilename, | ||
TempestMeshType | type | ||
) |
Load a mesh from disk of given type and store it under the context specified by the user.
Definition at line 153 of file TempestRemapper.cpp.
References moab::Remapper::DEFAULT, load_tempest_mesh_private(), m_overlap, m_overlap_type, m_source, m_source_type, m_target, m_target_type, MB_CHK_SET_ERR, moab::Remapper::SourceMesh, and moab::Remapper::TargetMesh.
Referenced by CreateTempestMesh(), and main().
|
inline |
reconstruct mesh, used now only for IO; need a better solution maybe
Definition at line 397 of file TempestRemapper.hpp.
References convert_mesh_to_tempest_private(), moab::Remapper::CoveringMesh, moab::Remapper::DEFAULT, m_source, m_source_entities, m_source_set, m_source_vertices, moab::Remapper::OverlapMesh, moab::Remapper::SourceMesh, and moab::Remapper::TargetMesh.
|
inline |
Set the TempestRemap mesh object according to the intersection context.
Definition at line 367 of file TempestRemapper.hpp.
References moab::Remapper::CoveringMesh, moab::Remapper::DEFAULT, m_covering_source, m_overlap, m_source, m_target, moab::Remapper::OverlapMesh, moab::Remapper::SourceMesh, and moab::Remapper::TargetMesh.
Referenced by CreateTempestMesh().
void moab::TempestRemapper::SetMeshSet | ( | Remapper::IntersectionContext | ctx, |
moab::EntityHandle | mset, | ||
moab::Range * | entities = nullptr |
||
) |
Definition at line 988 of file TempestRemapper.cpp.
References moab::Remapper::CoveringMesh, entities, m_covering_source_entities, m_covering_source_set, m_source_entities, m_source_set, m_source_set_with_ghosts, m_target_entities, m_target_set, m_target_set_with_ghosts, moab::Remapper::SourceMesh, moab::Remapper::SourceMeshWithGhosts, moab::Remapper::TargetMesh, and moab::Remapper::TargetMeshWithGhosts.
Referenced by CreateTempestMesh().
|
inline |
Set the mesh type corresponding to the intersection context
Definition at line 536 of file TempestRemapper.hpp.
References m_overlap_type, m_source_metadata, m_source_type, m_target_metadata, m_target_type, OVERLAP_FILES, moab::Remapper::OverlapMesh, moab::Remapper::SourceMesh, and moab::Remapper::TargetMesh.
Referenced by CreateTempestMesh().
moab::ErrorCode moab::TempestRemapper::WriteTempestIntersectionMesh | ( | std::string | strOutputFileName, |
const bool | fAllParallel, | ||
const bool | fInputConcave, | ||
const bool | fOutputConcave | ||
) |
Gather the overlap mesh and asssociated source/target data and write it out to disk using the TempestRemap output interface. This information can then be used with the "GenerateOfflineMap" tool in TempestRemap as needed.
Definition at line 952 of file TempestRemapper.cpp.
References MB_SUCCESS, and size.
|
friend |
Definition at line 66 of file TempestRemapper.hpp.
bool moab::TempestRemapper::constructEdgeMap |
Definition at line 273 of file TempestRemapper.hpp.
Referenced by convert_mesh_to_tempest_private(), load_tempest_mesh_private(), and main().
|
private |
Definition at line 333 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), convert_overlap_mesh_sorted_by_source(), and GetLocalID().
|
private |
Definition at line 333 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), and GetLocalID().
|
private |
Definition at line 333 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), convert_overlap_mesh_sorted_by_source(), and GetLocalID().
|
private |
Definition at line 344 of file TempestRemapper.hpp.
Referenced by ComputeOverlapMesh(), ConstructCoveringSet(), convert_overlap_mesh_sorted_by_source(), initialize(), and moab::TempestOnlineMap::TempestOnlineMap().
|
private |
Definition at line 344 of file TempestRemapper.hpp.
Referenced by convert_tempest_mesh_private(), ConvertMeshToTempest(), ConvertTempestMesh(), initialize(), load_tempest_mesh_private(), and moab::TempestOnlineMap::TempestOnlineMap().
|
private |
Definition at line 334 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), and GetGlobalID().
|
private |
Definition at line 334 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), and GetGlobalID().
|
private |
Definition at line 334 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), and GetGlobalID().
|
private |
Definition at line 336 of file TempestRemapper.hpp.
|
private |
Definition at line 327 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), ComputeOverlapMesh(), ConstructCoveringSet(), GetCoveringMesh(), GetMesh(), initialize(), and SetMesh().
|
private |
Definition at line 329 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), ConstructCoveringSet(), GetMeshEntities(), and SetMeshSet().
|
private |
Definition at line 328 of file TempestRemapper.hpp.
Referenced by ComputeGlobalLocalMaps(), ComputeOverlapMesh(), ConstructCoveringSet(), GetCoveringSet(), GetMeshSet(), and SetMeshSet().
|
private |
Definition at line 330 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), ConstructCoveringSet(), and GetMeshVertices().
|
private |
Definition at line 317 of file TempestRemapper.hpp.
Referenced by clear(), ComputeOverlapMesh(), convert_overlap_mesh_sorted_by_source(), ConvertMeshToTempest(), ConvertTempestMesh(), GetMesh(), initialize(), LoadMesh(), and SetMesh().
|
private |
Definition at line 319 of file TempestRemapper.hpp.
Referenced by clear(), convert_overlap_mesh_sorted_by_source(), ConvertTempestMesh(), and GetMeshEntities().
|
private |
Definition at line 320 of file TempestRemapper.hpp.
Referenced by ComputeOverlapMesh(), convert_overlap_mesh_sorted_by_source(), ConvertTempestMesh(), GetMeshSet(), and initialize().
|
private |
Definition at line 318 of file TempestRemapper.hpp.
Referenced by ConvertTempestMesh(), GetMeshType(), LoadMesh(), and SetMeshType().
|
private |
Definition at line 321 of file TempestRemapper.hpp.
|
private |
Definition at line 297 of file TempestRemapper.hpp.
Referenced by clear(), ComputeOverlapMesh(), ConstructCoveringSet(), ConvertMeshToTempest(), ConvertTempestMesh(), GetMesh(), initialize(), LoadMesh(), ResetMeshSet(), and SetMesh().
|
private |
Definition at line 299 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), ConstructCoveringSet(), ConvertMeshToTempest(), ConvertTempestMesh(), GetIMasks(), GetMeshEntities(), ResetMeshSet(), and SetMeshSet().
|
private |
Definition at line 304 of file TempestRemapper.hpp.
Referenced by SetMeshType().
|
private |
Definition at line 301 of file TempestRemapper.hpp.
Referenced by ConstructCoveringSet(), ConvertMeshToTempest(), ConvertTempestMesh(), GetMeshSet(), initialize(), ResetMeshSet(), and SetMeshSet().
|
private |
Definition at line 340 of file TempestRemapper.hpp.
Referenced by ConstructCoveringSet(), GetMeshSet(), initialize(), and SetMeshSet().
|
private |
Definition at line 298 of file TempestRemapper.hpp.
Referenced by ConvertTempestMesh(), GetMeshType(), LoadMesh(), and SetMeshType().
|
private |
Definition at line 300 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), ConstructCoveringSet(), ConvertMeshToTempest(), ConvertTempestMesh(), GetIMasks(), GetMeshVertices(), and ResetMeshSet().
|
private |
Definition at line 307 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), ComputeOverlapMesh(), ConvertMeshToTempest(), ConvertTempestMesh(), GetMesh(), initialize(), LoadMesh(), and SetMesh().
|
private |
Definition at line 309 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), ConstructCoveringSet(), ConvertMeshToTempest(), ConvertTempestMesh(), GetIMasks(), GetMeshEntities(), and SetMeshSet().
|
private |
Definition at line 314 of file TempestRemapper.hpp.
Referenced by SetMeshType().
|
private |
Definition at line 311 of file TempestRemapper.hpp.
Referenced by ComputeOverlapMesh(), ConstructCoveringSet(), ConvertMeshToTempest(), ConvertTempestMesh(), GetMeshSet(), initialize(), and SetMeshSet().
|
private |
Definition at line 341 of file TempestRemapper.hpp.
Referenced by GetMeshSet(), and SetMeshSet().
|
private |
Definition at line 308 of file TempestRemapper.hpp.
Referenced by ConvertTempestMesh(), GetMeshType(), LoadMesh(), and SetMeshType().
|
private |
Definition at line 310 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), ConvertMeshToTempest(), ConvertTempestMesh(), GetIMasks(), and GetMeshVertices().
|
private |
Definition at line 302 of file TempestRemapper.hpp.
Referenced by ConstructCoveringSet().
|
private |
Definition at line 312 of file TempestRemapper.hpp.
Referenced by ConstructCoveringSet().
|
private |
Definition at line 324 of file TempestRemapper.hpp.
Referenced by ComputeOverlapMesh(), and ConstructCoveringSet().
bool moab::TempestRemapper::meshValidate |
Definition at line 271 of file TempestRemapper.hpp.
Referenced by load_tempest_mesh_private(), and main().
const bool moab::TempestRemapper::offlineWorkflow |
Definition at line 270 of file TempestRemapper.hpp.
Referenced by convert_mesh_to_tempest_private().
|
private |
Definition at line 303 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), ConvertMeshToTempest(), GetIMasks(), and initialize().
|
private |
Definition at line 313 of file TempestRemapper.hpp.
Referenced by clear(), ComputeGlobalLocalMaps(), ComputeOverlapMesh(), ConvertMeshToTempest(), GetIMasks(), and initialize().
|
private |
Definition at line 345 of file TempestRemapper.hpp.
Referenced by ComputeGlobalLocalMaps(), ComputeOverlapMesh(), ConstructCoveringSet(), convert_tempest_mesh_private(), ConvertMeshToTempest(), initialize(), and moab::TempestOnlineMap::TempestOnlineMap().
|
private |
Definition at line 343 of file TempestRemapper.hpp.
Referenced by ComputeOverlapMesh(), and ConstructCoveringSet().
|
private |
Definition at line 345 of file TempestRemapper.hpp.
Referenced by clear(), ComputeOverlapMesh(), convert_overlap_mesh_sorted_by_source(), initialize(), and moab::TempestOnlineMap::TempestOnlineMap().
|
static |
Definition at line 275 of file TempestRemapper.hpp.
Referenced by convert_tempest_mesh_private(), ConvertMeshToTempest(), ConvertTempestMesh(), and load_tempest_mesh_private().