Acoustic Free Surface Boundary Condition

template<specfem::dimension::type DimensionTag, bool UseSIMD>
struct boundary<specfem::element::boundary_tag::acoustic_free_surface, DimensionTag, UseSIMD> : public specfem::point::boundary<specfem::element::boundary_tag::none, DimensionTag, UseSIMD>

Template specialization for acoustic free surface boundary condition.

Template Parameters:
  • DimensionTag – Dimension of the spectral element where the quadrature point is located

  • UseSIMD – Boolean indicating whether to use SIMD instructions

Subclassed by specfem::point::boundary< specfem::element::boundary_tag::stacey, DimensionTag, UseSIMD >

Typedefs

using simd = specfem::datatype::simd<type_real, UseSIMD>

SIMD data type.

Compile-time constants

static constexpr auto boundary_tag = specfem::element::boundary_tag::acoustic_free_surface

Tag indicating acoustic free surface boundary condition.

Constructors

boundary() = default

Default constructor.

boundary(const specfem::point::boundary<specfem::element::boundary_tag::composite_stacey_dirichlet, DimensionTag, UseSIMD> &boundary)

Implicit conversion constructor from composite Stacey Dirichlet boundary.

Parameters:

boundary – Composite Stacey Dirichlet boundary

Public Members

value_type tag

Tag indicating the type of boundary condition at the quadrature point.

Private Types

using value_type = typename specfem::datatype::simd_like<specfem::element::boundary_tag_container, type_real, UseSIMD>::datatype

Datatype for storing values.

Is a scalar if UseSIMD is false, otherwise is a SIMD like vector.