specfem::boundary_conditions::dirichlet

template<typename PointBoundaryType, typename PointPropertyType, typename PointFieldType, typename PointAccelerationType, typename std::enable_if_t<!PointBoundaryType::simd::using_simd, int> = 0>
void specfem::boundary_conditions::impl_apply_boundary_conditions(const acoustic_free_surface_type&, const PointBoundaryType &boundary, const PointPropertyType&, const PointFieldType&, PointAccelerationType &acceleration)

Apply Dirichlet boundary conditions (non-SIMD)

Apply Dirichlet boundary conditions (SIMD)

Enforces homogeneous Dirichlet boundary conditions by setting the acceleration to zero on the boundary.

\[ \mathbf{a} = \mathbf{0} \quad \text{on } \Gamma \]

Template Parameters:
  • PointBoundaryType – Point boundary type

  • PointPropertyType – Point property type

  • PointFieldType – Point field type

  • PointAccelerationType – Point acceleration type

Parameters:
  • boundary – Boundary object

  • acceleration – Acceleration object

template<typename PointBoundaryType, typename PointPropertyType, typename PointMassMatrixType>
void specfem::boundary_conditions::impl_compute_mass_matrix_terms(const acoustic_free_surface_type&, const type_real, const PointBoundaryType &boundary, const PointPropertyType&, PointMassMatrixType &mass_matrix)

Compute mass matrix terms for Dirichlet boundary conditions.

No additional mass matrix terms are required for Dirichlet boundaries.

Template Parameters:
  • PointBoundaryType – Point boundary type

  • PointPropertyType – Point property type

  • PointMassMatrixType – Point mass matrix type

Parameters:
  • boundary – Boundary object

  • mass_matrix – Mass matrix object

template<typename PointBoundaryType, typename PointAccelerationType, typename std::enable_if_t<!PointBoundaryType::simd::using_simd, int> = 0>
void specfem::boundary_conditions::impl_apply_boundary_conditions(const acoustic_free_surface_type&, const PointBoundaryType &boundary, PointAccelerationType &acceleration)

Apply Dirichlet boundary conditions (non-SIMD)

Apply Dirichlet boundary conditions (SIMD)

Enforces homogeneous Dirichlet boundary conditions by setting the acceleration to zero on the boundary.

\[ \mathbf{a} = \mathbf{0} \quad \text{on } \Gamma \]

Template Parameters:
  • PointBoundaryType – Point boundary type

  • PointAccelerationType – Point acceleration type

Parameters:
  • boundary – Boundary object

  • acceleration – Acceleration object