In an input file we can define scalar functions and use them. A scalar function is a function like y = f(x) that relates a real number input (x) with a real number output (y). Effective use of scalar functions will widen the possibility of model creation.
A scalar function is defined with a "scalar function" card. Definition of a scalar function with a scalar function card can be put anywhere in the input file (even outside of the blocks) as long as it is before the function is called. Below are a couple of examples that define the scalar functions "myfunc1" and "myfunc2" of the "multilinear" and the "cubicspline" types, respectively.
scalar function: "myfunc1", multilinear, do not extrapolate, -2.0, 0.0, -1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 2.0, 1.0, 3.0, 1.0;
scalar function: "myfunc2", cubicspline, do not extrapolate, -2.0, 0.0, -1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 2.0, 1.0, 3.0, 1.0;
A way to visualize defined scalar functions as in Figure 1 and 2 is explained in the next chapter.
Once a scalar function is defined we can use it freely in the input file. We can evaluate a scalar function for a specified input as follows.
model::sf:: <scalar function name> ( <x> )
For example, we can use scalar functions when we define a variable as
set: real A = model::sf::myfunc1(0.5);
or when we define a string drive as
string, "5.e-2*model::sf::myfunc1(Time)";
By the way, "Time" is an MBDyn's predefined variable that holds the value of the current simulation time.