Nektar++
Static Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
Nektar::GlobalMapping::MappingTranslation Class Reference

#include <MappingTranslation.h>

Inheritance diagram for Nektar::GlobalMapping::MappingTranslation:
[legend]

Static Public Member Functions

static GLOBAL_MAPPING_EXPORT MappingSharedPtr create (const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const TiXmlElement *pMapping)
 Creates an instance of this class. More...
 
- Static Public Member Functions inherited from Nektar::GlobalMapping::Mapping
static GLOBAL_MAPPING_EXPORT MappingSharedPtr Load (const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields)
 Return a pointer to the mapping, creating it on first call. More...
 

Static Public Attributes

static std::string className
 Name of the class. More...
 

Protected Member Functions

 MappingTranslation (const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields)
 
virtual GLOBAL_MAPPING_EXPORT void v_InitObject (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const TiXmlElement *pMapping)
 
virtual GLOBAL_MAPPING_EXPORT void v_ContravarToCartesian (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_CovarToCartesian (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_ContravarFromCartesian (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_CovarFromCartesian (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_GetJacobian (Array< OneD, NekDouble > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_DotGradJacobian (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_GetMetricTensor (Array< OneD, Array< OneD, NekDouble > > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_GetInvMetricTensor (Array< OneD, Array< OneD, NekDouble > > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_LowerIndex (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_RaiseIndex (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_ApplyChristoffelContravar (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_ApplyChristoffelCovar (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_UpdateGeomInfo ()
 
- Protected Member Functions inherited from Nektar::GlobalMapping::Mapping
GLOBAL_MAPPING_EXPORT Mapping (const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields)
 Constructor. More...
 
GLOBAL_MAPPING_EXPORT void EvaluateFunction (Array< OneD, MultiRegions::ExpListSharedPtr > pFields, LibUtilities::SessionReaderSharedPtr pSession, std::string pFieldName, Array< OneD, NekDouble > &pArray, const std::string &pFunctionName, NekDouble pTime=NekDouble(0))
 
GLOBAL_MAPPING_EXPORT void EvaluateTimeFunction (LibUtilities::SessionReaderSharedPtr pSession, std::string pFieldName, Array< OneD, NekDouble > &pArray, const std::string &pFunctionName, NekDouble pTime=NekDouble(0))
 
virtual GLOBAL_MAPPING_EXPORT void v_GetCartesianCoordinates (Array< OneD, NekDouble > &out0, Array< OneD, NekDouble > &out1, Array< OneD, NekDouble > &out2)
 
virtual GLOBAL_MAPPING_EXPORT void v_GetCoordVelocity (Array< OneD, Array< OneD, NekDouble > > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_Divergence (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, NekDouble > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_VelocityLaplacian (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble alpha)
 
virtual GLOBAL_MAPPING_EXPORT void v_gradgradU (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 
virtual GLOBAL_MAPPING_EXPORT void v_CurlCurlField (Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const bool generalized)
 
virtual GLOBAL_MAPPING_EXPORT void v_UpdateMapping (const NekDouble time, const Array< OneD, Array< OneD, NekDouble > > &coords=NullNekDoubleArrayofArray, const Array< OneD, Array< OneD, NekDouble > > &coordsVel=NullNekDoubleArrayofArray)
 
virtual GLOBAL_MAPPING_EXPORT void v_UpdateBCs (const NekDouble time)
 

Protected Attributes

std::string m_velFuncName
 
- Protected Attributes inherited from Nektar::GlobalMapping::Mapping
LibUtilities::SessionReaderSharedPtr m_session
 Session reader. More...
 
LibUtilities::FieldIOSharedPtr m_fld
 
Array< OneD, MultiRegions::ExpListSharedPtrm_fields
 
Array< OneD, Array< OneD, NekDouble > > m_coords
 Array with the Cartesian coordinates. More...
 
Array< OneD, Array< OneD, NekDouble > > m_coordsVel
 Array with the velocity of the coordinates. More...
 
Array< OneD, Array< OneD, NekDouble > > m_GeometricInfo
 Array with metric terms of the mapping. More...
 
int m_nConvectiveFields
 Number of velocity components. More...
 
std::string m_funcName
 Name of the function containing the coordinates. More...
 
std::string m_velFuncName
 Name of the function containing the velocity of the coordinates. More...
 
bool m_constantJacobian
 Flag defining if the Jacobian is constant. More...
 
bool m_timeDependent
 Flag defining if the Mapping is time-dependent. More...
 
bool m_fromFunction
 Flag defining if the Mapping is defined by a function. More...
 
Array< OneD, Array< OneD, NekDouble > > m_wk1
 
Array< OneD, Array< OneD, NekDouble > > m_wk2
 
Array< OneD, Array< OneD, NekDouble > > m_tmp
 

Friends

class MemoryManager< MappingTranslation >
 

Additional Inherited Members

- Public Member Functions inherited from Nektar::GlobalMapping::Mapping
virtual GLOBAL_MAPPING_EXPORT ~Mapping ()
 Destructor. More...
 
GLOBAL_MAPPING_EXPORT void InitObject (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const TiXmlElement *pMapping)
 Initialise the mapping object. More...
 
GLOBAL_MAPPING_EXPORT void ReplaceField (const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields)
 Replace the Expansion List used by the mapping. More...
 
GLOBAL_MAPPING_EXPORT void Output (LibUtilities::FieldMetaDataMap &fieldMetaDataMap, const std::string &outname)
 Output function called when a chk or fld file is written. More...
 
GLOBAL_MAPPING_EXPORT void ContravarToCartesian (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 Convert a contravariant vector to the Cartesian system. More...
 
GLOBAL_MAPPING_EXPORT void CovarToCartesian (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 Convert a covariant vector to the Cartesian system. More...
 
GLOBAL_MAPPING_EXPORT void ContravarFromCartesian (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 Convert a contravariant vector to the transformed system. More...
 
GLOBAL_MAPPING_EXPORT void CovarFromCartesian (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 Convert a covariant vector to the transformed system. More...
 
GLOBAL_MAPPING_EXPORT void GetCartesianCoordinates (Array< OneD, NekDouble > &out0, Array< OneD, NekDouble > &out1, Array< OneD, NekDouble > &out2)
 Get the Cartesian coordinates in the field. More...
 
GLOBAL_MAPPING_EXPORT void GetJacobian (Array< OneD, NekDouble > &outarray)
 Get the Jacobian of the transformation. More...
 
GLOBAL_MAPPING_EXPORT void DotGradJacobian (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, NekDouble > &outarray)
 Calculate the dot product with the gradient of the Jacobian. More...
 
GLOBAL_MAPPING_EXPORT void GetMetricTensor (Array< OneD, Array< OneD, NekDouble > > &outarray)
 Get the metric tensor \(g_{ij}\). More...
 
GLOBAL_MAPPING_EXPORT void GetInvMetricTensor (Array< OneD, Array< OneD, NekDouble > > &outarray)
 Get the inverse of metric tensor \(g^{ij}\). More...
 
GLOBAL_MAPPING_EXPORT void LowerIndex (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 Lower index of vector: \(v_{i} = g_{ij}*v^{j}\). More...
 
GLOBAL_MAPPING_EXPORT void RaiseIndex (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 Raise index of vector: \(v^{i} = g^{ij}*v_{j}\). More...
 
GLOBAL_MAPPING_EXPORT void ApplyChristoffelContravar (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 Apply the Christoffel symbols to a contravariant vector. More...
 
GLOBAL_MAPPING_EXPORT void ApplyChristoffelCovar (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 Apply the Christoffel symbols to a covariant vector. More...
 
GLOBAL_MAPPING_EXPORT void GetCoordVelocity (Array< OneD, Array< OneD, NekDouble > > &outarray)
 Obtain the velocity of the coordinates. More...
 
GLOBAL_MAPPING_EXPORT void Divergence (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, NekDouble > &outarray)
 Calculate the generalised divergence operator. More...
 
GLOBAL_MAPPING_EXPORT void VelocityLaplacian (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const NekDouble alpha=0.0)
 Generalised (correction to the) velocity Laplacian operator. More...
 
GLOBAL_MAPPING_EXPORT void gradgradU (const Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray)
 Second order covariant derivatives of a contravariant vector. More...
 
GLOBAL_MAPPING_EXPORT void CurlCurlField (Array< OneD, Array< OneD, NekDouble > > &inarray, Array< OneD, Array< OneD, NekDouble > > &outarray, const bool generalized)
 CurlCurl calculated on the whole field. More...
 
GLOBAL_MAPPING_EXPORT bool IsTimeDependent ()
 Get flag defining if mapping is time-dependent. More...
 
GLOBAL_MAPPING_EXPORT void SetTimeDependent (const bool value)
 Set flag defining if mapping is time-dependent. More...
 
GLOBAL_MAPPING_EXPORT bool IsFromFunction ()
 Get flag defining if mapping is defined by a function. More...
 
GLOBAL_MAPPING_EXPORT void SetFromFunction (const bool value)
 Set flag defining if mapping is defined by a function. More...
 
GLOBAL_MAPPING_EXPORT bool HasConstantJacobian ()
 Get flag defining if mapping has constant Jacobian. More...
 
GLOBAL_MAPPING_EXPORT bool IsDefined ()
 Get flag determining if the mapping was defined or is trivial. More...
 
GLOBAL_MAPPING_EXPORT void UpdateBCs (const NekDouble time)
 Update the Dirichlet Boundary Conditions when using Mappings. More...
 
GLOBAL_MAPPING_EXPORT void UpdateMapping (const NekDouble time, const Array< OneD, Array< OneD, NekDouble > > &coords=NullNekDoubleArrayofArray, const Array< OneD, Array< OneD, NekDouble > > &coordsVel=NullNekDoubleArrayofArray)
 Update the Mapping with new coordinates. More...
 
GLOBAL_MAPPING_EXPORT void UpdateGeomInfo ()
 Recompute the metric terms of the Mapping. More...
 
- Static Protected Attributes inherited from Nektar::GlobalMapping::Mapping
static MappingSharedPtr m_mappingPtr = MappingSharedPtr()
 
static bool m_init = false
 
static bool m_isDefined = false
 

Detailed Description

This class implements a trivial mapping defined by

\[ \bar{x} = x + c_1 \]

\[ \bar{y} = y + c_2 \]

\[ \bar{z} = z + c_3 \]

where \(c_i\) are constants, \((\bar{x},\bar{y},\bar{z})\) are the Cartesian (physical) coordinates and \((x,y,z)\) are the transformed (computational) coordinates.

Definition at line 51 of file MappingTranslation.h.

Constructor & Destructor Documentation

◆ MappingTranslation()

Nektar::GlobalMapping::MappingTranslation::MappingTranslation ( const LibUtilities::SessionReaderSharedPtr pSession,
const Array< OneD, MultiRegions::ExpListSharedPtr > &  pFields 
)
protected

Definition at line 59 of file MappingTranslation.cpp.

62  : Mapping(pSession, pFields)
63 {
64 }
GLOBAL_MAPPING_EXPORT Mapping(const LibUtilities::SessionReaderSharedPtr &pSession, const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields)
Constructor.
Definition: Mapping.cpp:58

Member Function Documentation

◆ create()

static GLOBAL_MAPPING_EXPORT MappingSharedPtr Nektar::GlobalMapping::MappingTranslation::create ( const LibUtilities::SessionReaderSharedPtr pSession,
const Array< OneD, MultiRegions::ExpListSharedPtr > &  pFields,
const TiXmlElement *  pMapping 
)
inlinestatic

Creates an instance of this class.

Definition at line 59 of file MappingTranslation.h.

References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::GlobalMapping::MappingSharedPtr, and CellMLToNektar.cellml_metadata::p.

63  {
66  pFields);
67  p->InitObject(pFields, pMapping);
68  return p;
69  }
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
GLOBAL_MAPPING_EXPORT typedef std::shared_ptr< Mapping > MappingSharedPtr
A shared pointer to a Mapping object.
Definition: Mapping.h:50

◆ v_ApplyChristoffelContravar()

void Nektar::GlobalMapping::MappingTranslation::v_ApplyChristoffelContravar ( const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray 
)
protectedvirtual

Implements Nektar::GlobalMapping::Mapping.

Definition at line 245 of file MappingTranslation.cpp.

References Nektar::GlobalMapping::Mapping::m_fields, and Nektar::GlobalMapping::Mapping::m_nConvectiveFields.

248 {
249  boost::ignore_unused(inarray);
250 
251  int physTot = m_fields[0]->GetTotPoints();
252  int nvel = m_nConvectiveFields;
253 
254  for (int i = 0; i< nvel; i++)
255  {
256  for (int j = 0; j< nvel; j++)
257  {
258  outarray[i*nvel+j] = Array<OneD, NekDouble>(physTot,0.0);
259  }
260  }
261 }
int m_nConvectiveFields
Number of velocity components.
Definition: Mapping.h:416
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408

◆ v_ApplyChristoffelCovar()

void Nektar::GlobalMapping::MappingTranslation::v_ApplyChristoffelCovar ( const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray 
)
protectedvirtual

Implements Nektar::GlobalMapping::Mapping.

Definition at line 263 of file MappingTranslation.cpp.

References Nektar::GlobalMapping::Mapping::m_fields, and Nektar::GlobalMapping::Mapping::m_nConvectiveFields.

266 {
267  boost::ignore_unused(inarray);
268 
269  int physTot = m_fields[0]->GetTotPoints();
270  int nvel = m_nConvectiveFields;
271 
272  for (int i = 0; i< nvel; i++)
273  {
274  for (int j = 0; j< nvel; j++)
275  {
276  outarray[i*nvel+j] = Array<OneD, NekDouble>(physTot,0.0);
277  }
278  }
279 }
int m_nConvectiveFields
Number of velocity components.
Definition: Mapping.h:416
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408

◆ v_ContravarFromCartesian()

void Nektar::GlobalMapping::MappingTranslation::v_ContravarFromCartesian ( const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray 
)
protectedvirtual

Implements Nektar::GlobalMapping::Mapping.

Definition at line 131 of file MappingTranslation.cpp.

References Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vcopy().

134 {
135  int physTot = m_fields[0]->GetTotPoints();
136 
137  for (int i = 0; i < m_nConvectiveFields; ++i)
138  {
139  Vmath::Vcopy(physTot, inarray[i], 1, outarray[i], 1);
140  }
141 }
int m_nConvectiveFields
Number of velocity components.
Definition: Mapping.h:416
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1064

◆ v_ContravarToCartesian()

void Nektar::GlobalMapping::MappingTranslation::v_ContravarToCartesian ( const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray 
)
protectedvirtual

Implements Nektar::GlobalMapping::Mapping.

Definition at line 107 of file MappingTranslation.cpp.

References Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vcopy().

110 {
111  int physTot = m_fields[0]->GetTotPoints();
112 
113  for (int i = 0; i < m_nConvectiveFields; ++i)
114  {
115  Vmath::Vcopy(physTot, inarray[i], 1, outarray[i], 1);
116  }
117 }
int m_nConvectiveFields
Number of velocity components.
Definition: Mapping.h:416
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1064

◆ v_CovarFromCartesian()

void Nektar::GlobalMapping::MappingTranslation::v_CovarFromCartesian ( const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray 
)
protectedvirtual

Implements Nektar::GlobalMapping::Mapping.

Definition at line 143 of file MappingTranslation.cpp.

References Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vcopy().

146 {
147  int physTot = m_fields[0]->GetTotPoints();
148 
149  for (int i = 0; i < m_nConvectiveFields; ++i)
150  {
151  Vmath::Vcopy(physTot, inarray[i], 1, outarray[i], 1);
152  }
153 }
int m_nConvectiveFields
Number of velocity components.
Definition: Mapping.h:416
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1064

◆ v_CovarToCartesian()

void Nektar::GlobalMapping::MappingTranslation::v_CovarToCartesian ( const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray 
)
protectedvirtual

Implements Nektar::GlobalMapping::Mapping.

Definition at line 119 of file MappingTranslation.cpp.

References Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vcopy().

122 {
123  int physTot = m_fields[0]->GetTotPoints();
124 
125  for (int i = 0; i < m_nConvectiveFields; ++i)
126  {
127  Vmath::Vcopy(physTot, inarray[i], 1, outarray[i], 1);
128  }
129 }
int m_nConvectiveFields
Number of velocity components.
Definition: Mapping.h:416
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1064

◆ v_DotGradJacobian()

void Nektar::GlobalMapping::MappingTranslation::v_DotGradJacobian ( const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, NekDouble > &  outarray 
)
protectedvirtual

Reimplemented from Nektar::GlobalMapping::Mapping.

Definition at line 162 of file MappingTranslation.cpp.

References Nektar::GlobalMapping::Mapping::m_fields, and Vmath::Zero().

165 {
166  boost::ignore_unused(inarray);
167 
168  int physTot = m_fields[0]->GetTotPoints();
169 
170  Vmath::Zero(physTot, outarray, 1);
171 }
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408
void Zero(int n, T *x, const int incx)
Zero vector.
Definition: Vmath.cpp:376

◆ v_GetInvMetricTensor()

void Nektar::GlobalMapping::MappingTranslation::v_GetInvMetricTensor ( Array< OneD, Array< OneD, NekDouble > > &  outarray)
protectedvirtual

Implements Nektar::GlobalMapping::Mapping.

Definition at line 191 of file MappingTranslation.cpp.

References Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Sadd().

193 {
194  int physTot = m_fields[0]->GetTotPoints();
195  int nvel = m_nConvectiveFields;
196 
197  for (int i=0; i<nvel*nvel; i++)
198  {
199  outarray[i] = Array<OneD, NekDouble> (physTot, 0.0);
200  }
201  // Fill diagonal with 1.0
202  for (int i=0; i<nvel; i++)
203  {
204  Vmath::Sadd(physTot, 1.0, outarray[i+nvel*i], 1,
205  outarray[i+nvel*i], 1);
206  }
207 }
int m_nConvectiveFields
Number of velocity components.
Definition: Mapping.h:416
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408
void Sadd(int n, const T alpha, const T *x, const int incx, T *y, const int incy)
Add vector y = alpha + x.
Definition: Vmath.cpp:318

◆ v_GetJacobian()

void Nektar::GlobalMapping::MappingTranslation::v_GetJacobian ( Array< OneD, NekDouble > &  outarray)
protectedvirtual

Implements Nektar::GlobalMapping::Mapping.

Definition at line 155 of file MappingTranslation.cpp.

References Vmath::Fill(), and Nektar::GlobalMapping::Mapping::m_fields.

157 {
158  int physTot = m_fields[0]->GetTotPoints();
159  Vmath::Fill(physTot, 1.0, outarray, 1);
160 }
void Fill(int n, const T alpha, T *x, const int incx)
Fill a vector with a constant value.
Definition: Vmath.cpp:45
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408

◆ v_GetMetricTensor()

void Nektar::GlobalMapping::MappingTranslation::v_GetMetricTensor ( Array< OneD, Array< OneD, NekDouble > > &  outarray)
protectedvirtual

Implements Nektar::GlobalMapping::Mapping.

Definition at line 173 of file MappingTranslation.cpp.

References Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Sadd().

175 {
176  int physTot = m_fields[0]->GetTotPoints();
177  int nvel = m_nConvectiveFields;
178 
179  for (int i=0; i<nvel*nvel; i++)
180  {
181  outarray[i] = Array<OneD, NekDouble> (physTot, 0.0);
182  }
183  // Fill diagonal with 1.0
184  for (int i=0; i<nvel; i++)
185  {
186  Vmath::Sadd(physTot, 1.0, outarray[i+nvel*i], 1,
187  outarray[i+nvel*i], 1);
188  }
189 }
int m_nConvectiveFields
Number of velocity components.
Definition: Mapping.h:416
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408
void Sadd(int n, const T alpha, const T *x, const int incx, T *y, const int incy)
Add vector y = alpha + x.
Definition: Vmath.cpp:318

◆ v_InitObject()

void Nektar::GlobalMapping::MappingTranslation::v_InitObject ( const Array< OneD, MultiRegions::ExpListSharedPtr > &  pFields,
const TiXmlElement *  pMapping 
)
protectedvirtual

This function initialises the Mapping object. It computes the coordinates and velocity coordinates, initialises the workspace variables, and calls UpdateGeomInfo, which will perform the calculations specific for each type of Mapping.

Parameters
pFieldsExpList array used in the mapping
pMappingxml element describing the mapping

Reimplemented from Nektar::GlobalMapping::Mapping.

Definition at line 70 of file MappingTranslation.cpp.

References Nektar::GlobalMapping::Mapping::m_constantJacobian, Nektar::GlobalMapping::Mapping::m_coords, Nektar::GlobalMapping::Mapping::m_coordsVel, Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, Nektar::GlobalMapping::Mapping::m_session, Nektar::GlobalMapping::Mapping::m_timeDependent, Nektar::GlobalMapping::Mapping::m_tmp, and Nektar::GlobalMapping::Mapping::v_InitObject().

73 {
74  m_constantJacobian = true;
75  // When there is no Mapping object defined, use the identity
76  // transformation as a default
77  if (m_session->DefinesElement("Nektar/Mapping"))
78  {
79  Mapping::v_InitObject(pFields, pMapping);
80  }
81  else
82  {
83  int phystot = pFields[0]->GetTotPoints();
84 
85  m_timeDependent = false;
86 
87  m_coords = Array<OneD, Array<OneD, NekDouble> > (3);
88  m_coordsVel = Array<OneD, Array<OneD, NekDouble> > (3);
89  for (int i = 0; i < 3; i++)
90  {
91  m_coords[i] = Array<OneD, NekDouble> (phystot);
92  m_coordsVel[i] = Array<OneD, NekDouble> (phystot, 0.0);
93  }
94 
95  m_fields[0]->GetCoords(m_coords[0], m_coords[1], m_coords[2]);
96 
97  // Initialise workspace variables
98  m_tmp = Array<OneD, Array<OneD, NekDouble> > (m_nConvectiveFields);
99  for (int i=0; i< m_nConvectiveFields; i++)
100  {
101  m_tmp[i] = Array<OneD, NekDouble>(phystot,0.0);
102  }
103  }
104 
105 }
Array< OneD, Array< OneD, NekDouble > > m_coords
Array with the Cartesian coordinates.
Definition: Mapping.h:410
int m_nConvectiveFields
Number of velocity components.
Definition: Mapping.h:416
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408
LibUtilities::SessionReaderSharedPtr m_session
Session reader.
Definition: Mapping.h:404
bool m_timeDependent
Flag defining if the Mapping is time-dependent.
Definition: Mapping.h:428
Array< OneD, Array< OneD, NekDouble > > m_coordsVel
Array with the velocity of the coordinates.
Definition: Mapping.h:412
virtual GLOBAL_MAPPING_EXPORT void v_InitObject(const Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, const TiXmlElement *pMapping)
Definition: Mapping.cpp:100
bool m_constantJacobian
Flag defining if the Jacobian is constant.
Definition: Mapping.h:426
Array< OneD, Array< OneD, NekDouble > > m_tmp
Definition: Mapping.h:440

◆ v_LowerIndex()

void Nektar::GlobalMapping::MappingTranslation::v_LowerIndex ( const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray 
)
protectedvirtual

Reimplemented from Nektar::GlobalMapping::Mapping.

Definition at line 227 of file MappingTranslation.cpp.

References Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vcopy().

230 {
231  int physTot = m_fields[0]->GetTotPoints();
232  int nvel = m_nConvectiveFields;
233 
234  for (int i=0; i<nvel; i++)
235  {
236  outarray[i] = Array<OneD, NekDouble> (physTot, 0.0);
237  }
238  // Copy
239  for (int i=0; i<nvel; i++)
240  {
241  Vmath::Vcopy(physTot, inarray[i], 1, outarray[i], 1);
242  }
243 }
int m_nConvectiveFields
Number of velocity components.
Definition: Mapping.h:416
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1064

◆ v_RaiseIndex()

void Nektar::GlobalMapping::MappingTranslation::v_RaiseIndex ( const Array< OneD, Array< OneD, NekDouble > > &  inarray,
Array< OneD, Array< OneD, NekDouble > > &  outarray 
)
protectedvirtual

Reimplemented from Nektar::GlobalMapping::Mapping.

Definition at line 209 of file MappingTranslation.cpp.

References Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vcopy().

212 {
213  int physTot = m_fields[0]->GetTotPoints();
214  int nvel = m_nConvectiveFields;
215 
216  for (int i=0; i<nvel; i++)
217  {
218  outarray[i] = Array<OneD, NekDouble> (physTot, 0.0);
219  }
220  // Copy
221  for (int i=0; i<nvel; i++)
222  {
223  Vmath::Vcopy(physTot, inarray[i], 1, outarray[i], 1);
224  }
225 }
int m_nConvectiveFields
Number of velocity components.
Definition: Mapping.h:416
Array< OneD, MultiRegions::ExpListSharedPtr > m_fields
Definition: Mapping.h:408
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1064

◆ v_UpdateGeomInfo()

void Nektar::GlobalMapping::MappingTranslation::v_UpdateGeomInfo ( )
protectedvirtual

Implements Nektar::GlobalMapping::Mapping.

Definition at line 281 of file MappingTranslation.cpp.

282 {
283 
284 }

Friends And Related Function Documentation

◆ MemoryManager< MappingTranslation >

friend class MemoryManager< MappingTranslation >
friend

Definition at line 55 of file MappingTranslation.h.

Member Data Documentation

◆ className

std::string Nektar::GlobalMapping::MappingTranslation::className
static
Initial value:
=
MappingTranslation::create, "Translation mapping (X_i = x_i + constant)")

Name of the class.

Definition at line 72 of file MappingTranslation.h.

◆ m_velFuncName

std::string Nektar::GlobalMapping::MappingTranslation::m_velFuncName
protected

Definition at line 76 of file MappingTranslation.h.