flow
Kokkos cut-cell IBM incompressible Navier-Stokes solver + pnm pore extraction
Loading...
Searching...
No Matches
staggered_vs_colocated Namespace Reference

Functions

 make_solver (sdflow, solver, N)
 
 run_one (sdflow, case, regime, solver, N, mu_override=None)
 
 cmd_run (args)
 
 gpu_mem_mb ()
 
 cmd_mem (args)
 
 cmd_report (args)
 
 _write_md (args, data, mem, backends, cases, regimes, refs)
 
 main ()
 

Variables

 HERE = os.path.dirname(os.path.abspath(__file__))
 
 ROOT = os.path.abspath(os.path.join(HERE, "..", ".."))
 
dict CASES
 
dict REGIMES
 
float RE_TARGET = 20.0
 

Detailed Description

Comparative study: staggered MAC solver (sdflow.Solver) vs collocated/cell-centered solver
(sdflow.SolverColocated). Grid-convergence of the (apparent) permeability for a Zick & Homsy single
sphere and a random packed bed, at low Re (pure Stokes, advection off) and higher Re (advection on,
implicit-FOU + Picard, Re_pore ~ 16). Records accuracy (metric + order + error), efficiency (wall time,
time/step, pressure iters/step, steps), and incompressibility. A separate --mem mode measures device
memory (nvidia-smi delta) per (solver, N). Reuses the validated geometry from the regression suite.

  run    : python staggered_vs_colocated.py run    --backend gpu --out results_gpu.json
  mem    : python staggered_vs_colocated.py mem    --out mem_gpu.json
  report : python staggered_vs_colocated.py report --inputs results_gpu.json[,results_cpu.json] \
                                                    --mem mem_gpu.json --outdir report

(`run`/`mem` need PYTHONPATH pointing at the sdflow build; pick the backend label to match.)

Function Documentation

◆ make_solver()

staggered_vs_colocated.make_solver (   sdflow,
  solver,
  N 
)

Definition at line 45 of file staggered_vs_colocated.py.

Referenced by cmd_mem(), and run_one().

◆ run_one()

staggered_vs_colocated.run_one (   sdflow,
  case,
  regime,
  solver,
  N,
  mu_override = None 
)

Definition at line 52 of file staggered_vs_colocated.py.

References make_solver().

Referenced by cmd_run().

◆ cmd_run()

staggered_vs_colocated.cmd_run (   args)

Definition at line 94 of file staggered_vs_colocated.py.

References run_one().

◆ gpu_mem_mb()

staggered_vs_colocated.gpu_mem_mb ( )

Definition at line 133 of file staggered_vs_colocated.py.

Referenced by cmd_mem().

◆ cmd_mem()

staggered_vs_colocated.cmd_mem (   args)

Definition at line 142 of file staggered_vs_colocated.py.

References gpu_mem_mb(), and make_solver().

◆ cmd_report()

staggered_vs_colocated.cmd_report (   args)

Definition at line 171 of file staggered_vs_colocated.py.

References _write_md().

◆ _write_md()

staggered_vs_colocated._write_md (   args,
  data,
  mem,
  backends,
  cases,
  regimes,
  refs 
)
protected

Definition at line 291 of file staggered_vs_colocated.py.

Referenced by cmd_report().

◆ main()

staggered_vs_colocated.main ( )

Definition at line 444 of file staggered_vs_colocated.py.

References main().

Referenced by main().

Variable Documentation

◆ HERE

staggered_vs_colocated.HERE = os.path.dirname(os.path.abspath(__file__))

Definition at line 26 of file staggered_vs_colocated.py.

◆ ROOT

staggered_vs_colocated.ROOT = os.path.abspath(os.path.join(HERE, "..", ".."))

Definition at line 27 of file staggered_vs_colocated.py.

◆ CASES

dict staggered_vs_colocated.CASES
Initial value:
1= {
2 "zh_sphere": {"sdf": sdf_zh_sphere, "grids": [16, 24, 32, 48, 64], "metric": "K"},
3 "random_spheres": {"sdf": sdf_random_spheres, "grids": [24, 32, 48, 64], "metric": "kstar"},
4}

Definition at line 32 of file staggered_vs_colocated.py.

◆ REGIMES

dict staggered_vs_colocated.REGIMES
Initial value:
1= {
2 "stokes": dict(rho=1.0, mu=0.1, F=1e-3, dt=60.0, advect=False, implicit=False, outer=1,
3 vel_sweeps=80, dtol=1e-5, max_steps=400, min_steps=15, check=5),
4 "inertial": dict(rho=1.0, mu=0.1, F=2e-3, dt=20.0, advect=True, implicit=True, outer=4,
5 vel_sweeps=80, dtol=1e-4, max_steps=600, min_steps=30, check=10),
6}

Definition at line 37 of file staggered_vs_colocated.py.

◆ RE_TARGET

float staggered_vs_colocated.RE_TARGET = 20.0

Definition at line 49 of file staggered_vs_colocated.py.