Documentation 6b54b78464
Loading...
Searching...
No Matches
CInterpolator Class Referenceabstract

Main class for defining the interpolator, it requires a child class for each particular interpolation method. More...

#include <CInterpolator.hpp>

Inheritance diagram for CInterpolator:
[legend]

Classes

struct  CDonorInfo
 Target geometry. More...
 
struct  CSpanDonorInfo
 Donor information per marker per vertex of the target. More...
 

Public Member Functions

 CInterpolator (CGeometry ****geometry_container, const CConfig *const *config, unsigned int iZone, unsigned int jZone)
 Constructor of the class.
 
 CInterpolator (void)=delete
 No default construction allowed to force zones and geometry to always be set.
 
virtual ~CInterpolator (void)=default
 Destructor of the class, nothing is deleted, derived classes need to manage the MPI buffers.
 
virtual void SetTransferCoeff (CGeometry ****geometry, const CConfig *const *config)=0
 Set up transfer matrix defining relation between two meshes.
 
virtual void PrintStatistics (void) const
 Print information about the interpolation.
 
virtual void WriteInterpolationDetails (const string &filename, const CConfig *const *config)
 Write mixing plane interpolation details to file.
 

Static Public Member Functions

static bool CheckInterfaceBoundary (int val_markDonor, int val_markTarget)
 Check whether an interface should be processed or not, i.e. if it is part of the zones.
 
static bool CheckZonesInterface (const CConfig *donor, const CConfig *target)
 Check whether two zones have a common interface.
 

Public Attributes

vector< vector< CDonorInfo > > targetVertices
 
vector< vector< CSpanDonorInfo > > targetSpans
 

Protected Member Functions

void ReconstructBoundary (unsigned long val_zone, int val_marker)
 Reconstruct the boundary connectivity from parallel partitioning and broadcasts it to all threads.
 
void Determine_ArraySize (int markDonor, int markTarget, unsigned long nVertexDonor, unsigned short nDim)
 Determine array sizes used to collect and send coordinate and global point information.
 
void Collect_VertexInfo (int markDonor, int markTarget, unsigned long nVertexDonor, unsigned short nDim)
 Collect and communicate vertex info: coord, global point.
 
unsigned long Collect_ElementInfo (int markDonor, unsigned short nDim, bool compress, vector< unsigned long > &allNumElem, vector< unsigned short > &numNodes, su2matrix< long > &idxNodes) const
 Collect all donor elements in an interface pair.
 

Protected Attributes

const int rank
 MPI Rank.
 
const int size
 MPI Size.
 
const unsigned donorZone
 Index of donor zone.
 
const unsigned targetZone
 Index of target zone.
 
unsigned long MaxLocalVertex_Donor
 Maximum vertices per processor.
 
unsigned long Buffer_Send_nVertex_Donor [1]
 Buffer to send number of vertices on the local processor.
 
unsigned long * Buffer_Receive_nVertex_Donor
 Buffer to store the number of vertices per processor on the Donor domain.
 
su2vector< unsigned long > Buffer_Send_GlobalPoint
 Buffer to send global point indices.
 
su2vector< unsigned long > Buffer_Receive_GlobalPoint
 Buffer to receive global point indices.
 
su2activematrix Buffer_Send_Coord
 Buffer to send coordinate values.
 
su2activematrix Buffer_Receive_Coord
 Buffer to receive coordinate values.
 
su2vector< unsigned long > Buffer_Receive_nLinkedNodes
 Buffer to receive the number of surface-connected edges, for each vertex.
 
su2vector< unsigned long > Buffer_Receive_StartLinkedNodes
 Buffer to receive the index of the Receive_LinkedNodes buffer where corresponding list of linked nodes begins.
 
su2vector< unsigned long > Buffer_Receive_LinkedNodes
 Buffer to receive the list of surface-connected nodes, for each vertex.
 
su2vector< unsigned long > Buffer_Receive_Proc
 Buffer to receive the rank that owns the vertex.
 
unsigned long nGlobalVertex_Target
 Global number of vertex of the target boundary.
 
unsigned long nLocalVertex_Target
 Number of vertex of the target boundary owned by the thread.
 
unsigned long nGlobalVertex_Donor
 Global number of vertex of the donor boundary.
 
unsigned long nLocalVertex_Donor
 Number of vertex of the donor boundary owned by the thread.
 
unsigned long nGlobalVertex
 Dummy variable to temporarily store the global number of vertex of a boundary.
 
unsigned long nLocalLinkedNodes
 Dummy variable to temporarily store the number of vertex of a boundary.
 
CGeometry ****const Geometry
 
CGeometry *const donor_geometry
 Vector which stores n zones of geometry.
 
CGeometry *const target_geometry
 Donor geometry.
 

Detailed Description

Main class for defining the interpolator, it requires a child class for each particular interpolation method.

Author
H. Kline

Constructor & Destructor Documentation

◆ CInterpolator() [1/2]

CInterpolator::CInterpolator ( CGeometry ****  geometry_container,
const CConfig *const *  config,
unsigned int  iZone,
unsigned int  jZone 
)

Constructor of the class.

Parameters
[in]geometry_container- Geometrical definition of the problem.
[in]config- Definition of the particular problem.
[in]iZone- index of the donor zone.
[in]jZone- index of the target zone.

◆ CInterpolator() [2/2]

CInterpolator::CInterpolator ( void  )
delete

No default construction allowed to force zones and geometry to always be set.

◆ ~CInterpolator()

virtual CInterpolator::~CInterpolator ( void  )
virtualdefault

Destructor of the class, nothing is deleted, derived classes need to manage the MPI buffers.

Member Function Documentation

◆ CheckInterfaceBoundary()

bool CInterpolator::CheckInterfaceBoundary ( int  val_markDonor,
int  val_markTarget 
)
static

Check whether an interface should be processed or not, i.e. if it is part of the zones.

Parameters
[in]val_markDonor- Marker tag from donor zone.
[in]val_markTarget- Marker tag from target zone.

◆ CheckZonesInterface()

bool CInterpolator::CheckZonesInterface ( const CConfig *  donor,
const CConfig *  target 
)
static

Check whether two zones have a common interface.

Parameters
[in]donor- Configuration of the donor zone.
[in]target- Configuration of the target zone.

◆ Collect_ElementInfo()

unsigned long CInterpolator::Collect_ElementInfo ( int  markDonor,
unsigned short  nDim,
bool  compress,
vector< unsigned long > &  allNumElem,
vector< unsigned short > &  numNodes,
su2matrix< long > &  idxNodes 
) const
protected

Collect all donor elements in an interface pair.

Parameters
[in]markDonor- Index of the boundary on the donor domain.
[in]nDim- number of physical dimensions.
[in]compress- Squeeze the information (Allgatherv instead of Allgather).
[out]allNumElem- Number of donor element per rank.
[out]numNodes- Number of nodes for each element.
[out]idxNodes- Index (global) of those nodes.
Returns
Number of collected donor elements.
Note
The last two outputs are always sized for Allgather.

◆ Collect_VertexInfo()

void CInterpolator::Collect_VertexInfo ( int  markDonor,
int  markTarget,
unsigned long  nVertexDonor,
unsigned short  nDim 
)
protected

Collect and communicate vertex info: coord, global point.

Parameters
[in]markDonor- Index of the boundary on the donor domain.
[in]markTarget- Index of the boundary on the target domain.
[in]nVertexDonor- Number of vertices on the donor boundary.
[in]nDim- number of physical dimensions.

◆ Determine_ArraySize()

void CInterpolator::Determine_ArraySize ( int  markDonor,
int  markTarget,
unsigned long  nVertexDonor,
unsigned short  nDim 
)
protected

Determine array sizes used to collect and send coordinate and global point information.

Parameters
[in]markDonor- Index of the boundary on the donor domain.
[in]markTarget- Index of the boundary on the target domain.
[in]nVertexDonor- Number of vertices on the donor boundary.
[in]nDim- number of physical dimensions.

◆ PrintStatistics()

virtual void CInterpolator::PrintStatistics ( void  ) const
inlinevirtual

Print information about the interpolation.

Reimplemented in CIsoparametric, CNearestNeighbor, and CRadialBasisFunction.

◆ ReconstructBoundary()

void CInterpolator::ReconstructBoundary ( unsigned long  val_zone,
int  val_marker 
)
protected

Reconstruct the boundary connectivity from parallel partitioning and broadcasts it to all threads.

Parameters
[in]val_zone- index of the zone
[in]val_marker- index of the marker

◆ SetTransferCoeff()

virtual void CInterpolator::SetTransferCoeff ( CGeometry ****  geometry,
const CConfig *const *  config 
)
pure virtual

Set up transfer matrix defining relation between two meshes.

Note
Main method that derived classes must implement.
Parameters
[in]config- Definition of the particular problem.

Implemented in CIsoparametric, CMirror, CMixingPlane, CNearestNeighbor, CRadialBasisFunction, and CSlidingMesh.

◆ WriteInterpolationDetails()

virtual void CInterpolator::WriteInterpolationDetails ( const string &  filename,
const CConfig *const *  config 
)
inlinevirtual

Write mixing plane interpolation details to file.

Reimplemented in CMixingPlane.

Member Data Documentation

◆ Buffer_Receive_Coord

su2activematrix CInterpolator::Buffer_Receive_Coord
protected

Buffer to receive coordinate values.

◆ Buffer_Receive_GlobalPoint

su2vector<unsigned long> CInterpolator::Buffer_Receive_GlobalPoint
protected

Buffer to receive global point indices.

◆ Buffer_Receive_LinkedNodes

su2vector<unsigned long> CInterpolator::Buffer_Receive_LinkedNodes
protected

Buffer to receive the list of surface-connected nodes, for each vertex.

The vertices are ordered as in Buffer_Receive_nLinkedNodes and Buffer_Receive_StartLinkedNodes, but for each

◆ Buffer_Receive_nLinkedNodes

su2vector<unsigned long> CInterpolator::Buffer_Receive_nLinkedNodes
protected

Buffer to receive the number of surface-connected edges, for each vertex.

◆ Buffer_Receive_nVertex_Donor

unsigned long * CInterpolator::Buffer_Receive_nVertex_Donor
protected

Buffer to store the number of vertices per processor on the Donor domain.

◆ Buffer_Receive_Proc

su2vector<unsigned long> CInterpolator::Buffer_Receive_Proc
protected

Buffer to receive the rank that owns the vertex.

◆ Buffer_Receive_StartLinkedNodes

su2vector<unsigned long> CInterpolator::Buffer_Receive_StartLinkedNodes
protected

Buffer to receive the index of the Receive_LinkedNodes buffer where corresponding list of linked nodes begins.

◆ Buffer_Send_Coord

su2activematrix CInterpolator::Buffer_Send_Coord
protected

Buffer to send coordinate values.

◆ Buffer_Send_GlobalPoint

su2vector<unsigned long> CInterpolator::Buffer_Send_GlobalPoint
protected

Buffer to send global point indices.

◆ Buffer_Send_nVertex_Donor

unsigned long CInterpolator::Buffer_Send_nVertex_Donor[1]
protected

Buffer to send number of vertices on the local processor.

◆ donor_geometry

CGeometry* const CInterpolator::donor_geometry
protected

Vector which stores n zones of geometry.

◆ donorZone

const unsigned CInterpolator::donorZone
protected

Index of donor zone.

◆ Geometry

CGeometry**** const CInterpolator::Geometry
protected

◆ MaxLocalVertex_Donor

unsigned long CInterpolator::MaxLocalVertex_Donor
protected

Maximum vertices per processor.

◆ nGlobalVertex

unsigned long CInterpolator::nGlobalVertex
protected

Dummy variable to temporarily store the global number of vertex of a boundary.

◆ nGlobalVertex_Donor

unsigned long CInterpolator::nGlobalVertex_Donor
protected

Global number of vertex of the donor boundary.

◆ nGlobalVertex_Target

unsigned long CInterpolator::nGlobalVertex_Target
protected

Global number of vertex of the target boundary.

◆ nLocalLinkedNodes

unsigned long CInterpolator::nLocalLinkedNodes
protected

Dummy variable to temporarily store the number of vertex of a boundary.

◆ nLocalVertex_Donor

unsigned long CInterpolator::nLocalVertex_Donor
protected

Number of vertex of the donor boundary owned by the thread.

◆ nLocalVertex_Target

unsigned long CInterpolator::nLocalVertex_Target
protected

Number of vertex of the target boundary owned by the thread.

◆ rank

const int CInterpolator::rank
protected

MPI Rank.

◆ size

const int CInterpolator::size
protected

MPI Size.

◆ target_geometry

CGeometry* const CInterpolator::target_geometry
protected

Donor geometry.

◆ targetSpans

vector<vector<CSpanDonorInfo> > CInterpolator::targetSpans

◆ targetVertices

vector<vector<CDonorInfo> > CInterpolator::targetVertices

◆ targetZone

const unsigned CInterpolator::targetZone
protected

Index of target zone.


The documentation for this class was generated from the following files: