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