|
pnm 1.0.3
peclet.pnm — pore-network extraction from SDF geometry (Kokkos)
|
Variables | |
| int | vti = sys.argv[1] if len(sys.argv) > 1 else "../flow/data/packing_128.vti" |
| sdf_zyx | |
| origin_zyx | |
| spacing_zyx | |
| nz | |
| ny | |
| nx | |
| MU | |
| FX | |
| sdf_xyz = np.asfortranarray(sdf_zyx.T.astype(np.float64)) | |
| s = peclet.flow.Solver(nx, ny, nz) | |
| cutcell_pressure | |
| t0 = time.time() | |
| u | |
| v | |
| w | |
| p | |
| ox | |
| oy | |
| oz | |
| F = np.array([(ox[i] * u[i]).sum() for i in range(nx)]) * spacing_zyx[1] * spacing_zyx[0] | |
| net | |
| Q = np.array(net["throat_flow"]) | |
| dp = np.array(net["throat_dp"]) | |
| A = np.array(net["throat_area"]) | |
| res = np.array(net["pore_residual"]) | |
| g = Q / dp | |
| int | ok = np.abs(res).max() < 1e-6 * np.abs(Q).max() and np.isfinite(g).all() |
Network-flow extraction on a real sphere packing: DNS (peclet.flow Stokes) -> pore network. Reads a packing SDF (VTI), solves body-force-driven Stokes flow through it, then extracts the pore network with throat flow rates and pore pressures (pnm.extract_network_flow) and reports network statistics + the built-in mass-balance check. Run: PYTHONPATH=<pnm/build>:<flow/build> python scripts/demo_network_flow_packing.py [sdf.vti]
| int demo_network_flow_packing.vti = sys.argv[1] if len(sys.argv) > 1 else "../flow/data/packing_128.vti" |
Definition at line 17 of file demo_network_flow_packing.py.
| demo_network_flow_packing.sdf_zyx |
Definition at line 18 of file demo_network_flow_packing.py.
| demo_network_flow_packing.origin_zyx |
Definition at line 18 of file demo_network_flow_packing.py.
| demo_network_flow_packing.spacing_zyx |
Definition at line 18 of file demo_network_flow_packing.py.
| demo_network_flow_packing.nz |
Definition at line 19 of file demo_network_flow_packing.py.
| demo_network_flow_packing.ny |
Definition at line 19 of file demo_network_flow_packing.py.
| demo_network_flow_packing.nx |
Definition at line 19 of file demo_network_flow_packing.py.
| demo_network_flow_packing.MU |
Definition at line 24 of file demo_network_flow_packing.py.
| demo_network_flow_packing.FX |
Definition at line 24 of file demo_network_flow_packing.py.
| demo_network_flow_packing.sdf_xyz = np.asfortranarray(sdf_zyx.T.astype(np.float64)) |
Definition at line 25 of file demo_network_flow_packing.py.
Definition at line 26 of file demo_network_flow_packing.py.
| demo_network_flow_packing.cutcell_pressure |
Definition at line 31 of file demo_network_flow_packing.py.
| demo_network_flow_packing.t0 = time.time() |
Definition at line 32 of file demo_network_flow_packing.py.
| demo_network_flow_packing.u |
Definition at line 35 of file demo_network_flow_packing.py.
| demo_network_flow_packing.v |
Definition at line 35 of file demo_network_flow_packing.py.
| demo_network_flow_packing.w |
Definition at line 35 of file demo_network_flow_packing.py.
| demo_network_flow_packing.p |
Definition at line 35 of file demo_network_flow_packing.py.
| demo_network_flow_packing.ox |
Definition at line 36 of file demo_network_flow_packing.py.
| demo_network_flow_packing.oy |
Definition at line 36 of file demo_network_flow_packing.py.
| demo_network_flow_packing.oz |
Definition at line 36 of file demo_network_flow_packing.py.
| demo_network_flow_packing.F = np.array([(ox[i] * u[i]).sum() for i in range(nx)]) * spacing_zyx[1] * spacing_zyx[0] |
Definition at line 37 of file demo_network_flow_packing.py.
| demo_network_flow_packing.net |
Definition at line 43 of file demo_network_flow_packing.py.
| demo_network_flow_packing.Q = np.array(net["throat_flow"]) |
Definition at line 48 of file demo_network_flow_packing.py.
| demo_network_flow_packing.dp = np.array(net["throat_dp"]) |
Definition at line 49 of file demo_network_flow_packing.py.
| demo_network_flow_packing.A = np.array(net["throat_area"]) |
Definition at line 50 of file demo_network_flow_packing.py.
| demo_network_flow_packing.res = np.array(net["pore_residual"]) |
Definition at line 51 of file demo_network_flow_packing.py.
Definition at line 52 of file demo_network_flow_packing.py.
| int demo_network_flow_packing.ok = np.abs(res).max() < 1e-6 * np.abs(Q).max() and np.isfinite(g).all() |
Definition at line 66 of file demo_network_flow_packing.py.