25 """A copy of ``cfg`` with its measurements applied; ``cfg`` itself when it has none."""
26 if getattr(cfg,
"measurements",
None)
is None:
28 c = cfg.model_copy(deep=
True)
29 for k, side
in ((
"cd_O",
"oxidizer"), (
"cd_F",
"fuel")):
33 c.discharge[side] = c.discharge[side].model_copy(update={
34 "inlet_geometry":
None,
"inlet_radius_ratio":
None,
"use_geometry_cd":
False,
35 "Cd_inf": cd,
"Cd_min": cd,
"a_Re": 0.0,
"cd_inf_max": cd,
"cd_inf_min_geom": cd})
38 c.combustion.efficiency.rupe_Em_opt = float(em.value)
39 c.combustion.efficiency.rupe_Em_curvature = 0.0
40 for k, f
in ((
"d32_O_um",
"d32_measured_O"), (
"d32_F_um",
"d32_measured_F")):
43 setattr(c.spray.smd, f, float(mv.value) * 1e-6)
44 zn =
_m(c,
"nozzle_efficiency")
45 if zn
is not None and getattr(c,
"chamber_geometry",
None)
is not None:
46 c.chamber_geometry.nozzle_efficiency = float(zn.value)