Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
SPECFEM++ documentation
SPECFEM++ documentation

GETTING STARTED

  • Getting Started
  • Cookbooks
    • Wave propagation
      • 2D Examples
        • Homogeneous elastic media
        • Elastic & viscoelastic wave propagation comparison
        • Effect of the reference frequency on viscoelastic attenuation
        • Solid-solid interface
        • Fluid-solid interface
        • Fluid-solid interface with bathymetry
        • Fluid-solid non-conforming interface with bathymetry
        • Anisotropic zinc crystal
        • Using a CUBIT mesh in SPECFEM++
        • Marmousi2 model
        • Migrating from SPECFEM2D Fortran to SPECFEM++
      • 3D Examples
        • Homogeneous elastic media
        • Using a Gmsh mesh in SPECFEM++ (3D)
    • Kernel Computation
      • 2D Examples
        • Adjoint simulations and banana-donut kernels
  • CMake Presets for Multiple Build Configurations
  • Compiling and Running on Special Machines

USER DOCUMENTATION

  • MESHFEM
    • MESHFEM2D Parameter Documentation
      • Parameter File
      • Topography File
    • MESHFEM3D Parameter Documentation
      • Parameter File
      • Interfaces File
  • SPECFEM++ Parameter Documentation
  • Source Description
  • Source Time Function Description

CONTRIBUTION

  • Contributing to SPECFEM++
  • Style
  • Git development workflow
  • Build system requirements
  • Continuous Integration (CI)

COMMUNITY

  • Report bugs
  • Request a new feature
  • Join the discussion

BENCHMARKS

  • Forward simulations

API DOCUMENTATION

  • API documentation
    • specfem
      • specfem::algorithms
        • specfem::algorithms::divergence
        • specfem::algorithms::gradient
        • specfem::algorithms::interpolate
        • specfem::algorithms::locate_point
        • specfem::algorithms::transfer
        • specfem::algorithms::coupling_integral
      • specfem::assembly
        • specfem::assembly::assembly
        • specfem::assembly::boundaries
          • specfem::assembly::boundaries_impl::acoustic_free_surface
          • specfem::assembly::boundaries_impl::stacey
        • specfem::assembly::compute_source_array
          • Vector Source Implementation
          • Tensor Source Implementation
        • specfem::assembly::coupled_interfaces
        • specfem::assembly::element_types
        • specfem::assembly::edge_types
        • specfem::assembly::face_types
        • specfem::assembly::fields
        • specfem::assembly::simulation_field
          • specfem::assembly::fields_impl::field_impl
          • specfem::assembly::fields_impl::base_field
        • specfem::assembly::Info
        • specfem::assembly::jacobian_matrix
        • specfem::assembly::kernels
        • specfem::assembly::mesh
          • 2D specfem::assembly::mesh
            • 2D specfem::assembly::mesh_impl::control_nodes
            • 2D specfem::assembly::mesh_impl::mesh_to_compute_mapping
            • 2D specfem::assembly::mesh_impl::points
            • 2D specfem::assembly::mesh_impl::shape_functions
            • 2D Utilities
          • 3D specfem::assembly::mesh
            • 3D specfem::assembly::mesh_impl::control_nodes
            • 3D specfem::assembly::mesh_impl::points
            • 3D specfem::assembly::mesh_impl::shape_functions
        • specfem::assembly::properties
        • specfem::assembly::receivers
        • specfem::assembly::sources
          • specfem::assembly::sources_impl::locate_sources
          • specfem::assembly::sources_impl::source_medium
          • specfem::assembly::sources_impl::sort_sources_per_medium
      • specfem::attenuation
        • specfem::attenuation::compute_tau_sigma
        • specfem::attenuation::compute_tau_eps
        • specfem::attenuation::compute_factors
        • specfem::attenuation::compute_band
        • specfem::attenuation::compute_integration_factors
        • specfem::attenuation::maxwell
      • specfem::boundary_conditions
        • specfem::boundary_conditions::none
        • specfem::boundary_conditions::stacey
        • specfem::boundary_conditions::dirichlet
        • specfem::boundary_conditions::composite_stacey_dirichlet
      • specfem::chunk_edge
        • specfem::chunk_edge::Index
        • specfem::chunk_edge::displacement
        • specfem::chunk_edge::velocity
        • specfem::chunk_edge::acceleration
          • specfem::chunk_edge::impl::field
        • specfem::chunk_edge::transfer_function_self
        • specfem::chunk_edge::transfer_function_coupled
          • specfem::chunk_edge::impl::transfer_function
        • specfem::chunk_edge::intersection_factor
        • specfem::chunk_edge::intersection_normal
        • specfem::chunk_edge::NonconformingAccessorPack
        • specfem::chunk_edge::coupling_terms_pack
        • specfem::chunk_edge::integral_data_pack
      • specfem::chunk_element
        • specfem::chunk_element::Index
        • specfem::chunk_element::MappedIndex
        • specfem::chunk_element::displacement
        • specfem::chunk_element::velocity
        • specfem::chunk_element::acceleration
          • specfem::chunk_element::impl::field
        • specfem::chunk_element::stress_integrand
      • specfem::chunk_face
        • specfem::chunk_face::Index
        • specfem::chunk_face::acceleration
        • specfem::chunk_face::velocity
        • specfem::chunk_face::displacement
        • specfem::chunk_face::coupled_coordinates
        • specfem::chunk_face::intersection_normal
        • specfem::chunk_face::NonconformingAccessorPack
      • specfem::compute
        • specfem::compute::impl::compute_mass_matrix
        • specfem::compute::impl::compute_stiffness_interaction
        • specfem::compute::impl::compute_source_interaction
        • specfem::compute::impl::compute_material_derivatives
        • specfem::compute::impl::compute_coupling
        • specfem::compute::impl::invert_mass_matrix
        • specfem::compute::impl::divide_mass_matrix
        • specfem::compute::impl::compute_seismograms
      • specfem::constants
      • specfem::coordinate_systems
        • specfem::coordinate_systems::geographic_coordinates
        • specfem::coordinate_systems::cartesian_coordinates
        • specfem::coordinate_systems::geocentric_coordinates
        • specfem::coordinate_systems::transform
        • UTM projection
      • specfem::datatype
        • specfem::datatype::AccessorType
        • specfem::datatype::ElementIndexRange
        • specfem::datatype::simd
        • specfem::datatype::simd_like
        • specfem::datatype::is_simd_mask
        • specfem::datatype::all_of
        • specfem::datatype::RegisterArray
        • specfem::datatype::VectorPointViewType
        • specfem::datatype::TensorPointViewType
        • specfem::datatype::ScalarChunkElementViewType
        • specfem::datatype::VectorChunkElementViewType
        • specfem::datatype::TensorChunkElementViewType
        • specfem::datatype::ScalarChunkEdgeViewType
        • specfem::datatype::VectorChunkEdgeViewType
        • specfem::datatype::TensorChunkEdgeViewType
        • specfem::datatype::impl::RegisterArray
        • specfem::datatype::impl::VectorChunkElementSubview
        • specfem::datatype::impl::TensorChunkElementSubview
        • specfem::datatype::impl::VectorChunkEdgeSubview
        • specfem::datatype::impl::TensorChunkEdgeSubview
      • specfem::data_access
        • specfem::data_access::DataClassType
        • specfem::data_access::ContainerType
        • specfem::data_access::Container
        • specfem::data_access::Accessor
        • specfem::data_access::CheckCompatibility
      • specfem::element
        • specfem::element::dimension_tag
        • specfem::element::dimension
        • specfem::element::medium_tag
        • specfem::element::property_tag
        • specfem::element::boundary_tag
        • specfem::element::to_string
        • specfem::element::from_string
        • specfem::element::attributes
        • specfem::element::is_elastic
        • specfem::element::is_electromagnetic
      • specfem::element_connections
        • specfem::element_connections::type
        • specfem::element_connections::to_string
        • specfem::element_connections::connection_mapping
        • specfem::element_connections::to_string
      • specfem::element_coupling
        • specfem::element_coupling::interface_tag
        • specfem::element_coupling::attributes
      • specfem::ellipticity
        • specfem::ellipticity::model
        • specfem::ellipticity::ellipsoid
      • specfem::enums
        • specfem::enums::display_format
        • specfem::enums::wavefield
        • specfem::enums::to_string
      • specfem::execution
        • specfem::execution::VoidPolicy
        • specfem::execution::RangePolicy
        • specfem::execution::TeamPolicy
        • specfem::execution::TeamThreadRangePolicy
        • specfem::execution::PolicyType
        • specfem::execution::VoidIterator
        • specfem::execution::RangeIterator
        • specfem::execution::RangeIndex
        • specfem::execution::ChunkedDomainIterator
        • specfem::execution::ChunkElementIndex
        • specfem::execution::ChunkElementIterator
        • specfem::execution::PointIndex
        • specfem::execution::MappedChunkedDomainIterator
        • specfem::execution::MappedChunkElementIndex
        • specfem::execution::MappedChunkElementIterator
        • specfem::execution::MappedPointIndex
        • specfem::execution::TeamThreadMdRangeIterator
        • specfem::execution::ChunkedEdgeIterator
        • specfem::execution::ChunkEdgeIndex
        • specfem::execution::ChunkEdgeIterator
        • specfem::execution::EdgePointIndex
        • specfem::execution::ChunkedIntersectionIterator
        • specfem::execution::ChunkedIntersectionIndex
        • specfem::execution::ChunkedIntersectionIterator
        • specfem::execution::IntersectionPointIndex
        • specfem::execution::ChunkedFaceIterator
        • specfem::execution::ChunkFaceIndex
        • specfem::execution::ChunkedFaceIterator
        • specfem::execution::FacePointIndex
        • specfem::execution::for_each_level
        • specfem::execution::for_all
      • specfem::io
        • specfem::io::read_2d_mesh
        • specfem::io::read_3d_mesh
        • specfem::io::read_2d_sources
        • specfem::io::read_3d_sources
        • specfem::io::read_2d_receivers
        • specfem::io::read
        • specfem::io::write
        • specfem::io::wavefield_reader
        • specfem::io::wavefield_writer
        • specfem::io::seismogram_reader
        • specfem::io::seismogram_writer
        • specfem::io::property_reader
        • specfem::io::property_writer
        • specfem::io::kernel_writer
        • specfem::io::reader
        • specfem::io::writer
        • specfem::io_backends
          • specfem::io::HDF5
          • specfem::io::ADIOS2
          • specfem::io::NPY
          • specfem::io::NPZ
          • specfem::io::ASCII
      • specfem::jacobian
      • Macros
        • FOR_EACH_IN_PRODUCT
        • SUPPRESS_UNREACHABLE
        • POINT_CONTAINER
        • DATA_CONTAINER
        • CONFIG_STRINGS
      • specfem::medium_container
        • specfem::medium_container::material
          • specfem::medium_container::material< dim2, elastic, isotropic >
          • specfem::medium_container::material< dim2, elastic, anisotropic >
          • specfem::medium_container::material< dim2, elastic, isotropic_cosserat >
          • specfem::medium_container::material< dim2, acoustic, isotropic >
          • specfem::medium_container::material< dim2, poroelastic, isotropic >
          • specfem::medium_container::material< dim2, electromagnetic, isotropic >
          • specfem::medium_container::material< dim3, elastic, isotropic >
          • specfem::medium_container::material< dim3, acoustic, isotropic >
        • specfem::assembly::impl::domain_properties
          • specfem::medium::impl::Accessor
          • specfem::medium_container::properties::data_container
            • specfem::medium_container::properties::data_container< dim2, elastic, isotropic >
            • specfem::medium_container::properties::data_container< dim2, elastic, anisotropic >
            • specfem::medium_container::properties::data_container< dim2, elastic, isotropic_cosserat >
            • specfem::medium_container::properties::data_container< dim2, acoustic, isotropic >
            • specfem::medium_container::properties::data_container< dim2, poroelastic, isotropic >
            • specfem::medium_container::properties::data_container< dim3, elastic, isotropic >
            • specfem::medium_container::properties::data_container< dim3, elastic, anisotropic >
            • specfem::medium_container::properties::data_container< dim3, elastic, isotropic_cosserat >
            • specfem::medium_container::properties::data_container< dim3, acoustic, isotropic >
        • specfem::assembly::impl::domain_kernels
          • specfem::medium::impl::Accessor
          • specfem::medium_container::kernels::data_container
            • specfem::medium_container::kernels::data_container< dim2, elastic, isotropic >
            • specfem::medium_container::kernels::data_container< dim2, elastic, anisotropic >
            • specfem::medium_container::kernels::data_container< dim2, acoustic, isotropic >
            • specfem::medium_container::kernels::data_container< dim2, poroelastic, isotropic >
            • specfem::medium_container::kernels::data_container< dim3, elastic, isotropic >
            • specfem::medium_container::kernels::data_container< dim3, elastic, anisotropic >
            • specfem::medium_container::kernels::data_container< dim3, acoustic, isotropic >
        • specfem::medium_container::kernels::point_container
        • specfem::medium_container::properties::point_container
        • specfem::medium::impl::Accessor
      • specfem::medium_physics
        • specfem::medium_physics::compute_damping_force
          • 2D Poroelastic Isotropic Damping Computation
        • specfem::medium_physics::compute_frechet_derivatives
          • 2D Elastic Isotropic Fréchet Derivative Computation
          • 2D Elastic Anisotropic Fréchet Derivative Computation
          • 2D Acoustic Isotropic Fréchet Derivative Computation
          • 2D Poroelastic Isotropic Fréchet Derivative Computation
        • specfem::medium_physics::mass_matrix_component
          • 2D Elastic Mass Matrix Computation
          • Acoustic Mass Matrix Computation
          • 2D Poroelastic Mass Matrix Computation
          • 3D Elastic Mass Matrix Computation
        • specfem::medium_physics::compute_source_contribution
          • 2D Elastic Isotropic Source Contribution
          • 2D Elastic Anisotropic Source Contribution
          • 2D Elastic Isotropic Cosserat Source Contribution
          • 2D Acoustic Source Contribution
          • 2D Poroelastic Source Contribution
          • 3D Elastic Isotropic Source Contribution
          • 3D Acoustic Source Contribution
        • specfem::medium_physics::compute_strain
          • 2D Elastic Isotropic Strain Computation
          • 3D Elastic Isotropic Strain Computation
        • specfem::medium_physics::compute_stress
          • 2D Elastic Isotropic Stress Computation
          • 2D Elastic Anisotropic Stress Computation
          • 2D Elastic Isotropic Cosserat Stress Computation
          • 2D Acoustic Stress Computation
          • 2D Poroelastic Stress Computation
          • 3D Elastic Isotropic Stress Computation
          • 3D Acoustic Stress Computation
        • specfem::medium_physics::compute_wavefield
        • specfem::medium_physics::compute_cosserat_couple_stress
          • 2D Elastic Isotropic Cosserat Coupled Stress Computation
        • specfem::medium_physics::compute_cosserat_stress
          • 2D Elastic Isotropic Cosserat Stress Computation
      • specfem::mesh
        • specfem::mesh::mesh
        • specfem::mesh::boundaries
          • specfem::mesh::absorbing_boundaries
          • specfem::mesh::free_surface_boundaries
        • specfem::mesh::control_nodes
        • specfem::mesh::materials
          • specfem::mesh::materials< specfem::element::dimension_tag::dim2 >::material_specification
          • specfem::mesh::materials< specfem::element::dimension_tag::dim2 >::material
          • specfem::mesh::materials< specfem::element::dimension_tag::dim3 >::material_specification
          • specfem::mesh::materials< specfem::element::dimension_tag::dim3 >::material
        • specfem::mesh::tags
      • specfem::mesh_entity
        • specfem::mesh_entity::edge
        • specfem::mesh_entity::element
        • specfem::mesh_entity::element_grid
        • specfem::mesh_entity::dim2::type
        • specfem::mesh_entity::dim3::type
        • specfem::mesh_entity::dim2::to_string
        • specfem::mesh_entity::dim3::to_string
        • specfem::mesh_entity::dim2::edges
        • specfem::mesh_entity::dim2::corners
        • specfem::mesh_entity::dim3::edges
        • specfem::mesh_entity::dim3::corners
        • specfem::mesh_entity::dim3::faces
      • specfem::MPI
      • specfem::optimization
        • Nelder-Mead Simplex Optimization Algorithm
        • Steepest Descent Optimization Algorithm
      • specfem::parallel_configuration
      • specfem::periodic_tasks
        • specfem::periodic_tasks::periodic_task
        • specfem::periodic_tasks::check_signal
        • specfem::periodic_tasks::plot_wavefield
        • specfem::periodic_tasks::plotter
        • specfem::periodic_tasks::wavefield_reader
        • specfem::periodic_tasks::wavefield_writer
      • specfem::point
        • specfem::point::assembly_index
        • specfem::point::attenuation
        • specfem::point::boundary
          • No Boundary Condition
          • Acoustic Free Surface Boundary Condition
          • Stacey Boundary Condition
          • Compositie Stacey Dirichlet Boundary Condition
        • specfem::point::conforming_interface
        • specfem::point::local_coordinates
        • specfem::point::global_coordinates
        • specfem::point::edge_index
        • specfem::point::displacement
        • specfem::point::velocity
        • specfem::point::acceleration
        • specfem::point::mass_inverse
          • specfem::point::impl::field
        • specfem::point::field_derivatives
        • specfem::point::index
        • specfem::point::mapped_index
        • specfem::point::interface_index
        • specfem::point::jacobian_matrix
          • Without Stored Jacobian
          • With Stored Jacobian
        • specfem::point::kernels
        • specfem::point::nonconforming_interface
          • specfem::point::impl::nonconforming_transfer_function
        • specfem::point::properties
        • specfem::point::source
        • specfem::point::stress
        • specfem::point::stress_integrands
      • specfem::program
        • specfem::program::Context
        • specfem::program::execute
        • specfem::program::abort
        • specfem::program::qplots
      • specfem::quadrature
        • specfem::quadrature::gll
      • specfem::receivers
      • specfem::runtime_configuration
        • specfem::runtime_configuration::header
        • specfem::runtime_configuration::quadrature
        • specfem::runtime_configuration::solver
        • specfem::runtime_configuration::receivers
        • specfem::runtime_configuration::run_setup
        • specfem::runtime_configuration::database_configuration
        • specfem::runtime_configuration::seismogram
        • specfem::runtime_configuration::wavefield
        • specfem::runtime_configuration::setup
        • specfem::runtime_configuration::property
        • specfem::runtime_configuration::kernel
        • specfem::runtime_configuration::plot_wavefield
        • specfem::runtime_configuration::elastic_wave
        • specfem::runtime_configuration::electromagnetic_wave
        • specfem::runtime_configuration::sources
        • specfem::runtime_configuration::time_scheme
      • specfem::simulation
        • specfem::simulation::type
        • specfem::simulation::simulation
        • specfem::simulation::field_type
      • specfem::solver
        • specfem::solver::solver
        • specfem::solver::time_marching
      • specfem::source_time_functions
        • specfem::source_time_functions::stf
        • specfem::source_time_functions::Ricker
        • specfem::source_time_functions::Gaussian
        • specfem::source_time_functions::GaussianHdur
        • specfem::source_time_functions::dGaussian
        • specfem::source_time_functions::Dirac
        • specfem::source_time_functions::Heaviside
        • specfem::source_time_functions::external
      • specfem::sources
        • specfem::sources::vector_source
          • specfem::sources::force
            • 2D specfem::sources::force_source implementation
            • 3D specfem::sources::force_source implementation
          • specfem::sources::adjoint_source
            • 2D specfem::sources::adjoint_source
          • specfem::sources::cosserat_force
            • 2D specfem::sources::cosserat_force
          • specfem::sources::external
            • 2D specfem::sources::external
        • specfem::sources::tensor_source
          • specfem::sources::moment_tensor
            • 2D specfem::sources::moment_tensor implementation
            • 3D specfem::sources::moment_tensor implementation
      • specfem::shape_function
      • specfem::tag_dispatch
        • tag_dispatch/element_combinations.hpp
        • tag_dispatch/for_each.hpp
        • Storage
        • TypedStorage
        • specfem::tag_dispatch::impl::TypePolicy
        • specfem::tag_dispatch::impl::TemplatePolicy
        • create_mirror_storage_and_copy
        • tag_dispatch/is_valid.hpp
        • tag_dispatch/find_in.hpp
      • specfem::time_scheme
        • specfem::time_scheme::time_scheme
        • specfem::time_scheme::newmark
          • Newmark Forward Time Scheme
          • Newmark Combined Time Scheme
      • specfem::units
        • specfem::units::Quantity
        • specfem::units::unit_cast
        • specfem::units::unit_symbols
        • specfem::units Parsing
      • specfem::utilities
        • specfem::utilities::is_close
        • specfem::utilities::logarithmic_center
        • specfem::utilities::logspace
        • specfem::utilities::Band
        • specfem::utilities::to_zero_lead
        • specfem::utilities::snake_to_pascal
        • specfem::utilities::to_lower
        • specfem::utilities::always_false
Back to top
View this page

specfem::units¶

namespace units¶

Type-safe physical units and conversions.

Provides compile-time dimensional analysis through the Quantity template, preventing unit mismatches and enabling safe conversions between different unit systems (e.g., meters/kilometers, seconds/hertz/omega).

  • specfem::units::Quantity
  • specfem::units::unit_cast
  • specfem::units::unit_symbols
  • specfem::units Parsing
Next
specfem::units::Quantity
Previous
Newmark Combined Time Scheme
Copyright © 2023, Rohit Kakodkar
Made with Sphinx and @pradyunsg's Furo
On this page
  • specfem::units
    • specfem::units