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
    • 2D Examples
      • Wave propagation through homogeneous media
      • Wave propagation through solid-solid interface
      • Wave propagation through fluid-solid interface
      • Wave propagation through fluid-solid interface with bathymetry
      • Wave propagation through a nonconforming fluid-solid interface
      • Wave propagation through anisotropic zinc crystal
      • Adjoint Simulations and Banana Donut Kernels
      • Running SPECFEM++ using a CUBIT mesh
      • Wave propagation through the Marmousi2 model
      • Migrating from SPECFEM2D Fortran to SPECFEM++
    • 3D Examples
      • Wave propagation through 3D homogeneous media
  • 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::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::fields
        • specfem::assembly::simulation_field
          • specfem::assembly::fields_impl::field_impl
          • specfem::assembly::fields_impl::base_field
        • specfem::assembly::jacobian_matrix
        • specfem::assembly::kernels
        • specfem::assembly::mesh
        • 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::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::data_access
        • specfem::data_access::DataClassType
        • specfem::data_access::ContainerType
        • specfem::data_access::Container
        • specfem::data_access::AccessorType
        • specfem::data_access::Accessor
      • 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_TEMPORARY_REF
        • POINT_CONTAINER
        • DATA_CONTAINER
        • CONFIG_STRINGS
      • specfem::MPI
      • 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::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
        • 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::receivers
      • 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::time_scheme
        • specfem::time_scheme::time_scheme
        • specfem::time_scheme::newmark
          • Newmark Forward Time Scheme
          • Newmark Combined Time Scheme
    • specfem::algorithms
      • specfem::algorithms::divergence
      • specfem::algorithms::gradient
      • specfem::algorithms::interpolate
      • specfem::algorithms::locate_point
      • specfem::algorithms::transfer
    • specfem::boundary_conditions
      • specfem::boundary_conditions::none
      • specfem::boundary_conditions::stacey
      • specfem::boundary_conditions::dirichlet
      • specfem::boundary_conditions::composite_stacey_dirichlet
    • Enumerations
      • specfem::element::medium_tag
      • specfem::element::property_tag
      • specfem::element::boundary_tag
      • specfem::element::to_string
      • specfem::element::attributes
      • specfem::element::from_string
      • specfem::element::is_elastic
      • specfem::element::is_electromagnetic
      • specfem::element::medium_types
      • specfem::element::material_systems
      • specfem::element::element_types
      • specfem::dimension::type
      • specfem::dimension::dimension
      • specfem::display::format
      • specfem::interface::interface_tag
      • specfem::interface::attributes
      • specfem::interface::edges
      • specfem::simulation::type
      • specfem::simulation::simulation
      • specfem::connections::type
      • specfem::connections::to_string
      • specfem::connections::connection_mapping
      • specfem::connections::to_string
      • 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::wavefield::simulation_field
      • specfem::wavefield::type
      • specfem::wavefield::wavefield
      • specfem::wavefield::to_string
    • Quadrature API
      • GLL quadrature
    • 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::dimension::type::dim2 >::material_specification
        • specfem::mesh::materials< specfem::dimension::type::dim2 >::material
        • specfem::mesh::materials< specfem::dimension::type::dim3 >::material_specification
        • specfem::mesh::materials< specfem::dimension::type::dim3 >::material
      • specfem::mesh::tags
    • specfem::datatype
      • specfem::datatype::simd
      • specfem::datatype::simd_like
      • specfem::datatype::is_simd_mask
      • specfem::datatype::all_of
      • 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
    • Execution Framework
      • 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::for_each_level
      • specfem::execution::for_all
    • specfem::medium
      • specfem::medium::material
        • specfem::medium::material< dim2, elastic, isotropic >
        • specfem::medium::material< dim2, elastic, anisotropic >
        • specfem::medium::material< dim2, elastic, isotropic_cosserat >
        • specfem::medium::material< dim2, acoustic, isotropic >
        • specfem::medium::material< dim2, poroelastic, isotropic >
        • specfem::medium::material< dim2, electromagnetic, isotropic >
        • specfem::medium::material< dim3, elastic, isotropic >
        • specfem::medium::material< dim3, acoustic, isotropic >
      • specfem::medium::properties_container
        • specfem::medium::impl::Accessor
        • specfem::medium::properties::data_container
          • specfem::medium::properties::data_container< dim2, elastic, isotropic >
          • specfem::medium::properties::data_container< dim2, elastic, anisotropic >
          • specfem::medium::properties::data_container< dim2, elastic, isotropic_cosserat >
          • specfem::medium::properties::data_container< dim2, acoustic, isotropic >
          • specfem::medium::properties::data_container< dim2, poroelastic, isotropic >
          • specfem::medium::properties::data_container< dim3, elastic, isotropic >
          • specfem::medium::properties::data_container< dim3, elastic, anisotropic >
          • specfem::medium::properties::data_container< dim3, elastic, isotropic_cosserat >
          • specfem::medium::properties::data_container< dim3, acoustic, isotropic >
      • specfem::medium::kernels_container
        • specfem::medium::impl::Accessor
        • specfem::medium::kernels::data_container
          • specfem::medium::kernels::data_container< dim2, elastic, isotropic >
          • specfem::medium::kernels::data_container< dim2, elastic, anisotropic >
          • specfem::medium::kernels::data_container< dim2, acoustic, isotropic >
          • specfem::medium::kernels::data_container< dim2, poroelastic, isotropic >
          • specfem::medium::kernels::data_container< dim3, elastic, isotropic >
          • specfem::medium::kernels::data_container< dim3, elastic, anisotropic >
          • specfem::medium::kernels::data_container< dim3, acoustic, isotropic >
      • specfem::medium::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
      • specfem::medium::mass_matrix_component
        • 2D Elastic Mass Matrix Computation
        • 2D Acoustic Mass Matrix Computation
        • 2D Poroelastic Mass Matrix Computation
        • 3D Elastic Mass Matrix Computation
      • specfem::medium::compute_wavefield
      • specfem::medium::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
      • specfem::medium::compute_damping_force
        • 2D Poroelastic Isotropic Damping Computation
      • specfem::medium::compute_cosserat_stress
        • 2D Elastic Isotropic Cosserat Stress Computation
      • specfem::medium::compute_couple_stress
        • 2D Elastic Isotropic Cosserat Coupled Stress Computation
      • specfem::medium::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::kokkos_kernels
      • specfem::kokkos_kernels::impl::compute_mass_matrix
      • specfem::kokkos_kernels::impl::compute_stiffness_interaction
      • specfem::kokkos_kernels::impl::compute_source_interaction
      • specfem::kokkos_kernels::impl::compute_material_derivatives
      • specfem::kokkos_kernels::impl::compute_coupling
      • specfem::kokkos_kernels::impl::invert_mass_matrix
      • specfem::kokkos_kernels::impl::divide_mass_matrix
      • specfem::kokkos_kernels::impl::compute_seismogram
    • Coupled Interface
    • 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::display
      • 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::parallel_configuration
Back to top
View this page

specfem::assembly::mesh_impl::shape_functions Template¶

Base template for shape function calculations across dimensions.

template<specfem::dimension::type Dimension>
struct shape_functions¶

This template provides shape function computation capabilities for spectral elements:

  • 2D Implementation: 2D specfem::assembly::mesh_impl::shape_functions

  • 3D Implementation: 3D specfem::assembly::mesh_impl::shape_functions

Copyright © 2023, Rohit Kakodkar
Made with Sphinx and @pradyunsg's Furo
On this page
  • specfem::assembly::mesh_impl::shape_functions Template
    • specfem::assembly::mesh_impl::shape_functions