2D Poroelastic Isotropic Damping Computation¶
-
template<typename T, typename PointPropertiesType, typename PointVelocityType, typename PointAccelerationType>
void impl_compute_damping_force(const std::true_type, const std::integral_constant<specfem::dimension::type, specfem::dimension::type::dim2>, const std::integral_constant<specfem::element::medium_tag, specfem::element::medium_tag::poroelastic>, const std::integral_constant<specfem::element::property_tag, specfem::element::property_tag::isotropic>, const T factor, const PointPropertiesType &point_properties, const PointVelocityType &velocity, PointAccelerationType &acceleration)¶ Compute viscous damping force for 2D poroelastic isotropic media.
Implements Darcy viscous damping for fluid-solid coupling in porous media. Damping arises from viscous flow resistance through pore networks, proportional to relative fluid-solid velocity and permeability.
Viscous force equations: \( \mathbf{F}_{\mathrm{visc}} = \eta_{\mathrm{f}} \mathbf{K}^{-1} \mathbf{w} \)
where:
\( \eta_{\mathrm{f}} \): fluid viscosity
\( \mathbf{K}^{-1} \): inverse permeability tensor
\( \mathbf{w} \): relative fluid velocity
Acceleration updates: \( \ddot{\mathbf{u}} += \frac{\phi}{\alpha} \mathbf{F}_{\mathrm{visc}} \) (solid coupling) \( \ddot{\mathbf{w}} -= \mathbf{F}_{\mathrm{visc}} \) (fluid damping)
- Template Parameters:
T – Scalar type for damping factor
- Parameters:
factor – Time step scaling factor
point_properties – Poroelastic properties ( \(\eta_{\mathrm{f}}, \mathbf{K}^{-1}, \phi, \alpha\))
velocity – Velocity field [u_x, u_z, w_x, w_z]
acceleration[in, out] – Acceleration field (modified by damping)