transfer::NodeSearch class

NodeSearch chare array holding part of a mesh.

Constructors, destructors, conversion operators

NodeSearch(CkArrayID p, MeshData mesh, CkCallback cb) explicit
Constructor.
NodeSearch(CkMigrateMessage* m) explicit
Migrate constructor.

Public functions

void setSourceTets(const std::vector<std::size_t>& inpoel, const std::array<std::vector<double>, 3>& coord, const tk::Fields& u, const std::vector<double>& flag, bool dir, CkCallback cb)
Set the source mesh data.
void setDestPoints(const std::array<std::vector<double>, 3>& coord, tk::Fields& u, std::vector<double>& flag, bool trflag, bool dir, CkCallback cb)
Set the destination mesh data.
void processCollisions(const MeshData& src, int nColls, Collision* colls)
Process potential collisions in the destination mesh.
void determineActualCollisions(CProxy_NodeSearch proxy, int index, int nColls, PotentialCollision* colls)
Identify actual collisions in the source mesh.
void transferSolution(const std::vector<SolutionData>& sol)
Transfer the interpolated solution data to destination mesh.

Charm++ pack/unpack serializer member functions

int m_firstchunk
The ID of my first chunk (used for collision detection library)
std::vector<std::size_t>* m_inpoel
Pointer to element connectivity.
std::array<std::vector<double>, 3>* m_coord
Pointer to point coordinates.
tk::Fields* m_u
Pointer to solution in mesh nodes.
std::vector<double>* m_flag
Pointer to transfer flags.
bool m_trflag
Transfer flags if true.
bool m_dir
Transfer direction: 0: background to overset, 1: overset to background.
int m_numsent
The number of messages sent by the dest mesh.
int m_numreceived
The number of messages received by the dest mesh.
int m_srcnotified
Set to nonzero once source mesh is notified that source side is done.
CkCallback m_done
Callback to call when transfer is done.
void pup(PUP::er& p) override
Pack/Unpack serialize member function.
void operator|(PUP::er& p, NodeSearch& i)
Pack/Unpack serialize operator|.

Function documentation

transfer::NodeSearch::NodeSearch(CkArrayID p, MeshData mesh, CkCallback cb) explicit

Constructor.

Parameters
p
mesh
cb in Callback to inform application that the library is ready

void transfer::NodeSearch::setSourceTets(const std::vector<std::size_t>& inpoel, const std::array<std::vector<double>, 3>& coord, const tk::Fields& u, const std::vector<double>& flag, bool dir, CkCallback cb)

Set the source mesh data.

Parameters
inpoel in Pointer to the connectivity data for the source mesh
coord in Pointer to the coordinate data for the source mesh
in Pointer to the solution data for the source mesh
flag in Transfer flags
dir in Transfer direction: 0: bg to overset, 1: overset to bg
cb in Callback to call when src side of transfer is done

void transfer::NodeSearch::setDestPoints(const std::array<std::vector<double>, 3>& coord, tk::Fields& u, std::vector<double>& flag, bool trflag, bool dir, CkCallback cb)

Set the destination mesh data.

Parameters
coord in Pointer to the coordinate data for the destination mesh
in/out Pointer to the solution data for the destination mesh
flag in/out Transfer flags
trflag in Transfer flags if true
dir in Transfer direction: 0: bg to overset, 1: overset to bg
cb in Callback to call when dst side of transfer is done

void transfer::NodeSearch::processCollisions(const MeshData& src, int nColls, Collision* colls)

Process potential collisions in the destination mesh.

Parameters
src in Source mesh config data
nColls
colls in List of potential collisions

void transfer::NodeSearch::determineActualCollisions(CProxy_NodeSearch proxy, int index, int nColls, PotentialCollision* colls)

Identify actual collisions in the source mesh.

Parameters
proxy in The proxy of the destination mesh chare array
index in The index in proxy to return the solution data to
nColls in Number of collisions to be checked
colls in List of potential collisions

void transfer::NodeSearch::pup(PUP::er& p) override

Pack/Unpack serialize member function.

Parameters
in/out Charm++'s PUP::er serializer object reference

void transfer::NodeSearch::operator|(PUP::er& p, NodeSearch& i)

Pack/Unpack serialize operator|.

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out NodeSearch object reference