External interfaces » advanced in-line coding in Strurel

STRUREL supports the following five external engines: Matlab, Python, Maple, Mathematica and Ruby. In previous posts, we discussed exemplarily for Matlab and Python how in-line code and external scripts can be evaluated with STRUREL. In case computational performance matters, external scripts should be preferred over in-line code, as in-line code needs to be re-processed each time a limit-state function is evaluated.

Nevertheless, for testing purposes you might prefer to simply work with in-line code in STRUREL. For multi-line code, you can split-up your code as is shown in the following Python-based example:

FLIM(1) = pythonf("%import math")
+ pythonf("%A=math.sqrt(R)")
+ pythonf("R-S+A")

Note that the individual pythonf-calls are connected by a ‘+’. However, except for the actual limit-state function call R-S+A, all code-lines start with a ‘%’. This character is interpreted by STRUREL and not forwarded to the external engine (Python in the example above). The ‘%’ at the beginning of a code line tells STRUREL that the associated line of code does NOT return a value. In the example above, both R and S are random variables defined through STRUREL.