Nektar++
Public Member Functions | Protected Attributes | List of all members
Nektar::MultiRegions::PatchMap Class Reference

#include <SubStructuredGraph.h>

Public Member Functions

 PatchMap (void)
 
 PatchMap (const int vals)
 
 ~PatchMap (void)
 
void SetPatchMap (const int n, const int patchId, const int dofId, const unsigned int bndPatch, const NekDouble sign)
 
void SetNewLevelMap (Array< OneD, const unsigned int > numLocalBndCondPerPatch, Array< OneD, const unsigned int > numLocalIntCondPerPatch)
 
Array< OneD, const int > GetPatchId () const
 
Array< OneD, const int > GetDofId () const
 
Array< OneD, const int > GetNewLevelMap () const
 
Array< OneD, const unsigned int > IsBndDof () const
 
Array< OneD, const NekDoubleGetSign () const
 

Protected Attributes

Array< OneD, int > m_patchId
 
Array< OneD, int > m_dofId
 
Array< OneD, int > m_newLevelMap
 
Array< OneD, unsigned int > m_bndPatch
 
Array< OneD, NekDoublem_sign
 

Detailed Description

Definition at line 68 of file SubStructuredGraph.h.

Constructor & Destructor Documentation

◆ PatchMap() [1/2]

Nektar::MultiRegions::PatchMap::PatchMap ( void  )

Definition at line 72 of file SubStructuredGraph.cpp.

73 {
74 }

◆ PatchMap() [2/2]

Nektar::MultiRegions::PatchMap::PatchMap ( const int  vals)

Definition at line 76 of file SubStructuredGraph.cpp.

77 {
78  m_patchId = Array<OneD, int>(nvals);
79  m_dofId = Array<OneD, int>(nvals);
80  m_bndPatch = Array<OneD, unsigned int>(nvals);
81  m_sign = Array<OneD, NekDouble>(nvals);
82 }
Array< OneD, unsigned int > m_bndPatch
Array< OneD, NekDouble > m_sign

References m_bndPatch, m_dofId, m_patchId, and m_sign.

◆ ~PatchMap()

Nektar::MultiRegions::PatchMap::~PatchMap ( void  )

Definition at line 84 of file SubStructuredGraph.cpp.

85 {
86 }

Member Function Documentation

◆ GetDofId()

Array<OneD, const int> Nektar::MultiRegions::PatchMap::GetDofId ( ) const
inline

Definition at line 88 of file SubStructuredGraph.h.

89  {
90  return m_dofId;
91  }

References m_dofId.

◆ GetNewLevelMap()

Array<OneD, const int> Nektar::MultiRegions::PatchMap::GetNewLevelMap ( ) const
inline

Definition at line 93 of file SubStructuredGraph.h.

94  {
95  return m_newLevelMap;
96  }

References m_newLevelMap.

◆ GetPatchId()

Array<OneD, const int> Nektar::MultiRegions::PatchMap::GetPatchId ( ) const
inline

Definition at line 83 of file SubStructuredGraph.h.

84  {
85  return m_patchId;
86  }

References m_patchId.

◆ GetSign()

Array<OneD, const NekDouble> Nektar::MultiRegions::PatchMap::GetSign ( ) const
inline

Definition at line 103 of file SubStructuredGraph.h.

104  {
105  return m_sign;
106  }

References m_sign.

◆ IsBndDof()

Array<OneD, const unsigned int> Nektar::MultiRegions::PatchMap::IsBndDof ( ) const
inline

Definition at line 98 of file SubStructuredGraph.h.

99  {
100  return m_bndPatch;
101  }

References m_bndPatch.

◆ SetNewLevelMap()

void Nektar::MultiRegions::PatchMap::SetNewLevelMap ( Array< OneD, const unsigned int >  numLocalBndCondPerPatch,
Array< OneD, const unsigned int >  numLocalIntCondPerPatch 
)

Definition at line 97 of file SubStructuredGraph.cpp.

100 {
101  int npatch = numLocalBndCondPerPatch.size();
102 
103  Array<OneD, int> bndoffset(npatch + 1);
104  Array<OneD, int> intoffset(npatch + 1);
105 
106  bndoffset[0] = intoffset[0] = 0;
107  for (int i = 1; i <= npatch; ++i)
108  {
109  bndoffset[i] = bndoffset[i - 1] + numLocalBndCondPerPatch[i - 1];
110  intoffset[i] = intoffset[i - 1] + numLocalIntCondPerPatch[i - 1];
111  }
112 
113  m_newLevelMap = Array<OneD, int>(m_dofId.size());
114 
115  for (int i = 0; i < m_dofId.size(); ++i)
116  {
117  if (m_bndPatch[i] == true)
118  {
119  m_newLevelMap[i] = bndoffset[m_patchId[i]] + m_dofId[i];
120  }
121  else
122  {
123  m_newLevelMap[i] =
124  bndoffset[npatch] + intoffset[m_patchId[i]] + m_dofId[i];
125  }
126  }
127 }

References m_bndPatch, m_dofId, m_newLevelMap, and m_patchId.

◆ SetPatchMap()

void Nektar::MultiRegions::PatchMap::SetPatchMap ( const int  n,
const int  patchId,
const int  dofId,
const unsigned int  bndPatch,
const NekDouble  sign 
)

Definition at line 88 of file SubStructuredGraph.cpp.

90 {
91  m_patchId[n] = patchId;
92  m_dofId[n] = dofId;
93  m_bndPatch[n] = bndPatch;
94  m_sign[n] = sign;
95 }
#define sign(a, b)
return the sign(b)*a
Definition: Polylib.cpp:49

References m_bndPatch, m_dofId, m_patchId, m_sign, and sign.

Member Data Documentation

◆ m_bndPatch

Array<OneD, unsigned int> Nektar::MultiRegions::PatchMap::m_bndPatch
protected

Definition at line 112 of file SubStructuredGraph.h.

Referenced by IsBndDof(), PatchMap(), SetNewLevelMap(), and SetPatchMap().

◆ m_dofId

Array<OneD, int> Nektar::MultiRegions::PatchMap::m_dofId
protected

Definition at line 110 of file SubStructuredGraph.h.

Referenced by GetDofId(), PatchMap(), SetNewLevelMap(), and SetPatchMap().

◆ m_newLevelMap

Array<OneD, int> Nektar::MultiRegions::PatchMap::m_newLevelMap
protected

Definition at line 111 of file SubStructuredGraph.h.

Referenced by GetNewLevelMap(), and SetNewLevelMap().

◆ m_patchId

Array<OneD, int> Nektar::MultiRegions::PatchMap::m_patchId
protected

Definition at line 109 of file SubStructuredGraph.h.

Referenced by GetPatchId(), PatchMap(), SetNewLevelMap(), and SetPatchMap().

◆ m_sign

Array<OneD, NekDouble> Nektar::MultiRegions::PatchMap::m_sign
protected

Definition at line 113 of file SubStructuredGraph.h.

Referenced by GetSign(), PatchMap(), and SetPatchMap().