Behavior · Published v1

StreamBulkLiquid

StreamBulkLiquid from Water Drop Tank.

From Water Drop Tank · v2. Edit this definition in its source simulation.

Source

behavior StreamBulkLiquid for FreeSurfaceWater
{
    update when self.kind == 2.0 {
        let incoming1 = (neighbors[FreeSurfaceWater using D3Q19, D18].f1 else self.f18);
        let incoming2 = (neighbors[FreeSurfaceWater using D3Q19, D17].f2 else self.f17);
        let incoming3 = (neighbors[FreeSurfaceWater using D3Q19, D16].f3 else self.f16);
        let incoming4 = (neighbors[FreeSurfaceWater using D3Q19, D15].f4 else self.f15);
        let incoming5 = (neighbors[FreeSurfaceWater using D3Q19, D14].f5 else self.f14);
        let incoming6 = (neighbors[FreeSurfaceWater using D3Q19, D13].f6 else self.f13);
        let incoming7 = (neighbors[FreeSurfaceWater using D3Q19, D12].f7 else self.f12);
        let incoming8 = (neighbors[FreeSurfaceWater using D3Q19, D11].f8 else self.f11);
        let incoming9 = (neighbors[FreeSurfaceWater using D3Q19, D10].f9 else self.f10);
        let incoming10 = (neighbors[FreeSurfaceWater using D3Q19, D9].f10 else self.f9);
        let incoming11 = (neighbors[FreeSurfaceWater using D3Q19, D8].f11 else self.f8);
        let incoming12 = (neighbors[FreeSurfaceWater using D3Q19, D7].f12 else self.f7);
        let incoming13 = (neighbors[FreeSurfaceWater using D3Q19, D6].f13 else self.f6);
        let incoming14 = (neighbors[FreeSurfaceWater using D3Q19, D5].f14 else self.f5);
        let incoming15 = (neighbors[FreeSurfaceWater using D3Q19, D4].f15 else self.f4);
        let incoming16 = (neighbors[FreeSurfaceWater using D3Q19, D3].f16 else self.f3);
        let incoming17 = (neighbors[FreeSurfaceWater using D3Q19, D2].f17 else self.f2);
        let incoming18 = (neighbors[FreeSurfaceWater using D3Q19, D1].f18 else self.f1);
        set self.f1 = clamp(incoming1, -1000000.0, 1000000.0);
        set self.f2 = clamp(incoming2, -1000000.0, 1000000.0);
        set self.f3 = clamp(incoming3, -1000000.0, 1000000.0);
        set self.f4 = clamp(incoming4, -1000000.0, 1000000.0);
        set self.f5 = clamp(incoming5, -1000000.0, 1000000.0);
        set self.f6 = clamp(incoming6, -1000000.0, 1000000.0);
        set self.f7 = clamp(incoming7, -1000000.0, 1000000.0);
        set self.f8 = clamp(incoming8, -1000000.0, 1000000.0);
        set self.f9 = clamp(incoming9, -1000000.0, 1000000.0);
        set self.f10 = clamp(incoming10, -1000000.0, 1000000.0);
        set self.f11 = clamp(incoming11, -1000000.0, 1000000.0);
        set self.f12 = clamp(incoming12, -1000000.0, 1000000.0);
        set self.f13 = clamp(incoming13, -1000000.0, 1000000.0);
        set self.f14 = clamp(incoming14, -1000000.0, 1000000.0);
        set self.f15 = clamp(incoming15, -1000000.0, 1000000.0);
        set self.f16 = clamp(incoming16, -1000000.0, 1000000.0);
        set self.f17 = clamp(incoming17, -1000000.0, 1000000.0);
        set self.f18 = clamp(incoming18, -1000000.0, 1000000.0);
        set self.mass = clamp(self.mass + (incoming1 - self.f18) + (incoming2 - self.f17) + (incoming3 - self.f16) + (incoming4 - self.f15) + (incoming5 - self.f14) + (incoming6 - self.f13) + (incoming7 - self.f12) + (incoming8 - self.f11) + (incoming9 - self.f10) + (incoming10 - self.f9) + (incoming11 - self.f8) + (incoming12 - self.f7) + (incoming13 - self.f6) + (incoming14 - self.f5) + (incoming15 - self.f4) + (incoming16 - self.f3) + (incoming17 - self.f2) + (incoming18 - self.f1), -1000000.0, 1000000.0);
    }
}

Building blocks

These exact versions are included when you reuse this artifact.

PropertyFreeSurfaceWater@hyle · v1