# Engine definition. Dimensional keys state their units. schema_version = 2 id = "f20" name = "F20C-inspired / 2.0 high-rev four" category = "Inline four / specials" description = "Unequal primaries / small junctions / staged collectors / EFI" order = 22 cycle = "four_stroke" [simulation] cells_per_meter = 20.0 [engine] bank_angle_deg = 60.0 cylinders = 4 initial_rpm = 1400.0 initialize_phased_charge = true layout = "inline" maximum_load_torque_nm = 30.0 minimum_substeps = 1 phase_degrees = [0.0, 180.0, 540.0, 360.0] pipe_damping = 0.0 starter_torque_nm = 49.9353 throttle_diameter_mm = 65.0 topology = "staged" [cylinder] afr = 14.7 ambient_temperature_k = 300.0 bore_mm = 87.0 burn_duration_deg = 60.0 burn_start_deg = 5.0 compression = 10.0 energy_variation = 0.05 exhaust_valve_count = 1 exhaust_valve_diameter_mm = 27.84 fuel_lhv_j_per_kg = 4.4e+07 heat_transfer = 100.0 intake_valve_count = 1 intake_valve_diameter_mm = 33.06 misfire_probability = 0.0 rod_mm = 151.2 stroke_mm = 84.0 wall_area = 0.02 wiebe_a = 5.0 wiebe_m = 2.0 [crankshaft] friction_constant_nm = 7.989648 friction_quadratic_nm_s2 = 0.0 friction_viscous_nm_s = 0.007989648 inertia_kg_m2 = 0.2396894 [ecu] idle_base_opening = 0.05 idle_control = "feedback" idle_ki = 4e-05 idle_kp = 0.0001 idle_max_opening = 0.25 idle_minimum_advance_deg = -5.0 idle_rpm = 1000.0 idle_spark_gain = 0.02 ignition_map = [[0.0, 10.0], [15000.0, 40.0]] overrun_cut_rpm = 3500.0 overrun_fuel_cut_enabled = true overrun_ignition_cut_enabled = false overrun_resume_rpm = 2400.0 power_afr = 12.8 rev_limit_enabled = true rev_limit_fuel_cut_enabled = true rev_limit_rpm = 9000.0 rev_resume_rpm = 8750.0 stoichiometric_afr = 14.7 throttle_closing_rate = 0.0 throttle_closing_time_constant_s = 0.0 throttle_rate = 1000.0 throttle_time_constant_s = 0.001 [vehicle] air_density = 1.225 clutch_capacity = 439.4306 clutch_engagement_rate = 8.0 drag_coefficient = 0.7 final_drive_ratio = 2.7 frontal_area = 0.65 gear_ratios = [4.1, 2.7, 2.0, 1.55, 1.25, 0.98] gravity = 9.80665 mass_kg = 1400.0 primary_reduction = 1.8 rolling_resistance = 0.015 rotational_inertia_kg_m2 = 1.2 wheel_radius_mm = 320.0 [fuel] system = "injection" [junctions] h_pipe = true [[pipes]] id = "intake" diameter_mm = 75.0 [[pipes]] id = "runners" count = 4 diameter_mm = 35.0 [[pipes]] id = "primary_1" diameter_mm = 38.0 [[pipes]] id = "primary_2" diameter_mm = 38.0 [[pipes]] id = "primary_3" diameter_mm = 38.0 [[pipes]] id = "primary_4" diameter_mm = 38.0 [[pipes]] id = "tailpipe_9" diameter_mm = 60.0 [[pipes]] id = "secondary_10" diameter_mm = 48.0 [[pipes]] id = "secondary_11" diameter_mm = 48.0 [cam.intake] points = [ [0.000, 0.000000], [340.000, 0.000000], [345.000, 0.158131], [350.000, 0.596890], [355.000, 1.262822], [360.000, 2.102477], [365.000, 3.062400], [370.000, 4.089139], [375.000, 5.129242], [380.000, 6.129254], [385.000, 7.035725], [390.000, 7.795200], [395.000, 8.354227], [400.000, 8.659354], [402.500, 8.700000], [527.500, 8.700000], [532.500, 8.541869], [537.500, 8.103110], [542.500, 7.437178], [547.500, 6.597523], [552.500, 5.637600], [557.500, 4.610861], [562.500, 3.570758], [567.500, 2.570746], [572.500, 1.664275], [577.500, 0.904800], [582.500, 0.345773], [587.500, 0.040646], [590.000, 0.000000], [720.000, 0.000000] ] [cam.exhaust] points = [ [0.000, 0.000000], [130.000, 0.000000], [135.000, 0.131866], [140.000, 0.498953], [145.000, 1.058493], [150.000, 1.767720], [155.000, 2.583864], [160.000, 3.464160], [165.000, 4.365840], [170.000, 5.246136], [175.000, 6.062280], [180.000, 6.771507], [185.000, 7.331047], [190.000, 7.698134], [195.000, 7.830000], [325.000, 7.830000], [330.000, 7.698134], [335.000, 7.331047], [340.000, 6.771507], [345.000, 6.062280], [350.000, 5.246136], [355.000, 4.365840], [360.000, 3.464160], [365.000, 2.583864], [370.000, 1.767720], [375.000, 1.058493], [380.000, 0.498953], [385.000, 0.131866], [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 = [ -157.5, 0, 0 ] tilt_deg = 0.0 [[geometry.cylinders]] origin_mm = [ -52.5, 0, 0 ] tilt_deg = 0.0 [[geometry.cylinders]] origin_mm = [ 52.5, 0, 0 ] tilt_deg = 0.0 [[geometry.cylinders]] origin_mm = [ 157.5, 0, 0 ] tilt_deg = 0.0 # intake [[geometry.pipes]] index = 0 points_mm = [ [ -410, 194.5333, -363.1 ], [ -210, 194.5333, -363.1 ] ] # runners 1 [[geometry.pipes]] index = 1 points_mm = [ [ -157.5, 194.5333, -284.8 ], [ -157.5, 194.5333, -34.8 ] ] # runners 2 [[geometry.pipes]] index = 2 points_mm = [ [ -52.5, 194.5333, -284.8 ], [ -52.5, 194.5333, -34.8 ] ] # runners 3 [[geometry.pipes]] index = 3 points_mm = [ [ 52.5, 194.5333, -284.8 ], [ 52.5, 194.5333, -34.8 ] ] # runners 4 [[geometry.pipes]] index = 4 points_mm = [ [ 157.5, 194.5333, -284.8 ], [ 157.5, 194.5333, -34.8 ] ] # primary_1 [[geometry.pipes]] index = 5 points_mm = [ [ -157.5, 194.5333, 43.5 ], [ -156.9599, 191.2299, 56.8381 ], [ -155.4334, 185.7695, 68.1689 ], [ -153.0615, 178.3497, 77.6508 ], [ -149.9852, 169.1678, 85.4419 ], [ -146.3452, 158.4214, 91.7006 ], [ -142.2825, 146.3079, 96.5849 ], [ -137.9379, 133.0247, 100.2531 ], [ -133.4525, 118.7693, 102.8634 ], [ -128.9671, 103.7391, 104.5741 ], [ -124.6226, 88.1316, 105.5434 ], [ -120.5599, 72.1442, 105.9294 ], [ -116.9199, 55.9744, 105.8905 ], [ -113.8435, 39.8197, 105.5848 ], [ -111.4716, 23.8774, 105.1705 ], [ -109.9452, 8.3451, 104.806 ], [ -109.4051, -6.5798, 104.6493 ] ] # primary_2 [[geometry.pipes]] index = 6 points_mm = [ [ -52.5, 194.5333, 43.5 ], [ -53.0401, 191.2299, 56.8381 ], [ -54.5666, 185.7695, 68.1689 ], [ -56.9385, 178.3497, 77.6508 ], [ -60.0148, 169.1678, 85.4419 ], [ -63.6548, 158.4214, 91.7006 ], [ -67.7175, 146.3079, 96.5849 ], [ -72.062, 133.0247, 100.2531 ], [ -76.5475, 118.7693, 102.8634 ], [ -81.0329, 103.7391, 104.5741 ], [ -85.3774, 88.1316, 105.5434 ], [ -89.4401, 72.1442, 105.9294 ], [ -93.0801, 55.9744, 105.8905 ], [ -96.1565, 39.8197, 105.5848 ], [ -98.5284, 23.8774, 105.1705 ], [ -100.0548, 8.3451, 104.806 ], [ -100.5949, -6.5798, 104.6493 ] ] # primary_3 [[geometry.pipes]] index = 7 points_mm = [ [ 52.5, 194.5333, 43.5 ], [ 53.0401, 191.1567, 58.187 ], [ 54.5666, 185.761, 71.4839 ], [ 56.9385, 178.5161, 83.4517 ], [ 60.0148, 169.5922, 94.1515 ], [ 63.6548, 159.1591, 103.6443 ], [ 67.7175, 147.387, 111.9912 ], [ 72.062, 134.4458, 119.2533 ], [ 76.5475, 120.5056, 125.4917 ], [ 81.0329, 105.7364, 130.7675 ], [ 85.3774, 90.3081, 135.1416 ], [ 89.4401, 74.3909, 138.6753 ], [ 93.0801, 58.1546, 141.4295 ], [ 96.1565, 41.7694, 143.4654 ], [ 98.5284, 25.4053, 144.8439 ], [ 100.0548, 9.2322, 145.6263 ], [ 100.5949, -6.5798, 145.8735 ] ] # primary_4 [[geometry.pipes]] index = 8 points_mm = [ [ 157.5, 194.5333, 43.5 ], [ 156.9599, 191.1567, 58.187 ], [ 155.4334, 185.761, 71.4839 ], [ 153.0615, 178.5161, 83.4517 ], [ 149.9852, 169.5922, 94.1515 ], [ 146.3452, 159.1591, 103.6443 ], [ 142.2825, 147.387, 111.9912 ], [ 137.9379, 134.4458, 119.2533 ], [ 133.4525, 120.5056, 125.4917 ], [ 128.9671, 105.7364, 130.7675 ], [ 124.6226, 90.3081, 135.1416 ], [ 120.5599, 74.3909, 138.6753 ], [ 116.9199, 58.1546, 141.4295 ], [ 113.8435, 41.7694, 143.4654 ], [ 111.4716, 25.4053, 144.8439 ], [ 109.9452, 9.2322, 145.6263 ], [ 109.4051, -6.5798, 145.8735 ] ] # tailpipe_9 [[geometry.pipes]] index = 9 points_mm = [ [ 218.4202, -70, 170.25 ], [ 1718.4201, -70, 170.25 ] ] # secondary_10 [[geometry.pipes]] index = 10 points_mm = [ [ -86.5798, -27.7177, 113.8736 ], [ -68.2776, -28.1621, 114.4661 ], [ -50.5923, -29.4178, 116.1404 ], [ -33.4358, -31.3689, 118.7419 ], [ -16.7199, -33.8997, 122.1162 ], [ -0.3565, -36.8941, 126.1088 ], [ 15.7426, -40.2362, 130.5649 ], [ 31.6653, -43.8101, 135.3302 ], [ 47.5, -47.5, 140.25 ], [ 63.3347, -51.1899, 145.1698 ], [ 79.2574, -54.7638, 149.9351 ], [ 95.3565, -58.1059, 154.3912 ], [ 111.7199, -61.1003, 158.3838 ], [ 128.4358, -63.6311, 161.7581 ], [ 145.5923, -65.5822, 164.3596 ], [ 163.2777, -66.838, 166.0339 ], [ 181.5798, -67.2823, 166.6264 ] ] # secondary_11 [[geometry.pipes]] index = 11 points_mm = [ [ 123.4202, -33.7253, 158.1585 ], [ 127.6728, -34.0347, 158.2616 ], [ 131.6784, -34.9091, 158.553 ], [ 135.4722, -36.2677, 159.0059 ], [ 139.0895, -38.0299, 159.5933 ], [ 142.5657, -40.115, 160.2883 ], [ 145.9359, -42.4421, 161.064 ], [ 149.2356, -44.9307, 161.8936 ], [ 152.5, -47.5, 162.75 ], [ 155.7644, -50.0693, 163.6064 ], [ 159.0641, -52.5579, 164.436 ], [ 162.4343, -54.8851, 165.2117 ], [ 165.9105, -56.9701, 165.9067 ], [ 169.5278, -58.7323, 166.4941 ], [ 173.3216, -60.0909, 166.947 ], [ 177.3272, -60.9653, 167.2384 ], [ 181.5798, -61.2747, 167.3415 ] ] [[geometry.volumes]] id = "intake_plenum" center_mm = [ 0, 194.5333, -363.1 ] size_mm = [ 420, 60.8162, 156.6 ] [[geometry.volumes]] id = "junction_0" center_mm = [ -105, -25, 110.25 ] size_mm = [ 36.8403, 36.8403, 36.8403 ] [[geometry.volumes]] id = "junction_1" center_mm = [ 105, -25, 155.25 ] size_mm = [ 36.8403, 36.8403, 36.8403 ] [[geometry.volumes]] id = "junction_2" center_mm = [ 200, -70, 170.25 ] size_mm = [ 36.8403, 36.8403, 36.8403 ]