specfem::mesh::boundaries

template<specfem::element::dimension_tag DimensionTag>
struct boundaries

Struct to store boundaries.

Template Parameters:

DimensionTag – Dimension type

Dimension-Specific Specializations

template<>
struct boundaries<specfem::element::dimension_tag::dim2>

Boundary information.

Template Parameters:

DimensionTag – Dimension type for the mesh

Constructors

boundaries() = default

Default constructor.

inline boundaries(const specfem::mesh::absorbing_boundary<dimension_tag> &absorbing_boundary, const specfem::mesh::acoustic_free_surface<dimension_tag> &acoustic_free_surface, const specfem::mesh::forcing_boundary<dimension_tag> &forcing_boundary)

Construct a new boundaries object.

Parameters:
  • absorbing_boundary – absorbing boundary

  • acoustic_free_surface – acoustic free surface

  • forcing_boundary – forcing boundary

Public Members

specfem::mesh::absorbing_boundary<dimension_tag> absorbing_boundary

Absorbing boundary.

specfem::mesh::acoustic_free_surface<dimension_tag> acoustic_free_surface

Acoustic free surface

specfem::mesh::forcing_boundary<dimension_tag> forcing_boundary

Forcing boundary (never used)

Public Static Attributes

static constexpr auto dimension_tag = specfem::element::dimension_tag::dim2

Dimension type.

template<>
struct boundaries<specfem::element::dimension_tag::dim3>

Boundary information for 3D spectral-element meshes.

Stores boundary face data from the SPECFEM++ 3D mesh database, split into two distinct sub-structures that mirror the 2D boundary layout:

  • absorbing_boundary: faces whose direction is X_MIN, X_MAX, Y_MIN, Y_MAX, or Z_MIN. Elements owning these faces receive the stacey boundary tag.

  • acoustic_free_surface: faces whose direction is Z_MAX (top surface). Acoustic elements owning these faces receive the acoustic_free_surface boundary tag; elastic elements at Z_MAX get no special tag (free surface is the natural Neumann BC for elasticity).

Constructors

inline boundaries(const specfem::mesh::absorbing_boundary<dimension_tag> &absorbing_boundary, const specfem::mesh::acoustic_free_surface<dimension_tag> &acoustic_free_surface)

Construct from pre-populated sub-structures.

Parameters:
  • absorbing_boundary – Absorbing boundary faces (non-top directions)

  • acoustic_free_surface – Top-surface faces (Z_MAX direction)

Public Members

specfem::mesh::absorbing_boundary<dimension_tag> absorbing_boundary

Non-top absorbing boundary faces.

specfem::mesh::acoustic_free_surface<dimension_tag> acoustic_free_surface

Top (Z_MAX) surface faces.

Public Static Attributes

static constexpr auto dimension_tag = specfem::element::dimension_tag::dim3

Dimension type.

Implementation Details