fix(esopull): correct init layout and pre-streaming semantics (v0.5.1)
EsoPull curved boundaries and wall BCs now use consistent backing-layout reads; InitEsoPull writes equilibrium in t=0 EsoPull layout. Cache N_OBJS after compile and atomic config header writes to avoid parallel races. Adds config screening tools, flume configs, and FP16S/EsoPull diagnosis doc. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -30,6 +30,7 @@ D_LATTICE = 30.0
|
||||
R_LATTICE = 15.0
|
||||
_STORE_PRECISION = "FP32"
|
||||
_DDF_SHIFTING = False
|
||||
_STREAMING = "double_buffer"
|
||||
|
||||
|
||||
KAN99B_ANCHOR = {
|
||||
@@ -139,7 +140,7 @@ def _build_cfg(
|
||||
cfg["physics"]["viscosity"] = float(_nu_from_re(re))
|
||||
cfg["physics"]["rho"] = 1.0
|
||||
cfg["method"]["collision"] = "MRT"
|
||||
cfg["method"]["streaming"] = "double_buffer"
|
||||
cfg["method"]["streaming"] = _STREAMING
|
||||
cfg["method"]["store_precision"] = _STORE_PRECISION
|
||||
cfg["method"]["ddf_shifting"] = _DDF_SHIFTING
|
||||
cfg["method"]["les"]["enabled"] = False
|
||||
@@ -505,12 +506,16 @@ def main() -> int:
|
||||
help="DDF store precision (FP32, FP16S).")
|
||||
ap.add_argument("--ddf-shifting", action="store_true",
|
||||
help="Enable DDF shifting mode (f - w storage).")
|
||||
ap.add_argument("--streaming", type=str, default="double_buffer",
|
||||
choices=("double_buffer", "esopull"),
|
||||
help="Streaming mode (double_buffer or esopull).")
|
||||
ap.add_argument("--json-out", type=str, default="", help="Optional explicit summary JSON output path.")
|
||||
args = ap.parse_args()
|
||||
# Global for _build_cfg() access
|
||||
global _STORE_PRECISION, _DDF_SHIFTING
|
||||
global _STORE_PRECISION, _DDF_SHIFTING, _STREAMING
|
||||
_STORE_PRECISION = str(args.store_precision).upper()
|
||||
_DDF_SHIFTING = bool(args.ddf_shifting)
|
||||
_STREAMING = str(args.streaming)
|
||||
|
||||
if not os.path.isfile(_DEFAULT_LBM):
|
||||
print(f"Missing base config: {_DEFAULT_LBM}", file=sys.stderr)
|
||||
@@ -645,7 +650,7 @@ def main() -> int:
|
||||
"inlet_profile": "uniform",
|
||||
"y_wall_bc": "free_slip",
|
||||
"outlet_mode": "neq_extrap",
|
||||
"streaming": "double_buffer",
|
||||
"streaming": _STREAMING,
|
||||
"store_precision": "FP32",
|
||||
"les_enabled": False,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user