Funz is a parametric & parallel remote execution engine to wrap scientific computing as a function.
Then, just use it as an objective function for any standard algorithm (eg. optimization).
Funz is available for Windows, Mac OS, Linux, through command-line (Bash, Cmd.exe), Python, R.
TL;DR
Parametric scientific computing ?
Take a "parametrized" input file (contains $x, $y,... replacing some numerical values),
Define values taken by these parameter (or let a dedicated algorithm do),
Run calculations on remote ressources,
Parse results & analyse.
Funz eases this "functional" wrapping of your simulation.
Basic demo in Python:
, or R:
Overview
Wrapping
A standardized execution script (properly exiting when calcualtion failed),
A set of reserved characters (like '$') for input files parametrization,
Some regular expression to extract output values of interest.
Features
Parse & compile input files with given parametric syntax,
Launch remote execution of each input combination given (async on dedicated TCP channel),
Call external algorithm to drive calculation parameters values,
# pip install Funz
importFunzX={'x1':...,'x2':...}# first simulator, inputfile1 and inputfile2 contain 'x1' and 'x2' variables
y1=Funz.Run(model="MySimulator1",input_files=["inputfile1","inputfile2"],input_variables=X)['y']# second simulator, depends on results of first one also, inputfile3 contains 'x1', 'x2' and 'y1' variables
y2=Funz.Run(model="MySimulator2",input_files=["inputfile3"],input_variables=X.update(y1))['z']# post-processing in Excel (postrpro.xlsx sheet contains cells commented by '$x1' or '$x2'), returns cell value commented as "=result"
result=Funz.Run(model="Excel",input_files=["postpro.xlsx"],input_variables=X.update(y2))['result']
Identify the most influent input parameters
Max/minimize simulation output value
Build inverse model
Who we are ?
Early versions of Funz project were funded by IRSN (French institute for radiological protection and nuclear safety). IRSN open-sourced Funz in 2019 to support safety and design engineering community.