4.10. Coupling
4.10.1. File Based Coupling
In a file-based coupling, information is exchanged across apps via results files. This typically implies running one app, then using those results to run the other app. In a one-way coupling that is the end of the simulation, otherwise this process can be cycled until some user-determined convergence metric is met. Within a single simulation, the data from the coupled simulation(s) are typically incorporated by transfering from an IO Region. The IO region handles interpolating data to the current simulation time and mesh. The simulation results can write to an output database to feed into the coupled application.
Note
A file-based coupling is useful for time-varying data generated from an external app. If it is only necessary to apply initial conditions from an external source (e.g. a steady simulation fed into a transient IC), the Ic Input_Output_Region and/or Ic Read_File ICs can be a much simpler alternative.
A file-based coupling input deck will look similar to the example below
Begin Sierra sierra
#! 1) The domain Aria solves
Begin Finite Element Model The_Mesh
Database Name = mesh.g
Decomposition Method = rcb
use material foo for block_1
use material bar for block_2
...
End
#! 2) The coupled domain (includes results)
Begin Finite Element Model The_Coupled_Subdomain
Database Name = coupling_surf.e
Decomposition Method = rcb
End
...
Begin Procedure proc
Begin Solution Control Description
Use system main
Begin system main
#! 3) Define how a step is taken
Begin Transient my_transient
Advance coupled_app_region
Transfer coupled_to_aria
Advance aria_region
End
...
End
End
...
Begin Aria Region aria_region
#! 1) The entire Aria domain
Use Finite Element Model The_Mesh
#! 4) Set up a user field to be used (also created expressions)
user field real node scalar my_coupled_qnt on coupled_surface
...
#! 5) Write out the information needed by coupled app
Begin Results Output out
database name = to_coupled_app.e
at step 0, increment = 1
nodal variables = solution->temperature as T
...
End
End
#! 6) Create an IO region to manage coupled interface
Begin Input_Output Region coupled_app_region
Use Finite Element Model The_Coupled_Subdomain
End
#! 4) Transfer relevant information from couple app to Aria
Begin transfer coupled_to_aria
interpolate volume nodes from coupled_app_region to aria_region
Send block surface_1 to coupled_surface
Send Field my_coupled_qnt State None to my_coupled_qnt State none
...
End
End Procedure
End Sierra
Just like a typical simulation, one must specify the finite element model defining the Aria domain
Typically, the coupling occurs only on a subset of the domain. Rather than interpolate over the entire domain, one can specify only the subdomain of interest as the finite element model of the Input_Output region. In any case, this database should contain not only the mesh information of the coupled interface, but also the relevant results needed to run the Aria simulation.
As part of the transient, the IO region must be advanced so that the appropriate information can be transferred to the aria region.
Set up the information transfer from the IO region to the appropriate Aria region fields. The receiving field on the Aria side is typically a DOF field (defined as an XFER EQ) or a user field which can then be used in the Aria expression system.
In order to provide the results of this simulation to the coupled app, write an output database.
Create the IO region with the data and geometry specified in 2.
4.10.2. MPMD Coupling
Unlike a file-based coupling, MPMD coupling means that information is being exchanged during simulation. In general, it will be fairly similar syntactically to a File Based Coupling with the exception that the transfer comes not from an IO Region but rather an Mpmd Coupling block. For more details on MPMD couplings with individual applications, see the respective coupling manuals:
For information on launching an MPMD simulation, see Running MPMD Jobs.