Particle propagator

PushVinSPHpressure

Advances fluid.

What it solves

For each marker , solves

where is a constant acceleration and the second term corresponds to the pressure gradient. Here, denotes the internal energy per unit mass as a function of the mass density and denotes the inverse transpose Jacobian arising in the pull back of the gradient of the smoothing kernel chosen from struphy.pic.sph_smoothing_kernels. Two choices of the internal energy are implemented:

Isothermal closure: , where is constant. Polytropic closure: , where is the polytropic constant and is the polytropic index.

Time stepping is forward Euler.

Variables it advances

The variables this step updates over a time step dt, and the discrete spaces each one accepts.

NameKindAccepted spaces
fluidSPHVariableParticlesSPH

Options

Set these on the propagator in a parameter file, for example PushVinSPHpressure.Options(kernel_type=...).

OptionDefaultChoicesDescription
kernel_typegaussian_2dtrigonometric_1dgaussian_1dlinear_1dtrigonometric_2dgaussian_2dlinear_2dtrigonometric_3dgaussian_3dlinear_isotropic_3dlinear_3dSmoothing kernel used for density and pressure-force evaluation.
kernel_widthNonetupleKernel widths per logical direction. If None, defaults to (1 / n_i) based on sorting boxes.
algoforward_eulerforward_eulerTime stepping algorithm for velocity pushing.
gravity(0.0, 0.0, 0.0)tupleConstant gravity vector added in the SPH pressure push.
kappa1floatCoefficient in the internal energy function.
thermodynamicsisothermalisothermalpolytropicThermodynamic closure selecting the SPH pressure kernel.

Used by

Each model splits its time step into a sequence of propagators. This one appears in 1 model, at the position shown.