preCICE allows participants to exchange data that is not associated with any mesh. Examples of such data are global background pressure (e.g. fluid-acoustic coupling) and angles between coordinate systems (e.g. fluid-structure coupling for rotor blades).
Configuration of global data objects is described below with examples.
In order to use this feature, global data needs to be explicitly defined in the configuration file using the
<precice-configuration dimensions="3" experimental="true"> <global-data:vector name="angles" /> ...
Rest of the global data configuration steps are similar to the usual mesh-associated data as described in introduction to configuration.
... <participant name="SolverOne"> <write-data name="angles" /> ... <participant name="SolverTwo"> <read-data name="angles"> ... <coupling-scheme:serial-explicit> <exchange data="angles" from="SolverOne" to="SolverTwo" /> ...
Since global data is not associated with any mesh, it should not be configured with the
use-data tag under the
mesh definition. Similarly, tags such as
exchange require no
mesh attribute if used for global data.
The API functions
readGlobalData(...) enable exchange of global data analogous to the
readData(...) functions for mesh-associated data. For the above example, the API calls would be as follows.
... participant.writeGlobalData("angles", writeAngles); ...
... participant.readGlobalData("angles", dt, readAngles); ...
Within implicit coupling, convergence measures and acceleration are not yet supported.