vtf-logo

elc::LagrangianComm< N, T > Class Template Reference

Base class Lagrangian communicator for the Eulerian-Lagrangian coupling. More...

#include <LagrangianComm.h>

Inheritance diagram for elc::LagrangianComm< N, T >:

elc::ELComm< N, T > List of all members.

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.

Detailed Description

template<int N, typename T>
class elc::LagrangianComm< N, T >

Base class Lagrangian communicator for the Eulerian-Lagrangian coupling.

Parameters:
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.


Constructor & Destructor Documentation

template<int N, typename T>
elc::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.

Parameters:
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.


Member Function Documentation

template<int N, typename T>
void elc::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.

Parameters:
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.


The documentation for this class was generated from the following file:
Generated on Fri Aug 24 12:55:45 2007 for Eulerian-Lagrangian Coupling by  doxygen 1.4.7