I've been thinking about a more accurate driveline simulation.
Instead of applying engine torque on the wheels I'd make separate parts.
I have two models in my mind;
1. Distinct the engine and the rest (transmission/diff/wheels) separated with the clutch.
In this situation I'd apply engine torque on the flywheel and depending on the clutch position on the rest of the driveline.
Having the wheel reaction forces calculated applying the torque backwards to the engine.
2. Handle each part separated using input/output values like an effect loop (who plays guitar knows what I'm talking about

The torque coming from the engine going into the clutch and then to the transmission and so to the wheels.
Thus every component would have its input/output angular velocity/torque ... etc.
My biggest concern is about the inertias. Suppose I have proper inertia values for each component as a separate part;
I_Engine
I_Gearbox_in
I_Gearbox_out
I_Diff_in
I_Diff_out
I_Wheel
And I have the current angular velocities accordingly.
In the first method the equation would look like;
Torque at the engine (T_Engine)
T_Wheel = T_Engine * CLUTCH_FACTOR * gear_ratio * diff_ratio
IW = I_Engine * CLUTCH_FACTOR + I_Gearbox_in + I_Diff_in + I_Wheel
AngAcc_Wheel = T_wheel / IW
Then I have road response torque (T_Road)
T_Reaction = T_Road / diff_ratio / gear_ratio / CLUTCH_FACTOR
IE = (I_Wheel + I_Diff_out + I_Gearbox_out) * CLUTCH_FACTOR + I_Engine
AngAcc_Engine = T_Reaction / IE
Maybe the CLUTCH_FACTOR shouldn't be used in both Torque and Inertia calculations.
Or using the second method, and here comes the (I-am-not-sure-about-it) part;
AngAcc_Engine = T_Engine / I_Engine
T_Gearbox_in = T_Engine * CLUTCH_FACTOR
AngAcc_Gearbox_in = T_Gearbox_in / I_Gearbox_in
AngVel_Gearbox_out = AngVel_Gearbox_in * gear_ratio
T_Gearbox_out = T_Gearbox_in * gear_ratio
T_Diff_in = T_Gearbox_out
AngAcc_Diff_in = T_Diff_in / I_Diff_in
AngVel_Diff_out = AngVel_Diff_in * diff_ratio
T_Diff_out = T_Diff_in * diff_ratio
T_Wheel = T_Diff_out
AngAcc_Wheel = T_Wheel / I_Wheel
And the reaction torque backward, using the "_out" part of inertias.
The second method would make more sense but I'm not sure the right inertia values are used.
Eg: In case of accelerating the flywheel, should I use only I_Engine or the inertia of the underlying parts.
I sense I should use all of them, but then again I think the response torque should balance the acceleration.
Or maybe calculate the torques in the first step going back and forth, and then caluclate the angular acceleration on each part separately.
So this way with constant throttle, pressing the clutch would let the engine to rev up, while the rest of the driveline would slow down.
Engaging the clutch again would work as a spring to equalize the angular velocities at the flywheel and clutch-plate.
Or maybe add the clutch as a separate part, that applies extra torque based on the angualr velocity differences.
It's just a theory, no implementation yet, so every remark, confirmation or contradiction are welcome
