Source code for simulator.tools.tool_generate_template_input

from __future__ import annotations
from pathlib import Path
from .. import io


TEMPLATE = {
    "meta": {
        "title": "Template SI single-cylinder engine case",
        "description": "Edit this file to create a new simulation run.",
        "units": "SI (m, kg, s, K, Pa)",
    },
    "geometry": {
        "bore_m": 0.086,
        "stroke_m": 0.086,
        "con_rod_m": 0.143,
        "compression_ratio": 10.0,
        "piston_pin_offset_m": 0.0,
    },
    "operating": {
        "engine_speed_rpm": 4500.0,
        "air_fuel_ratio": 14.7,
        "intake_pressure_Pa": 101325.0,
        "exhaust_pressure_Pa": 101325.0,
        "intake_temp_K": 300.0,
        "crank_angle_ignition_deg": -20.0,
        "combustion_duration_deg": 60.0,
        "fuel_id": "gasoline",
        "integration_tolerance": 1e-5,
        "crank_step_deg": 1.0,
        "egr_mass_fraction": 0.0,
        "combustion_efficiency": 0.98,
        "pressure_rise_factor": 3.0,
        "num_cylinders": 1,
        "stroke_type": "four-stroke",
        "friction_model": "fmep-speed",
        "friction_mode": "passenger",
        "mechanical_efficiency": 0.9,
        "fmep_base_bar": 2.0,
        "fmep_speed_coeff_bar_per_krpm": 0.12,
        "fmep_speed_quad_bar_per_krpm2": 0.0,
    },
}


[docs] def main() -> None: root = Path(__file__).resolve().parents[1] out_path = root / "in" / "template_si_engine.json" io.save_json(out_path, TEMPLATE) print(f"[OK] Wrote template input to: {out_path}")
if __name__ == "__main__": # pragma: no cover main()