Improve physical geometry, fluid solvers, audio, and profiling

This commit is contained in:
max
2026-10-30 18:57:56 +01:00
parent bf8621ad39
commit eb2b6366c2
130 changed files with 14649 additions and 862 deletions

View File

@@ -1,5 +1,5 @@
# Engine definition. Dimensional keys state their units.
schema_version = 1
schema_version = 2
id = "single-650"
name = "650 cc / big thumper"
category = "Singles / four-stroke"
@@ -7,9 +7,11 @@ description = "Estimated concept calibration / EFI"
order = 18
cycle = "four_stroke"
[simulation]
cells_per_meter = 20.0
[engine]
bank_angle_deg = 60.0
collector_volume_litres = 0.25
cylinders = 1
initial_rpm = 1400.0
initialize_phased_charge = true
@@ -18,7 +20,6 @@ maximum_load_torque_nm = 30.0
minimum_substeps = 1
phase_degrees = [0.0]
pipe_damping = 1.0
plenum_volume_litres = 1.0
starter_torque_nm = 16.29701
throttle_diameter_mm = 65.0
topology = "collector"
@@ -31,18 +32,12 @@ burn_duration_deg = 60.0
burn_start_deg = 5.0
compression = 10.0
energy_variation = 0.05
exhaust_close_deg = 390.0
exhaust_open_deg = 130.0
exhaust_valve_count = 1
exhaust_valve_diameter_mm = 32.0
exhaust_valve_lift_mm = 9.000001
fuel_lhv_j_per_kg = 4.4e+07
heat_transfer = 100.0
intake_close_deg = 590.0
intake_open_deg = 340.0
intake_valve_count = 1
intake_valve_diameter_mm = 38.0
intake_valve_lift_mm = 10.0
misfire_probability = 0.0
rod_mm = 149.4
stroke_mm = 83.0
@@ -101,24 +96,171 @@ system = "injection"
[[pipes]]
id = "intake"
cells = 4
diameter_mm = 75.0
length_mm = 200.0
[[pipes]]
id = "runners"
cells = 5
diameter_mm = 35.0
length_mm = 250.0
[[pipes]]
id = "primaries"
cells = 13
diameter_mm = 38.0
length_mm = 650.0
[[pipes]]
id = "tailpipe"
cells = 30
diameter_mm = 60.0
length_mm = 1500.0
[cam.intake]
points = [
[0.000, 0.000000],
[340.000, 0.000000],
[345.000, 0.181760],
[350.000, 0.686080],
[355.000, 1.451520],
[360.000, 2.416640],
[365.000, 3.520000],
[370.000, 4.700160],
[375.000, 5.895680],
[380.000, 7.045120],
[385.000, 8.087040],
[390.000, 8.960000],
[395.000, 9.602560],
[400.000, 9.953280],
[402.500, 10.000000],
[527.500, 10.000000],
[532.500, 9.818240],
[537.500, 9.313920],
[542.500, 8.548480],
[547.500, 7.583360],
[552.500, 6.480000],
[557.500, 5.299840],
[562.500, 4.104320],
[567.500, 2.954880],
[572.500, 1.912960],
[577.500, 1.040000],
[582.500, 0.397440],
[587.500, 0.046720],
[590.000, 0.000000],
[720.000, 0.000000]
]
[cam.exhaust]
points = [
[0.000, 0.000000],
[130.000, 0.000000],
[135.000, 0.151570],
[140.000, 0.573509],
[145.000, 1.216659],
[150.000, 2.031862],
[155.000, 2.969959],
[160.000, 3.981794],
[165.000, 5.018207],
[170.000, 6.030042],
[175.000, 6.968139],
[180.000, 7.783342],
[185.000, 8.426492],
[190.000, 8.848431],
[195.000, 9.000001],
[325.000, 9.000001],
[330.000, 8.848431],
[335.000, 8.426492],
[340.000, 7.783342],
[345.000, 6.968139],
[350.000, 6.030042],
[355.000, 5.018207],
[360.000, 3.981794],
[365.000, 2.969959],
[370.000, 2.031862],
[375.000, 1.216659],
[380.000, 0.573509],
[385.000, 0.151570],
[390.000, 0.000000],
[720.000, 0.000000]
]
[valves.intake]
mass_g = 35.0
spring_rate_n_per_mm = 38.0
damping_n_s_per_m = 24.0
seat_force_n = 75.0
maximum_lift_mm = 15.0
seat_restitution = 0.005
cam_restitution = 0.01
stop_restitution = 0.01
[valves.exhaust]
mass_g = 35.0
spring_rate_n_per_mm = 38.0
damping_n_s_per_m = 24.0
seat_force_n = 75.0
maximum_lift_mm = 15.0
seat_restitution = 0.005
cam_restitution = 0.01
stop_restitution = 0.01
[valve_sound]
mode_hz = 3600.0
effective_mass_g = 180.0
radiation_area_cm2 = 10.0
damping_ratio = 0.9
[[geometry.cylinders]]
origin_mm = [ 0, 0, 0 ]
tilt_deg = 0.0
# intake
[[geometry.pipes]]
index = 0
points_mm = [
[ -259, 192.1222, -380 ],
[ -59, 192.1222, -380 ]
]
# runners
[[geometry.pipes]]
index = 1
points_mm = [
[ 0, 192.1222, -290 ],
[ 0, 192.1222, -40 ]
]
# primaries
[[geometry.pipes]]
index = 2
points_mm = [
[ 0, 192.1222, 50 ],
[ 0.9799, 188.5111, 65.2858 ],
[ 3.7492, 182.718, 78.469 ],
[ 8.0523, 174.9286, 89.7037 ],
[ 13.6334, 165.3287, 99.144 ],
[ 20.2371, 154.1038, 106.9438 ],
[ 27.6077, 141.4398, 113.2573 ],
[ 35.4896, 127.5224, 118.2383 ],
[ 43.627, 112.5371, 122.0411 ],
[ 51.7645, 96.6697, 124.8196 ],
[ 59.6463, 80.106, 126.7279 ],
[ 67.0169, 63.0315, 127.9199 ],
[ 73.6206, 45.632, 128.5498 ],
[ 79.2018, 28.0933, 128.7716 ],
[ 83.5049, 10.6009, 128.7393 ],
[ 86.2742, -6.6594, 128.607 ],
[ 87.2541, -23.502, 128.5287 ]
]
# tailpipe
[[geometry.pipes]]
index = 3
points_mm = [
[ 131.4981, -55, 140 ],
[ 1631.498, -55, 140 ]
]
[[geometry.volumes]]
id = "intake_plenum"
center_mm = [ 0, 192.1222, -380 ]
size_mm = [ 118, 47.081, 180 ]
[[geometry.volumes]]
id = "exhaust_collector"
center_mm = [ 100, -55, 140 ]
size_mm = [ 62.9961, 62.9961, 62.9961 ]