specfem::point::source

template<specfem::dimension::type DimensionTag, specfem::element::medium_tag MediumTag, specfem::wavefield::simulation_field WavefieldType>
struct source : public specfem::data_access::Accessor<specfem::data_access::AccessorType::point, specfem::data_access::DataClassType::source, DimensionTag, false>

Store source information at a given quadrature point.

Template Parameters:
  • DimensionTag – Dimension of the spectral element

  • MediumTag – Medium tag of the spectral element

  • WavefieldType – Wavefield type on which the source is applied

Public Types

using value_type = typename base_type::template vector_type<type_real, components>

Value type to store source information

Public Functions

inline source(const value_type &stf, const value_type &lagrange_interpolant)

Constructor.

Parameters:
  • stf – Source time function

  • lagrange_interpolant – Lagrange interpolant

Public Members

value_type stf

Source time function.

value_type lagrange_interpolant

Lagrange interpolant.

Public Static Attributes

static constexpr auto medium_tag = MediumTag

Medium tag of the spectral element

static constexpr auto wavefield_tag = WavefieldType

Wavefield type on which the source is applied

static constexpr int components = specfem::element::attributes<DimensionTag, MediumTag>::components

Number of components in the medium

Private Types

using base_type = specfem::data_access::Accessor<specfem::data_access::AccessorType::point, specfem::data_access::DataClassType::source, DimensionTag, false>

Base type for the source