From Water Drop Tank · v2. Edit this definition in its source simulation.
Source
behavior RecoverMoments for FreeSurfaceWater {
update when self.kind > 0.0 {
let density = self.f0 + self.f1 + self.f2 + self.f3 + self.f4 + self.f5 + self.f6 + self.f7 + self.f8 + self.f9 + self.f10 + self.f11 + self.f12 + self.f13 + self.f14 + self.f15 + self.f16 + self.f17 + self.f18;
set self.rho = clamp(density, 0.000001, 4.0);
set self.ux = clamp((0.0 * self.f0 + -1.0 * self.f1 + -1.0 * self.f2 + -1.0 * self.f3 + -1.0 * self.f4 + -1.0 * self.f5 + 0.0 * self.f6 + 0.0 * self.f7 + 0.0 * self.f8 + 0.0 * self.f9 + 0.0 * self.f10 + 0.0 * self.f11 + 0.0 * self.f12 + 0.0 * self.f13 + 1.0 * self.f14 + 1.0 * self.f15 + 1.0 * self.f16 + 1.0 * self.f17 + 1.0 * self.f18) / max(density, 0.000001), -1000000.0, 1000000.0);
set self.uy = clamp((0.0 * self.f0 + -1.0 * self.f1 + 0.0 * self.f2 + 0.0 * self.f3 + 0.0 * self.f4 + 1.0 * self.f5 + -1.0 * self.f6 + -1.0 * self.f7 + -1.0 * self.f8 + 0.0 * self.f9 + 0.0 * self.f10 + 1.0 * self.f11 + 1.0 * self.f12 + 1.0 * self.f13 + -1.0 * self.f14 + 0.0 * self.f15 + 0.0 * self.f16 + 0.0 * self.f17 + 1.0 * self.f18) / max(density, 0.000001), -1000000.0, 1000000.0);
set self.uz = clamp((0.0 * self.f0 + 0.0 * self.f1 + -1.0 * self.f2 + 0.0 * self.f3 + 1.0 * self.f4 + 0.0 * self.f5 + -1.0 * self.f6 + 0.0 * self.f7 + 1.0 * self.f8 + -1.0 * self.f9 + 1.0 * self.f10 + -1.0 * self.f11 + 0.0 * self.f12 + 1.0 * self.f13 + 0.0 * self.f14 + -1.0 * self.f15 + 0.0 * self.f16 + 1.0 * self.f17 + 0.0 * self.f18) / max(density, 0.000001) - self.gravity * 0.5, -1000000.0, 1000000.0);
}
}Building blocks
These exact versions are included when you reuse this artifact.