There is an increasing need for multidisciplinary parametric simulations in various research and engineering fields. Examples are fluid-structure interaction and thermal coupling. The simulation tools have become very sophisticated in their own domains, so multidisciplinary simulation can be achieved by coupling the existing codes.
YACS is a tool for managing multidisciplinary simulations through calculation schemes.
The YACS module can be used to build and execute calculation schemes. A calculation scheme is a more or less complex assembly of calculation components (SALOME components or calculation codes or python scripts). Therefore, a calculation scheme provides a means of defining a chain or coupling of calculation codes (see YACS general principles).
YACS GUI
A calculation scheme can be built either using a graphic tool (see Using YACS with the graphical user interface (GUI)), or by editing an XML file directly (see Defining a calculation scheme in the XML format), or by using an application programming interface (API) in Python (see Defining a calculation scheme with the Python programming interface). In this phase, chaining of components is defined with the associated dataflows.
Many examples of YACS schemas are installed with SALOME. They can be found in the directory SALOME_APPLICATION/share/salome/yacssample (SALOME_APPLICATION is the path where SALOME application is installed).
The calculation scheme can be executed from the graphic tool (see Execution of a schema), but also in console mode (see Executing a calculation scheme in console mode), or by using the Python interface (see Execution of a calculation scheme with the Python programming interface).
Executing a calculation scheme includes:
- running and distributing components
- managing data distribution
- monitoring execution
- stopping / suspending / restarting the execution
A calculation scheme can also be executed using a batch system such as LSF or PBS (see Starting a SALOME application in a batch manager).
Finally, it is essential that calculation codes should be transformed into SALOME components, so that they can be coupled with YACS. In general, this operation requires good knowledge of SALOME principles (see Integration of components into SALOME for YACS).
For C++ calculation codes, the hxx2salome : a SALOME component generator tool automates this operation to a large extent.
For Fortran, C and Python calculation codes that use CALCIUM type coupling, the YACSGEN: SALOME module generator tool automatically generates the necessary SALOME embedment starting from a brief description of the selected coupling interface.