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):
struphy.propagators.push_eta.PushEtastruphy.propagators.push_vxb.PushVxB(ifwith_B0is True)struphy.propagators.push_vin_sph_pressure.PushVinSPHpressure(ifwith_pis True)struphy.propagators.push_vin_viscous_potential.PushVinViscousPotential(ifwith_viscosityis 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