Skip to main content

artificial_viscosity_force

Function artificial_viscosity_force 

Source
pub fn artificial_viscosity_force(
    positions: &[[f64; 3]],
    velocities: &[[f64; 3]],
    densities: &[f64],
    masses: &[f64],
    h: f64,
    c_s: f64,
    alpha: f64,
    beta: f64,
) -> Vec<[f64; 3]>
Expand description

Artificial viscosity for SPH (Monaghan 1992 formulation).

Adds dissipation to prevent particle interpenetration. F_i^visc = -sum_j m_j PI_ij nabla W(r_ij, h)

where PI_ij = (-alpha * mu_ij * c_s + beta * mu_ij^2) / rho_ij and mu_ij = h * v_ij . r_ij / (|r_ij|^2 + 0.01 h^2).