Nektar++
|
#include <MappingGeneral.h>
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... | |
Friends | |
class | MemoryManager< MappingGeneral > |
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 |
This class implements the most general mapping, defined by the transformation
\[ \bar{x} = \bar{x}(x,y,z) \]
\[ \bar{y} = \bar{y}(x,y,z) \]
\[ \bar{z} = \bar{z}(x,y,z) \]
where \((\bar{x},\bar{y},\bar{z})\) are the Cartesian (physical) coordinates and \((x,y,z)\) are the transformed (computational) coordinates.
Definition at line 49 of file MappingGeneral.h.
|
protected |
Definition at line 57 of file MappingGeneral.cpp.
|
protected |
Definition at line 379 of file MappingGeneral.cpp.
References Nektar::MultiRegions::DirCartesianMap, m_Christoffel, Nektar::GlobalMapping::Mapping::m_fields, m_invMetricTensor, m_metricTensor, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, CellMLToNektar.cellml_metadata::p, Vmath::Smul(), Vmath::Vadd(), Vmath::Vsub(), and Vmath::Vvtvp().
Referenced by v_UpdateGeomInfo().
|
protected |
Definition at line 245 of file MappingGeneral.cpp.
References Nektar::UnitTests::d(), Nektar::MultiRegions::DirCartesianMap, Nektar::MultiRegions::e3DH1D, Vmath::Fill(), Nektar::GlobalMapping::Mapping::m_coords, m_deriv, Nektar::GlobalMapping::Mapping::m_fields, m_invDeriv, m_invMetricTensor, m_jac, m_metricTensor, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, Vmath::Smul(), Vmath::Vcopy(), Vmath::Vdiv(), Vmath::Vmul(), Vmath::Vsqrt(), Vmath::Vvtvm(), and Vmath::Vvtvp().
Referenced by v_UpdateGeomInfo().
|
inlinestatic |
Creates an instance of this class.
Definition at line 56 of file MappingGeneral.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), Nektar::GlobalMapping::MappingSharedPtr, and CellMLToNektar.cellml_metadata::p.
|
overrideprotectedvirtual |
Implements Nektar::GlobalMapping::Mapping.
Definition at line 191 of file MappingGeneral.cpp.
References m_Christoffel, Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vvtvp().
|
overrideprotectedvirtual |
Implements Nektar::GlobalMapping::Mapping.
Definition at line 215 of file MappingGeneral.cpp.
References m_Christoffel, Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vvtvp().
|
overrideprotectedvirtual |
Implements Nektar::GlobalMapping::Mapping.
Definition at line 115 of file MappingGeneral.cpp.
References Nektar::GlobalMapping::Mapping::m_fields, m_invDeriv, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vvtvp().
|
overrideprotectedvirtual |
Implements Nektar::GlobalMapping::Mapping.
Definition at line 79 of file MappingGeneral.cpp.
References m_deriv, Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vvtvp().
|
overrideprotectedvirtual |
Implements Nektar::GlobalMapping::Mapping.
Definition at line 133 of file MappingGeneral.cpp.
References m_deriv, Nektar::GlobalMapping::Mapping::m_fields, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vvtvp().
|
overrideprotectedvirtual |
Implements Nektar::GlobalMapping::Mapping.
Definition at line 97 of file MappingGeneral.cpp.
References Nektar::GlobalMapping::Mapping::m_fields, m_invDeriv, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vvtvp().
|
overrideprotectedvirtual |
Implements Nektar::GlobalMapping::Mapping.
Definition at line 174 of file MappingGeneral.cpp.
References Nektar::GlobalMapping::Mapping::m_fields, m_invMetricTensor, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vcopy().
|
overrideprotectedvirtual |
Implements Nektar::GlobalMapping::Mapping.
Definition at line 151 of file MappingGeneral.cpp.
References Nektar::GlobalMapping::Mapping::m_fields, m_jac, and Vmath::Vcopy().
|
overrideprotectedvirtual |
Implements Nektar::GlobalMapping::Mapping.
Definition at line 157 of file MappingGeneral.cpp.
References Nektar::GlobalMapping::Mapping::m_fields, m_metricTensor, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Vmath::Vcopy().
|
overrideprotectedvirtual |
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.
pFields | ExpList array used in the mapping |
pMapping | xml element describing the mapping |
Reimplemented from Nektar::GlobalMapping::Mapping.
Definition at line 67 of file MappingGeneral.cpp.
References ASSERTL0, Nektar::GlobalMapping::Mapping::m_constantJacobian, Nektar::GlobalMapping::Mapping::m_nConvectiveFields, and Nektar::GlobalMapping::Mapping::v_InitObject().
|
overrideprotectedvirtual |
Implements Nektar::GlobalMapping::Mapping.
Definition at line 239 of file MappingGeneral.cpp.
References CalculateChristoffel(), and CalculateMetricTerms().
|
friend |
Definition at line 1 of file MappingGeneral.h.
|
static |
Name of the class.
Definition at line 68 of file MappingGeneral.h.
Definition at line 81 of file MappingGeneral.h.
Referenced by CalculateChristoffel(), v_ApplyChristoffelContravar(), and v_ApplyChristoffelCovar().
Definition at line 79 of file MappingGeneral.h.
Referenced by CalculateMetricTerms(), v_ContravarToCartesian(), and v_CovarFromCartesian().
Definition at line 80 of file MappingGeneral.h.
Referenced by CalculateMetricTerms(), v_ContravarFromCartesian(), and v_CovarToCartesian().
|
protected |
Definition at line 78 of file MappingGeneral.h.
Referenced by CalculateChristoffel(), CalculateMetricTerms(), and v_GetInvMetricTensor().
Definition at line 82 of file MappingGeneral.h.
Referenced by CalculateMetricTerms(), and v_GetJacobian().
|
protected |
Definition at line 77 of file MappingGeneral.h.
Referenced by CalculateChristoffel(), CalculateMetricTerms(), and v_GetMetricTensor().