PLE
Parallel Location and Exchange
Macros
ple_coupling.h File Reference
#include "ple_config.h"
#include "ple_defs.h"

Go to the source code of this file.

Macros

#define PLE_COUPLING_INIT   (1 << 0)
 
#define PLE_COUPLING_NO_SYNC   (1 << 1)
 
#define PLE_COUPLING_STOP   (1 << 2)
 
#define PLE_COUPLING_LAST   (1 << 3)
 
#define PLE_COUPLING_NEW_ITERATION   (1 << 4)
 
#define PLE_COUPLING_REDO_ITERATION   (1 << 5)
 
#define PLE_COUPLING_TS_MIN   (1 << 6)
 
#define PLE_COUPLING_TS_LEADER   (1 << 7)
 
#define PLE_COUPLING_TS_FOLLOWER   (1 << 15)
 
#define PLE_COUPLING_TS_INDEPENDENT   (1 << 16)
 
#define PLE_COUPLING_UNSTEADY   (1 << 8)
 
#define PLE_COUPLING_STEADY   (1 << 9)
 
#define PLE_COUPLING_CONVERGED   (1 << 10)
 
#define PLE_COUPLING_USER_1   (1 << 11)
 
#define PLE_COUPLING_USER_2   (1 << 12)
 
#define PLE_COUPLING_USER_3   (1 << 13)
 
#define PLE_COUPLING_USER_4   (1 << 14)
 

Macro Definition Documentation

◆ PLE_COUPLING_CONVERGED

#define PLE_COUPLING_CONVERGED   (1 << 10)

◆ PLE_COUPLING_INIT

#define PLE_COUPLING_INIT   (1 << 0)

Not yet synchronized

◆ PLE_COUPLING_LAST

#define PLE_COUPLING_LAST   (1 << 3)

Last synchronization

◆ PLE_COUPLING_NEW_ITERATION

#define PLE_COUPLING_NEW_ITERATION   (1 << 4)

◆ PLE_COUPLING_NO_SYNC

#define PLE_COUPLING_NO_SYNC   (1 << 1)

Not synchronized

◆ PLE_COUPLING_REDO_ITERATION

#define PLE_COUPLING_REDO_ITERATION   (1 << 5)

◆ PLE_COUPLING_STEADY

#define PLE_COUPLING_STEADY   (1 << 9)

◆ PLE_COUPLING_STOP

#define PLE_COUPLING_STOP   (1 << 2)

Will stop immediately

◆ PLE_COUPLING_TS_FOLLOWER

#define PLE_COUPLING_TS_FOLLOWER   (1 << 15)

Follow time step of other members only; other members should ignore this one

◆ PLE_COUPLING_TS_INDEPENDENT

#define PLE_COUPLING_TS_INDEPENDENT   (1 << 16)

Other members should ignore this one when checking for smallest time step

◆ PLE_COUPLING_TS_LEADER

#define PLE_COUPLING_TS_LEADER   (1 << 7)

Prescribe time step for all members of group (only one member may set this flag)

◆ PLE_COUPLING_TS_MIN

#define PLE_COUPLING_TS_MIN   (1 << 6)

Time step value handling bits

By default, no specific time step handling is done, though all members of a set may observe the values used by other members.

If an application sets the PLE_COUPLING_TS_LEADER bit, this implies all synchronized applications should use the same time step, unless they have set the PLE_COUPLING_TS_INDEPENDENT bit.

This specific case is deprecated: it is recommended that all applications following a time-step leader set the PLE_COUPLING_TS_FOLLOWER bit. In the future, all application not marked explicitely as followers may ignore the time-step of a leader.

If an application sets the PLE_COUPLING_TS_MIN bit, this implies it will align its time step with the smallest value of all synchronized applications, except those who also set the PLE_COUPLING_TS_FOLLOWER bit.

Note that PLE_COUPLING_TS_LEADER should have priority over PLE_COUPLING_TS_MIN when both are set.

If an application uses (PLE_COUPLING_TS_MIN | PLE_COUPLING_TS_FOLLOWER), this implies it will use the smallest time step of other non-"follower" applications, but other applications should ignore it when determining the minimum time step.

At most one one application may set PLE_COUPLING_TS_LEADER, and it should not also set PLE_COUPLING_TS_FOLLOWER. Use smallest time step

◆ PLE_COUPLING_UNSTEADY

#define PLE_COUPLING_UNSTEADY   (1 << 8)

◆ PLE_COUPLING_USER_1

#define PLE_COUPLING_USER_1   (1 << 11)

◆ PLE_COUPLING_USER_2

#define PLE_COUPLING_USER_2   (1 << 12)

◆ PLE_COUPLING_USER_3

#define PLE_COUPLING_USER_3   (1 << 13)

◆ PLE_COUPLING_USER_4

#define PLE_COUPLING_USER_4   (1 << 14)