Fluid model

ViscousEulerSPH

Euler equations with viscosity discretized with smoothed particle hydrodynamics (SPH).

Overview

ViscousEulerSPH is the particle-based SPH fluid model with optional

pressure and viscosity contributions. It is intended for meshfree fluid experiments rather than FEEC-based field simulations.

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:

Continuity:

Momentum:

Entropy:

where denotes the entropy per unit mass and 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.

The internal energy per unit mass can be defined in two ways:

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_sph_pressure.PushVinSPHpressure (if with_p is True)
  4. struphy.propagators.push_vin_viscous_potential.PushVinViscousPotential (if with_viscosity is True)

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