SIMOTTO allows the user to define one or more constraints on the different ENGINE parameters.
These constraints express a certain relationship between
one constrained parameter and one or several other ENGINE parameters or/and the engine speed RPM.
These constraints will be applied during the execution of the engine simulation.
The evaluated values by computing the constraint expression for the constrained parameter will overwrite those contained in the ENGINE file.

Example 1:

The following
polynom expression for the piston bore ("d", in mm) ensures, that the piston displacement is always 500 ccm (i.e. 500000 cmm), whatever the piston stroke ("l", in mm) may be:

d = (4*500000/(3.141593*l))^0.5


There are no limitations on the definition of the constraint, as long as it could be expressed as a polynom (see example 1) or by a function, that's defined by a [x,y]-table, as shown in the second example:

Example 2:

The following table expression ensures firstly, that the minimum distance between piston and cylinder head is kept above 5 mm, and secondly, that the volumetric compression ratio is not higher than 12:1, whatever the piston stroke ("l", in mm) may be:

When defining more than one constraints for a given ENGINE file, they will be evaluated recursively by SIMOTTO.  So the user may constrain a given ENGINE parameter by a first constraints and then use this constrained parameter in a second constraint expression, where another ENGINE parameter is constrained. 

This utility can also be used to "link" the valve diameters to the piston bore, or to "constrain" the settings of the camshafts to the valve opening length to ensure that the valve lift at TDC does not exceed a given value, to avoid valve/piston contact, etc.

Another application could be to "constrain" the camshaft setting by the engine speed, in order to include a "late" and "early" cam setting automatically.

...