MOAB-Tempest: A powerful mesh generation and remapping tool for climate and weather applications. More...
#include <iostream>#include <iomanip>#include <cstdlib>#include <vector>#include <string>#include <memory>#include <sstream>#include <cassert>#include "moab/Core.hpp"#include "moab/IntxMesh/IntxUtils.hpp"#include "moab/Remapping/TempestRemapper.hpp"#include "moab/Remapping/TempestOnlineMap.hpp"#include "moab/ProgOptions.hpp"#include "moab/CpuTimer.hpp"#include "DebugOutput.hpp"
Include dependency graph for mbtempest.cpp:Go to the source code of this file.
Classes | |
| class | ToolContext |
| Context class for MOAB-TempestRemap tool configuration and state management. More... | |
Namespaces | |
| anonymous_namespace{mbtempest.cpp} | |
| Sample functions for testing remapping operations. | |
Macros | |
| #define | TR_CHK_SET_ERR(err, msg) |
Functions | |
| static moab::ErrorCode | CreateTempestMesh (ToolContext &ctx, moab::TempestRemapper &remapper, Mesh *tempest_mesh) |
| Creates a TempestRemap mesh based on the provided context and mesh type. More... | |
| static constexpr double | sample_constant (double, double) noexcept |
| Constant sample function. More... | |
| static double | sample_slow_harmonic (double dLon, double dLat) noexcept |
| Sample function with slow harmonic variation. More... | |
| static double | sample_fast_harmonic (double dLon, double dLat) noexcept |
| Sample function with fast harmonic variation. More... | |
| static double | sample_stationary_vortex (double dLon, double dLat) noexcept |
| Sample function representing a stationary vortex. More... | |
| int | main (int argc, char *argv[]) |
| moab::ErrorCode | anonymous_namespace{mbtempest.cpp}::handleOverlapMemory (ToolContext &ctx, moab::TempestRemapper &remapper, Mesh *tempest_mesh) |
| moab::ErrorCode | anonymous_namespace{mbtempest.cpp}::handleOverlapMOAB (ToolContext &ctx, moab::TempestRemapper &remapper) |
| moab::ErrorCode | anonymous_namespace{mbtempest.cpp}::handleOverlapFiles (ToolContext &ctx, Mesh *tempest_mesh) |
| moab::ErrorCode | anonymous_namespace{mbtempest.cpp}::convertAndWriteMOABMesh (ToolContext &ctx, moab::TempestRemapper &remapper, Mesh *tempest_mesh) |
| Convert a generated TempestRemap mesh to MOAB format and write as h5m file. More... | |
| moab::ErrorCode | anonymous_namespace{mbtempest.cpp}::handleICOMesh (ToolContext &ctx, moab::TempestRemapper &remapper, Mesh *tempest_mesh) |
| moab::ErrorCode | anonymous_namespace{mbtempest.cpp}::handleRLLMesh (ToolContext &ctx, moab::TempestRemapper &remapper, Mesh *tempest_mesh) |
| moab::ErrorCode | anonymous_namespace{mbtempest.cpp}::handleCSMesh (ToolContext &ctx, moab::TempestRemapper &remapper, Mesh *tempest_mesh) |
Variables | |
| constexpr double | anonymous_namespace{mbtempest.cpp}::VORTEX_LON0 = 0.0 |
| constexpr double | anonymous_namespace{mbtempest.cpp}::VORTEX_LAT0 = 0.6 |
| constexpr double | anonymous_namespace{mbtempest.cpp}::VORTEX_R0 = 3.0 |
| constexpr double | anonymous_namespace{mbtempest.cpp}::VORTEX_D = 5.0 |
| constexpr double | anonymous_namespace{mbtempest.cpp}::VORTEX_T = 6.0 |
MOAB-Tempest: A powerful mesh generation and remapping tool for climate and weather applications.
MOAB-Tempest is a command-line tool that provides mesh generation and conservative remapping capabilities for climate and weather modeling. It combines the power of MOAB (Mesh-Oriented datABase) with the TempestRemap library to enable high-performance, parallel mesh generation and remapping operations.
Run './mbtempest –help' for a complete list of available options.
Definition in file mbtempest.cpp.
| #define TR_CHK_SET_ERR | ( | err, | |
| msg | |||
| ) |
Definition at line 1592 of file mbtempest.cpp.
|
static |
Creates a TempestRemap mesh based on the provided context and mesh type.
| ctx | Tool context containing configuration and state |
| remapper | TempestRemap instance for mesh operations |
| tempest_mesh | Output parameter for the created mesh |
Definition at line 1897 of file mbtempest.cpp.
References anonymous_namespace{mbtempest.cpp}::handleCSMesh(), anonymous_namespace{mbtempest.cpp}::handleICOMesh(), anonymous_namespace{mbtempest.cpp}::handleOverlapFiles(), anonymous_namespace{mbtempest.cpp}::handleOverlapMemory(), anonymous_namespace{mbtempest.cpp}::handleOverlapMOAB(), anonymous_namespace{mbtempest.cpp}::handleRLLMesh(), ToolContext::meshType, ToolContext::outputFormatter, moab::DebugOutput::printf(), and ToolContext::proc_id.
Referenced by main().
| int main | ( | int | argc, |
| char * | argv[] | ||
| ) |
Definition at line 922 of file mbtempest.cpp.
References moab::Core::add_entities(), moab::TempestOnlineMap::ApplyWeights(), moab::IntxAreaUtils::area_on_sphere(), ToolContext::baselineFile, moab::Range::begin(), ToolContext::boxeps, ToolContext::cassType, moab::ParallelComm::check_all_shared_handles(), moab::TempestRemapper::clear(), moab::TempestOnlineMap::ComputeMetrics(), moab::TempestRemapper::ComputeOverlapMesh(), ToolContext::computeWeights, moab::TempestRemapper::ConstructCoveringSet(), moab::TempestRemapper::constructEdgeMap, moab::TempestRemapper::ConvertTempestMesh(), moab::Core::create_meshset(), CreateTempestMesh(), moab::TempestOnlineMap::DefineAnalyticalSolution(), moab::Core::delete_entities(), ToolContext::disc_methods, ToolContext::disc_orders, ToolContext::doftag_names, moab::Range::end(), moab::IntxUtils::enforce_convexity(), ToolContext::enforceConvexity, ToolContext::ensureMonotonicity, ToolContext::epsrel, error(), ToolContext::fCheck, moab::Intx2Mesh::FindMaxEdges(), moab::IntxUtils::fix_degenerate_quads(), moab::TempestOnlineMap::GenerateRemappingWeights(), moab::Core::get_entities_by_dimension(), moab::TempestRemapper::GetMesh(), moab::TempestRemapper::GetMeshSet(), moab::TempestRemapper::GetOverlapAugmentedEntities(), moab::Core::globalId_tag(), ToolContext::inFilenames, moab::TempestRemapper::initialize(), moab::Range::insert(), moab::Intx2Mesh::intersect_meshes(), ToolContext::intxFilename, ToolContext::kdtreeSearch, moab::IntxAreaUtils::lHuiller, ToolContext::mapOptions, MB_CHK_SET_ERR, MB_TAG_CREAT, MB_TAG_DENSE, MB_TYPE_DOUBLE, ToolContext::meshes, MESHSET_SET, ToolContext::meshsets, ToolContext::meshType, moab::TempestRemapper::meshValidate, MOAB_PACKAGE_VERSION, ToolContext::nlayers, ToolContext::outFilename, ToolContext::outputFormatter, moab::TempestRemapper::OVERLAP_MEMORY, moab::TempestRemapper::OVERLAP_MOAB, moab::Remapper::OverlapMesh, ToolContext::ParseCLOptions(), moab::IntxAreaUtils::positive_orientation(), ToolContext::print_diagnostics, moab::DebugOutput::printf(), moab::TempestOnlineMap::PrintMapStatistics(), ToolContext::proc_id, radius, ToolContext::rrmGrids, sample_constant(), sample_fast_harmonic(), sample_slow_harmonic(), sample_stationary_vortex(), 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(), ToolContext::skip_intersection, ToolContext::skip_io, moab::Remapper::SourceMesh, moab::subtract(), moab::Core::tag_get_data(), moab::Core::tag_get_handle(), moab::Remapper::TargetMesh, ToolContext::timer_pop(), ToolContext::timer_push(), ToolContext::ToolContext(), ToolContext::useGnomonicProjection, ToolContext::variableToVerify, ToolContext::verifyWeights, moab::Core::write_file(), moab::Core::write_mesh(), and moab::TempestOnlineMap::WriteParallelMap().
|
inlinestaticconstexprnoexcept |
Constant sample function.
Definition at line 1969 of file mbtempest.cpp.
Referenced by main().
|
inlinestaticnoexcept |
Sample function with fast harmonic variation.
| dLon | Longitude in radians |
| dLat | Latitude in radians |
Definition at line 1994 of file mbtempest.cpp.
Referenced by main().
|
inlinestaticnoexcept |
Sample function with slow harmonic variation.
| dLon | Longitude in radians |
| dLat | Latitude in radians |
Definition at line 1981 of file mbtempest.cpp.
Referenced by main().
|
inlinestaticnoexcept |
Sample function representing a stationary vortex.
| dLon | Longitude in radians |
| dLat | Latitude in radians |
Definition at line 2008 of file mbtempest.cpp.
References anonymous_namespace{mbtempest.cpp}::VORTEX_D, anonymous_namespace{mbtempest.cpp}::VORTEX_LAT0, anonymous_namespace{mbtempest.cpp}::VORTEX_LON0, anonymous_namespace{mbtempest.cpp}::VORTEX_R0, and anonymous_namespace{mbtempest.cpp}::VORTEX_T.
Referenced by main().