Fluid model

IncompressibleNavierStokesSPH

Incompressible Navier-Stokes equations discretized with smoothed particle hydrodynamics (SPH).

Overview

IncompressibleNavierStokesSPH is the particle-based SPH fluid model...

Use cases

This model is appropriate for:
  • SPH verification with pressure and viscosity
  • meshfree compressible-fluid experiments
  • testing particle-based viscosity and pressure pushers

Governing equations

PDEs solved by model:

Incompressible Navier-Stokes:

where is the viscous stress tensor.

The viscous stress tensor for a Newtonian fluid is given by:

where is the dynamic (shear) viscosity and is the identity tensor.

Normalization

The characteristic speed is thermal:

Discretization

Time integration is performed by the following propagators (in sequence):
  1. struphy.propagators.push_eta.PushEta
  2. struphy.propagators.push_vxb.PushVxB (if with_B0 is True)
  3. struphy.propagators.push_vin_viscous_potential.PushVinViscousPotential (if with_viscosity is True)
  4. struphy.propagators.poisson_solve.PoissonSolve
  5. struphy.propagators.push_vin_efield.PushVinEfield

Diagnostics

The following scalars are tracked during simulation:

  • SPH kinetic energy: en_kin

Example

Create and initialize the viscous Euler SPH model:

from struphy.models import ViscousEulerSPH

model = ViscousEulerSPH()
model.euler_fluid.var