Particle propagator
PushVinSPHpressure
Advances fluid.
What it 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.
| Name | Kind | Accepted spaces |
|---|---|---|
fluid | SPHVariable | ParticlesSPH |
Options
Set these on the propagator in a parameter file, for example PushVinSPHpressure.Options(kernel_type=...).
| Option | Default | Choices | Description |
|---|---|---|---|
kernel_type | gaussian_2d | trigonometric_1dgaussian_1dlinear_1dtrigonometric_2dgaussian_2dlinear_2dtrigonometric_3dgaussian_3dlinear_isotropic_3dlinear_3d | Smoothing kernel used for density and pressure-force evaluation. |
kernel_width | None | tuple | Kernel widths per logical direction. If None, defaults to (1 / n_i) based on sorting boxes. |
algo | forward_euler | forward_euler | Time stepping algorithm for velocity pushing. |
gravity | (0.0, 0.0, 0.0) | tuple | Constant gravity vector added in the SPH pressure push. |
kappa | 1 | float | Coefficient in the internal energy function. |
thermodynamics | isothermal | isothermalpolytropic | Thermodynamic 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.