23 ap = argparse.ArgumentParser()
24 ap.add_argument(
"config")
25 ap.add_argument(
"--pamb", type=float, default=
None, help=
"ambient pressure [Pa]; default: the config's")
32 cfg = load_config(a.config)
33 PO = cfg.lox_tank.initial_pressure_psi * PSI
34 PF = cfg.fuel_tank.initial_pressure_psi * PSI
35 kw = {}
if a.pamb
is None else {
"P_ambient": a.pamb}
36 r = PintleEngineRunner(copy.deepcopy(cfg)).evaluate(PO, PF, silent=
True, **kw)
37 out = handcheck(cfg, r, PO, PF)
38 rows = [(x[
"quantity"], x[
"model"], x[
"hand"], x[
"diff"], x[
"source"])
for x
in out[
"rows"]]
39 hdr = (
"quantity",
"model",
"hand/bound",
"diff",
"source")
40 w = [
max(len(x[i])
for x
in rows + [hdr])
for i
in range(5)]
41 print(
" ".join(h.ljust(w[i])
for i, h
in enumerate(hdr)))
43 print(
" ".join(c.ljust(w[i])
for i, c
in enumerate(row)))
46 print(f
"{a.config}: Pc {s['Pc_psia']:.1f} psia, O/F {s['OF']:.3f}, F {s['F']:.0f} N, Isp {s['Isp']:.1f} s "
47 f
"at pa {s['Pa'] / 1000:.1f} kPa")
50 for f
in out[
"flags"]: