Base class Lagrangian communicator for the Eulerian-Lagrangian coupling. More...
#include <LagrangianComm.h>
Public Types | |
| typedef Base::Number | Number |
| The number type. | |
Public Member Functions | |
Constructors etc. | |
| LagrangianComm (const MPI_Comm comm, const MPI_Comm lagrangian, const int eulerianSize, const int eulerianRoot, VertexIdentifierStyle vertexIdentifierStyle) | |
| Construct from the communicators and Eulerian information. | |
| virtual | ~LagrangianComm () |
| Destructor. Free the communicator. | |
Communication. | |
| void | sendMesh (const int numNodes, const void *identifiers, const void *positions, const void *velocities, const int numFaces, const void *connectivities) |
| Post sends for sending the local Lagrangian mesh to the relevant Eulerian processors. | |
| void | waitForMesh () |
| Wait for the sends to complete. | |
| void | receivePressure (const int numPoints, void *pressures) |
| Post receives for the pressure from the relevant Eulerian processors. | |
| void | waitForPressure () |
| Wait for the pressure receives to complete. Composite the pressures. | |
Protected Types | |
| typedef Base::Point | Point |
| A Cartesian point. | |
| typedef Base::BBox | BBox |
| A bounding box. | |
| typedef Base::MpiRequest | MpiRequest |
| An MPI request. | |
| typedef Base::MpiStatus | MpiStatus |
| Status for an MPI request. | |
Base class Lagrangian communicator for the Eulerian-Lagrangian coupling.
| N | is the space dimension. 1, 2 and 3 are supported. | |
| T | is the floating point number type. |
Implements the common functionality for boundaries and shells.
| LagrangianComm< N, T >::LagrangianComm | ( | const MPI_Comm | comm, | |
| const MPI_Comm | lagrangian, | |||
| const int | eulerianSize, | |||
| const int | eulerianRoot, | |||
| VertexIdentifierStyle | vertexIdentifierStyle | |||
| ) | [inline] |
Construct from the communicators and Eulerian information.
| comm | is the communicator that contains the Eulerian and Lagrangian processors. | |
| lagrangian | is the Lagrangian communicator. It is duplicated to avoid message conflicts. | |
| eulerianSize | is the number of Eulerian processors. | |
| eulerianRoot | is the rank of the Eulerian root in comm. | |
| vertexIdentifierStyle | is either LocalIndices or GlobalIdentifiers. |
| void LagrangianComm< N, T >::sendMesh | ( | const int | numNodes, | |
| const void * | identifiers, | |||
| const void * | positions, | |||
| const void * | velocities, | |||
| const int | numFaces, | |||
| const void * | connectivities | |||
| ) |
Post sends for sending the local Lagrangian mesh to the relevant Eulerian processors.
| numNodes | is the number of nodes in the mesh. | |
| identifiers | are the global mesh node identifiers. | |
| positions | are the meh node positions. This is an array of N-tuples of numbers. Each N-tuple is a Cartesian point. | |
| velocities | are the mesh node velocities. | |
| numFaces | is the number of faces in the mesh. | |
| connectivities | describes the connectivites of the nodes to form faces. This is an array of N-tuples of integers. Each N-tuple represents on indexed face (line segment in 2-D, triangle in 3-D). If the vertex identifier style is LocalIndices, then each index is in the range [0..numFaces). If the style is GlobalIdentifers, then each element of connectivities is listed in the identifiers array. |
1.6.3