EulerianCommShell< N, T > Class Template Reference

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

#include <EulerianCommShell.h>

Inheritance diagram for EulerianCommShell< N, T >:
EulerianComm< N, T > ELComm< N, T >

List of all members.

Public Types

typedef T Number
 The number type.

Public Member Functions

Constructors etc.

 EulerianCommShell (const MPI_Comm comm, const MPI_Comm eulerian, const int lagrangianSize, const int lagrangianRoot, VertexIdentifierStyle vertexIdentifierStyle)
 Construct from the communicators and Lagrangian info.
virtual ~EulerianCommShell ()
 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 faces.

Detailed Description

template<int N, typename T = double>
class EulerianCommShell< N, T >

Eulerian communicator for the Eulerian-Lagrangian coupling for a shell.

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 solid shell 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(); the face normals and centroids can be accessed with getFaceNormals() and getFaceCentroids(). For each face that lies within this processor's computational domain, it must set the pressure difference across the face. (The face is in the computational domain if the centroid is in the domain.) The pressure differences 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>
EulerianCommShell< N, T >::EulerianCommShell ( 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 EulerianCommShell< N, T >::sendPressure (  )  [virtual]

Start sending the pressure to the relevant solid processors.

Call this function after the pressure differences across the faces have been set.

Implements EulerianComm< N, T >.

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

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

This function must be called after send_pressure().

Implements EulerianComm< N, T >.


The documentation for this class was generated from the following file:
Generated on Thu Jun 30 02:14:53 2016 for Eulerian-Lagrangian Coupling by  doxygen 1.6.3