Skip to content
Zorkator edited this page Sep 12, 2019 · 1 revision

Why coupling simulation code?

Objectives:

  • extend domain of applying simulation code
  • combine expertise of independently developed software packages to solve larger problems
    • make use of other software packages
    • get used by other software packages
  • allow interdisciplinary use of simulation code!

Needs what?

  • communication between individual software packages
    • data exchange, execution control
  • generic, robust and flexible interface
    • exchange arbitrary data efficiently
    • easy scaling / adaption to given situations
    • preferably no-maintenance

Common approach

How?

  • Tailor coupling interface ITF B as part of simulation code A
    • actively interfere with simulation cycle of A
    • add code accessing and sending internal data to B
    • wait for B to respond, write back data
  • requires a lot of specific code changes!

Results in ...

  • highly specialized coupling extend A to work with B – nothing more.
  • little robustness if version of A or B changes, coupling probably stops working!
  • little flexibility For working also with C, need another interface that does not interfere with B!
  • multiple specialized versions of simulation code A!

Alternative approach

How?

  • use toolbox library libfde to moderate between codes
  • instruct simulation code to allow external access
    • access simulation state
    • control simulation flow
  • turn simulation code into team player!

Results in ...

  • simulation code without any knowledge about coupling
  • easy communication between individual software packages
    • data exchange, execution control
  • generic, robust and flexible interface
    • exchange arbitrary data efficiently
    • easy scaling / adaption to given situations
    • requires very little maintenance
  • very little coupling code, created easily on demand