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)