7.9.3 Directing the exchange process

Products: ABAQUS/Standard  ABAQUS/Explicit  

Reference

Overview

In a co-simulation analysis ABAQUS communicates in real time with the MpCCI server to exchange quantities with a third-party code while each analysis advances its simulation time. This section describes the exchange process and the controlling parameters. Directing the exchange process between ABAQUS and the third-party analysis requires that you perform the following tasks:

  • defining the pairs of coupling regions between the third-party codes across which co-simulation quantities will be communicated;

  • defining the coupling scheme, which controls how data are exchanged between ABAQUS and the third-party code; and

  • defining the rendezvousing scheme, which controls the frequency of exchanges between ABAQUS and the third-party code.

To understand the role of these tasks, consider the following high-level description of the communication between the MpCCI server and the clients (analysis codes) for the example problem illustrated in Figure 7.9.3–1. Airflow over the airplane wing builds up a pressure distribution, which causes the wing to deform. The deformation causes the airflow to change, which in turn causes the pressure distribution to vary. Given the airflow and current geometry of the wing, the CFD code computes the forces exerted on the wing. ABAQUS uses these forces to compute the corresponding deformation of the wing and updates the geometry.

Figure 7.9.3–1 Airflow over an aircraft wing.

For this example a serial, or Gauss-Seidel, coupling scheme is used, with the CFD code being the simulation leader (see Figure 7.9.3–2).

Figure 7.9.3–2 Serial coupling scheme.

  1. The MpCCI server is started and waits to hear from the client codes (ABAQUS and the CFD code).

  2. The client codes are started, and each client establishes a connection with the MpCCI server.

  3. The MpCCI server requests that each client send its definition of the interface topology.

  4. The clients send their topology data to the MpCCI server.

  5. The MpCCI server performs neighborhood searches and forms mappings between the domain interface.

  6. The MpCCI server instructs the CFD code to advance to a target time and to send the pressure distribution.

  7. The CFD code advances to the target time, computes a pressure distribution, and sends the pressure distribution to the MpCCI server.

  8. The MpCCI server maps the pressure distribution from the CFD mesh to the ABAQUS mesh and sends the mapped pressure distribution to ABAQUS.

  9. The MpCCI server instructs ABAQUS to receive the pressure distribution and to proceed to the target time so that it can compute and send the updated geometry.

  10. ABAQUS proceeds to the target time and sends the updated geometry to the MpCCI server.

  11. The MpCCI server maps the updated geometry from the ABAQUS mesh to the CFD mesh and sends the mapped geometry to the CFD code.

  12. The MpCCI server instructs the CFD code to proceed to the target time of the next coupling step.

  13. Steps 7–12 are repeated until the analysis completes or a steady-state condition is reached.

The MpCCI Control Manager and GUI start both the server and client codes. ABAQUS/Standard or ABAQUS/Explicit will then contact the server during the analysis step for which the co-simulation is requested. Thus, the server waits until the batch preprocessing is completed and the analysis has reached the beginning of the co-simulation step.

Defining pairs of coupling regions

As described in Preparing an ABAQUS analysis for co-simulation, Section 7.9.2, you must identify the interface regions of the ABAQUS model and the third-party code's model where coupling exchanges occur. In addition, you must also describe to MpCCI the specific pairing of regions and quantities exchanged between ABAQUS and the third-party code. You will typically define these pairs using the MpCCI GUI, which is described in the MpCCI User's Manual. An overview of the use of the MpCCI GUI can also be found in Executing the coupled analysis, Section 7.9.4.

Defining a coupling scheme

During a co-simulation step ABAQUS suspends operations periodically at a single location, or synchronization point, in the code and performs a data exchange with the third-party code. In ABAQUS/Standard this occurs at the end of a completed increment when the target time is reached, and in ABAQUS/Explicit it occurs when the target time is reached. At this synchronization point the solution quantities computed by ABAQUS are sent to the MpCCI server and solution quantities computed by the third-party analysis are received from the MpCCI server. ABAQUS waits to receive the requested data from the third-party analysis before continuing. Therefore, for a two-way coupled simulation the synchronization point represents a point when both analyses coincide in solution time.

The synchronization point design in ABAQUS enables you to choose one of two basic coupling schemes. Figure 7.9.3–3 and Figure 7.9.3–4 illustrate the parallel (Jacobi) and serial (Gauss-Seidel) coupling schemes that are available. The horizontal lines represent simulation time. The vertical lines represent increments (or time steps) for a particular analysis in the coupled simulation. The dashed arrows denote data exchange in the direction of the arrowheads between the analysis codes.

Figure 7.9.3–3 Parallel (Jacobi) coupling scheme.

Figure 7.9.3–4 Serial (Gauss-Seidel) coupling scheme.

The coupling scheme is defined by setting the initial exchange variable, MPCCI_INITIAL_EXCHANGE, for each analysis code.

The initial exchange variable is an MpCCI variable, which is normally specified through the MpCCI GUI (see the MpCCI User's Manual for details on specifying the initial exchange variable). The variable can be set to values of SEND, RECEIVE, or EXCHANGE. These values define whether the analysis code will send, receive, or exchange (send and receive) data during the initial exchange and, thus, determine the coupling scheme as defined in Table 7.9.3–1. Combinations of SEND/SEND and RECEIVE/RECEIVE are not valid, since one code has to receive when the other code sends data. Combinations of SEND/RECEIVE define a serial coupling scheme. All other combinations involving EXCHANGE define a parallel coupling scheme.

Table 7.9.3–1 Impact of the initial exchange parameter setting on the coupling scheme.

 Code A
Code B SEND RECEIVEEXCHANGE
SENDSerialParallel
RECEIVESerialParallel
EXCHANGEParallelParallelParallel

Since there is only one synchronization point after the completed increment, no data exchange occurs when the step time has been reached.

Parallel coupling scheme

In the parallel coupling scheme both analysis codes run concurrently, exchanging solution quantities from the previous exchange to update the solution at the next coupling step. As illustrated in Figure 7.9.3–3, both analysis codes perform the initial coupling step without loads/boundaries defined by the third-party analysis (represented by the two arrows labeled `1'). At the first synchronization point the analysis codes exchange solution quantities (arrow `2'). Only when the exchange has been completed—both the send and receive transactions have completed—will each code proceed to the next coupling step (represented by the arrows labeled `3' and `4'). Thus, there is a lag in the loads received and the solution quantities computed by one coupling step. This lag is typical for a parallel algorithm and may lead to solution stability issues.

Serial coupling scheme

In the serial coupling scheme (also known as the “ping-pong” algorithm) one code, the simulation leader, runs to a predetermined target time, while the third-party code waits. The simulation leader sends its solution quantities to the third-party code, which then runs to the target time and send its solution quantities. This sequence of steps completes a coupling step, at the end of which the solution quantities are up-to-date. As illustrated in Figure 7.9.3–4, both analysis codes perform the initial increment (time step) without loads/boundaries defined by the third-party analysis (represented by the two arrows labeled `1'). In this case code B sends solution quantities while code A receives solution quantities during the initial exchange (arrow `2'). When code A receives its loads/boundary conditions, it proceeds to the next target time, while code B waits. When code A reaches the target time, it sends its solution quantities to code B. Code B receives these solution quantities, applies them as loads/boundary conditions, and runs to the target time. When code B reaches the target time, it passes its solution quantities to code A. This completes one coupling step.

Computational cost considerations

When deciding on the coupling scheme, you should consider solution stability issues as well as the utilization impact on your computing resources. The serial coupling scheme has resource implications since one code must wait until the third-party code advances. This can lead to inefficient use of computing resources in cases where the codes are run on separate machines or one code makes use of multiple CPUs while the other does not. In these situations a parallel coupling scheme may make more efficient use of resources. In other cases where the two codes are run on the same machine and exploit the machine resources in similar ways, it may be more efficient to employ the serial scheme, letting each code alternate in its use of the machine.

Global convergence

Global convergence of a coupled simulation is assumed when the individual codes have converged to their specified tolerances, referred to as local convergence. Local convergence for nonlinear ABAQUS/Standard problems is discussed in Solving nonlinear problems, Section 8.2.1. These ABAQUS/Standard criteria are unaffected by the co-simulation interaction with a third-party code and will be met before the coupled simulation will proceed to the next coupling step in ABAQUS.

Defining a rendezvousing scheme

Different types of analyses have different time incrementation requirements, which will influence or dictate a frequency of interaction between ABAQUS and the third-party code.

As an example, consider the difference in time scales between explicit dynamic and static stress analyses. An explicit dynamic analysis will typically use smaller time increments than a CFD analysis, while a static stress analysis uses larger time increments. Another example is a transient heat transfer analysis modeling a diffusive process, which may start with small time increments and use larger time increments once steady state is achieved.

Each of these cases requires a different frequency of interaction, or rendezvousing, between ABAQUS and the third-party code. The co-simulation interface enables the definition of appropriate rendezvous parameters. When necessary, these parameters are described using the CCI_RENDEZVOUS system environment variable, which is normally specified through the MpCCI GUI (see the MpCCI User's Manual for details on specifying the rendezvous variable).

Given time-stepping scheme

The given time-stepping scheme assumes that the data are calculated and exchanged at the same simulation time , , , etc. Rather than specifying the coupling times individually, ABAQUS considers a time-stepping scheme defined by

where is a coupling step size or solution time when data exchange occurs. The coupling step size is constant.

In ABAQUS/Standard the exchange occurs after a converged increment at or near the target coupling time. By default, the coupling step size is set to the initial suggested time increment of the ABAQUS procedure. This is the fixed time increment size if direct time incrementation is used by the ABAQUS procedure. For automatic time incrementation ABAQUS may temporarily cut back the time increment to meet the target time in an exact manner. In such a case the previous increment size will be reinstated to continue the analysis after the exchange.

Alternatively, the coupling step size can be specified through the CCI_RENDEZVOUS system environment variable. Set the variable

CCI_RENDEZVOUS="dt=coupling step size"
to provide a coupling step size different from the initial suggested time increment. Specifying the coupling step size through this method allows for subcycling for direct time incrementation schemes and allows for adjustments in the increment size for automatic time incrementation schemes while ensuring that the exchange occurs at a regular enough frequency for solution stability. During the subcycling ABAQUS interpolates the loads and boundary conditions between the previous coupling step and the target values.

For transient analyses you must ensure that the ABAQUS analysis and the third-party analysis synchronize their exchange at the same target times. No checks are performed to ensure this condition.

The target times may be reached in a loose or exact manner. By default, ABAQUS/Standard exchanges the data in an exact manner; that is, ABAQUS cuts back the time increment such that the exchange occurs exactly at the target time. ABAQUS/Explicit exchanges the data in a loose manner; that is, the target time is reached when either the step time is greater than or equal to the target time or the step time is less than half an ABAQUS time increment away from the suggested target time. To instruct ABAQUS/Standard to couple in a loose manner, append the parameter loose to the CCI_RENDEZVOUS system environment variable as follows:

CCI_RENDEZVOUS="dt=coupling step size:loose"
To couple in an exact manner, append the parameter exact to the CCI_RENDEZVOUS system environment variable as follows:
CCI_RENDEZVOUS="dt=coupling step size:exact"

On-demand scheme

A special case of a coupled simulation is a steady-state analysis. In this case time is not physically meaningful and is used as a parameter to measure the forward progress in a steady-state solution without regard to the true transient behavior. For steady-state problems the coupling time reflects only the computational step at which data are transferred; thus, the demands on the coupling algorithm may be relaxed. The given time-stepping method discussed in the previous section can be used for steady-state simulation.

To use the on-demand method, use a direct time incrementation scheme for the ABAQUS procedure. Adjust the time increment and total time such that sufficient exchanges can be performed. For example, if you want to have 10 exchanges, you can set the time increment equal to 1.0 and the total time equal to 10. Every time an exchange is requested, ABAQUS will advance the time increment by one. The simulation can be stopped from the MpCCI GUI in case a steady-state solution is reached prior to the total time by using the STOP button. In this case ABAQUS terminates the analysis.

Subcycling

To reach the target time in many rendezvous schemes, ABAQUS may perform several increments. These increments are referred to as “subcycling.” ABAQUS/Standard ramps loads (with the exception of film properties) from the values of the previous coupling step to the values at the target time. In ABAQUS/Explicit the loads are applied at the start of the coupling step and kept constant over the coupling step.

Global stability

Both the serial and parallel coupling schemes use an explicit algorithm; that is, the loads and boundary conditions for the next coupling step are determined from the solution of the previous coupling step. Hence, the overall convergence of a coupled solution is expected to behave similarly to an explicit algorithm; transient problems will require a suitable rendezvousing scheme such that data are exchanged with a frequency that ensures overall solution stability.