specfem¶
-
namespace specfem¶
UTM forward/inverse projection (Snyder PP 1395, eqs. 8-9..8-18).
Core SPECFEM++ library namespace.
UTM (Universal Transverse Mercator) projection conversions.
Forward and inverse Transverse Mercator projection on the WGS-84 ellipsoid, following Snyder, “Map Projections – A Working Manual” (USGS PP 1395, 1987). Ported from
fortran/meshfem3d/shared/utm_geo.f90(CAMx v6.10 origin).All computations use double precision. The depth/z component is always passed through unchanged.
Example usage:
#include "specfem/coordinate_systems.hpp" specfem::coordinate_systems::geographic_coordinates geo{ 2.674, 51.561, 0.0 }; specfem::coordinate_systems::utm_projection_config cfg{ 31 }; // Forward: lon/lat -> UTM easting/northing auto cart = specfem::coordinate_systems::transform< specfem::coordinate_systems::cartesian_coordinates< specfem::element::dimension_tag::dim3>>(geo, cfg); // Inverse: UTM -> lon/lat auto recovered = specfem::coordinate_systems::transform< specfem::coordinate_systems::geographic_coordinates>(cart, cfg); // Southern hemisphere: use negative zone auto cart_south = specfem::coordinate_systems::transform< specfem::coordinate_systems::cartesian_coordinates< specfem::element::dimension_tag::dim3>>( specfem::coordinate_systems::geographic_coordinates{ 151.209, -33.869, 0.0 }, specfem::coordinate_systems::utm_projection_config{ -56 }); // Suppress projection (pass-through: x=lon, y=lat, z=depth) auto passthrough = specfem::coordinate_systems::transform< specfem::coordinate_systems::cartesian_coordinates< specfem::element::dimension_tag::dim3>>( geo, specfem::coordinate_systems::utm_projection_config{ 31, true });
Contains spectral element method solver components, mesh structures, material models, I/O utilities, and program execution interfaces.
Example usage:
# Default export PATH=/to/SPECFEMPP/bin:$PATH # or with cmake --preset <preset_name> export PATH=/to/SPECFEMPP/bin/<preset_name>:$PATH specfem --help
specfem::algorithmsspecfem::assemblyspecfem::assemblyspecfem::assembly::assemblyspecfem::assembly::boundariesspecfem::assembly::compute_source_arrayspecfem::assembly::coupled_interfacesspecfem::assembly::element_typesspecfem::assembly::edge_typesspecfem::assembly::face_typesspecfem::assembly::fieldsspecfem::assembly::simulation_fieldspecfem::assembly::Infospecfem::assembly::jacobian_matrixspecfem::assembly::kernelsspecfem::assembly::meshspecfem::assembly::propertiesspecfem::assembly::receiversspecfem::assembly::sources
specfem::attenuationspecfem::boundary_conditionsspecfem::chunk_edgespecfem::chunk_edgespecfem::chunk_edge::Indexspecfem::chunk_edge::displacementspecfem::chunk_edge::velocityspecfem::chunk_edge::accelerationspecfem::chunk_edge::transfer_function_selfspecfem::chunk_edge::transfer_function_coupledspecfem::chunk_edge::intersection_factorspecfem::chunk_edge::intersection_normalspecfem::chunk_edge::NonconformingAccessorPackspecfem::chunk_edge::coupling_terms_packspecfem::chunk_edge::integral_data_pack
specfem::chunk_elementspecfem::chunk_facespecfem::computespecfem::constantsspecfem::coordinate_systemsspecfem::datatypespecfem::datatypespecfem::datatype::AccessorTypespecfem::datatype::ElementIndexRangespecfem::datatype::simdspecfem::datatype::simd_likespecfem::datatype::is_simd_maskspecfem::datatype::all_ofspecfem::datatype::RegisterArrayspecfem::datatype::VectorPointViewTypespecfem::datatype::TensorPointViewTypespecfem::datatype::ScalarChunkElementViewTypespecfem::datatype::VectorChunkElementViewTypespecfem::datatype::TensorChunkElementViewTypespecfem::datatype::ScalarChunkEdgeViewTypespecfem::datatype::VectorChunkEdgeViewTypespecfem::datatype::TensorChunkEdgeViewType
specfem::data_accessspecfem::elementspecfem::elementspecfem::element::dimension_tagspecfem::element::dimensionspecfem::element::medium_tagspecfem::element::property_tagspecfem::element::boundary_tagspecfem::element::to_stringspecfem::element::from_stringspecfem::element::attributesspecfem::element::is_elasticspecfem::element::is_electromagnetic
specfem::element_connectionsspecfem::element_couplingspecfem::ellipticityspecfem::enumsspecfem::executionspecfem::executionspecfem::execution::VoidPolicyspecfem::execution::RangePolicyspecfem::execution::TeamPolicyspecfem::execution::TeamThreadRangePolicyspecfem::execution::PolicyTypespecfem::execution::VoidIteratorspecfem::execution::RangeIteratorspecfem::execution::RangeIndexspecfem::execution::ChunkedDomainIteratorspecfem::execution::ChunkElementIndexspecfem::execution::ChunkElementIteratorspecfem::execution::PointIndexspecfem::execution::MappedChunkedDomainIteratorspecfem::execution::MappedChunkElementIndexspecfem::execution::MappedChunkElementIteratorspecfem::execution::MappedPointIndexspecfem::execution::TeamThreadMdRangeIteratorspecfem::execution::ChunkedEdgeIteratorspecfem::execution::ChunkEdgeIndexspecfem::execution::ChunkEdgeIteratorspecfem::execution::EdgePointIndexspecfem::execution::ChunkedIntersectionIteratorspecfem::execution::ChunkedIntersectionIndexspecfem::execution::ChunkedIntersectionIteratorspecfem::execution::IntersectionPointIndexspecfem::execution::ChunkedFaceIteratorspecfem::execution::ChunkFaceIndexspecfem::execution::ChunkedFaceIteratorspecfem::execution::FacePointIndexspecfem::execution::for_each_levelspecfem::execution::for_all
specfem::iospecfem::iospecfem::io::read_2d_meshspecfem::io::read_3d_meshspecfem::io::read_2d_sourcesspecfem::io::read_3d_sourcesspecfem::io::read_2d_receiversspecfem::io::readspecfem::io::writespecfem::io::wavefield_readerspecfem::io::wavefield_writerspecfem::io::seismogram_readerspecfem::io::seismogram_writerspecfem::io::property_readerspecfem::io::property_writerspecfem::io::kernel_writerspecfem::io::readerspecfem::io::writerspecfem::io_backends
specfem::jacobian- Macros
specfem::medium_containerspecfem::medium_physicsspecfem::medium_physicsspecfem::medium_physics::compute_damping_forcespecfem::medium_physics::compute_frechet_derivativesspecfem::medium_physics::mass_matrix_componentspecfem::medium_physics::compute_source_contributionspecfem::medium_physics::compute_strainspecfem::medium_physics::compute_stressspecfem::medium_physics::compute_wavefieldspecfem::medium_physics::compute_cosserat_couple_stressspecfem::medium_physics::compute_cosserat_stress
specfem::meshspecfem::mesh_entityspecfem::mesh_entityspecfem::mesh_entity::edgespecfem::mesh_entity::elementspecfem::mesh_entity::element_gridspecfem::mesh_entity::dim2::typespecfem::mesh_entity::dim3::typespecfem::mesh_entity::dim2::to_stringspecfem::mesh_entity::dim3::to_stringspecfem::mesh_entity::dim2::edgesspecfem::mesh_entity::dim2::cornersspecfem::mesh_entity::dim3::edgesspecfem::mesh_entity::dim3::cornersspecfem::mesh_entity::dim3::faces
specfem::MPIspecfem::optimizationspecfem::parallel_configurationspecfem::periodic_tasksspecfem::pointspecfem::pointspecfem::point::assembly_indexspecfem::point::attenuationspecfem::point::boundaryspecfem::point::conforming_interfacespecfem::point::local_coordinatesspecfem::point::global_coordinatesspecfem::point::edge_indexspecfem::point::displacementspecfem::point::velocityspecfem::point::accelerationspecfem::point::mass_inversespecfem::point::field_derivativesspecfem::point::indexspecfem::point::mapped_indexspecfem::point::interface_indexspecfem::point::jacobian_matrixspecfem::point::kernelsspecfem::point::nonconforming_interfacespecfem::point::propertiesspecfem::point::sourcespecfem::point::stressspecfem::point::stress_integrands
specfem::programspecfem::quadraturespecfem::receiversspecfem::runtime_configurationspecfem::runtime_configurationspecfem::runtime_configuration::headerspecfem::runtime_configuration::quadraturespecfem::runtime_configuration::solverspecfem::runtime_configuration::receiversspecfem::runtime_configuration::run_setupspecfem::runtime_configuration::database_configurationspecfem::runtime_configuration::seismogramspecfem::runtime_configuration::wavefieldspecfem::runtime_configuration::setupspecfem::runtime_configuration::propertyspecfem::runtime_configuration::kernelspecfem::runtime_configuration::plot_wavefieldspecfem::runtime_configuration::elastic_wavespecfem::runtime_configuration::electromagnetic_wavespecfem::runtime_configuration::sourcesspecfem::runtime_configuration::time_scheme
specfem::simulationspecfem::solverspecfem::source_time_functionsspecfem::source_time_functionsspecfem::source_time_functions::stfspecfem::source_time_functions::Rickerspecfem::source_time_functions::Gaussianspecfem::source_time_functions::GaussianHdurspecfem::source_time_functions::dGaussianspecfem::source_time_functions::Diracspecfem::source_time_functions::Heavisidespecfem::source_time_functions::external
specfem::sourcesspecfem::shape_functionspecfem::tag_dispatchspecfem::time_schemespecfem::unitsspecfem::utilities