vtf-logo

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

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

#include <EulerianCommBoundary.h>

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

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

Public Types

typedef T Number
 The number type.

Public Member Functions

Constructors etc.
 EulerianCommBoundary (const MPI_Comm comm, const MPI_Comm eulerian, const int lagrangianSize, const int lagrangianRoot, VertexIdentifierStyle vertexIdentifierStyle)
 Construct from the communicators and Lagrangian info.
virtual ~EulerianCommBoundary ()
 Destructor.
Communication.
virtual void sendPressure ()
 Start sending the pressure to the relevant solid processors.
virtual void waitForPressure ()
 Wait for the pressure sends to be copied into communication buffers.

Protected Member Functions

virtual void initializePressure ()
 Initialize the pressure at the nodes.

Detailed Description

template<int N, typename T = double>
class elc::EulerianCommBoundary< N, T >

Eulerian communicator for the Eulerian-Lagrangian coupling.

Parameters:
N is the space dimension. 2 and 3 are supported.
T is the floating point number type. By default it is double.
This class is instantiated in each Eulerian (fluid) processor. The relevant portions of the boundary of the solid are received from the solid processors with either receiveMesh(const BBox& domain) or receiveMesh(const Number* domain) followed by a call to waitForMesh().

One can access the node positions with either getPositions() or getPositionsData(); the node velocities can be access with getVelocities() or getVelocitiesData(). This processor must set the pressure at all node positions that lie within its domain. The pressures may be manipulated through getPressures() or getPressuresData().

After the pressures have been set, they are sent to the relevant Lagrangian processors with sendPressure() and waitForPressure().


Constructor & Destructor Documentation

template<int N, typename T = double>
elc::EulerianCommBoundary< N, T >::EulerianCommBoundary ( const MPI_Comm  comm,
const MPI_Comm  eulerian,
const int  lagrangianSize,
const int  lagrangianRoot,
VertexIdentifierStyle  vertexIdentifierStyle 
) [inline]

Construct from the communicators and Lagrangian info.

Parameters:
comm is the communicator that contains the Eulerian and Lagrangian processors.
eulerian is the Eulerian communicator. It is duplicated to avoid message conflicts.
lagrangianSize is the number of Lagrangian processors.
lagrangianRoot is the rank of the Lagrangian root in comm.
vertexIdentifierStyle is either LocalIndices or GlobalIdentifiers.


Member Function Documentation

template<int N, typename T = double>
virtual void elc::EulerianCommBoundary< N, T >::sendPressure (  )  [virtual]

Start sending the pressure to the relevant solid processors.

Call this function after the pressures at the nodes have been set.

Implements elc::EulerianComm< N, T >.

template<int N, typename T = double>
virtual void elc::EulerianCommBoundary< N, T >::waitForPressure (  )  [virtual]

Wait for the pressure sends to be copied into communication buffers.

This function must be called after send_pressure().

Implements elc::EulerianComm< N, T >.


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