FMUs are like the gumball dispensers of the simulation world. Compact little containers with complexity hidden behind a simple interface. Terrible analogy? Possibly. But either way here's how we're bringing them into SimpleValidations for the January alpha.
FM What?
In the deep past of computer simulations (not really), everyone built their models in their own way. Each effort had its own weird file format and simulation tools couldn't speak a common language. That wasn't good. Fast forward to today, where we now have something called the functional mock-up interface (FMI) standard to establish some order in the chaos.
FMI is the standard that says, "Here's how a black-box simulation model should look from the outside. Here are the functions it exposes and how you call them. Here's how data flows in and out. There, you're all sorted."
With that standard definition, different tools can swap and run models without custom glue code for every effort. This is where "FMU" comes in. An FMU is the actual file that follows that FMI standard: a zipped-up package containing the compiled model, its XML description, and any resources it needs.
So now you know FMU and FMI. So what?
Here at SimpleValidations, we're all about helping you define complex validation workflows, so you can configure a workflow once and then let your users validate their data at their convenience.
In many cases, you might have a complex simulation that is part of that data validation. Maybe your users are providing manufacturing data and you want to bound the expected simulation outputs and disallow a user's data if that output strays from what you want. Or maybe you want to cross-check a user's data against a trusted model to make sure everything looks good before you accept it or forward it to someone else.
In either case, you want to run that simulation as part of your validation workflow. SimpleValidations will let you do exactly that.
We're adding support for FMUs now so you can easily integrate simulations into your validation workflows without needing to set up complex simulation environments yourself, or requiring your users to. Just upload your FMU, select which inputs and outputs you want users to have access to, and then you and your team can create workflows with various assertions against those outputs (see the blog post on CEL rules).
Once you publish your workflow, your users can launch it with their data submissions, receiving helpful error reports or a nice green "success" checkmark when everything passes. Behind the scenes, SimpleValidations runs the FMU in an isolated compute environment so it stays separate from the core system.
Well (waving hands) ... kind of ...
To clarify, we're starting small and safe. SimpleValidations will only support FMI Co-Simulation (CS) at first. For each validation step, we run the FMU once over a limited time window, then stop. That’s it. No Model Exchange, no parameter sweeps, no live coupling. Basically, NOTHING FUNKY! You'll have to wait for that.
Stay tuned for more updates, or send me a note if you want to be among the very cool people trying this out in planned January alpha.