| 
    Nektar++
    
   | 
 
#include <Transposition.h>
Public Member Functions | |
| Transposition (const LibUtilities::BasisKey &HomoBasis0, LibUtilities::CommSharedPtr hcomm) | |
| Transposition (const LibUtilities::BasisKey &HomoBasis0, const LibUtilities::BasisKey &HomoBasis1, LibUtilities::CommSharedPtr hcomm) | |
| Transposition (const LibUtilities::BasisKey &HomoBasis0, const LibUtilities::BasisKey &HomoBasis1, const LibUtilities::BasisKey &HomoBasis2, LibUtilities::CommSharedPtr hcomm) | |
| ~Transposition () | |
| unsigned int | GetK (int i) | 
| Array< OneD, unsigned int > | GetKs (void) | 
| unsigned int | GetPlaneID (int i) | 
| Array< OneD, unsigned int > | GetPlanesIDs (void) | 
| void | Transpose (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool UseNumMode=false, TranspositionDir dir=eNoTrans) | 
| void | SetSpecVanVisc (Array< OneD, NekDouble > visc) | 
| NekDouble | GetSpecVanVisc (const int k) | 
Protected Attributes | |
| CommSharedPtr | m_hcomm | 
Private Member Functions | |
| void | TransposeXYtoZ (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool UseNumMode=false) | 
| void | TransposeZtoXY (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool UseNumMode=false) | 
| void | TransposeXtoYZ (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool UseNumMode=false) | 
| void | TransposeYZtoX (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool UseNumMode=false) | 
| void | TransposeYZtoZY (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool UseNumMode=false) | 
| void | TransposeZYtoYZ (const Array< OneD, const NekDouble > &inarray, Array< OneD, NekDouble > &outarray, bool UseNumMode=false) | 
Private Attributes | |
| int | m_num_homogeneous_directions | 
| Array< OneD, int > | m_num_points_per_proc | 
| Number of homogeneous points on each processor per direction.   | |
| Array< OneD, int > | m_num_homogeneous_points | 
| Total homogeneous points per direction.   | |
| Array< OneD, int > | m_num_homogeneous_coeffs | 
| Total number of homogeneous coefficients.   | |
| Array< OneD, int > | m_num_processes | 
| int | m_rank_id | 
| Rank of process.   | |
| Array< OneD, unsigned int > | m_planes_IDs | 
| IDs of the planes on the processes.   | |
| Array< OneD, unsigned int > | m_K | 
| Fourier wave numbers associated with the planes.   | |
| Array< OneD, int > | m_SizeMap | 
| MPI_Alltoallv map containing size of send/recv buffer.   | |
| Array< OneD, int > | m_OffsetMap | 
| MPI_Alltoallv offset map of send/recv buffer in global vector.   | |
Definition at line 63 of file Transposition.h.
| Nektar::LibUtilities::Transposition::Transposition | ( | const LibUtilities::BasisKey & | HomoBasis0, | 
| LibUtilities::CommSharedPtr | hcomm | ||
| ) | 
Constructor for 1D transform.
Definition at line 52 of file Transposition.cpp.
References Nektar::LibUtilities::eFourier, Nektar::LibUtilities::eFourierHalfModeIm, Nektar::LibUtilities::eFourierHalfModeRe, Nektar::LibUtilities::eFourierSingleMode, Nektar::LibUtilities::BasisKey::GetBasisType(), Nektar::LibUtilities::BasisKey::GetNumModes(), Nektar::LibUtilities::BasisKey::GetNumPoints(), m_hcomm, m_K, m_num_homogeneous_coeffs, m_num_homogeneous_directions, m_num_homogeneous_points, m_num_points_per_proc, m_num_processes, m_planes_IDs, and m_rank_id.
| Nektar::LibUtilities::Transposition::Transposition | ( | const LibUtilities::BasisKey & | HomoBasis0, | 
| const LibUtilities::BasisKey & | HomoBasis1, | ||
| LibUtilities::CommSharedPtr | hcomm | ||
| ) | 
Constructor for 2D transform.
Definition at line 110 of file Transposition.cpp.
References Nektar::LibUtilities::BasisKey::GetNumModes(), Nektar::LibUtilities::BasisKey::GetNumPoints(), m_hcomm, m_num_homogeneous_coeffs, m_num_homogeneous_directions, m_num_homogeneous_points, m_num_points_per_proc, and m_num_processes.
| Nektar::LibUtilities::Transposition::Transposition | ( | const LibUtilities::BasisKey & | HomoBasis0, | 
| const LibUtilities::BasisKey & | HomoBasis1, | ||
| const LibUtilities::BasisKey & | HomoBasis2, | ||
| LibUtilities::CommSharedPtr | hcomm | ||
| ) | 
Constructor for 3D transform.
Definition at line 148 of file Transposition.cpp.
References ASSERTL0, m_hcomm, m_num_homogeneous_coeffs, m_num_homogeneous_directions, m_num_homogeneous_points, m_num_points_per_proc, and m_num_processes.
| Nektar::LibUtilities::Transposition::~Transposition | ( | ) | 
| unsigned int Nektar::LibUtilities::Transposition::GetK | ( | int | i | ) | 
| unsigned int Nektar::LibUtilities::Transposition::GetPlaneID | ( | int | i | ) | 
Definition at line 192 of file Transposition.cpp.
References m_planes_IDs.
| NekDouble Nektar::LibUtilities::Transposition::GetSpecVanVisc | ( | const int | k | ) | 
| void Nektar::LibUtilities::Transposition::Transpose | ( | const Array< OneD, const NekDouble > & | inarray, | 
| Array< OneD, NekDouble > & | outarray, | ||
| bool | UseNumMode = false,  | 
        ||
| TranspositionDir | dir = eNoTrans  | 
        ||
| ) | 
Main method: General transposition, the dir parameters define if 1D,2D,3D and which transposition is required at the same time
Definition at line 207 of file Transposition.cpp.
References ASSERTL0, Nektar::LibUtilities::eXtoY, Nektar::LibUtilities::eXtoYZ, Nektar::LibUtilities::eXYtoZ, Nektar::LibUtilities::eYtoZ, Nektar::LibUtilities::eYZtoX, Nektar::LibUtilities::eYZtoZY, Nektar::LibUtilities::eZtoX, Nektar::LibUtilities::eZtoXY, Nektar::LibUtilities::eZYtoYZ, TransposeXtoYZ(), TransposeXYtoZ(), TransposeYZtoX(), TransposeYZtoZY(), TransposeZtoXY(), and TransposeZYtoYZ().
      
  | 
  private | 
Homogeneous 2D transposition from SEM to Homogeneous(YZ) ordering.
Definition at line 494 of file Transposition.cpp.
References ASSERTL0, ASSERTL1, m_num_homogeneous_coeffs, m_num_homogeneous_points, m_num_processes, and Vmath::Vcopy().
Referenced by Transpose().
      
  | 
  private | 
Homogeneous 1D transposition from SEM to Homogeneous ordering.
Definition at line 270 of file Transposition.cpp.
References ASSERTL1, m_hcomm, m_num_homogeneous_coeffs, m_num_homogeneous_points, m_num_points_per_proc, m_num_processes, m_OffsetMap, m_SizeMap, and Vmath::Vcopy().
Referenced by Transpose().
      
  | 
  private | 
Homogeneous 2D transposition from Homogeneous (YZ) ordering to SEM.
Definition at line 541 of file Transposition.cpp.
References ASSERTL0, ASSERTL1, m_num_homogeneous_coeffs, m_num_homogeneous_points, m_num_processes, and Vmath::Vcopy().
Referenced by Transpose().
      
  | 
  private | 
Homogeneous 2D transposition from Y ordering to Z.
Definition at line 588 of file Transposition.cpp.
References ASSERTL0, m_num_homogeneous_points, m_num_processes, and Vmath::Vcopy().
Referenced by Transpose().
      
  | 
  private | 
Homogeneous 1D transposition from Homogeneous to SEM ordering.
Definition at line 380 of file Transposition.cpp.
References ASSERTL1, m_hcomm, m_num_homogeneous_coeffs, m_num_homogeneous_points, m_num_points_per_proc, m_num_processes, m_OffsetMap, m_SizeMap, and Vmath::Vcopy().
Referenced by Transpose().
      
  | 
  private | 
Homogeneous 2D transposition from Z ordering to Y.
Definition at line 622 of file Transposition.cpp.
References ASSERTL0, m_num_homogeneous_points, m_num_processes, and Vmath::Vcopy().
Referenced by Transpose().
      
  | 
  protected | 
Definition at line 102 of file Transposition.h.
Referenced by TransposeXYtoZ(), TransposeZtoXY(), and Transposition().
      
  | 
  private | 
Fourier wave numbers associated with the planes.
Definition at line 156 of file Transposition.h.
Referenced by GetK(), GetKs(), and Transposition().
      
  | 
  private | 
Total number of homogeneous coefficients.
Definition at line 145 of file Transposition.h.
Referenced by TransposeXtoYZ(), TransposeXYtoZ(), TransposeYZtoX(), TransposeZtoXY(), and Transposition().
      
  | 
  private | 
Definition at line 136 of file Transposition.h.
Referenced by Transposition().
      
  | 
  private | 
Total homogeneous points per direction.
Definition at line 142 of file Transposition.h.
Referenced by TransposeXtoYZ(), TransposeXYtoZ(), TransposeYZtoX(), TransposeYZtoZY(), TransposeZtoXY(), TransposeZYtoYZ(), and Transposition().
      
  | 
  private | 
Number of homogeneous points on each processor per direction.
Definition at line 139 of file Transposition.h.
Referenced by TransposeXYtoZ(), TransposeZtoXY(), and Transposition().
      
  | 
  private | 
Definition at line 147 of file Transposition.h.
Referenced by TransposeXtoYZ(), TransposeXYtoZ(), TransposeYZtoX(), TransposeYZtoZY(), TransposeZtoXY(), TransposeZYtoYZ(), and Transposition().
      
  | 
  private | 
MPI_Alltoallv offset map of send/recv buffer in global vector.
Definition at line 162 of file Transposition.h.
Referenced by TransposeXYtoZ(), and TransposeZtoXY().
      
  | 
  private | 
IDs of the planes on the processes.
Definition at line 153 of file Transposition.h.
Referenced by GetPlaneID(), GetPlanesIDs(), and Transposition().
      
  | 
  private | 
      
  | 
  private | 
MPI_Alltoallv map containing size of send/recv buffer.
Definition at line 159 of file Transposition.h.
Referenced by TransposeXYtoZ(), and TransposeZtoXY().
 1.8.1.2