Nektar++
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
Nektar::LibUtilities Namespace Reference

Namespaces

 CompressData
 
 H5
 
 StdHexData
 
 StdPrismData
 
 StdPyrData
 
 StdQuadData
 
 StdSegData
 
 StdTetData
 
 StdTriData
 

Classes

class  GitConsts
 
class  CsvIO
 
struct  DomainRange
 
class  Equation
 
class  TagWriter
 Base class for writing hierarchical data (XML or HDF5). More...
 
class  DataSource
 
struct  FieldDefinitions
 Metadata that describes the storage properties of field output. More...
 
class  FieldIO
 Class for operating on Nektar++ input/output files. More...
 
class  H5DataSource
 
class  H5TagWriter
 
class  FieldIOHdf5
 
class  XmlDataSource
 
class  XmlTagWriter
 
class  FieldIOXml
 
class  Interpolator
 A class that contains algorithms for interpolation between pts fields, expansions and different meshes. More...
 
class  NekFactory
 Provides a generic Factory class. More...
 
struct  defOpLessCreator
 
class  NekManager
 
class  PtsField
 
class  PtsIO
 
struct  CmdLineArg
 
struct  TimeIntScheme
 
struct  FunctionVariableDefinition
 
class  SessionReader
 Reads and parses information from a Nektar++ XML session file. More...
 
class  Timer
 
class  CommRequest
 Class for communicator request type. More...
 
class  Comm
 Base communications class. More...
 
class  CommCwipi
 A global linear system. More...
 
class  CommDataTypeTraits
 
class  CommDataTypeTraits< std::vector< elemT > >
 
class  CommDataTypeTraits< Array< OneD, elemT > >
 
class  CommRequestMpi
 Class for communicator request type. More...
 
class  CommMpi
 A global linear system. More...
 
class  CommSerial
 A global linear system. More...
 
class  Transposition
 
class  NekFFTW
 
class  NektarFFT
 
class  BasisKey
 Describes the specification for a Basis. More...
 
class  Basis
 Represents a basis of a given type. More...
 
class  BLPoints
 
class  Points
 Stores a set of points of datatype DataT, defined by a PointKey. More...
 
class  FourierPoints
 
class  FourierSingleModePoints
 
class  GaussPoints
 
class  GraphVertexObject
 
class  GraphEdgeObject
 
class  Graph
 
class  NodalHexElec
 
class  NodalPrismElec
 
class  NodalPrismEvenlySpaced
 
class  NodalPrismSPI
 
class  NodalQuadElec
 
class  NodalTetElec
 
class  NodalTetEvenlySpaced
 
class  NodalTetSPI
 
class  NodalTriElec
 
class  NodalTriEvenlySpaced
 
class  NodalTriFekete
 
class  NodalTriSPI
 
class  NodalUtil
 A class to assist in the construction of nodal simplex and hybrid elements in two and three dimensions. More...
 
class  NodalUtilTriangle
 Specialisation of the NodalUtil class to support nodal triangular elements. More...
 
class  NodalUtilTetrahedron
 Specialisation of the NodalUtil class to support nodal tetrahedral elements. More...
 
class  NodalUtilPrism
 Specialisation of the NodalUtil class to support nodal prismatic elements. More...
 
class  NodalUtilQuad
 Specialisation of the NodalUtil class to support nodal quad elements. More...
 
class  NodalUtilHex
 Specialisation of the NodalUtil class to support nodal hex elements. More...
 
class  PointsKey
 Defines a specification for a set of points. More...
 
class  PolyEPoints
 
struct  func
 
struct  functions
 
class  Interpreter
 Interpreter class for the evaluation of mathematical expressions. More...
 
class  Kernel
 
class  NekLinSysIter
 
class  NekLinSysIterCG
 
class  NekLinSysIterFixedpointJacobi
 
class  NekLinSysIterGMRES
 
class  NekNonlinSys
 
class  NekNonlinSysNewton
 
class  NekSysOperators
 
class  NekSysKey
 
class  NekSys
 
class  AdamsBashforthTimeIntegrationScheme
 
class  AdamsBashforthOrder1TimeIntegrationScheme
 
class  AdamsBashforthOrder2TimeIntegrationScheme
 
class  AdamsBashforthOrder3TimeIntegrationScheme
 
class  AdamsBashforthOrder4TimeIntegrationScheme
 
class  AdamsMoultonTimeIntegrationScheme
 
class  AdamsMoultonOrder1TimeIntegrationScheme
 
class  AdamsMoultonOrder2TimeIntegrationScheme
 
class  AdamsMoultonOrder3TimeIntegrationScheme
 
class  AdamsMoultonOrder4TimeIntegrationScheme
 
class  BDFImplicitTimeIntegrationScheme
 
class  BDFImplicitOrder1TimeIntegrationScheme
 
class  BDFImplicitOrder2TimeIntegrationScheme
 
class  BDFImplicitOrder3TimeIntegrationScheme
 
class  BDFImplicitOrder4TimeIntegrationScheme
 
class  CNABTimeIntegrationScheme
 
class  DIRKTimeIntegrationScheme
 
class  DIRKOrder1TimeIntegrationScheme
 
class  DIRKOrder2TimeIntegrationScheme
 
class  DIRKOrder3TimeIntegrationScheme
 
class  DIRKOrder3_ES5TimeIntegrationScheme
 
class  DIRKOrder4_ES6TimeIntegrationScheme
 
class  EulerExponentialTimeIntegrationScheme
 
class  EulerTimeIntegrationScheme
 
class  BackwardEulerTimeIntegrationScheme
 
class  ForwardEulerTimeIntegrationScheme
 
class  ExplicitTimeIntegrationSchemeSDC
 
class  IMEXdirkTimeIntegrationScheme
 
class  IMEXdirk_1_1_1TimeIntegrationScheme
 
class  IMEXdirk_1_2_1TimeIntegrationScheme
 
class  IMEXdirk_1_2_2TimeIntegrationScheme
 
class  IMEXdirk_2_2_2TimeIntegrationScheme
 
class  IMEXdirk_2_3_2TimeIntegrationScheme
 
class  IMEXdirk_2_3_3TimeIntegrationScheme
 
class  IMEXdirk_3_4_3TimeIntegrationScheme
 
class  IMEXdirk_4_4_3TimeIntegrationScheme
 
class  IMEXGearTimeIntegrationScheme
 
class  IMEXTimeIntegrationScheme
 
class  IMEXOrder1TimeIntegrationScheme
 
class  IMEXOrder2TimeIntegrationScheme
 
class  IMEXOrder3TimeIntegrationScheme
 
class  IMEXOrder4TimeIntegrationScheme
 
class  IMEXTimeIntegrationSchemeSDC
 
class  ImplicitTimeIntegrationSchemeSDC
 
class  MCNABTimeIntegrationScheme
 
class  RungeKuttaTimeIntegrationScheme
 
class  RungeKutta1TimeIntegrationScheme
 
class  RungeKutta2TimeIntegrationScheme
 
class  RungeKutta3TimeIntegrationScheme
 
class  ClassicalRungeKutta4TimeIntegrationScheme
 
class  RungeKutta4TimeIntegrationScheme
 
class  RungeKutta5TimeIntegrationScheme
 
class  RungeKutta2_ImprovedEulerTimeIntegrationScheme
 
class  RungeKutta2_SSPTimeIntegrationScheme
 
class  RungeKutta3_SSPTimeIntegrationScheme
 
class  TimeIntegrationAlgorithmGLM
 
class  TimeIntegrationScheme
 Base class for time integration schemes. More...
 
class  FractionalInTimeIntegrationScheme
 Class for fractional-in-time integration. More...
 
class  TimeIntegrationSchemeGEM
 Class for spectral deferred correction integration. More...
 
class  TimeIntegrationSchemeGLM
 Base class for GLM time integration schemes. More...
 
class  TimeIntegrationSchemeOperators
 Binds a set of functions for use by time integration schemes. More...
 
class  TimeIntegrationSchemeSDC
 Class for spectral deferred correction integration. More...
 
class  TimeIntegrationSolutionGLM
 

Typedefs

typedef std::shared_ptr< CsvIOCsvIOSharedPtr
 
typedef std::shared_ptr< DomainRangeDomainRangeShPtr
 
typedef std::shared_ptr< EquationEquationSharedPtr
 
typedef std::map< std::string, std::string > FieldMetaDataMap
 
typedef std::shared_ptr< TagWriterTagWriterSharedPtr
 
typedef std::shared_ptr< DataSourceDataSourceSharedPtr
 
typedef std::shared_ptr< FieldDefinitionsFieldDefinitionsSharedPtr
 
typedef LibUtilities::NekFactory< std::string, FieldIO, LibUtilities::CommSharedPtr, bool > FieldIOFactory
 Datatype of the NekFactory used to instantiate classes. More...
 
typedef std::shared_ptr< FieldIOFieldIOSharedPtr
 
typedef std::shared_ptr< H5DataSourceH5DataSourceSharedPtr
 
typedef std::shared_ptr< H5TagWriterH5TagWriterSharedPtr
 
typedef std::shared_ptr< XmlDataSourceXmlDataSourceSharedPtr
 
typedef std::shared_ptr< XmlTagWriterXmlTagWriterSharedPtr
 
typedef std::shared_ptr< InterpolatorInterpolatorSharedPtr
 
typedef std::shared_ptr< PtsFieldPtsFieldSharedPtr
 
typedef std::map< std::string, std::string > PtsMetaDataMap
 
typedef std::shared_ptr< PtsIOPtsIOSharedPtr
 
typedef std::map< std::string, std::string > SolverInfoMap
 
typedef std::map< std::string, NekDoubleParameterMap
 
typedef std::map< std::string, std::string > GeometricInfoMap
 
typedef std::map< std::string, std::string > ExpressionMap
 
typedef std::vector< std::string > VariableList
 
typedef std::map< std::string, std::string > TagMap
 
typedef std::map< std::string, std::string > FilterParams
 
typedef std::vector< std::pair< std::string, FilterParams > > FilterMap
 
typedef std::map< std::string, CmdLineArgCmdLineArgMap
 
typedef std::map< std::string, int > EnumMap
 
typedef std::map< std::string, EnumMapEnumMapList
 
typedef std::map< std::string, std::string > GloSysInfoMap
 
typedef std::map< std::string, GloSysInfoMapGloSysSolnInfoList
 
typedef std::map< std::pair< std::string, int >, FunctionVariableDefinitionFunctionVariableMap
 
typedef std::map< std::string, FunctionVariableMapFunctionMap
 
typedef std::shared_ptr< SessionReaderSessionReaderSharedPtr
 
typedef std::shared_ptr< CommCommSharedPtr
 Pointer to a Communicator object. More...
 
typedef LibUtilities::NekFactory< std::string, Comm, int, char ** > CommFactory
 Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class. More...
 
typedef std::shared_ptr< CommRequestCommRequestSharedPtr
 
typedef std::shared_ptr< CommCwipiCommCwipiSharedPtr
 Pointer to a Communicator object. More...
 
typedef unsigned int CommDataType
 
typedef std::shared_ptr< CommMpiCommMpiSharedPtr
 Pointer to a Communicator object. More...
 
typedef std::shared_ptr< CommRequestMpiCommRequestMpiSharedPtr
 
typedef std::shared_ptr< CommSerialCommSerialSharedPtr
 Pointer to a Communicator object. More...
 
typedef std::shared_ptr< TranspositionTranspositionSharedPtr
 
typedef std::shared_ptr< NekFFTWNekFFTWSharedPtr
 
typedef std::shared_ptr< NektarFFTNektarFFTSharedPtr
 
typedef LibUtilities::NekFactory< std::string, NektarFFT, int > NektarFFTFactory
 Datatype of the NekFactory used to instantiate classes derived from the NektarFFT class. More...
 
typedef std::vector< BasisKeyBasisKeyVector
 Name for a vector of BasisKeys. More...
 
typedef std::shared_ptr< BasisBasisSharedPtr
 
typedef std::vector< BasisSharedPtrBasisVector
 
typedef Points< NekDoublePointsBaseType
 
typedef std::shared_ptr< Points< NekDouble > > PointsSharedPtr
 
typedef int GraphVertexID
 
typedef NekManager< PointsKey, Points< NekDouble >, PointsKey::opLessPointsManagerT
 
typedef NekManager< BasisKey, Basis, BasisKey::opLessBasisManagerT
 
typedef std::shared_ptr< NekMatrix< NekDouble > > SharedMatrix
 
typedef std::vector< PointsKeyPointsKeyVector
 
typedef NekDouble(* PFD) ()
 
typedef NekDouble(* PFD1) (NekDouble)
 
typedef NekDouble(* PFD2) (NekDouble, NekDouble)
 
typedef NekDouble(* PFD3) (NekDouble, NekDouble, NekDouble)
 
typedef NekDouble(* PFD4) (NekDouble, NekDouble, NekDouble, NekDouble)
 
typedef std::shared_ptr< InterpreterInterpreterSharedPtr
 
typedef std::shared_ptr< KernelKernelSharedPtr
 
typedef std::shared_ptr< NekLinSysIterNekLinSysIterSharedPtr
 
typedef LibUtilities::NekFactory< std::string, NekLinSysIter, const LibUtilities::SessionReaderSharedPtr &, const LibUtilities::CommSharedPtr &, const int, const NekSysKey & > NekLinSysIterFactory
 
typedef std::shared_ptr< NekLinSysIterCGNekLinSysIterCGSharedPtr
 
typedef std::shared_ptr< NekLinSysIterFixedpointJacobiNekLinSysIterFixedpointJacobiSharedPtr
 
typedef std::shared_ptr< NekNonlinSysNekNonlinSysSharedPtr
 
typedef LibUtilities::NekFactory< std::string, NekNonlinSys, const LibUtilities::SessionReaderSharedPtr &, const LibUtilities::CommSharedPtr &, const int, const NekSysKey & > NekNonlinSysFactory
 
typedef std::shared_ptr< NekSysNekSysSharedPtr
 
typedef NekFactory< std::string, TimeIntegrationScheme, std::string, unsigned int, std::vector< NekDouble > > TimeIntegrationSchemeFactory
 Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class. More...
 
typedef std::shared_ptr< TimeIntegrationSchemeOperatorsTimeIntegrationSchemeOperatorsSharedPtr
 
template<class T >
using AT = Array< OneD, T >
 
typedef const AT< const AT< AT< NekDouble > > > ConstTripleArray
 
typedef AT< AT< AT< NekDouble > > > TripleArray
 
typedef const AT< const AT< NekDouble > > ConstDoubleArray
 
typedef AT< AT< NekDouble > > DoubleArray
 
typedef const AT< const NekDoubleConstSingleArray
 
typedef AT< NekDoubleSingleArray
 
typedef AT< AT< AT< std::complex< NekDouble > > > > ComplexTripleArray
 
typedef const AT< const AT< std::complex< NekDouble > > > ConstComplexDoubleArray
 
typedef AT< AT< std::complex< NekDouble > > > ComplexDoubleArray
 
typedef const AT< const std::complex< NekDouble > > ConstComplexSingleArray
 
typedef AT< std::complex< NekDouble > > ComplexSingleArray
 
typedef std::shared_ptr< TimeIntegrationSchemeTimeIntegrationSchemeSharedPtr
 
typedef std::vector< TimeIntegrationSchemeSharedPtrTimeIntegrationSchemeVector
 
typedef std::shared_ptr< FractionalInTimeIntegrationSchemeFractionalInTimeIntegrationSchemeSharedPtr
 
typedef std::vector< FractionalInTimeIntegrationSchemeSharedPtrFractionalInTimeIntegrationSchemeVector
 
typedef std::shared_ptr< TimeIntegrationSchemeGLMTimeIntegrationSchemeGLMSharedPtr
 
typedef std::vector< TimeIntegrationSchemeGLMSharedPtrTimeIntegrationSchemeGLMVector
 
typedef std::shared_ptr< TimeIntegrationAlgorithmGLMTimeIntegrationAlgorithmGLMSharedPtr
 
typedef std::vector< TimeIntegrationAlgorithmGLMSharedPtrTimeIntegrationAlgorithmGLMVector
 
typedef std::shared_ptr< TimeIntegrationSolutionGLMTimeIntegrationSolutionGLMSharedPtr
 
typedef std::vector< TimeIntegrationSolutionGLMSharedPtrTimeIntegrationSolutionGLMVector
 
typedef std::shared_ptr< TimeIntegrationSchemeGEMTimeIntegrationSchemeGEMSharedPtr
 
typedef std::vector< TimeIntegrationSchemeGEMSharedPtrTimeIntegrationSchemeGEMVector
 
typedef std::shared_ptr< TimeIntegrationSchemeSDCTimeIntegrationSchemeSDCSharedPtr
 
typedef std::vector< TimeIntegrationSchemeSDCSharedPtrTimeIntegrationSchemeSDCVector
 

Enumerations

enum  EndianType {
  eEndianUnknown , eEndianBig , eEndianLittle , eEndianBigWord ,
  eEndianLittleWord
}
 
enum  FieldIOType { eXML , eHDF5 }
 Enumerator for auto-detection of FieldIO types. More...
 
enum  InterpMethod {
  eNoMethod , eNearestNeighbour , eQuadratic , eShepard ,
  eGauss
}
 
enum  PtsType {
  ePtsFile , ePtsLine , ePtsPlane , ePtsBox ,
  ePtsSegBlock , ePtsTriBlock , ePtsTetBlock
}
 
enum  PtsInfo { eIsEquiSpacedData , ePtsPerElmtEdge }
 
enum  FunctionType { eFunctionTypeExpression , eFunctionTypeFile , eFunctionTypeTransientFile , eSIZE_FunctionType }
 
enum  ShapeType {
  eNoShapeType , ePoint , eSegment , eTriangle ,
  eQuadrilateral , eTetrahedron , ePyramid , ePrism ,
  eHexahedron , SIZE_ShapeType , Point = ePoint , Seg = eSegment ,
  Tri = eTriangle , Quad = eQuadrilateral , Tet = eTetrahedron , Pyr = ePyramid ,
  Prism = ePrism , Hex = eHexahedron
}
 
enum  ReduceOperator { ReduceSum , ReduceMax , ReduceMin , SIZE_ReduceOperator }
 Type of operation to perform in AllReduce. More...
 
enum  TranspositionDir {
  eXYtoZ , eZtoXY , eXtoYZ , eYZtoX ,
  eYZtoZY , eZYtoYZ , eXtoY , eYtoZ ,
  eZtoX , eNoTrans
}
 
enum  BasisType {
  eNoBasisType , eOrtho_A , eOrtho_B , eOrtho_C ,
  eModified_A , eModified_B , eModified_C , eOrthoPyr_C ,
  eModifiedPyr_C , eFourier , eGLL_Lagrange , eGauss_Lagrange ,
  h_p , eChebyshev , P , _p ,
  eFourierSingleMode , eFourierHalfModeRe , eFourierHalfModeIm , SIZE_BasisType
}
 
enum  PointsType {
  eNoPointsType , eGaussGaussLegendre , eGaussRadauMLegendre , eGaussRadauPLegendre ,
  eGaussLobattoLegendre , eGaussGaussChebyshev , eGaussRadauMChebyshev , eGaussRadauPChebyshev ,
  eGaussLobattoChebyshev , eGaussRadauMAlpha0Beta1 , beta , beta ,
  beta , beta , eGaussRadauKronrodMLegendre , eGaussRadauKronrodMAlpha1Beta0 ,
  eGaussLobattoKronrodLegendre , ePolyEvenlySpaced , eFourierEvenlySpaced , eFourierSingleModeSpaced ,
  eBoundaryLayerPoints , eBoundaryLayerPointsRev , eNodalTriElec , eNodalTriFekete ,
  eNodalTriEvenlySpaced , eNodalTetEvenlySpaced , eNodalTetElec , eNodalPrismEvenlySpaced ,
  eNodalPrismElec , eNodalTriSPI , eNodalTetSPI , eNodalPrismSPI ,
  eNodalQuadElec , eNodalHexElec , SIZE_PointsType
}
 
enum  TimeIntegrationSchemeType {
  eNoTimeIntegrationSchemeType , eExplicit , eDiagonallyImplicit , eIMEX ,
  eImplicit , eExponential , eFractionalInTime , eSpectralDeferredCorrection ,
  eExtrapolationMethod
}
 

Functions

template<class To , class Ti , class = typename std::enable_if< std::is_floating_point< typename std::remove_reference<Ti>::type>::value && std::is_integral< typename std::remove_reference<To>::type>::value>::type>
To checked_cast (const Ti param)
 checked cast from float types only to int types More...
 
EndianType Endianness (void)
 
FieldIOFactoryGetFieldIOFactory ()
 Returns the FieldIO factory. More...
 
void Write (const std::string &outFile, std::vector< FieldDefinitionsSharedPtr > &fielddefs, std::vector< std::vector< NekDouble >> &fielddata, const FieldMetaDataMap &fieldinfomap, const bool backup)
 This function allows for data to be written to an FLD file when a session and/or communicator is not instantiated. Typically used in utilities which do not take XML input and operate in serial only. More...
 
void Import (const std::string &infilename, std::vector< FieldDefinitionsSharedPtr > &fielddefs, std::vector< std::vector< NekDouble >> &fielddata, FieldMetaDataMap &fieldinfomap, const Array< OneD, int > &ElementIDs)
 This function allows for data to be imported from an FLD file when a session and/or communicator is not instantiated. Typically used in utilities which only operate in serial. More...
 
std::string PortablePath (const boost::filesystem::path &path)
 create portable path on different platforms for boost::filesystem path More...
 
int PrintProgressbar (const int position, const int goal, const std::string message, int lastprogress=-1)
 Prints a progressbar. More...
 
template<class T1 , class T2 , class = typename std::enable_if< std::is_floating_point<typename std::remove_cv< typename std::remove_reference<T1>::type>::type>::value && std::is_same<typename std::remove_cv< typename std::remove_reference<T1>::type>::type, typename std::remove_cv<typename std::remove_reference< T2>::type>::type>::value>::type>
bool IsRealEqual (T1 &&lhs, T2 &&rhs, const unsigned int factor=NekConstants::kNekFloatCompFact)
 compare reals of same type with relative tolerance More...
 
template<class T1 , class T2 , class = typename std::enable_if< std::is_floating_point<typename std::remove_cv< typename std::remove_reference<T1>::type>::type>::value && std::is_same<typename std::remove_cv< typename std::remove_reference<T1>::type>::type, typename std::remove_cv<typename std::remove_reference< T2>::type>::type>::value>::type>
bool IsRealClose (T1 &&lhs, T2 &&rhs, const NekDouble tol=NekConstants::kNekMachineEpsilon)
 compare reals of same type with absolute tolerance More...
 
TiXmlElement * GetChildElementOrThrow (const std::string &filename, std::string elementName, const TiXmlHandle &docHandle)
 
int GetNumberOfCoefficients (ShapeType shape, std::vector< unsigned int > &modes, int offset=0)
 
int GetNumberOfCoefficients (ShapeType shape, int na, int nb=0, int nc=0)
 
CommFactoryGetCommFactory ()
 
int CommDataTypeGetSize (CommDataType dt)
 Return the size in bytes of a data type dt. More...
 
NektarFFTFactoryGetNektarFFTFactory ()
 
bool operator< (const BasisKey &lhs, const BasisKey &rhs)
 
bool operator> (const BasisKey &lhs, const BasisKey &rhs)
 
std::ostream & operator<< (std::ostream &os, const BasisKey &rhs)
 
bool operator== (const BasisKey &x, const BasisKey &y)
 
bool operator== (const BasisKey *x, const BasisKey &y)
 
bool operator== (const BasisKey &x, const BasisKey *y)
 
bool operator!= (const BasisKey &x, const BasisKey &y)
 
bool operator!= (const BasisKey *x, const BasisKey &y)
 
bool operator!= (const BasisKey &x, const BasisKey *y)
 
static const BasisKey NullBasisKey (eNoBasisType, 0, NullPointsKey)
 Defines a null basis with no type or points. More...
 
bool operator== (const GraphVertexObject &x, const GraphVertexObject &y)
 
bool operator!= (const GraphVertexObject &x, const GraphVertexObject &y)
 
void Interp1D (const BasisKey &fbasis0, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, Array< OneD, NekDouble > &to)
 this function interpolates a 1D function \(f\) evaluated at the quadrature points of the basis fbasis0 to the function values at the quadrature points of the basis tbasis0 More...
 
void Interp1D (const PointsKey &fpoints0, const Array< OneD, const NekDouble > &from, const PointsKey &tpoints0, Array< OneD, NekDouble > &to)
 
void Interp1D (const BasisKey &fbasis0, const NekDouble *from, const BasisKey &tbasis0, NekDouble *to)
 
void Interp1D (const PointsKey &fpoints0, const NekDouble *from, const PointsKey &tpoints0, NekDouble *to)
 
void Interp2D (const BasisKey &fbasis0, const BasisKey &fbasis1, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, const BasisKey &tbasis1, Array< OneD, NekDouble > &to)
 this function interpolates a 2D function \(f\) evaluated at the quadrature points of the 2D basis, constructed by fbasis0 and fbasis1, to the function values at the quadrature points of the 2D basis, constructed by tbasis0 and tbasis1 More...
 
void Interp2D (const PointsKey &fpoints0, const PointsKey &fpoints1, const Array< OneD, const NekDouble > &from, const PointsKey &tpoints0, const PointsKey &tpoints1, Array< OneD, NekDouble > &to)
 
void Interp2D (const PointsKey &fpoints0, const PointsKey &fpoints1, const NekDouble *from, const PointsKey &tpoints0, const PointsKey &tpoints1, NekDouble *to)
 
void Interp3D (const BasisKey &fbasis0, const BasisKey &fbasis1, const BasisKey &fbasis2, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, const BasisKey &tbasis1, const BasisKey &tbasis2, Array< OneD, NekDouble > &to)
 this function interpolates a 3D function \(f\) evaluated at the quadrature points of the 3D basis, constructed by fbasis0, fbasis1, and fbasis2 to the function values at the quadrature points of the 3D basis, constructed by tbasis0, tbasis1, and tbasis2. More...
 
void Interp3D (const PointsKey &fpoints0, const PointsKey &fpoints1, const PointsKey &fpoints2, const Array< OneD, const NekDouble > &from, const PointsKey &tpoints0, const PointsKey &tpoints1, const PointsKey &tpoints2, Array< OneD, NekDouble > &to)
 
void Interp3D (const PointsKey &fpoints0, const PointsKey &fpoints1, const PointsKey &fpoints2, const NekDouble *from, const PointsKey &tpoints0, const PointsKey &tpoints1, const PointsKey &tpoints2, NekDouble *to)
 
void InterpCoeff1D (const BasisKey &fbasis0, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, Array< OneD, NekDouble > &to)
 
void InterpCoeff2D (const BasisKey &fbasis0, const BasisKey &fbasis1, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, const BasisKey &tbasis1, Array< OneD, NekDouble > &to)
 
void InterpCoeff2D (const BasisKey &fbasis0, const BasisKey &fbasis1, const NekDouble *from, const BasisKey &tbasis0, const BasisKey &tbasis1, NekDouble *to)
 
void InterpCoeff3D (const BasisKey &fbasis0, const BasisKey &fbasis1, const BasisKey &fbasis2, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, const BasisKey &tbasis1, const BasisKey &tbasis2, Array< OneD, NekDouble > &to)
 
void InterpCoeff3D (const BasisKey &fbasis0, const BasisKey &fbasis1, const BasisKey &fbasis2, const NekDouble *from, const BasisKey &tbasis0, const BasisKey &tbasis1, const BasisKey &tbasis2, NekDouble *to)
 
PointsManagerTPointsManager (void)
 
BasisManagerTBasisManager (void)
 
void PhysGalerkinProject1D (const BasisKey &fbasis0, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, Array< OneD, NekDouble > &to)
 
void PhysGalerkinProject1D (const PointsKey &fpoints0, const Array< OneD, const NekDouble > &from, const PointsKey &tpoints0, Array< OneD, NekDouble > &to)
 
void PhysGalerkinProject1D (const BasisKey &fbasis0, const NekDouble *from, const BasisKey &tbasis0, NekDouble *to)
 
void PhysGalerkinProject1D (const PointsKey &fpoints0, const NekDouble *from, const PointsKey &tpoints0, NekDouble *to)
 
void PhysGalerkinProject2D (const BasisKey &fbasis0, const BasisKey &fbasis1, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, const BasisKey &tbasis1, Array< OneD, NekDouble > &to)
 
void PhysGalerkinProject2D (const PointsKey &fpoints0, const PointsKey &fpoints1, const Array< OneD, const NekDouble > &from, const PointsKey &tpoints0, const PointsKey &tpoints1, Array< OneD, NekDouble > &to)
 
void PhysGalerkinProject2D (const PointsKey &fpoints0, const PointsKey &fpoints1, const NekDouble *from, const PointsKey &tpoints0, const PointsKey &tpoints1, NekDouble *to)
 
void PhysGalerkinProject3D (const BasisKey &fbasis0, const BasisKey &fbasis1, const BasisKey &fbasis2, const Array< OneD, const NekDouble > &from, const BasisKey &tbasis0, const BasisKey &tbasis1, const BasisKey &tbasis2, Array< OneD, NekDouble > &to)
 
void PhysGalerkinProject3D (const PointsKey &fpoints0, const PointsKey &fpoints1, const PointsKey &fpoints2, const Array< OneD, const NekDouble > &from, const PointsKey &tpoints0, const PointsKey &tpoints1, const PointsKey &tpoints2, Array< OneD, NekDouble > &to)
 
void PhysGalerkinProject3D (const PointsKey &fpoints0, const PointsKey &fpoints1, const PointsKey &fpoints2, const NekDouble *from, const PointsKey &tpoints0, const PointsKey &tpoints1, const PointsKey &tpoints2, NekDouble *to)
 
bool operator== (const PointsKey &lhs, const PointsKey &rhs)
 
bool operator< (const PointsKey &lhs, const PointsKey &rhs)
 
std::ostream & operator<< (std::ostream &os, const PointsKey &rhs)
 
static const PointsKey NullPointsKey (0, eNoPointsType)
 
NekDouble sign (NekDouble arg)
 
NekDouble awgn (NekDouble sigma)
 
static NekDouble rad (NekDouble x, NekDouble y)
 
static NekDouble ang (NekDouble x, NekDouble y)
 
NekLinSysIterFactoryGetNekLinSysIterFactory ()
 
NekNonlinSysFactoryGetNekNonlinSysFactory ()
 
 REGISTER (AdamsBashforth)
 
 REGISTER (AdamsBashforthOrder1)
 
 REGISTER (AdamsBashforthOrder2)
 
 REGISTER (AdamsBashforthOrder3)
 
 REGISTER (AdamsBashforthOrder4)
 
 REGISTER (AdamsMoulton)
 
 REGISTER (AdamsMoultonOrder1)
 
 REGISTER (AdamsMoultonOrder2)
 
 REGISTER (AdamsMoultonOrder3)
 
 REGISTER (AdamsMoultonOrder4)
 
 REGISTER (BDFImplicit)
 
 REGISTER (BDFImplicitOrder1)
 
 REGISTER (BDFImplicitOrder2)
 
 REGISTER (BDFImplicitOrder3)
 
 REGISTER (BDFImplicitOrder4)
 
 REGISTER (Euler)
 
 REGISTER (BackwardEuler)
 
 REGISTER (ForwardEuler)
 
 REGISTER (EulerExponential)
 
 REGISTER (CNAB)
 
 REGISTER (DIRK)
 
 REGISTER (DIRKOrder1)
 
 REGISTER (DIRKOrder2)
 
 REGISTER (DIRKOrder3)
 
 REGISTER (DIRKOrder3_ES5)
 
 REGISTER (DIRKOrder4_ES6)
 
 REGISTER (IMEXdirk)
 
 REGISTER (IMEXdirk_1_1_1)
 
 REGISTER (IMEXdirk_1_2_1)
 
 REGISTER (IMEXdirk_1_2_2)
 
 REGISTER (IMEXdirk_2_2_2)
 
 REGISTER (IMEXdirk_2_3_2)
 
 REGISTER (IMEXdirk_2_3_3)
 
 REGISTER (IMEXdirk_3_4_3)
 
 REGISTER (IMEXdirk_4_4_3)
 
 REGISTER (IMEXGear)
 
 REGISTER (IMEX)
 
 REGISTER (IMEXOrder1)
 
 REGISTER (IMEXOrder2)
 
 REGISTER (IMEXOrder3)
 
 REGISTER (IMEXOrder4)
 
 REGISTER (MCNAB)
 
 REGISTER (RungeKutta)
 
 REGISTER (RungeKutta1)
 
 REGISTER (RungeKutta2)
 
 REGISTER (RungeKutta2_ImprovedEuler)
 
 REGISTER (RungeKutta2_SSP)
 
 REGISTER (RungeKutta3)
 
 REGISTER (RungeKutta3_SSP)
 
 REGISTER (ClassicalRungeKutta4)
 
 REGISTER (RungeKutta4)
 
 REGISTER (RungeKutta5)
 
std::ostream & operator<< (std::ostream &os, const TimeIntegrationAlgorithmGLMSharedPtr &rhs)
 
std::ostream & operator<< (std::ostream &os, const TimeIntegrationAlgorithmGLM &rhs)
 
TimeIntegrationSchemeFactoryGetTimeIntegrationSchemeFactory ()
 
std::ostream & operator<< (std::ostream &os, const TimeIntegrationScheme &rhs)
 
std::ostream & operator<< (std::ostream &os, const TimeIntegrationSchemeSharedPtr &rhs)
 
std::ostream & operator<< (std::ostream &os, const FractionalInTimeIntegrationScheme &rhs)
 
std::ostream & operator<< (std::ostream &os, const FractionalInTimeIntegrationSchemeSharedPtr &rhs)
 
std::ostream & operator<< (std::ostream &os, const TimeIntegrationSchemeGEM &rhs)
 
std::ostream & operator<< (std::ostream &os, const TimeIntegrationSchemeGEMSharedPtr &rhs)
 
std::ostream & operator<< (std::ostream &os, const TimeIntegrationSchemeGLM &rhs)
 
std::ostream & operator<< (std::ostream &os, const TimeIntegrationSchemeGLMSharedPtr &rhs)
 
std::ostream & operator<< (std::ostream &os, const TimeIntegrationSchemeSDC &rhs)
 
std::ostream & operator<< (std::ostream &os, const TimeIntegrationSchemeSDCSharedPtr &rhs)
 

Variables

const std::string EndianTypeMap []
 
static DomainRangeShPtr NullDomainRangeShPtr
 
std::string fldCmdFormat
 
static FieldMetaDataMap NullFieldMetaDataMap
 
static std::map< PtsInfo, int > NullPtsInfoMap
 
static PtsFieldSharedPtr NullPtsField
 
static PtsMetaDataMap NullPtsMetaDataMap
 
const char *const FunctionTypeMap []
 
const char *const ShapeTypeMap [SIZE_ShapeType]
 
constexpr unsigned int ShapeTypeDimMap [SIZE_ShapeType]
 
static std::vector< NekDoubleNullNekDoubleVector
 
static std::vector< unsigned int > NullUnsignedIntVector
 
static std::vector< std::vector< NekDouble > > NullVectorNekDoubleVector
 
const char *const ReduceOperatorMap [] = {"ReduceSum", "ReduceMax", "ReduceMin"}
 
static BasisSharedPtr NullBasisSharedPtr
 
static Array< OneD, BasisSharedPtrNullBasisSharedPtr1DArray
 
const char *const BasisTypeMap []
 
const std::string kPointsTypeStr []
 
static const unsigned int perm4_3d [4][4]
 
static const unsigned int perm6_3d [6][4]
 
static const unsigned int perm12A_3d [12][4]
 
static const unsigned int perm12B_3d [12][4]
 
static const unsigned int perm12C_3d [12][4]
 
static const unsigned int perm24_3d [24][4]
 
const unsigned int NodalTetElecAvailable = 10
 
static const unsigned int NodalTetElecNPTS [NodalTetElecAvailable]
 
static const NekDouble NodalTetElecData [][9]
 
const unsigned int NodalTetSPIAvailable = 10
 
static const unsigned int NodalTetSPINPTS [NodalTetSPIAvailable]
 
static const NekDouble NodalTetSPIData [][4]
 
static const unsigned int perm3A_2d [3][3]
 
static const unsigned int perm3B_2d [3][3]
 
static const unsigned int perm6_2d [6][3]
 
const unsigned int NodalTriElecAvailable = 16
 
static const unsigned int NodalTriElecNPTS [NodalTriElecAvailable]
 
static const NekDouble NodalTriElecData [][6]
 
static const unsigned int perm3A_2d [3][3]
 
static const unsigned int perm3B_2d [3][3]
 
static const unsigned int perm3C_2d [3][3]
 
static const unsigned int perm6_2d [6][3]
 
const unsigned int NodalTriFeketeAvailable = 16
 
static const unsigned int NodalTriFeketeNPTS [NodalTriFeketeAvailable]
 
static const NekDouble NodalTriFeketeData [][6]
 
const unsigned int NodalTriSPIAvailable = 10
 
static const unsigned int NodalTriSPINPTS [NodalTriSPIAvailable]
 
static const NekDouble NodalTriSPIData [][3]
 
static std::vector< LibUtilities::PointsTypeNullPointsTypeVector
 
Nektar::LibUtilities::functions functions_p
 

Typedef Documentation

◆ AT

template<class T >
using Nektar::LibUtilities::AT = typedef Array<OneD, T>

Definition at line 47 of file TimeIntegrationTypes.hpp.

◆ BasisKeyVector

Name for a vector of BasisKeys.

Definition at line 70 of file FoundationsFwd.hpp.

◆ BasisManagerT

Definition at line 51 of file ManagerAccess.h.

◆ BasisSharedPtr

typedef std::shared_ptr<Basis> Nektar::LibUtilities::BasisSharedPtr

Definition at line 71 of file FoundationsFwd.hpp.

◆ BasisVector

Definition at line 72 of file FoundationsFwd.hpp.

◆ CmdLineArgMap

typedef std::map<std::string, CmdLineArg> Nektar::LibUtilities::CmdLineArgMap

Definition at line 74 of file SessionReader.h.

◆ CommCwipiSharedPtr

Pointer to a Communicator object.

Definition at line 52 of file CommCwipi.h.

◆ CommDataType

typedef unsigned int Nektar::LibUtilities::CommDataType

Definition at line 70 of file CommDataType.h.

◆ CommFactory

Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class.

Definition at line 61 of file Comm.h.

◆ CommMpiSharedPtr

Pointer to a Communicator object.

Definition at line 58 of file CommMpi.h.

◆ CommRequestMpiSharedPtr

Definition at line 88 of file CommMpi.h.

◆ CommRequestSharedPtr

Definition at line 86 of file Comm.h.

◆ CommSerialSharedPtr

Pointer to a Communicator object.

Definition at line 51 of file CommSerial.h.

◆ CommSharedPtr

typedef std::shared_ptr<Comm> Nektar::LibUtilities::CommSharedPtr

Pointer to a Communicator object.

Definition at line 57 of file Comm.h.

◆ ComplexDoubleArray

Definition at line 59 of file TimeIntegrationTypes.hpp.

◆ ComplexSingleArray

Definition at line 61 of file TimeIntegrationTypes.hpp.

◆ ComplexTripleArray

Definition at line 57 of file TimeIntegrationTypes.hpp.

◆ ConstComplexDoubleArray

typedef const AT<const AT< std::complex<NekDouble> > > Nektar::LibUtilities::ConstComplexDoubleArray

Definition at line 58 of file TimeIntegrationTypes.hpp.

◆ ConstComplexSingleArray

typedef const AT< const std::complex<NekDouble> > Nektar::LibUtilities::ConstComplexSingleArray

Definition at line 60 of file TimeIntegrationTypes.hpp.

◆ ConstDoubleArray

Definition at line 52 of file TimeIntegrationTypes.hpp.

◆ ConstSingleArray

Definition at line 54 of file TimeIntegrationTypes.hpp.

◆ ConstTripleArray

Definition at line 50 of file TimeIntegrationTypes.hpp.

◆ CsvIOSharedPtr

typedef std::shared_ptr<CsvIO> Nektar::LibUtilities::CsvIOSharedPtr

Definition at line 80 of file CsvIO.h.

◆ DataSourceSharedPtr

Definition at line 90 of file FieldIO.h.

◆ DomainRangeShPtr

Definition at line 66 of file DomainRange.h.

◆ DoubleArray

Definition at line 53 of file TimeIntegrationTypes.hpp.

◆ EnumMap

typedef std::map<std::string, int> Nektar::LibUtilities::EnumMap

Definition at line 76 of file SessionReader.h.

◆ EnumMapList

typedef std::map<std::string, EnumMap> Nektar::LibUtilities::EnumMapList

Definition at line 77 of file SessionReader.h.

◆ EquationSharedPtr

Definition at line 129 of file Equation.h.

◆ ExpressionMap

typedef std::map<std::string, std::string> Nektar::LibUtilities::ExpressionMap

Definition at line 61 of file SessionReader.h.

◆ FieldDefinitionsSharedPtr

Definition at line 186 of file FieldIO.h.

◆ FieldIOFactory

Datatype of the NekFactory used to instantiate classes.

Definition at line 207 of file FieldIO.h.

◆ FieldIOSharedPtr

Definition at line 327 of file FieldIO.h.

◆ FieldMetaDataMap

typedef std::map<std::string, std::string> Nektar::LibUtilities::FieldMetaDataMap

Definition at line 52 of file FieldIO.h.

◆ FilterMap

typedef std::vector<std::pair<std::string, FilterParams> > Nektar::LibUtilities::FilterMap

Definition at line 65 of file SessionReader.h.

◆ FilterParams

typedef std::map<std::string, std::string> Nektar::LibUtilities::FilterParams

Definition at line 64 of file SessionReader.h.

◆ FractionalInTimeIntegrationSchemeSharedPtr

Definition at line 75 of file TimeIntegrationTypes.hpp.

◆ FractionalInTimeIntegrationSchemeVector

Definition at line 78 of file TimeIntegrationTypes.hpp.

◆ FunctionMap

Definition at line 113 of file SessionReader.h.

◆ FunctionVariableMap

typedef std::map<std::pair<std::string, int>, FunctionVariableDefinition> Nektar::LibUtilities::FunctionVariableMap

Definition at line 112 of file SessionReader.h.

◆ GeometricInfoMap

typedef std::map<std::string, std::string> Nektar::LibUtilities::GeometricInfoMap

Definition at line 60 of file SessionReader.h.

◆ GloSysInfoMap

typedef std::map< std::string, std::string > Nektar::LibUtilities::GloSysInfoMap

Definition at line 79 of file SessionReader.h.

◆ GloSysSolnInfoList

typedef std::map< std::string, GloSysInfoMap > Nektar::LibUtilities::GloSysSolnInfoList

Definition at line 80 of file SessionReader.h.

◆ GraphVertexID

Definition at line 76 of file FoundationsFwd.hpp.

◆ H5DataSourceSharedPtr

Definition at line 88 of file FieldIOHdf5.h.

◆ H5TagWriterSharedPtr

Definition at line 119 of file FieldIOHdf5.h.

◆ InterpolatorSharedPtr

Definition at line 225 of file LibUtilities/BasicUtils/Interpolator.h.

◆ InterpreterSharedPtr

Definition at line 324 of file Interpreter.h.

◆ KernelSharedPtr

Definition at line 221 of file kernel.h.

◆ NekFFTWSharedPtr

Definition at line 57 of file NekFFTW.h.

◆ NekLinSysIterCGSharedPtr

Definition at line 47 of file NekLinSysIterCG.h.

◆ NekLinSysIterFactory

Definition at line 53 of file NekLinSysIter.h.

◆ NekLinSysIterFixedpointJacobiSharedPtr

Definition at line 48 of file NekLinSysIterFixedpointJacobi.h.

◆ NekLinSysIterSharedPtr

Definition at line 48 of file NekLinSysIter.h.

◆ NekNonlinSysFactory

Definition at line 53 of file NekNonlinSys.h.

◆ NekNonlinSysSharedPtr

Definition at line 48 of file NekNonlinSys.h.

◆ NekSysSharedPtr

Definition at line 217 of file NekSys.h.

◆ NektarFFTFactory

Datatype of the NekFactory used to instantiate classes derived from the NektarFFT class.

Definition at line 62 of file NektarFFT.h.

◆ NektarFFTSharedPtr

Definition at line 58 of file NektarFFT.h.

◆ ParameterMap

typedef std::map<std::string, NekDouble> Nektar::LibUtilities::ParameterMap

Definition at line 59 of file SessionReader.h.

◆ PFD

typedef NekDouble(* Nektar::LibUtilities::PFD) ()

Definition at line 100 of file Interpreter/Interpreter.cpp.

◆ PFD1

typedef NekDouble(* Nektar::LibUtilities::PFD1) (NekDouble)

Definition at line 101 of file Interpreter/Interpreter.cpp.

◆ PFD2

typedef NekDouble(* Nektar::LibUtilities::PFD2) (NekDouble, NekDouble)

Definition at line 102 of file Interpreter/Interpreter.cpp.

◆ PFD3

typedef NekDouble(* Nektar::LibUtilities::PFD3) (NekDouble, NekDouble, NekDouble)

Definition at line 103 of file Interpreter/Interpreter.cpp.

◆ PFD4

typedef NekDouble(* Nektar::LibUtilities::PFD4) (NekDouble, NekDouble, NekDouble, NekDouble)

Definition at line 104 of file Interpreter/Interpreter.cpp.

◆ PointsBaseType

Definition at line 74 of file FoundationsFwd.hpp.

◆ PointsKeyVector

Definition at line 250 of file Points.h.

◆ PointsManagerT

Definition at line 50 of file ManagerAccess.h.

◆ PointsSharedPtr

Definition at line 75 of file FoundationsFwd.hpp.

◆ PtsFieldSharedPtr

Definition at line 190 of file PtsField.h.

◆ PtsIOSharedPtr

typedef std::shared_ptr<PtsIO> Nektar::LibUtilities::PtsIOSharedPtr

Definition at line 96 of file PtsIO.h.

◆ PtsMetaDataMap

typedef std::map<std::string, std::string> Nektar::LibUtilities::PtsMetaDataMap

Definition at line 58 of file PtsIO.h.

◆ SessionReaderSharedPtr

Definition at line 116 of file SessionReader.h.

◆ SharedMatrix

Definition at line 54 of file NodalUtil.h.

◆ SingleArray

Definition at line 55 of file TimeIntegrationTypes.hpp.

◆ SolverInfoMap

typedef std::map<std::string, std::string> Nektar::LibUtilities::SolverInfoMap

Definition at line 58 of file SessionReader.h.

◆ TagMap

typedef std::map<std::string, std::string> Nektar::LibUtilities::TagMap

Definition at line 63 of file SessionReader.h.

◆ TagWriterSharedPtr

Definition at line 80 of file FieldIO.h.

◆ TimeIntegrationAlgorithmGLMSharedPtr

Definition at line 93 of file TimeIntegrationTypes.hpp.

◆ TimeIntegrationAlgorithmGLMVector

Definition at line 96 of file TimeIntegrationTypes.hpp.

◆ TimeIntegrationSchemeFactory

typedef NekFactory<std::string, TimeIntegrationScheme, std::string, unsigned int, std::vector<NekDouble> > Nektar::LibUtilities::TimeIntegrationSchemeFactory

Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class.

Definition at line 65 of file TimeIntegrationScheme.h.

◆ TimeIntegrationSchemeGEMSharedPtr

Definition at line 110 of file TimeIntegrationTypes.hpp.

◆ TimeIntegrationSchemeGEMVector

Definition at line 113 of file TimeIntegrationTypes.hpp.

◆ TimeIntegrationSchemeGLMSharedPtr

Definition at line 84 of file TimeIntegrationTypes.hpp.

◆ TimeIntegrationSchemeGLMVector

Definition at line 87 of file TimeIntegrationTypes.hpp.

◆ TimeIntegrationSchemeOperatorsSharedPtr

Definition at line 60 of file TimeIntegrationSchemeOperators.h.

◆ TimeIntegrationSchemeSDCSharedPtr

Definition at line 118 of file TimeIntegrationTypes.hpp.

◆ TimeIntegrationSchemeSDCVector

Definition at line 121 of file TimeIntegrationTypes.hpp.

◆ TimeIntegrationSchemeSharedPtr

Definition at line 67 of file TimeIntegrationTypes.hpp.

◆ TimeIntegrationSchemeVector

Definition at line 69 of file TimeIntegrationTypes.hpp.

◆ TimeIntegrationSolutionGLMSharedPtr

Definition at line 102 of file TimeIntegrationTypes.hpp.

◆ TimeIntegrationSolutionGLMVector

Definition at line 105 of file TimeIntegrationTypes.hpp.

◆ TranspositionSharedPtr

Definition at line 165 of file Transposition.h.

◆ TripleArray

Definition at line 51 of file TimeIntegrationTypes.hpp.

◆ VariableList

typedef std::vector<std::string> Nektar::LibUtilities::VariableList

Definition at line 62 of file SessionReader.h.

◆ XmlDataSourceSharedPtr

Definition at line 111 of file FieldIOXml.h.

◆ XmlTagWriterSharedPtr

Definition at line 169 of file FieldIOXml.h.

Enumeration Type Documentation

◆ BasisType

Enumerator
eNoBasisType 
eOrtho_A 

Principle Orthogonal Functions \(\widetilde{\psi}^a_p(z_i)\).

eOrtho_B 

Principle Orthogonal Functions \(\widetilde{\psi}^b_{pq}(z_i)\).

eOrtho_C 

Principle Orthogonal Functions \(\widetilde{\psi}^c_{pqr}(z_i)\).

eModified_A 

Principle Modified Functions \( \phi^a_p(z_i) \).

eModified_B 

Principle Modified Functions \( \phi^b_{pq}(z_i) \).

eModified_C 

Principle Modified Functions \( \phi^c_{pqr}(z_i) \).

eOrthoPyr_C 

Principle Orthogonal Functions \(\widetilde{\psi}^c_{pqr}(z_i) for Pyramids\).

eModifiedPyr_C 

Principle Modified Functions.

eFourier 

Fourier Expansion \( \exp(i p\pi z_i)\).

eGLL_Lagrange 

Lagrange for SEM basis \( h_p(z_i) \).

eGauss_Lagrange 

Lagrange Polynomials using the Gauss points.

h_p 

Legendre Polynomials \( L_p(z_i) = P^{0,0}_p(z_i)\). Same as Ortho_A.

eChebyshev 

Chebyshev Polynomials.

_p 

Monomial polynomials \( L_p(z_i) = z_i^{p}\).

eFourierSingleMode 

Fourier ModifiedExpansion with just the first mode \( \exp(i \pi z_i)\).

eFourierHalfModeRe 

Fourier Modified expansions with just the real part of the first mode \( Re[\exp(i \pi z_i)]\).

eFourierHalfModeIm 

Fourier Modified expansions with just the imaginary part of the first mode \( Im[\exp(i \pi z_i)]\).

SIZE_BasisType 

Length of enum list.

Definition at line 41 of file BasisType.h.

42 {
44  eOrtho_A, //!< Principle Orthogonal Functions
45  //!< \f$\widetilde{\psi}^a_p(z_i)\f$
46  eOrtho_B, //!< Principle Orthogonal Functions
47  //!< \f$\widetilde{\psi}^b_{pq}(z_i)\f$
48  eOrtho_C, //!< Principle Orthogonal Functions
49  //!< \f$\widetilde{\psi}^c_{pqr}(z_i)\f$
50  eModified_A, //!< Principle Modified Functions \f$ \phi^a_p(z_i) \f$
51  eModified_B, //!< Principle Modified Functions \f$ \phi^b_{pq}(z_i) \f$
52  eModified_C, //!< Principle Modified Functions \f$ \phi^c_{pqr}(z_i) \f$
53  eOrthoPyr_C, //!< Principle Orthogonal Functions
54  //!< \f$\widetilde{\psi}^c_{pqr}(z_i) for Pyramids\f$
55  eModifiedPyr_C, //!< Principle Modified Functions \f$ \phi^c_{pqr}(z_i) for
56  //!< Pyramids\f$
57  eFourier, //!< Fourier Expansion \f$ \exp(i p\pi z_i)\f$
58  eGLL_Lagrange, //!< Lagrange for SEM basis \f$ h_p(z_i) \f$
59  eGauss_Lagrange, //!< Lagrange Polynomials using the Gauss points \f$
60  //!< h_p(z_i) \f$
61  eLegendre, //!< Legendre Polynomials \f$ L_p(z_i) = P^{0,0}_p(z_i)\f$. Same
62  //!< as Ortho_A
63  eChebyshev, //!< Chebyshev Polynomials \f$ T_p(z_i) =
64  //!< P^{-1/2,-1/2}_p(z_i)\f$
65  eMonomial, //!< Monomial polynomials \f$ L_p(z_i) = z_i^{p}\f$
66  eFourierSingleMode, //!< Fourier ModifiedExpansion with just the first mode
67  //!< \f$ \exp(i \pi z_i)\f$
68  eFourierHalfModeRe, //!< Fourier Modified expansions with just the real part
69  //!< of the first mode \f$ Re[\exp(i \pi z_i)]\f$
70  eFourierHalfModeIm, //!< Fourier Modified expansions with just the imaginary
71  //!< part of the first mode \f$ Im[\exp(i \pi z_i)]\f$
72  SIZE_BasisType //!< Length of enum list
73 };
@ eModified_B
Principle Modified Functions .
Definition: BasisType.h:51
@ eGauss_Lagrange
Lagrange Polynomials using the Gauss points.
Definition: BasisType.h:59
@ eOrtho_A
Principle Orthogonal Functions .
Definition: BasisType.h:44
@ eModified_C
Principle Modified Functions .
Definition: BasisType.h:52
@ eGLL_Lagrange
Lagrange for SEM basis .
Definition: BasisType.h:58
@ SIZE_BasisType
Length of enum list.
Definition: BasisType.h:72
@ eFourierSingleMode
Fourier ModifiedExpansion with just the first mode .
Definition: BasisType.h:66
@ eChebyshev
Chebyshev Polynomials.
Definition: BasisType.h:63
@ eOrtho_C
Principle Orthogonal Functions .
Definition: BasisType.h:48
@ eModifiedPyr_C
Principle Modified Functions.
Definition: BasisType.h:55
@ eOrtho_B
Principle Orthogonal Functions .
Definition: BasisType.h:46
@ eModified_A
Principle Modified Functions .
Definition: BasisType.h:50
@ eFourierHalfModeIm
Fourier Modified expansions with just the imaginary part of the first mode .
Definition: BasisType.h:70
@ eFourierHalfModeRe
Fourier Modified expansions with just the real part of the first mode .
Definition: BasisType.h:68
@ eOrthoPyr_C
Principle Orthogonal Functions .
Definition: BasisType.h:53
@ eFourier
Fourier Expansion .
Definition: BasisType.h:57

◆ EndianType

Enumerator
eEndianUnknown 
eEndianBig 
eEndianLittle 
eEndianBigWord 
eEndianLittleWord 

Definition at line 50 of file CompressData.h.

51 {
53  eEndianBig,
55  eEndianBigWord, /* Middle-endian, Honeywell 316 style */
56  eEndianLittleWord /* Middle-endian, PDP-11 style */
57 };

◆ FieldIOType

Enumerator for auto-detection of FieldIO types.

Enumerator
eXML 
eHDF5 

Definition at line 79 of file FieldIO.cpp.

80 {
81  eXML,
82  eHDF5
83 };

◆ FunctionType

Enumerator
eFunctionTypeExpression 
eFunctionTypeFile 
eFunctionTypeTransientFile 
eSIZE_FunctionType 

Definition at line 93 of file SessionReader.h.

◆ InterpMethod

◆ PointsType

Enumerator
eNoPointsType 
eGaussGaussLegendre 

1D Gauss-Gauss-Legendre quadrature points

eGaussRadauMLegendre 

1D Gauss-Radau-Legendre quadrature points, pinned at x=-1

eGaussRadauPLegendre 

1D Gauss-Radau-Legendre quadrature points, pinned at x=1

eGaussLobattoLegendre 

1D Gauss-Lobatto-Legendre quadrature points

eGaussGaussChebyshev 

1D Gauss-Gauss-Chebyshev quadrature points

eGaussRadauMChebyshev 

1D Gauss-Radau-Chebyshev quadrature points, pinned at x=-1

eGaussRadauPChebyshev 

1D Gauss-Radau-Chebyshev quadrature points, pinned at x=1

eGaussLobattoChebyshev 

1D Gauss-Lobatto-Legendre quadrature points

eGaussRadauMAlpha0Beta1 

Gauss Radau pinned at x=-1,.

beta 

Gauss Radau pinned at x=-1,.

1D Gauss-Kronrod-Legendre quadrature points

beta 

Gauss Radau pinned at x=-1,.

1D Gauss-Kronrod-Legendre quadrature points

beta 

Gauss Radau pinned at x=-1,.

1D Gauss-Kronrod-Legendre quadrature points

beta 

Gauss Radau pinned at x=-1,.

1D Gauss-Kronrod-Legendre quadrature points

eGaussRadauKronrodMLegendre 

1D Gauss-Radau-Kronrod-Legendre quadrature points, pinned at x=-1

eGaussRadauKronrodMAlpha1Beta0 

1D Gauss-Radau-Kronrod-Legendre pinned at x=-1,

eGaussLobattoKronrodLegendre 

1D Lobatto Kronrod quadrature points

ePolyEvenlySpaced 

1D Evenly-spaced points using Lagrange polynomial

eFourierEvenlySpaced 

1D Evenly-spaced points using Fourier Fit

eFourierSingleModeSpaced 

1D Non Evenly-spaced points for Single Mode analysis

eBoundaryLayerPoints 

1D power law distribution for boundary layer points

eBoundaryLayerPointsRev 

1D power law distribution for boundary layer points

eNodalTriElec 

2D Nodal Electrostatic Points on a Triangle

eNodalTriFekete 

2D Nodal Fekete Points on a Triangle

eNodalTriEvenlySpaced 

2D Evenly-spaced points on a Triangle

eNodalTetEvenlySpaced 

3D Evenly-spaced points on a Tetrahedron

eNodalTetElec 

3D Nodal Electrostatic Points on a Tetrahedron

eNodalPrismEvenlySpaced 

3D Evenly-spaced points on a Prism

eNodalPrismElec 

3D electrostatically spaced points on a Prism

eNodalTriSPI 

2D Nodal Symmetric positive internal triangle (Whitherden, Vincent)

eNodalTetSPI 

3D Nodal Symmetric positive internal tet (Whitherden, Vincent)

eNodalPrismSPI 

3D prism SPI

eNodalQuadElec 

2D GLL for quad

eNodalHexElec 

3D GLL for hex

SIZE_PointsType 

Length of enum list.

Definition at line 45 of file PointsType.h.

46 {
48  eGaussGaussLegendre, //!< 1D Gauss-Gauss-Legendre quadrature points
49  eGaussRadauMLegendre, //!< 1D Gauss-Radau-Legendre quadrature points,
50  //!< pinned at x=-1
51  eGaussRadauPLegendre, //!< 1D Gauss-Radau-Legendre quadrature points,
52  //!< pinned at x=1
53  eGaussLobattoLegendre, //!< 1D Gauss-Lobatto-Legendre quadrature points
54  eGaussGaussChebyshev, //!< 1D Gauss-Gauss-Chebyshev quadrature points
55  eGaussRadauMChebyshev, //!< 1D Gauss-Radau-Chebyshev quadrature points,
56  //!< pinned at x=-1
57  eGaussRadauPChebyshev, //!< 1D Gauss-Radau-Chebyshev quadrature points,
58  //!< pinned at x=1
59  eGaussLobattoChebyshev, //!< 1D Gauss-Lobatto-Legendre quadrature points
60  eGaussRadauMAlpha0Beta1, //!< Gauss Radau pinned at x=-1, \f$ \alpha = 0,
61  //!< \beta = 1 \f$
62  eGaussRadauMAlpha0Beta2, //!< Gauss Radau pinned at x=-1, \f$ \alpha = 0,
63  //!< \beta = 2 \f$
64  eGaussRadauMAlpha1Beta0, //!< Gauss Radau pinned at x=-1, \f$ \alpha = 1,
65  //!< \beta = 0 \f$
66  eGaussRadauMAlpha2Beta0, //!< Gauss Radau pinned at x=-1, \f$ \alpha = 2,
67  //!< \beta = 0 \f$
68  eGaussKronrodLegendre, //!< 1D Gauss-Kronrod-Legendre quadrature points
69  eGaussRadauKronrodMLegendre, //!< 1D Gauss-Radau-Kronrod-Legendre
70  //!< quadrature points, pinned at x=-1
71  eGaussRadauKronrodMAlpha1Beta0, //!< 1D Gauss-Radau-Kronrod-Legendre pinned
72  //!< at x=-1, \f$ \alpha = 1, \beta = 0
73  //!< \f$
74  eGaussLobattoKronrodLegendre, //!< 1D Lobatto Kronrod quadrature points
75  ePolyEvenlySpaced, //!< 1D Evenly-spaced points using Lagrange polynomial
76  eFourierEvenlySpaced, //!< 1D Evenly-spaced points using Fourier Fit
77  eFourierSingleModeSpaced, //!< 1D Non Evenly-spaced points for Single Mode
78  //!< analysis
79  eBoundaryLayerPoints, //!< 1D power law distribution for boundary layer
80  //!< points
81  eBoundaryLayerPointsRev, //!< 1D power law distribution for boundary layer
82  //!< points
83  eNodalTriElec, //!< 2D Nodal Electrostatic Points on a Triangle
84  eNodalTriFekete, //!< 2D Nodal Fekete Points on a Triangle
85  eNodalTriEvenlySpaced, //!< 2D Evenly-spaced points on a Triangle
86  eNodalTetEvenlySpaced, //!< 3D Evenly-spaced points on a Tetrahedron
87  eNodalTetElec, //!< 3D Nodal Electrostatic Points on a Tetrahedron
88  eNodalPrismEvenlySpaced, //!< 3D Evenly-spaced points on a Prism
89  eNodalPrismElec, //!< 3D electrostatically spaced points on a Prism
90  eNodalTriSPI, //!< 2D Nodal Symmetric positive internal triangle
91  //!< (Whitherden, Vincent)
92  eNodalTetSPI, //!< 3D Nodal Symmetric positive internal tet (Whitherden,
93  //!< Vincent)
94  eNodalPrismSPI, //!< 3D prism SPI
95  eNodalQuadElec, //!< 2D GLL for quad
96  eNodalHexElec, //!< 3D GLL for hex
97  SIZE_PointsType //!< Length of enum list
98 };
@ eNodalPrismEvenlySpaced
3D Evenly-spaced points on a Prism
Definition: PointsType.h:88
@ SIZE_PointsType
Length of enum list.
Definition: PointsType.h:97
@ eNodalTriFekete
2D Nodal Fekete Points on a Triangle
Definition: PointsType.h:84
@ eGaussRadauMLegendre
1D Gauss-Radau-Legendre quadrature points, pinned at x=-1
Definition: PointsType.h:49
@ eNodalPrismSPI
3D prism SPI
Definition: PointsType.h:94
@ eBoundaryLayerPoints
1D power law distribution for boundary layer points
Definition: PointsType.h:79
@ eGaussRadauMAlpha0Beta1
Gauss Radau pinned at x=-1,.
Definition: PointsType.h:60
@ eGaussRadauKronrodMLegendre
1D Gauss-Radau-Kronrod-Legendre quadrature points, pinned at x=-1
Definition: PointsType.h:69
@ eGaussLobattoChebyshev
1D Gauss-Lobatto-Legendre quadrature points
Definition: PointsType.h:59
@ eFourierEvenlySpaced
1D Evenly-spaced points using Fourier Fit
Definition: PointsType.h:76
@ eNodalTriElec
2D Nodal Electrostatic Points on a Triangle
Definition: PointsType.h:83
@ eGaussRadauPChebyshev
1D Gauss-Radau-Chebyshev quadrature points, pinned at x=1
Definition: PointsType.h:57
@ eNodalTriEvenlySpaced
2D Evenly-spaced points on a Triangle
Definition: PointsType.h:85
@ eNodalHexElec
3D GLL for hex
Definition: PointsType.h:96
@ eGaussRadauMChebyshev
1D Gauss-Radau-Chebyshev quadrature points, pinned at x=-1
Definition: PointsType.h:55
@ eGaussRadauKronrodMAlpha1Beta0
1D Gauss-Radau-Kronrod-Legendre pinned at x=-1,
Definition: PointsType.h:71
@ eGaussLobattoLegendre
1D Gauss-Lobatto-Legendre quadrature points
Definition: PointsType.h:53
@ eNodalQuadElec
2D GLL for quad
Definition: PointsType.h:95
@ eNodalTetEvenlySpaced
3D Evenly-spaced points on a Tetrahedron
Definition: PointsType.h:86
@ eGaussGaussChebyshev
1D Gauss-Gauss-Chebyshev quadrature points
Definition: PointsType.h:54
@ eNodalTetSPI
3D Nodal Symmetric positive internal tet (Whitherden, Vincent)
Definition: PointsType.h:92
@ eBoundaryLayerPointsRev
1D power law distribution for boundary layer points
Definition: PointsType.h:81
@ ePolyEvenlySpaced
1D Evenly-spaced points using Lagrange polynomial
Definition: PointsType.h:75
@ eGaussLobattoKronrodLegendre
1D Lobatto Kronrod quadrature points
Definition: PointsType.h:74
@ eGaussGaussLegendre
1D Gauss-Gauss-Legendre quadrature points
Definition: PointsType.h:48
@ eFourierSingleModeSpaced
1D Non Evenly-spaced points for Single Mode analysis
Definition: PointsType.h:77
@ eNodalPrismElec
3D electrostatically spaced points on a Prism
Definition: PointsType.h:89
@ eNodalTetElec
3D Nodal Electrostatic Points on a Tetrahedron
Definition: PointsType.h:87
@ eGaussRadauPLegendre
1D Gauss-Radau-Legendre quadrature points, pinned at x=1
Definition: PointsType.h:51
@ eNodalTriSPI
2D Nodal Symmetric positive internal triangle (Whitherden, Vincent)
Definition: PointsType.h:90

◆ PtsInfo

Enumerator
eIsEquiSpacedData 
ePtsPerElmtEdge 

Definition at line 64 of file PtsField.h.

◆ PtsType

Enumerator
ePtsFile 
ePtsLine 
ePtsPlane 
ePtsBox 
ePtsSegBlock 
ePtsTriBlock 
ePtsTetBlock 

Definition at line 53 of file PtsField.h.

◆ ReduceOperator

Type of operation to perform in AllReduce.

Enumerator
ReduceSum 
ReduceMax 
ReduceMin 
SIZE_ReduceOperator 

Definition at line 66 of file Comm.h.

67 {
68  ReduceSum,
69  ReduceMax,
70  ReduceMin,
72 };

◆ ShapeType

Enumerator
eNoShapeType 
ePoint 
eSegment 
eTriangle 
eQuadrilateral 
eTetrahedron 
ePyramid 
ePrism 
eHexahedron 
SIZE_ShapeType 
Point 
Seg 
Tri 
Quad 
Tet 
Pyr 
Prism 
Hex 

Definition at line 55 of file ShapeType.hpp.

56 {
58  ePoint,
59  eSegment,
60  eTriangle,
63  ePyramid,
64  ePrism,
67 
68  // These are the short names used for MatrixFree operators
69  Point = ePoint,
70  Seg = eSegment,
71  Tri = eTriangle,
73  Tet = eTetrahedron,
74  Pyr = ePyramid,
75  Prism = ePrism,
76  Hex = eHexahedron,
77 };

◆ TimeIntegrationSchemeType

Enumerator
eNoTimeIntegrationSchemeType 
eExplicit 

Formally explicit scheme.

eDiagonallyImplicit 

Diagonally implicit scheme (e.g. the DIRK schemes)

eIMEX 

Implicit Explicit General Linear Method.

eImplicit 

Fully implicit scheme.

eExponential 

Exponential scheme.

eFractionalInTime 

Fractional in Time scheme.

eSpectralDeferredCorrection 

Spectral deferred correction scheme.

eExtrapolationMethod 

Extrapolation scheme.

Definition at line 124 of file TimeIntegrationTypes.hpp.

125 {
127  eExplicit, //!< Formally explicit scheme
128  eDiagonallyImplicit, //!< Diagonally implicit scheme (e.g. the DIRK schemes)
129  eIMEX, //!< Implicit Explicit General Linear Method
130  eImplicit, //!< Fully implicit scheme
131  eExponential, //!< Exponential scheme
132  eFractionalInTime, //!< Fractional in Time scheme
133  eSpectralDeferredCorrection, //!< Spectral deferred correction scheme
134  eExtrapolationMethod, //!< Extrapolation scheme
135 };
@ eFractionalInTime
Fractional in Time scheme.
@ eImplicit
Fully implicit scheme.
@ eExplicit
Formally explicit scheme.
@ eExponential
Exponential scheme.
@ eDiagonallyImplicit
Diagonally implicit scheme (e.g. the DIRK schemes)
@ eExtrapolationMethod
Extrapolation scheme.
@ eIMEX
Implicit Explicit General Linear Method.
@ eSpectralDeferredCorrection
Spectral deferred correction scheme.

◆ TranspositionDir

Enumerator
eXYtoZ 
eZtoXY 
eXtoYZ 
eYZtoX 
eYZtoZY 
eZYtoYZ 
eXtoY 
eYtoZ 
eZtoX 
eNoTrans 

Definition at line 54 of file Transposition.h.

Function Documentation

◆ ang()

static NekDouble Nektar::LibUtilities::ang ( NekDouble  x,
NekDouble  y 
)
static

◆ awgn()

NekDouble Nektar::LibUtilities::awgn ( NekDouble  sigma)

Definition at line 78 of file Interpreter/Interpreter.cpp.

79 {
80  boost::mt19937 rng;
81  boost::variate_generator<boost::mt19937 &, boost::normal_distribution<>>
82  _normal(rng, boost::normal_distribution<>(0, sigma));
83  return _normal();
84 }

Referenced by Nektar::LibUtilities::functions::functions().

◆ BasisManager()

BasisManagerT & Nektar::LibUtilities::BasisManager ( void  )

◆ checked_cast()

template<class To , class Ti , class = typename std::enable_if< std::is_floating_point< typename std::remove_reference<Ti>::type>::value && std::is_integral< typename std::remove_reference<To>::type>::value>::type>
To Nektar::LibUtilities::checked_cast ( const Ti  param)
inline

checked cast from float types only to int types

Definition at line 53 of file CheckedCast.hpp.

54 {
55  Ti min = std::numeric_limits<To>::min();
56  Ti max = std::numeric_limits<To>::max();
57  ASSERTL0(param >= min, "Casting would narrow (underflow).");
58  ASSERTL0(param <= max, "Casting would narrow (overflow).");
59  return static_cast<To>(param);
60 }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:215

References ASSERTL0.

◆ CommDataTypeGetSize()

int Nektar::LibUtilities::CommDataTypeGetSize ( CommDataType  dt)

Return the size in bytes of a data type dt.

Parameters
dtData type
Returns
Size of dt in bytes.

Definition at line 54 of file CommDataType.cpp.

55 {
56 #ifdef NEKTAR_USE_MPI
57  int size;
58  MPI_Type_size(dt, &size);
59  return size;
60 #elif NEKTAR_USING_PETSC
61  if (dt == MPI_CHAR)
62  return sizeof(char);
63  else if (dt == MPI_INT)
64  return sizeof(int);
65  else if (dt == MPI_UNSIGNED)
66  return sizeof(unsigned);
67  else if (dt == MPI_LONG)
68  return sizeof(long);
69  else if (dt == MPI_UNSIGNED_LONG)
70  return sizeof(unsigned long);
71  else if (dt == MPI_LONG_LONG)
72  return sizeof(long long);
73  else if (dt == MPI_UNSIGNED_LONG_LONG)
74  return sizeof(unsigned long long);
75  else if (dt == MPI_FLOAT)
76  return sizeof(float);
77  else if (dt == MPI_DOUBLE)
78  return sizeof(double);
79  else if (dt == MPI_LONG_DOUBLE)
80  return sizeof(long double);
81  return sizeof(int);
82 #else
83  switch (dt)
84  {
85  case MPI_CHAR:
86  return sizeof(char);
87  case MPI_INT:
88  return sizeof(int);
89  case MPI_UNSIGNED:
90  return sizeof(unsigned);
91  case MPI_LONG:
92  return sizeof(long);
93  case MPI_UNSIGNED_LONG:
94  return sizeof(unsigned long);
95  case MPI_LONG_LONG:
96  return sizeof(long long);
98  return sizeof(unsigned long long);
99  case MPI_FLOAT:
100  return sizeof(float);
101  case MPI_DOUBLE:
102  return sizeof(double);
103  case MPI_LONG_DOUBLE:
104  return sizeof(long double);
105  default:
106  ASSERTL0(false, "Unrecognised datatype!");
107  }
108  return sizeof(int);
109 #endif
110 }
#define MPI_UNSIGNED_LONG_LONG
Definition: CommDataType.h:97
#define MPI_INT
Definition: CommDataType.h:77
#define MPI_FLOAT
Definition: CommDataType.h:101
#define MPI_UNSIGNED_LONG
Definition: CommDataType.h:89
#define MPI_DOUBLE
Definition: CommDataType.h:105
#define MPI_LONG
Definition: CommDataType.h:85
#define MPI_CHAR
Definition: CommDataType.h:73
#define MPI_UNSIGNED
Definition: CommDataType.h:81
#define MPI_LONG_LONG
Definition: CommDataType.h:93
#define MPI_LONG_DOUBLE
Definition: CommDataType.h:109

References ASSERTL0, MPI_CHAR, MPI_DOUBLE, MPI_FLOAT, MPI_INT, MPI_LONG, MPI_LONG_DOUBLE, MPI_LONG_LONG, MPI_UNSIGNED, MPI_UNSIGNED_LONG, and MPI_UNSIGNED_LONG_LONG.

Referenced by Nektar::LibUtilities::CommSerial::v_Gather(), and Nektar::LibUtilities::CommSerial::v_Scatter().

◆ Endianness()

EndianType Nektar::LibUtilities::Endianness ( void  )

run time determination of endianness, returning an EndianType

Definition at line 67 of file CompressData.cpp.

68 {
69  union
70  {
71  std::uint32_t value;
72  std::uint8_t data[sizeof(std::uint32_t)];
73  } number;
74 
75  number.data[0] = 0x00;
76  number.data[1] = 0x01;
77  number.data[2] = 0x02;
78  number.data[3] = 0x03;
79 
80  switch (number.value)
81  {
82  case UINT32_C(0x00010203):
83  return eEndianBig;
84  case UINT32_C(0x03020100):
85  return eEndianLittle;
86  case UINT32_C(0x02030001):
87  return eEndianBigWord;
88  case UINT32_C(0x01000302):
89  return eEndianLittleWord;
90  default:
91  return eEndianUnknown;
92  }
93 }

References eEndianBig, eEndianBigWord, eEndianLittle, eEndianLittleWord, and eEndianUnknown.

Referenced by Nektar::LibUtilities::CompressData::GetCompressString(), and Nektar::FieldUtils::InputSemtex::v_Process().

◆ GetChildElementOrThrow()

TiXmlElement * Nektar::LibUtilities::GetChildElementOrThrow ( const std::string &  filename,
std::string  elementName,
const TiXmlHandle &  docHandle 
)

Helper function that gets a pointer to a child element, or throws an exception if no such element exists

Definition at line 2617 of file BasicUtils/SessionReader.cpp.

2620 {
2621  TiXmlElement *element = docHandle.FirstChildElement(elementName).Element();
2622  if (element)
2623  {
2624  return element;
2625  }
2626  else
2627  {
2628  NEKERROR(ErrorUtil::efatal, "Unable to find '" + elementName +
2629  "' XML node in " + filename);
2630  return nullptr; // Never reached; purely to keep gcc happy...
2631  }
2632 }
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
Definition: ErrorUtil.hpp:209

References NEKERROR.

Referenced by Nektar::LibUtilities::SessionReader::MergeDoc().

◆ GetCommFactory()

CommFactory & Nektar::LibUtilities::GetCommFactory ( )

◆ GetFieldIOFactory()

FieldIOFactory & Nektar::LibUtilities::GetFieldIOFactory ( )

◆ GetNekLinSysIterFactory()

NekLinSysIterFactory & Nektar::LibUtilities::GetNekLinSysIterFactory ( )

Definition at line 50 of file NekLinSysIter.cpp.

51 {
52  static NekLinSysIterFactory instance;
53  return instance;
54 }
LibUtilities::NekFactory< std::string, NekLinSysIter, const LibUtilities::SessionReaderSharedPtr &, const LibUtilities::CommSharedPtr &, const int, const NekSysKey & > NekLinSysIterFactory
Definition: NekLinSysIter.h:53

Referenced by Nektar::LibUtilities::NekNonlinSys::NekNonlinSys(), and Nektar::MultiRegions::GlobalLinSysIterative::v_SolveLinearSystem().

◆ GetNekNonlinSysFactory()

NekNonlinSysFactory & Nektar::LibUtilities::GetNekNonlinSysFactory ( )

Definition at line 49 of file NekNonlinSys.cpp.

50 {
51  static NekNonlinSysFactory instance;
52  return instance;
53 }
LibUtilities::NekFactory< std::string, NekNonlinSys, const LibUtilities::SessionReaderSharedPtr &, const LibUtilities::CommSharedPtr &, const int, const NekSysKey & > NekNonlinSysFactory
Definition: NekNonlinSys.h:53

Referenced by Nektar::CFSImplicit::InitialiseNonlinSysSolver().

◆ GetNektarFFTFactory()

NektarFFTFactory & Nektar::LibUtilities::GetNektarFFTFactory ( )

Definition at line 69 of file NektarFFT.cpp.

70 {
71  static NektarFFTFactory instance;
72  return instance;
73 }
LibUtilities::NekFactory< std::string, NektarFFT, int > NektarFFTFactory
Datatype of the NekFactory used to instantiate classes derived from the NektarFFT class.
Definition: NektarFFT.h:62

Referenced by Nektar::LinearisedAdvection::DFT(), Nektar::MultiRegions::ExpListHomogeneous1D::ExpListHomogeneous1D(), Nektar::MultiRegions::ExpListHomogeneous2D::ExpListHomogeneous2D(), and Nektar::ForcingMovingBody::InitialiseCableModel().

◆ GetNumberOfCoefficients() [1/2]

int Nektar::LibUtilities::GetNumberOfCoefficients ( ShapeType  shape,
int  na,
int  nb = 0,
int  nc = 0 
)
inline

Definition at line 350 of file ShapeType.hpp.

352 {
353  int returnval = 0;
354  switch (shape)
355  {
356  case eSegment:
357  returnval = na;
358  break;
359  case eTriangle:
360  returnval = StdTriData::getNumberOfCoefficients(na, nb);
361  break;
362  case eQuadrilateral:
363  returnval = na * nb;
364  break;
365  case eTetrahedron:
366  returnval = StdTetData::getNumberOfCoefficients(na, nb, nc);
367  break;
368  case ePyramid:
369  returnval = StdPyrData::getNumberOfCoefficients(na, nb, nc);
370  break;
371  case ePrism:
372  returnval = StdPrismData::getNumberOfCoefficients(na, nb, nc);
373  break;
374  case eHexahedron:
375  returnval = na * nb * nc;
376  break;
377  default:
378  NEKERROR(ErrorUtil::efatal, "Unknown Shape Type");
379  break;
380  }
381 
382  return returnval;
383 }
int getNumberOfCoefficients(int Na, int Nb, int Nc)
Definition: ShapeType.hpp:284

References Nektar::ErrorUtil::efatal, eHexahedron, ePrism, ePyramid, eQuadrilateral, eSegment, eTetrahedron, eTriangle, Nektar::LibUtilities::StdTriData::getNumberOfCoefficients(), Nektar::LibUtilities::StdTetData::getNumberOfCoefficients(), Nektar::LibUtilities::StdPyrData::getNumberOfCoefficients(), Nektar::LibUtilities::StdPrismData::getNumberOfCoefficients(), and NEKERROR.

◆ GetNumberOfCoefficients() [2/2]

int Nektar::LibUtilities::GetNumberOfCoefficients ( ShapeType  shape,
std::vector< unsigned int > &  modes,
int  offset = 0 
)
inline

Definition at line 310 of file ShapeType.hpp.

313 {
314  int returnval = 0;
315  switch (shape)
316  {
317  case eSegment:
318  returnval = modes[offset];
319  break;
320  case eTriangle:
321  returnval = StdTriData::getNumberOfCoefficients(modes[offset],
322  modes[offset + 1]);
323  break;
324  case eQuadrilateral:
325  returnval = modes[offset] * modes[offset + 1];
326  break;
327  case eTetrahedron:
329  modes[offset], modes[offset + 1], modes[offset + 2]);
330  break;
331  case ePyramid:
333  modes[offset], modes[offset + 1], modes[offset + 2]);
334  break;
335  case ePrism:
337  modes[offset], modes[offset + 1], modes[offset + 2]);
338  break;
339  case eHexahedron:
340  returnval = modes[offset] * modes[offset + 1] * modes[offset + 2];
341  break;
342  default:
343  NEKERROR(ErrorUtil::efatal, "Unknown Shape Type");
344  break;
345  }
346 
347  return returnval;
348 }

References Nektar::ErrorUtil::efatal, eHexahedron, ePrism, ePyramid, eQuadrilateral, eSegment, eTetrahedron, eTriangle, Nektar::LibUtilities::StdTriData::getNumberOfCoefficients(), Nektar::LibUtilities::StdTetData::getNumberOfCoefficients(), Nektar::LibUtilities::StdPyrData::getNumberOfCoefficients(), Nektar::LibUtilities::StdPrismData::getNumberOfCoefficients(), CG_Iterations::modes, and NEKERROR.

Referenced by Nektar::StdRegions::StdExpansion::PhysInterpToSimplexEquiSpaced(), Nektar::MultiRegions::ExpList::v_ExtractDataToCoeffs(), Nektar::MultiRegions::ExpListHomogeneous1D::v_ExtractDataToCoeffs(), and Nektar::FieldUtils::ProcessHalfModeToFourier::v_Process().

◆ GetTimeIntegrationSchemeFactory()

LUE TimeIntegrationSchemeFactory & Nektar::LibUtilities::GetTimeIntegrationSchemeFactory ( )

Definition at line 47 of file TimeIntegrationScheme.cpp.

48 {
49  static TimeIntegrationSchemeFactory instance;
50  return instance;
51 }
NekFactory< std::string, TimeIntegrationScheme, std::string, unsigned int, std::vector< NekDouble > > TimeIntegrationSchemeFactory
Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class.

Referenced by Nektar::UnsteadyAdvectionDiffusion::SetUpSubSteppingTimeIntegration(), Diffusion::TimeIntegrate(), Nektar::SolverUtils::UnsteadySystem::v_InitObject(), and Nektar::SubSteppingExtrapolate::v_SubSteppingTimeIntegration().

◆ Import()

void Nektar::LibUtilities::Import ( const std::string &  infilename,
std::vector< FieldDefinitionsSharedPtr > &  fielddefs,
std::vector< std::vector< NekDouble >> &  fielddata,
FieldMetaDataMap fieldinfomap,
const Array< OneD, int > &  ElementIDs 
)

This function allows for data to be imported from an FLD file when a session and/or communicator is not instantiated. Typically used in utilities which only operate in serial.

Parameters
infilenameInput filename (or directory if parallel format)
fielddefsOn return contains field definitions as read from the input.
fielddataOn return, contains binary field data that stores the input corresponding to fielddefs.
fieldinfoOn returnm, contains the associated field metadata map.
ElementIDsElement IDs that lie on this processor, which can be optionally supplied to avoid reading the entire file on each processor.

Definition at line 290 of file FieldIO.cpp.

295 {
296 #ifdef NEKTAR_USE_MPI
297  int size;
298  int init;
299  MPI_Initialized(&init);
300 
301  // If MPI has been initialised we can check the number of processes
302  // and, if > 1, tell the user he should not be running this
303  // function in parallel. If it is not initialised, we do not
304  // initialise it here, and assume the user knows what they are
305  // doing.
306  if (init)
307  {
308  MPI_Comm_size(MPI_COMM_WORLD, &size);
309  ASSERTL0(size == 1,
310  "This static function is not available in parallel. Please"
311  "instantiate a FieldIO object for parallel use.");
312  }
313 #endif
314  CommSharedPtr c = GetCommFactory().CreateInstance("Serial", 0, 0);
315  const std::string iofmt = FieldIO::GetFileType(infilename, c);
316  FieldIOSharedPtr f = GetFieldIOFactory().CreateInstance(iofmt, c, false);
317  f->Import(infilename, fielddefs, fielddata, fieldinfomap, ElementIDs);
318 }
tBaseSharedPtr CreateInstance(tKey idKey, tParam... args)
Create an instance of the class referred to by idKey.
Definition: NekFactory.hpp:144
std::shared_ptr< FieldIO > FieldIOSharedPtr
Definition: FieldIO.h:327
FieldIOFactory & GetFieldIOFactory()
Returns the FieldIO factory.
Definition: FieldIO.cpp:72
CommFactory & GetCommFactory()
std::shared_ptr< Comm > CommSharedPtr
Pointer to a Communicator object.
Definition: Comm.h:54

References ASSERTL0, Nektar::LibUtilities::NekFactory< tKey, tBase, tParam >::CreateInstance(), GetCommFactory(), GetFieldIOFactory(), and Nektar::LibUtilities::FieldIO::GetFileType().

Referenced by GetStreakLocation(), Nektar::SolverUtils::EquationSystem::ImportFldToMultiDomains(), and main().

◆ Interp1D() [1/4]

void Nektar::LibUtilities::Interp1D ( const BasisKey fbasis0,
const Array< OneD, const NekDouble > &  from,
const BasisKey tbasis0,
Array< OneD, NekDouble > &  to 
)

this function interpolates a 1D function \(f\) evaluated at the quadrature points of the basis fbasis0 to the function values at the quadrature points of the basis tbasis0

Given a function \( f\) evaluated at the Q quadrature points of the basis fbasis0, this routine calculates, using (Q-1)th order polynomial interpolation, the function values at the Q2 quadrature points of the basis tbasis0.

Parameters
fbasis0the basis at which's quadrature points the function is given
fromthe array containg the function \( f\) evaluated at the quadrature points of fbasis0
tbasis0the basis to which's quadrature points the function should be interpolated
tothe array containg the function \( f\) evaluated at the quadrature points of tbasis0 (output of the function)

Definition at line 52 of file Interp.cpp.

54 {
55  Interp1D(fbasis0.GetPointsKey(), from, tbasis0.GetPointsKey(), to);
56 }
void Interp1D(const PointsKey &fpoints0, const NekDouble *from, const PointsKey &tpoints0, NekDouble *to)
Definition: Interp.cpp:85

References Nektar::LibUtilities::BasisKey::GetPointsKey().

Referenced by Nektar::MultiRegions::ExpList::GetElmtNormalLength(), Nektar::SpatialDomains::GeomFactors::Interp(), Interp1D(), Nektar::LocalRegions::NodalTriExp::v_ComputeTraceNormal(), Nektar::LocalRegions::QuadExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TriExp::v_ComputeTraceNormal(), Nektar::LocalRegions::SegExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::TriExp::v_FwdTransBndConstrained(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::LocalRegions::Expansion::v_GetCoords(), Nektar::MultiRegions::ExpList::v_GetNormals(), Nektar::LocalRegions::QuadExp::v_GetTracePhysVals(), and Nektar::LocalRegions::TriExp::v_GetTracePhysVals().

◆ Interp1D() [2/4]

void Nektar::LibUtilities::Interp1D ( const BasisKey fbasis0,
const NekDouble from,
const BasisKey tbasis0,
NekDouble to 
)

Definition at line 79 of file Interp.cpp.

81 {
82  Interp1D(fbasis0.GetPointsKey(), from, tbasis0.GetPointsKey(), to);
83 }

References Nektar::LibUtilities::BasisKey::GetPointsKey(), and Interp1D().

◆ Interp1D() [3/4]

void Nektar::LibUtilities::Interp1D ( const PointsKey fpoints0,
const Array< OneD, const NekDouble > &  from,
const PointsKey tpoints0,
Array< OneD, NekDouble > &  to 
)

Definition at line 58 of file Interp.cpp.

61 {
62  if (fpoints0 == tpoints0) // check to see if the same
63  {
64  Vmath::Vcopy(fpoints0.GetNumPoints(), from, 1, to, 1);
65  }
66  else // interpolate
67  {
69 
70  I0 = PointsManager()[fpoints0]->GetI(tpoints0);
71 
72  NekVector<NekDouble> in(fpoints0.GetNumPoints(), from, eWrapper);
73  NekVector<NekDouble> out(tpoints0.GetNumPoints(), to, eWrapper);
74 
75  out = (*I0) * in;
76  }
77 }
PointsManagerT & PointsManager(void)
std::shared_ptr< DNekMat > DNekMatSharedPtr
Definition: NekTypeDefs.hpp:75
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1255

References Nektar::eWrapper, Nektar::LibUtilities::PointsKey::GetNumPoints(), PointsManager(), and Vmath::Vcopy().

◆ Interp1D() [4/4]

void Nektar::LibUtilities::Interp1D ( const PointsKey fpoints0,
const NekDouble from,
const PointsKey tpoints0,
NekDouble to 
)

Definition at line 85 of file Interp.cpp.

87 {
88  if (fpoints0 == tpoints0) // check to see if the same
89  {
90  Vmath::Vcopy(fpoints0.GetNumPoints(), from, 1, to, 1);
91  }
92  else // interpolate
93  {
94 
96 
97  I0 = PointsManager()[fpoints0]->GetI(tpoints0);
98 
99  Blas::Dgemv('N', tpoints0.GetNumPoints(), fpoints0.GetNumPoints(), 1.0,
100  I0->GetPtr().get(), tpoints0.GetNumPoints(), from, 1, 0.0,
101  to, 1);
102  }
103 }
static void Dgemv(const char &trans, const int &m, const int &n, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
BLAS level 2: Matrix vector multiply y = A x where A[m x n].
Definition: Blas.hpp:246

References Blas::Dgemv(), Nektar::LibUtilities::PointsKey::GetNumPoints(), PointsManager(), and Vmath::Vcopy().

◆ Interp2D() [1/3]

void Nektar::LibUtilities::Interp2D ( const BasisKey fbasis0,
const BasisKey fbasis1,
const Array< OneD, const NekDouble > &  from,
const BasisKey tbasis0,
const BasisKey tbasis1,
Array< OneD, NekDouble > &  to 
)

this function interpolates a 2D function \(f\) evaluated at the quadrature points of the 2D basis, constructed by fbasis0 and fbasis1, to the function values at the quadrature points of the 2D basis, constructed by tbasis0 and tbasis1

Given a function \( f\) evaluated at the Q quadrature points of the first expansion basis, this routine calculates, using (Q-1)th order polynomial interpolation, the function values at the Q2 quadrature points of the second basis.

Parameters
fbasis0the basis at which's quadrature points the function is given
fromthe array containg the function \( f\) evaluated at the quadrature points of fbasis0
tbasis0the basis to which's quadrature points the function should be interpolated
tothe array containg the function \( f\) evaluated at the quadrature points of tbasis0 (output of the function)

Definition at line 106 of file Interp.cpp.

109 {
110  Interp2D(fbasis0.GetPointsKey(), fbasis1.GetPointsKey(), from.data(),
111  tbasis0.GetPointsKey(), tbasis1.GetPointsKey(), to.data());
112 }
void Interp2D(const PointsKey &fpoints0, const PointsKey &fpoints1, const NekDouble *from, const PointsKey &tpoints0, const PointsKey &tpoints1, NekDouble *to)
Definition: Interp.cpp:122

References Nektar::LibUtilities::BasisKey::GetPointsKey().

Referenced by Nektar::FieldUtils::ProcessEquiSpacedOutput::GenOrthoModes(), Nektar::MultiRegions::ExpList::GetElmtNormalLength(), Nektar::FieldUtils::ProcessQualityMetric::GetQ(), Nektar::SpatialDomains::GeomFactors::Interp(), Interp2D(), Nektar::GlobalMapping::UpdateGeometry(), Nektar::LocalRegions::HexExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PrismExp::v_ComputeTraceNormal(), Nektar::LocalRegions::PyrExp::v_ComputeTraceNormal(), Nektar::LocalRegions::TetExp::v_ComputeTraceNormal(), Nektar::LocalRegions::QuadExp::v_ExtractDataToCoeffs(), Nektar::SpatialDomains::QuadGeom::v_FillGeom(), Nektar::SpatialDomains::TriGeom::v_FillGeom(), Nektar::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::LocalRegions::Expansion::v_GetCoords(), Nektar::MultiRegions::ExpList::v_GetNormals(), Nektar::LocalRegions::Expansion3D::v_GetTracePhysVals(), and Nektar::MultiRegions::ExpList::v_PhysInterp1DScaled().

◆ Interp2D() [2/3]

void Nektar::LibUtilities::Interp2D ( const PointsKey fpoints0,
const PointsKey fpoints1,
const Array< OneD, const NekDouble > &  from,
const PointsKey tpoints0,
const PointsKey tpoints1,
Array< OneD, NekDouble > &  to 
)

Definition at line 114 of file Interp.cpp.

118 {
119  Interp2D(fpoints0, fpoints1, from.data(), tpoints0, tpoints1, to.data());
120 }

References Interp2D().

◆ Interp2D() [3/3]

void Nektar::LibUtilities::Interp2D ( const PointsKey fpoints0,
const PointsKey fpoints1,
const NekDouble from,
const PointsKey tpoints0,
const PointsKey tpoints1,
NekDouble to 
)

Definition at line 122 of file Interp.cpp.

125 {
126  // default interpolation
127  if ((fpoints0 == tpoints0) && (fpoints1 == tpoints1))
128  {
129  Vmath::Vcopy(tpoints0.GetNumPoints() * tpoints1.GetNumPoints(), from, 1,
130  to, 1);
131  return;
132  }
133 
134  DNekMatSharedPtr I0, I1;
135  Array<OneD, NekDouble> wsp(tpoints1.GetNumPoints() *
136  fpoints0.GetNumPoints()); // fnp0*tnp1
137 
138  int fnp0 = fpoints0.GetNumPoints();
139  int fnp1 = fpoints1.GetNumPoints();
140  int tnp0 = tpoints0.GetNumPoints();
141  int tnp1 = tpoints1.GetNumPoints();
142 
143  if (fpoints1 == tpoints1)
144  {
145  Vmath::Vcopy(fnp0 * tnp1, from, 1, wsp.get(), 1);
146  }
147  else
148  {
149  I1 = PointsManager()[fpoints1]->GetI(tpoints1);
150  Blas::Dgemm('N', 'T', fnp0, tnp1, fnp1, 1.0, from, fnp0,
151  I1->GetPtr().get(), tnp1, 0.0, wsp.get(), fnp0);
152  }
153 
154  if (fpoints0 == tpoints0)
155  {
156  Vmath::Vcopy(tnp0 * tnp1, wsp.get(), 1, to, 1);
157  }
158  else
159  {
160  I0 = PointsManager()[fpoints0]->GetI(tpoints0);
161  Blas::Dgemm('N', 'N', tnp0, tnp1, fnp0, 1.0, I0->GetPtr().get(), tnp0,
162  wsp.get(), fnp0, 0.0, to, tnp0);
163  }
164 }
static void Dgemm(const char &transa, const char &transb, const int &m, const int &n, const int &k, const double &alpha, const double *a, const int &lda, const double *b, const int &ldb, const double &beta, double *c, const int &ldc)
BLAS level 3: Matrix-matrix multiply C = A x B where op(A)[m x k], op(B)[k x n], C[m x n] DGEMM perfo...
Definition: Blas.hpp:368

References Blas::Dgemm(), Nektar::LibUtilities::PointsKey::GetNumPoints(), PointsManager(), and Vmath::Vcopy().

◆ Interp3D() [1/3]

void Nektar::LibUtilities::Interp3D ( const BasisKey fbasis0,
const BasisKey fbasis1,
const BasisKey fbasis2,
const Array< OneD, const NekDouble > &  from,
const BasisKey tbasis0,
const BasisKey tbasis1,
const BasisKey tbasis2,
Array< OneD, NekDouble > &  to 
)

this function interpolates a 3D function \(f\) evaluated at the quadrature points of the 3D basis, constructed by fbasis0, fbasis1, and fbasis2 to the function values at the quadrature points of the 3D basis, constructed by tbasis0, tbasis1, and tbasis2.

Given a function \( f\) evaluated at the Q quadrature points of the first expansion basis, this routine calculates, using (Q-1)th order polynomial interpolation, the function values at the Q2 quadrature points of the second basis, and the function values at the Q3 quadrature points of the third basis.

Parameters
fbasis0the basis at which's quadrature points the function is given
fromthe array containg the function \( f\) evaluated at the quadrature points of fbasis0
tbasis0the basis to which's quadrature points the function should be interpolated
tothe array containg the function \( f\) evaluated at the quadrature points of tbasis0 (output of the function)

Definition at line 167 of file Interp.cpp.

171 {
172  Interp3D(fbasis0.GetPointsKey(), fbasis1.GetPointsKey(),
173  fbasis2.GetPointsKey(), from.data(), tbasis0.GetPointsKey(),
174  tbasis1.GetPointsKey(), tbasis2.GetPointsKey(), to.data());
175 }
void Interp3D(const PointsKey &fpoints0, const PointsKey &fpoints1, const PointsKey &fpoints2, const NekDouble *from, const PointsKey &tpoints0, const PointsKey &tpoints1, const PointsKey &tpoints2, NekDouble *to)
Definition: Interp.cpp:187

References Nektar::LibUtilities::BasisKey::GetPointsKey().

Referenced by Nektar::FieldUtils::ProcessQualityMetric::GetQ(), Nektar::SpatialDomains::GeomFactors::Interp(), Interp3D(), Nektar::LocalRegions::HexExp::v_ExtractDataToCoeffs(), Nektar::LocalRegions::Expansion::v_GetCoords(), and Nektar::MultiRegions::ExpList::v_PhysInterp1DScaled().

◆ Interp3D() [2/3]

void Nektar::LibUtilities::Interp3D ( const PointsKey fpoints0,
const PointsKey fpoints1,
const PointsKey fpoints2,
const Array< OneD, const NekDouble > &  from,
const PointsKey tpoints0,
const PointsKey tpoints1,
const PointsKey tpoints2,
Array< OneD, NekDouble > &  to 
)

Definition at line 177 of file Interp.cpp.

182 {
183  Interp3D(fpoints0, fpoints1, fpoints2, from.data(), tpoints0, tpoints1,
184  tpoints2, to.data());
185 }

References Interp3D().

◆ Interp3D() [3/3]

void Nektar::LibUtilities::Interp3D ( const PointsKey fpoints0,
const PointsKey fpoints1,
const PointsKey fpoints2,
const NekDouble from,
const PointsKey tpoints0,
const PointsKey tpoints1,
const PointsKey tpoints2,
NekDouble to 
)

Definition at line 187 of file Interp.cpp.

191 {
192  int i;
193  DNekMatSharedPtr I0, I1, I2;
194 
195  int fnp0 = fpoints0.GetNumPoints();
196  int fnp1 = fpoints1.GetNumPoints();
197  int fnp2 = fpoints2.GetNumPoints();
198  int tnp0 = tpoints0.GetNumPoints();
199  int tnp1 = tpoints1.GetNumPoints();
200  int tnp2 = tpoints2.GetNumPoints();
201 
202  Array<OneD, NekDouble> wsp1(tnp0 * tnp1 * fnp2);
203  Array<OneD, NekDouble> wsp2(tnp0 * fnp1 * fnp2);
204 
205  I0 = PointsManager()[fpoints0]->GetI(tpoints0);
206  I1 = PointsManager()[fpoints1]->GetI(tpoints1);
207  I2 = PointsManager()[fpoints2]->GetI(tpoints2);
208 
209  Blas::Dgemm('N', 'N', tnp0, fnp1 * fnp2, fnp0, 1.0, I0->GetPtr().get(),
210  tnp0, from, fnp0, 0.0, wsp2.get(), tnp0);
211 
212  for (i = 0; i < fnp2; i++)
213  {
214  Blas::Dgemm('N', 'T', tnp0, tnp1, fnp1, 1.0,
215  wsp2.get() + i * tnp0 * fnp1, tnp0, I1->GetPtr().get(),
216  tnp1, 0.0, wsp1.get() + i * tnp0 * tnp1, tnp0);
217  }
218 
219  Blas::Dgemm('N', 'T', tnp0 * tnp1, tnp2, fnp2, 1.0, wsp1.get(), tnp0 * tnp1,
220  I2->GetPtr().get(), tnp2, 0.0, to, tnp0 * tnp1);
221 }

References Blas::Dgemm(), Nektar::LibUtilities::PointsKey::GetNumPoints(), and PointsManager().

◆ InterpCoeff1D()

void Nektar::LibUtilities::InterpCoeff1D ( const BasisKey fbasis0,
const Array< OneD, const NekDouble > &  from,
const BasisKey tbasis0,
Array< OneD, NekDouble > &  to 
)

Definition at line 46 of file InterpCoeff.cpp.

49 {
50  ASSERTL0(fbasis0.GetNumModes() == tbasis0.GetNumModes(),
51  "Number of modes must be the same for "
52  "interpolating coefficients");
53 
54  // Check to see if the same basis
55  if (fbasis0.GetBasisType() == tbasis0.GetBasisType())
56  {
57  Vmath::Vcopy(fbasis0.GetNumModes(), from, 1, to, 1);
58  }
59  else
60  {
61  // interpolate
62  DNekMatSharedPtr ftB = BasisManager()[fbasis0]->GetI(tbasis0);
63 
64  NekVector<NekDouble> in(fbasis0.GetNumModes(), from, eWrapper);
65  NekVector<NekDouble> out(tbasis0.GetNumModes(), to, eWrapper);
66 
67  out = (*ftB) * in;
68  }
69 }
BasisManagerT & BasisManager(void)

References ASSERTL0, BasisManager(), Nektar::eWrapper, Nektar::LibUtilities::BasisKey::GetBasisType(), Nektar::LibUtilities::BasisKey::GetNumModes(), and Vmath::Vcopy().

Referenced by Nektar::LocalRegions::Expansion2D::v_AddEdgeNormBoundaryInt(), Nektar::StdRegions::StdSegExp::v_ReduceOrderCoeffs(), and Nektar::SolverUtils::FilterEnergy1D::v_Update().

◆ InterpCoeff2D() [1/2]

void Nektar::LibUtilities::InterpCoeff2D ( const BasisKey fbasis0,
const BasisKey fbasis1,
const Array< OneD, const NekDouble > &  from,
const BasisKey tbasis0,
const BasisKey tbasis1,
Array< OneD, NekDouble > &  to 
)

Definition at line 71 of file InterpCoeff.cpp.

75 {
76  InterpCoeff2D(fbasis0, fbasis1, from.data(), tbasis0, tbasis1, to.data());
77 }
void InterpCoeff2D(const BasisKey &fbasis0, const BasisKey &fbasis1, const NekDouble *from, const BasisKey &tbasis0, const BasisKey &tbasis1, NekDouble *to)
Definition: InterpCoeff.cpp:79

Referenced by Nektar::LocalRegions::QuadExp::v_ReduceOrderCoeffs(), and Nektar::StdRegions::StdQuadExp::v_ReduceOrderCoeffs().

◆ InterpCoeff2D() [2/2]

void Nektar::LibUtilities::InterpCoeff2D ( const BasisKey fbasis0,
const BasisKey fbasis1,
const NekDouble from,
const BasisKey tbasis0,
const BasisKey tbasis1,
NekDouble to 
)

Definition at line 79 of file InterpCoeff.cpp.

82 {
83  const int fnm0 = fbasis0.GetNumModes();
84  const int fnm1 = fbasis1.GetNumModes();
85  const int tnm0 = tbasis0.GetNumModes();
86  const int tnm1 = tbasis1.GetNumModes();
87 
88  Array<OneD, NekDouble> wsp(tnm1 * fnm0);
89 
90  if (fbasis1.GetBasisType() == tbasis1.GetBasisType())
91  {
92  Vmath::Vcopy(fnm0 * tnm1, from, 1, wsp.get(), 1);
93  }
94  else
95  {
96  // interpolate
97  DNekMatSharedPtr ft1 = BasisManager()[fbasis1]->GetI(tbasis1);
98 
99  Blas::Dgemm('N', 'T', fnm0, tnm1, fnm1, 1.0, from, fnm0,
100  ft1->GetPtr().get(), tnm1, 0.0, wsp.get(), fnm0);
101  }
102 
103  if (fbasis0.GetBasisType() == tbasis0.GetBasisType())
104  {
105  Vmath::Vcopy(tnm0 * tnm1, wsp.get(), 1, to, 1);
106  }
107  else
108  {
109  // interpolate
110  DNekMatSharedPtr ft0 = BasisManager()[fbasis0]->GetI(tbasis0);
111 
112  Blas::Dgemm('N', 'N', tnm0, tnm1, fnm0, 1.0, ft0->GetPtr().get(), tnm0,
113  wsp.get(), fnm0, 0.0, to, tnm0);
114  }
115 }

References BasisManager(), Blas::Dgemm(), Nektar::LibUtilities::BasisKey::GetBasisType(), Nektar::LibUtilities::BasisKey::GetNumModes(), and Vmath::Vcopy().

◆ InterpCoeff3D() [1/2]

void Nektar::LibUtilities::InterpCoeff3D ( const BasisKey fbasis0,
const BasisKey fbasis1,
const BasisKey fbasis2,
const Array< OneD, const NekDouble > &  from,
const BasisKey tbasis0,
const BasisKey tbasis1,
const BasisKey tbasis2,
Array< OneD, NekDouble > &  to 
)

Definition at line 117 of file InterpCoeff.cpp.

122 {
123  InterpCoeff3D(fbasis0, fbasis1, fbasis2, from.data(), tbasis0, tbasis1,
124  tbasis2, to.data());
125 }
void InterpCoeff3D(const BasisKey &fbasis0, const BasisKey &fbasis1, const BasisKey &fbasis2, const NekDouble *from, const BasisKey &tbasis0, const BasisKey &tbasis1, const BasisKey &tbasis2, NekDouble *to)

Referenced by Nektar::LocalRegions::HexExp::v_ReduceOrderCoeffs().

◆ InterpCoeff3D() [2/2]

void Nektar::LibUtilities::InterpCoeff3D ( const BasisKey fbasis0,
const BasisKey fbasis1,
const BasisKey fbasis2,
const NekDouble from,
const BasisKey tbasis0,
const BasisKey tbasis1,
const BasisKey tbasis2,
NekDouble to 
)

Definition at line 127 of file InterpCoeff.cpp.

131 {
132  const int fnm0 = fbasis0.GetNumModes();
133  const int fnm1 = fbasis1.GetNumModes();
134  const int fnm2 = fbasis2.GetNumModes();
135  const int tnm0 = tbasis0.GetNumModes();
136  const int tnm1 = tbasis1.GetNumModes();
137  const int tnm2 = tbasis2.GetNumModes();
138 
139  Array<OneD, NekDouble> wsp1(tnm0 * tnm1 * fnm2);
140  Array<OneD, NekDouble> wsp2(tnm0 * fnm1 * fnm2);
141 
142  DNekMatSharedPtr ft0 = BasisManager()[fbasis0]->GetI(tbasis0);
143  DNekMatSharedPtr ft1 = BasisManager()[fbasis1]->GetI(tbasis1);
144  DNekMatSharedPtr ft2 = BasisManager()[fbasis2]->GetI(tbasis2);
145 
146  Blas::Dgemm('N', 'N', tnm0, fnm1 * fnm2, fnm0, 1.0, ft0->GetPtr().get(),
147  tnm0, from, fnm0, 0.0, wsp2.get(), tnm0);
148 
149  for (int i = 0; i < fnm2; i++)
150  {
151  Blas::Dgemm('N', 'T', tnm0, tnm1, fnm1, 1.0,
152  wsp2.get() + i * tnm0 * fnm1, tnm0, ft1->GetPtr().get(),
153  tnm1, 0.0, wsp1.get() + i * tnm0 * tnm1, tnm0);
154  }
155 
156  Blas::Dgemm('N', 'T', tnm0 * tnm1, tnm2, fnm2, 1.0, wsp1.get(), tnm0 * tnm1,
157  ft2->GetPtr().get(), tnm2, 0.0, to, tnm0 * tnm1);
158 }

References BasisManager(), Blas::Dgemm(), and Nektar::LibUtilities::BasisKey::GetNumModes().

◆ IsRealClose()

template<class T1 , class T2 , class = typename std::enable_if< std::is_floating_point<typename std::remove_cv< typename std::remove_reference<T1>::type>::type>::value && std::is_same<typename std::remove_cv< typename std::remove_reference<T1>::type>::type, typename std::remove_cv<typename std::remove_reference< T2>::type>::type>::value>::type>
bool Nektar::LibUtilities::IsRealClose ( T1 &&  lhs,
T2 &&  rhs,
const NekDouble  tol = NekConstants::kNekMachineEpsilon 
)
inline

compare reals of same type with absolute tolerance

Definition at line 78 of file RealComparison.hpp.

80 {
81  // Check if tolerance is positive
82  ASSERTL1(tol >= 0, "real comparison tolerance needs to be >= 0");
83  // Check if distance is within tolerance
84  return std::abs(lhs - rhs) < tol;
85 }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
Definition: ErrorUtil.hpp:249
scalarT< T > abs(scalarT< T > in)
Definition: scalar.hpp:298

References tinysimd::abs(), and ASSERTL1.

◆ IsRealEqual()

template<class T1 , class T2 , class = typename std::enable_if< std::is_floating_point<typename std::remove_cv< typename std::remove_reference<T1>::type>::type>::value && std::is_same<typename std::remove_cv< typename std::remove_reference<T1>::type>::type, typename std::remove_cv<typename std::remove_reference< T2>::type>::type>::value>::type>
bool Nektar::LibUtilities::IsRealEqual ( T1 &&  lhs,
T2 &&  rhs,
const unsigned int  factor = NekConstants::kNekFloatCompFact 
)
inline

compare reals of same type with relative tolerance

Definition at line 58 of file RealComparison.hpp.

61 {
62  // Check precondition in debug mode
63  ASSERTL1(factor >= 1, "real comparison factor needs to be >= 1");
64  // Relative distance normalized by machine epsilon
65  return boost::math::epsilon_difference(lhs, rhs) < factor;
66 }

References ASSERTL1.

Referenced by Nektar::IsEqualImpl().

◆ NullBasisKey()

static const BasisKey Nektar::LibUtilities::NullBasisKey ( eNoBasisType  ,
,
NullPointsKey   
)
static

◆ NullPointsKey()

static const PointsKey Nektar::LibUtilities::NullPointsKey ( ,
eNoPointsType   
)
static

◆ operator!=() [1/4]

bool Nektar::LibUtilities::operator!= ( const BasisKey x,
const BasisKey y 
)

Definition at line 919 of file Foundations/Basis.cpp.

920 {
921  return (!(x == y));
922 }

◆ operator!=() [2/4]

bool Nektar::LibUtilities::operator!= ( const BasisKey x,
const BasisKey y 
)

Definition at line 931 of file Foundations/Basis.cpp.

932 {
933  return (!(x == *y));
934 }

◆ operator!=() [3/4]

bool Nektar::LibUtilities::operator!= ( const BasisKey x,
const BasisKey y 
)

Definition at line 925 of file Foundations/Basis.cpp.

926 {
927  return (!(*x == y));
928 }

◆ operator!=() [4/4]

bool Nektar::LibUtilities::operator!= ( const GraphVertexObject x,
const GraphVertexObject y 
)

Definition at line 62 of file Graph.cpp.

63 {
64  return (x.m_id != y.m_id);
65 }

◆ operator<() [1/2]

bool Nektar::LibUtilities::operator< ( const BasisKey lhs,
const BasisKey rhs 
)

Definition at line 50 of file Foundations/Basis.cpp.

51 {
52  PointsKey lhsPointsKey = lhs.GetPointsKey();
53  PointsKey rhsPointsKey = rhs.GetPointsKey();
54 
55  if (lhsPointsKey < rhsPointsKey)
56  {
57  return true;
58  }
59  if (lhsPointsKey != rhsPointsKey)
60  {
61  return false;
62  }
63 
64  if (lhs.m_nummodes < rhs.m_nummodes)
65  {
66  return true;
67  }
68  if (lhs.m_nummodes > rhs.m_nummodes)
69  {
70  return false;
71  }
72 
73  return (lhs.m_basistype < rhs.m_basistype);
74 }

◆ operator<() [2/2]

bool Nektar::LibUtilities::operator< ( const PointsKey lhs,
const PointsKey rhs 
)

Definition at line 54 of file Foundations/Points.cpp.

55 {
56  if (lhs.m_pointstype < rhs.m_pointstype)
57  {
58  return true;
59  }
60 
61  if (lhs.m_pointstype > rhs.m_pointstype)
62  {
63  return false;
64  }
65 
66  if (lhs.m_numpoints < rhs.m_numpoints)
67  {
68  return true;
69  }
70 
71  if (lhs.m_numpoints > rhs.m_numpoints)
72  {
73  return false;
74  }
75 
76  if (lhs.m_factor < rhs.m_factor)
77  {
78  return true;
79  }
80 
81  if (lhs.m_factor > rhs.m_factor)
82  {
83  return true;
84  }
85 
86  return false;
87 }

◆ operator<<() [1/14]

std::ostream & Nektar::LibUtilities::operator<< ( std::ostream &  os,
const BasisKey rhs 
)

Definition at line 87 of file Foundations/Basis.cpp.

88 {
89  os << "NumModes: " << rhs.GetNumModes()
90  << " BasisType: " << BasisTypeMap[rhs.GetBasisType()];
91  os << " " << rhs.GetPointsKey() << std::endl;
92 
93  return os;
94 }
const char *const BasisTypeMap[]
Definition: Foundations.hpp:46

References BasisTypeMap, Nektar::LibUtilities::BasisKey::GetBasisType(), Nektar::LibUtilities::BasisKey::GetNumModes(), and Nektar::LibUtilities::BasisKey::GetPointsKey().

◆ operator<<() [2/14]

LUE std::ostream & Nektar::LibUtilities::operator<< ( std::ostream &  os,
const FractionalInTimeIntegrationScheme rhs 
)

Definition at line 1093 of file TimeIntegrationSchemeFIT.cpp.

1095 {
1096  rhs.print(os);
1097 
1098  return os;
1099 }

◆ operator<<() [3/14]

LUE std::ostream & Nektar::LibUtilities::operator<< ( std::ostream &  os,
const FractionalInTimeIntegrationSchemeSharedPtr rhs 
)

Definition at line 1101 of file TimeIntegrationSchemeFIT.cpp.

1103 {
1104  os << *rhs.get();
1105 
1106  return os;
1107 }

◆ operator<<() [4/14]

std::ostream & Nektar::LibUtilities::operator<< ( std::ostream &  os,
const PointsKey rhs 
)

Definition at line 95 of file Foundations/Points.cpp.

96 {
97  os << "NumPoints: " << rhs.GetNumPoints()
98  << " PointsType: " << kPointsTypeStr[rhs.GetPointsType()] << std::endl;
99 
100  return os;
101 }
const std::string kPointsTypeStr[]
Definition: Foundations.hpp:54

References Nektar::LibUtilities::PointsKey::GetNumPoints(), Nektar::LibUtilities::PointsKey::GetPointsType(), and kPointsTypeStr.

◆ operator<<() [5/14]

LUE std::ostream & Nektar::LibUtilities::operator<< ( std::ostream &  os,
const TimeIntegrationAlgorithmGLM rhs 
)

Definition at line 967 of file TimeIntegrationAlgorithmGLM.cpp.

969 {
970  int r = rhs.m_numsteps;
971  int s = rhs.m_numstages;
972  TimeIntegrationSchemeType type = rhs.m_schemeType;
973 
974  int oswidth = 9;
975  int osprecision = 6;
976 
977  os << "Time Integration Scheme (Master): " << rhs.m_parent->GetFullName()
978  << "\n"
979  << "Time Integration Phase : " << rhs.m_name << "\n"
980  << "- number of steps: " << r << "\n"
981  << "- number of stages: " << s << "\n"
982  << "General linear method tableau:\n";
983 
984  for (int i = 0; i < s; i++)
985  {
986  for (int j = 0; j < s; j++)
987  {
988  os.width(oswidth);
989  os.precision(osprecision);
990  os << std::right << rhs.A(i, j) << " ";
991  }
992  if (type == eIMEX)
993  {
994  os << " '";
995  for (int j = 0; j < s; j++)
996  {
997  os.width(oswidth);
998  os.precision(osprecision);
999  os << std::right << rhs.A_IMEX(i, j) << " ";
1000  }
1001  }
1002 
1003  os << " |";
1004 
1005  for (int j = 0; j < r; j++)
1006  {
1007  os.width(oswidth);
1008  os.precision(osprecision);
1009  os << std::right << rhs.U(i, j);
1010  }
1011  os << std::endl;
1012  }
1013 
1014  int imexflag = (type == eIMEX) ? 2 : 1;
1015  for (int i = 0; i < (r + imexflag * s) * (oswidth + 1) + imexflag * 2 - 1;
1016  i++)
1017  {
1018  os << "-";
1019  }
1020  os << std::endl;
1021 
1022  for (int i = 0; i < r; i++)
1023  {
1024  for (int j = 0; j < s; j++)
1025  {
1026  os.width(oswidth);
1027  os.precision(osprecision);
1028  os << std::right << rhs.B(i, j) << " ";
1029  }
1030  if (type == eIMEX)
1031  {
1032  os << " '";
1033  for (int j = 0; j < s; j++)
1034  {
1035  os.width(oswidth);
1036  os.precision(osprecision);
1037  os << std::right << rhs.B_IMEX(i, j) << " ";
1038  }
1039  }
1040 
1041  os << " |";
1042 
1043  for (int j = 0; j < r; j++)
1044  {
1045  os.width(oswidth);
1046  os.precision(osprecision);
1047  os << std::right << rhs.V(i, j);
1048  }
1049 
1050  os << " |";
1051 
1052  os.width(oswidth);
1053  os.precision(osprecision);
1054  os << std::right << rhs.m_timeLevelOffset[i];
1055 
1056  if (i < rhs.m_numMultiStepValues)
1057  {
1058  os << std::right << " value";
1059  }
1060  else
1061  {
1062  os << std::right << " derivative";
1063  }
1064 
1065  os << std::endl;
1066  }
1067 
1068  if (type == eExponential)
1069  {
1070  for (int k = 0; k < rhs.m_nvars; k++)
1071  {
1072  os << std::endl
1073  << "General linear method exponential tableau for variable " << k
1074  << ":\n";
1075 
1076  for (int i = 0; i < s; i++)
1077  {
1078  for (int j = 0; j < s; j++)
1079  {
1080  os.width(oswidth);
1081  os.precision(osprecision);
1082  os << std::right << rhs.A(k, i, j) << " ";
1083  }
1084 
1085  os << " |";
1086 
1087  for (int j = 0; j < r; j++)
1088  {
1089  os.width(oswidth);
1090  os.precision(osprecision);
1091  os << std::right << rhs.B(k, i, j);
1092  }
1093  os << std::endl;
1094  }
1095 
1096  int imexflag = (type == eIMEX) ? 2 : 1;
1097  for (int i = 0;
1098  i < (r + imexflag * s) * (oswidth + 1) + imexflag * 2 - 1; i++)
1099  {
1100  os << "-";
1101  }
1102  os << std::endl;
1103 
1104  for (int i = 0; i < r; i++)
1105  {
1106  for (int j = 0; j < s; j++)
1107  {
1108  os.width(oswidth);
1109  os.precision(osprecision);
1110  os << std::right << rhs.B(k, i, j) << " ";
1111  }
1112 
1113  os << " |";
1114 
1115  for (int j = 0; j < r; j++)
1116  {
1117  os.width(oswidth);
1118  os.precision(osprecision);
1119  os << std::right << rhs.V(k, i, j);
1120  }
1121  os << std::endl;
1122  }
1123  }
1124  }
1125 
1126  return os;
1127 } // end function operator<<

◆ operator<<() [6/14]

LUE std::ostream & Nektar::LibUtilities::operator<< ( std::ostream &  os,
const TimeIntegrationAlgorithmGLMSharedPtr rhs 
)

Definition at line 961 of file TimeIntegrationAlgorithmGLM.cpp.

963 {
964  return operator<<(os, *rhs);
965 }
std::ostream & operator<<(std::ostream &os, const TimeIntegrationAlgorithmGLM &rhs)

◆ operator<<() [7/14]

LUE std::ostream & Nektar::LibUtilities::operator<< ( std::ostream &  os,
const TimeIntegrationScheme rhs 
)

Definition at line 60 of file TimeIntegrationScheme.cpp.

61 {
62  rhs.print(os);
63 
64  return os;
65 }

◆ operator<<() [8/14]

LUE std::ostream & Nektar::LibUtilities::operator<< ( std::ostream &  os,
const TimeIntegrationSchemeGEM rhs 
)

Definition at line 433 of file TimeIntegrationSchemeGEM.cpp.

434 {
435  rhs.print(os);
436 
437  return os;
438 }

References Nektar::LibUtilities::TimeIntegrationScheme::print().

◆ operator<<() [9/14]

LUE std::ostream & Nektar::LibUtilities::operator<< ( std::ostream &  os,
const TimeIntegrationSchemeGEMSharedPtr rhs 
)

Definition at line 440 of file TimeIntegrationSchemeGEM.cpp.

442 {
443  os << *rhs.get();
444 
445  return os;
446 }

◆ operator<<() [10/14]

LUE std::ostream & Nektar::LibUtilities::operator<< ( std::ostream &  os,
const TimeIntegrationSchemeGLM rhs 
)

Definition at line 145 of file TimeIntegrationSchemeGLM.cpp.

146 {
147  rhs.print(os);
148 
149  return os;
150 }

◆ operator<<() [11/14]

LUE std::ostream & Nektar::LibUtilities::operator<< ( std::ostream &  os,
const TimeIntegrationSchemeGLMSharedPtr rhs 
)

Definition at line 152 of file TimeIntegrationSchemeGLM.cpp.

154 {
155  os << *rhs.get();
156 
157  return os;
158 }

◆ operator<<() [12/14]

std::ostream& Nektar::LibUtilities::operator<< ( std::ostream &  os,
const TimeIntegrationSchemeSDC rhs 
)

Definition at line 281 of file TimeIntegrationSchemeSDC.cpp.

282 {
283  rhs.print(os);
284 
285  return os;
286 }

References Nektar::LibUtilities::TimeIntegrationScheme::print().

◆ operator<<() [13/14]

std::ostream& Nektar::LibUtilities::operator<< ( std::ostream &  os,
const TimeIntegrationSchemeSDCSharedPtr rhs 
)

Definition at line 288 of file TimeIntegrationSchemeSDC.cpp.

290 {
291  os << *rhs.get();
292 
293  return os;
294 }

◆ operator<<() [14/14]

LUE std::ostream & Nektar::LibUtilities::operator<< ( std::ostream &  os,
const TimeIntegrationSchemeSharedPtr rhs 
)

Definition at line 67 of file TimeIntegrationScheme.cpp.

69 {
70  os << *rhs.get();
71 
72  return os;
73 }

◆ operator==() [1/5]

bool Nektar::LibUtilities::operator== ( const BasisKey x,
const BasisKey y 
)

Definition at line 899 of file Foundations/Basis.cpp.

900 {
901  return (x.GetPointsKey() == y.GetPointsKey() &&
902  x.m_basistype == y.m_basistype &&
903  x.GetNumModes() == y.GetNumModes());
904 }

◆ operator==() [2/5]

bool Nektar::LibUtilities::operator== ( const BasisKey x,
const BasisKey y 
)

Definition at line 913 of file Foundations/Basis.cpp.

914 {
915  return (x == *y);
916 }

◆ operator==() [3/5]

bool Nektar::LibUtilities::operator== ( const BasisKey x,
const BasisKey y 
)

Definition at line 907 of file Foundations/Basis.cpp.

908 {
909  return (*x == y);
910 }

◆ operator==() [4/5]

bool Nektar::LibUtilities::operator== ( const GraphVertexObject x,
const GraphVertexObject y 
)

Definition at line 57 of file Graph.cpp.

58 {
59  return (x.m_id == y.m_id);
60 }

◆ operator==() [5/5]

bool Nektar::LibUtilities::operator== ( const PointsKey lhs,
const PointsKey rhs 
)

Definition at line 48 of file Foundations/Points.cpp.

49 {
50  return (lhs.m_numpoints == rhs.m_numpoints &&
51  lhs.m_pointstype == rhs.m_pointstype);
52 }

◆ operator>()

bool Nektar::LibUtilities::operator> ( const BasisKey lhs,
const BasisKey rhs 
)

Definition at line 76 of file Foundations/Basis.cpp.

77 {
78  return (rhs < lhs);
79 }

◆ PhysGalerkinProject1D() [1/4]

void Nektar::LibUtilities::PhysGalerkinProject1D ( const BasisKey fbasis0,
const Array< OneD, const NekDouble > &  from,
const BasisKey tbasis0,
Array< OneD, NekDouble > &  to 
)

Definition at line 51 of file PhysGalerkinProject.cpp.

54 {
55  PhysGalerkinProject1D(fbasis0.GetPointsKey(), from, tbasis0.GetPointsKey(),
56  to);
57 }
void PhysGalerkinProject1D(const PointsKey &fpoints0, const NekDouble *from, const PointsKey &tpoints0, NekDouble *to)

References Nektar::LibUtilities::BasisKey::GetPointsKey().

Referenced by PhysGalerkinProject1D().

◆ PhysGalerkinProject1D() [2/4]

void Nektar::LibUtilities::PhysGalerkinProject1D ( const BasisKey fbasis0,
const NekDouble from,
const BasisKey tbasis0,
NekDouble to 
)

Definition at line 82 of file PhysGalerkinProject.cpp.

84 {
85  PhysGalerkinProject1D(fbasis0.GetPointsKey(), from, tbasis0.GetPointsKey(),
86  to);
87 }

References Nektar::LibUtilities::BasisKey::GetPointsKey(), and PhysGalerkinProject1D().

◆ PhysGalerkinProject1D() [3/4]

void Nektar::LibUtilities::PhysGalerkinProject1D ( const PointsKey fpoints0,
const Array< OneD, const NekDouble > &  from,
const PointsKey tpoints0,
Array< OneD, NekDouble > &  to 
)

Definition at line 59 of file PhysGalerkinProject.cpp.

63 {
64  if (fpoints0 == tpoints0) // check to see if the same
65  {
66  Vmath::Vcopy(fpoints0.GetNumPoints(), from, 1, to, 1);
67  }
68  else // interpolate
69  {
70  DNekMatSharedPtr GP0;
71 
72  GP0 = PointsManager()[tpoints0]->GetGalerkinProjection(fpoints0);
73 
74  NekVector<NekDouble> in(fpoints0.GetNumPoints(), from, eWrapper);
75  NekVector<NekDouble> out(tpoints0.GetNumPoints(), to, eWrapper);
76 
77  GP0->Transpose();
78  out = (*GP0) * in;
79  }
80 }

References Nektar::eWrapper, Nektar::LibUtilities::PointsKey::GetNumPoints(), PointsManager(), and Vmath::Vcopy().

◆ PhysGalerkinProject1D() [4/4]

void Nektar::LibUtilities::PhysGalerkinProject1D ( const PointsKey fpoints0,
const NekDouble from,
const PointsKey tpoints0,
NekDouble to 
)

Definition at line 89 of file PhysGalerkinProject.cpp.

91 {
92  if (fpoints0 == tpoints0) // check to see if the same
93  {
94  Vmath::Vcopy(fpoints0.GetNumPoints(), from, 1, to, 1);
95  }
96  else // interpolate
97  {
98 
99  DNekMatSharedPtr GP0;
100 
101  GP0 = PointsManager()[tpoints0]->GetGalerkinProjection(fpoints0);
102 
103  Blas::Dgemv('T', tpoints0.GetNumPoints(), fpoints0.GetNumPoints(), 1.0,
104  GP0->GetPtr().get(), tpoints0.GetNumPoints(), from, 1, 0.0,
105  to, 1);
106  }
107 }

References Blas::Dgemv(), Nektar::LibUtilities::PointsKey::GetNumPoints(), PointsManager(), and Vmath::Vcopy().

◆ PhysGalerkinProject2D() [1/3]

void Nektar::LibUtilities::PhysGalerkinProject2D ( const BasisKey fbasis0,
const BasisKey fbasis1,
const Array< OneD, const NekDouble > &  from,
const BasisKey tbasis0,
const BasisKey tbasis1,
Array< OneD, NekDouble > &  to 
)

Definition at line 110 of file PhysGalerkinProject.cpp.

114 {
115  PhysGalerkinProject2D(fbasis0.GetPointsKey(), fbasis1.GetPointsKey(),
116  from.data(), tbasis0.GetPointsKey(),
117  tbasis1.GetPointsKey(), to.data());
118 }
void PhysGalerkinProject2D(const PointsKey &fpoints0, const PointsKey &fpoints1, const NekDouble *from, const PointsKey &tpoints0, const PointsKey &tpoints1, NekDouble *to)

References Nektar::LibUtilities::BasisKey::GetPointsKey().

Referenced by PhysGalerkinProject2D(), and Nektar::MultiRegions::ExpList::v_PhysGalerkinProjection1DScaled().

◆ PhysGalerkinProject2D() [2/3]

void Nektar::LibUtilities::PhysGalerkinProject2D ( const PointsKey fpoints0,
const PointsKey fpoints1,
const Array< OneD, const NekDouble > &  from,
const PointsKey tpoints0,
const PointsKey tpoints1,
Array< OneD, NekDouble > &  to 
)

Definition at line 120 of file PhysGalerkinProject.cpp.

124 {
125  PhysGalerkinProject2D(fpoints0, fpoints1, from.data(), tpoints0, tpoints1,
126  to.data());
127 }

References PhysGalerkinProject2D().

◆ PhysGalerkinProject2D() [3/3]

void Nektar::LibUtilities::PhysGalerkinProject2D ( const PointsKey fpoints0,
const PointsKey fpoints1,
const NekDouble from,
const PointsKey tpoints0,
const PointsKey tpoints1,
NekDouble to 
)

Definition at line 129 of file PhysGalerkinProject.cpp.

132 {
133  DNekMatSharedPtr GP0, GP1;
134  Array<OneD, NekDouble> wsp(tpoints1.GetNumPoints() *
135  fpoints0.GetNumPoints()); // fnp0*tnp1
136 
137  int fnp0 = fpoints0.GetNumPoints();
138  int fnp1 = fpoints1.GetNumPoints();
139  int tnp0 = tpoints0.GetNumPoints();
140  int tnp1 = tpoints1.GetNumPoints();
141 
142  if (fpoints1 == tpoints1)
143  {
144  Vmath::Vcopy(fnp0 * tnp1, from, 1, wsp.get(), 1);
145  }
146  else
147  {
148  GP1 = PointsManager()[tpoints1]->GetGalerkinProjection(fpoints1);
149  Blas::Dgemm('N', 'T', fnp0, tnp1, fnp1, 1.0, from, fnp0,
150  GP1->GetPtr().get(), tnp1, 0.0, wsp.get(), fnp0);
151  }
152 
153  if (fpoints0 == tpoints0)
154  {
155  Vmath::Vcopy(tnp0 * tnp1, wsp.get(), 1, to, 1);
156  }
157  else
158  {
159  GP0 = PointsManager()[tpoints0]->GetGalerkinProjection(fpoints0);
160  Blas::Dgemm('N', 'N', tnp0, tnp1, fnp0, 1.0, GP0->GetPtr().get(), tnp0,
161  wsp.get(), fnp0, 0.0, to, tnp0);
162  }
163 }

References Blas::Dgemm(), Nektar::LibUtilities::PointsKey::GetNumPoints(), PointsManager(), and Vmath::Vcopy().

◆ PhysGalerkinProject3D() [1/3]

void Nektar::LibUtilities::PhysGalerkinProject3D ( const BasisKey fbasis0,
const BasisKey fbasis1,
const BasisKey fbasis2,
const Array< OneD, const NekDouble > &  from,
const BasisKey tbasis0,
const BasisKey tbasis1,
const BasisKey tbasis2,
Array< OneD, NekDouble > &  to 
)

Definition at line 166 of file PhysGalerkinProject.cpp.

171 {
172  PhysGalerkinProject3D(fbasis0.GetPointsKey(), fbasis1.GetPointsKey(),
173  fbasis2.GetPointsKey(), from.data(),
174  tbasis0.GetPointsKey(), tbasis1.GetPointsKey(),
175  tbasis2.GetPointsKey(), to.data());
176 }
void PhysGalerkinProject3D(const PointsKey &fpoints0, const PointsKey &fpoints1, const PointsKey &fpoints2, const NekDouble *from, const PointsKey &tpoints0, const PointsKey &tpoints1, const PointsKey &tpoints2, NekDouble *to)

References Nektar::LibUtilities::BasisKey::GetPointsKey().

Referenced by PhysGalerkinProject3D(), and Nektar::MultiRegions::ExpList::v_PhysGalerkinProjection1DScaled().

◆ PhysGalerkinProject3D() [2/3]

void Nektar::LibUtilities::PhysGalerkinProject3D ( const PointsKey fpoints0,
const PointsKey fpoints1,
const PointsKey fpoints2,
const Array< OneD, const NekDouble > &  from,
const PointsKey tpoints0,
const PointsKey tpoints1,
const PointsKey tpoints2,
Array< OneD, NekDouble > &  to 
)

Definition at line 178 of file PhysGalerkinProject.cpp.

184 {
185  PhysGalerkinProject3D(fpoints0, fpoints1, fpoints2, from.data(), tpoints0,
186  tpoints1, tpoints2, to.data());
187 }

References PhysGalerkinProject3D().

◆ PhysGalerkinProject3D() [3/3]

void Nektar::LibUtilities::PhysGalerkinProject3D ( const PointsKey fpoints0,
const PointsKey fpoints1,
const PointsKey fpoints2,
const NekDouble from,
const PointsKey tpoints0,
const PointsKey tpoints1,
const PointsKey tpoints2,
NekDouble to 
)

Definition at line 189 of file PhysGalerkinProject.cpp.

193 {
194  DNekMatSharedPtr GP0, GP1, GP2;
195 
196  int fnp0 = fpoints0.GetNumPoints();
197  int fnp1 = fpoints1.GetNumPoints();
198  int fnp2 = fpoints2.GetNumPoints();
199  int tnp0 = tpoints0.GetNumPoints();
200  int tnp1 = tpoints1.GetNumPoints();
201  int tnp2 = tpoints2.GetNumPoints();
202 
203  Array<OneD, NekDouble> wsp1(fnp0 * tnp1 * tnp2);
204  Array<OneD, NekDouble> wsp2(fnp0 * fnp1 * tnp2);
205 
206  GP2 = PointsManager()[tpoints2]->GetGalerkinProjection(fpoints2);
207  Blas::Dgemm('N', 'T', fnp0 * fnp1, tnp2, fnp2, 1.0, from, fnp0 * fnp1,
208  GP2->GetPtr().get(), tnp2, 0.0, wsp2.get(), fnp0 * fnp1);
209 
210  GP1 = PointsManager()[tpoints1]->GetGalerkinProjection(fpoints1);
211  for (int i = 0; i < tnp2; i++)
212  {
213  Blas::Dgemm('N', 'T', fnp0, tnp1, fnp1, 1.0,
214  wsp2.get() + i * fnp0 * fnp1, fnp0, GP1->GetPtr().get(),
215  tnp1, 0.0, wsp1.get() + i * fnp0 * tnp1, fnp0);
216  }
217 
218  GP0 = PointsManager()[tpoints0]->GetGalerkinProjection(fpoints0);
219  Blas::Dgemm('N', 'N', tnp0, tnp1 * tnp2, fnp0, 1.0, GP0->GetPtr().get(),
220  tnp0, wsp1.get(), fnp0, 0.0, to, tnp0);
221 }

References Blas::Dgemm(), Nektar::LibUtilities::PointsKey::GetNumPoints(), and PointsManager().

◆ PointsManager()

PointsManagerT & Nektar::LibUtilities::PointsManager ( void  )

Definition at line 42 of file ManagerAccess.cpp.

43 {
44  static PointsManagerT instance;
45  return instance;
46 }
NekManager< PointsKey, Points< NekDouble >, PointsKey::opLess > PointsManagerT
Definition: ManagerAccess.h:50

Referenced by Nektar::LibUtilities::GaussPoints::CalculateGalerkinProjectionMatrix(), Nektar::LibUtilities::BLPoints::CreateMatrix(), Nektar::LibUtilities::FourierPoints::CreateMatrix(), Nektar::LibUtilities::FourierSingleModePoints::CreateMatrix(), Nektar::LibUtilities::GaussPoints::CreateMatrix(), Nektar::LibUtilities::Basis::GenBasis(), Nektar::StdRegions::StdNodalTriExp::GetNodalPoints(), Nektar::StdRegions::StdNodalPrismExp::GetNodalPoints(), Nektar::StdRegions::StdNodalTetExp::GetNodalPoints(), Interp1D(), Interp2D(), Interp3D(), PhysGalerkinProject1D(), PhysGalerkinProject2D(), PhysGalerkinProject3D(), Points_Create(), Nektar::MultiRegions::LocTraceToTraceMap::Setup(), Nektar::LibUtilities::NodalHexElec::v_CalculatePoints(), Nektar::LibUtilities::NodalPrismElec::v_CalculatePoints(), Nektar::LibUtilities::NodalPrismSPI::v_CalculatePoints(), Nektar::LibUtilities::NodalQuadElec::v_CalculatePoints(), Nektar::LibUtilities::PolyEPoints::v_CalculateWeights(), Nektar::SpatialDomains::SegGeom::v_FillGeom(), Nektar::SpatialDomains::TriGeom::v_FillGeom(), Nektar::LibUtilities::NodalPrismElec::v_GetI(), Nektar::LibUtilities::NodalPrismEvenlySpaced::v_GetI(), Nektar::LibUtilities::NodalTetElec::v_GetI(), Nektar::LibUtilities::NodalTetEvenlySpaced::v_GetI(), Nektar::LibUtilities::NodalTriElec::v_GetI(), Nektar::LibUtilities::NodalTriEvenlySpaced::v_GetI(), Nektar::LibUtilities::NodalTriFekete::v_GetI(), and Nektar::LibUtilities::PolyEPoints::v_GetI().

◆ PortablePath()

std::string Nektar::LibUtilities::PortablePath ( const boost::filesystem::path &  path)

◆ PrintProgressbar()

int Nektar::LibUtilities::PrintProgressbar ( const int  position,
const int  goal,
const std::string  message,
int  lastprogress = -1 
)
inline

Prints a progressbar.

Parameters
positionState of the current process
goalGoal of the current process
messageShort Description of the current process

This function plots a simple progressbar to the console or log file to visualize the current state of an ongoing process. Make sure you minimize calling this routine. Ideally, this should be called only when the percentage is increased by an integer.

Definition at line 67 of file Progressbar.hpp.

69 {
70  std::cout.unsetf(std::ios::floatfield);
71  if (ISTTY)
72  {
73  float progress = position / float(goal);
74  int numeq = static_cast<int>(ceil(progress * 49));
75  if (lastprogress == numeq)
76  {
77  return numeq;
78  }
79  else
80  {
81  // carriage return
82  std::cout << "\r";
83 
84  std::cout << message << ": ";
85 
86  std::cout << std::setw(3) << ceil(100 * progress) << "% [";
87  for (int j = 0; j < numeq; j++)
88  {
89  std::cout << "=";
90  }
91  for (int j = numeq; j < 49; j++)
92  {
93  std::cout << " ";
94  }
95  std::cout << "]" << std::flush;
96  return numeq;
97  }
98  }
99  else
100  {
101  // print only every 2 percent
102  if (int(ceil(double(100 * position / goal))) % 2 == 0)
103  {
104  std::cout << "." << std::flush;
105  }
106  return -1;
107  }
108 }
#define ISTTY
Definition: Progressbar.hpp:47

References ISTTY.

Referenced by Nektar::FieldUtils::Iso::GlobalCondense(), Nektar::FieldUtils::ProcessInterpField::PrintProgressbar(), Nektar::FieldUtils::ProcessInterpPointDataToFld::PrintProgressbar(), Nektar::FieldUtils::ProcessInterpPoints::PrintProgressbar(), Nektar::FieldUtils::ProcessInterpPtsToPts::PrintProgressbar(), Nektar::SolverUtils::SessionFunction::PrintProgressbar(), Nektar::SolverUtils::EquationSystem::PrintProgressbar(), and Nektar::FieldUtils::Iso::SeparateRegions().

◆ rad()

static NekDouble Nektar::LibUtilities::rad ( NekDouble  x,
NekDouble  y 
)
static

◆ REGISTER() [1/52]

Nektar::LibUtilities::REGISTER ( AdamsBashforth  )

◆ REGISTER() [2/52]

Nektar::LibUtilities::REGISTER ( AdamsBashforthOrder1  )

◆ REGISTER() [3/52]

Nektar::LibUtilities::REGISTER ( AdamsBashforthOrder2  )

◆ REGISTER() [4/52]

Nektar::LibUtilities::REGISTER ( AdamsBashforthOrder3  )

◆ REGISTER() [5/52]

Nektar::LibUtilities::REGISTER ( AdamsBashforthOrder4  )

◆ REGISTER() [6/52]

Nektar::LibUtilities::REGISTER ( AdamsMoulton  )

◆ REGISTER() [7/52]

Nektar::LibUtilities::REGISTER ( AdamsMoultonOrder1  )

◆ REGISTER() [8/52]

Nektar::LibUtilities::REGISTER ( AdamsMoultonOrder2  )

◆ REGISTER() [9/52]

Nektar::LibUtilities::REGISTER ( AdamsMoultonOrder3  )

◆ REGISTER() [10/52]

Nektar::LibUtilities::REGISTER ( AdamsMoultonOrder4  )

◆ REGISTER() [11/52]

Nektar::LibUtilities::REGISTER ( BackwardEuler  )

◆ REGISTER() [12/52]

Nektar::LibUtilities::REGISTER ( BDFImplicit  )

◆ REGISTER() [13/52]

Nektar::LibUtilities::REGISTER ( BDFImplicitOrder1  )

◆ REGISTER() [14/52]

Nektar::LibUtilities::REGISTER ( BDFImplicitOrder2  )

◆ REGISTER() [15/52]

Nektar::LibUtilities::REGISTER ( BDFImplicitOrder3  )

◆ REGISTER() [16/52]

Nektar::LibUtilities::REGISTER ( BDFImplicitOrder4  )

◆ REGISTER() [17/52]

Nektar::LibUtilities::REGISTER ( ClassicalRungeKutta4  )

◆ REGISTER() [18/52]

Nektar::LibUtilities::REGISTER ( CNAB  )

◆ REGISTER() [19/52]

Nektar::LibUtilities::REGISTER ( DIRK  )

◆ REGISTER() [20/52]

Nektar::LibUtilities::REGISTER ( DIRKOrder1  )

◆ REGISTER() [21/52]

Nektar::LibUtilities::REGISTER ( DIRKOrder2  )

◆ REGISTER() [22/52]

Nektar::LibUtilities::REGISTER ( DIRKOrder3  )

◆ REGISTER() [23/52]

Nektar::LibUtilities::REGISTER ( DIRKOrder3_ES5  )

◆ REGISTER() [24/52]

Nektar::LibUtilities::REGISTER ( DIRKOrder4_ES6  )

◆ REGISTER() [25/52]

Nektar::LibUtilities::REGISTER ( Euler  )

◆ REGISTER() [26/52]

Nektar::LibUtilities::REGISTER ( EulerExponential  )

◆ REGISTER() [27/52]

Nektar::LibUtilities::REGISTER ( ForwardEuler  )

◆ REGISTER() [28/52]

Nektar::LibUtilities::REGISTER ( IMEX  )

◆ REGISTER() [29/52]

Nektar::LibUtilities::REGISTER ( IMEXdirk  )

◆ REGISTER() [30/52]

Nektar::LibUtilities::REGISTER ( IMEXdirk_1_1_1  )

◆ REGISTER() [31/52]

Nektar::LibUtilities::REGISTER ( IMEXdirk_1_2_1  )

◆ REGISTER() [32/52]

Nektar::LibUtilities::REGISTER ( IMEXdirk_1_2_2  )

◆ REGISTER() [33/52]

Nektar::LibUtilities::REGISTER ( IMEXdirk_2_2_2  )

◆ REGISTER() [34/52]

Nektar::LibUtilities::REGISTER ( IMEXdirk_2_3_2  )

◆ REGISTER() [35/52]

Nektar::LibUtilities::REGISTER ( IMEXdirk_2_3_3  )

◆ REGISTER() [36/52]

Nektar::LibUtilities::REGISTER ( IMEXdirk_3_4_3  )

◆ REGISTER() [37/52]

Nektar::LibUtilities::REGISTER ( IMEXdirk_4_4_3  )

◆ REGISTER() [38/52]

Nektar::LibUtilities::REGISTER ( IMEXGear  )

◆ REGISTER() [39/52]

Nektar::LibUtilities::REGISTER ( IMEXOrder1  )

◆ REGISTER() [40/52]

Nektar::LibUtilities::REGISTER ( IMEXOrder2  )

◆ REGISTER() [41/52]

Nektar::LibUtilities::REGISTER ( IMEXOrder3  )

◆ REGISTER() [42/52]

Nektar::LibUtilities::REGISTER ( IMEXOrder4  )

◆ REGISTER() [43/52]

Nektar::LibUtilities::REGISTER ( MCNAB  )

◆ REGISTER() [44/52]

Nektar::LibUtilities::REGISTER ( RungeKutta  )

◆ REGISTER() [45/52]

Nektar::LibUtilities::REGISTER ( RungeKutta1  )

◆ REGISTER() [46/52]

Nektar::LibUtilities::REGISTER ( RungeKutta2  )

◆ REGISTER() [47/52]

Nektar::LibUtilities::REGISTER ( RungeKutta2_ImprovedEuler  )

◆ REGISTER() [48/52]

Nektar::LibUtilities::REGISTER ( RungeKutta2_SSP  )

◆ REGISTER() [49/52]

Nektar::LibUtilities::REGISTER ( RungeKutta3  )

◆ REGISTER() [50/52]

Nektar::LibUtilities::REGISTER ( RungeKutta3_SSP  )

◆ REGISTER() [51/52]

Nektar::LibUtilities::REGISTER ( RungeKutta4  )

◆ REGISTER() [52/52]

Nektar::LibUtilities::REGISTER ( RungeKutta5  )

◆ sign()

NekDouble Nektar::LibUtilities::sign ( NekDouble  arg)

Definition at line 70 of file Interpreter/Interpreter.cpp.

71 {
72  return (arg > 0.0) - (arg < 0.0);
73 }

Referenced by Nektar::LibUtilities::Interpreter::ExpressionEvaluator::ExpressionEvaluator(), and Nektar::LibUtilities::functions::functions().

◆ Write()

void Nektar::LibUtilities::Write ( const std::string &  outFile,
std::vector< FieldDefinitionsSharedPtr > &  fielddefs,
std::vector< std::vector< NekDouble >> &  fielddata,
const FieldMetaDataMap fieldinfomap,
const bool  backup 
)

This function allows for data to be written to an FLD file when a session and/or communicator is not instantiated. Typically used in utilities which do not take XML input and operate in serial only.

Parameters
outFileOutput filename
fielddefsField definitions that define the output
fielddataBinary field data that stores the output corresponding to fielddefs.
fieldinfomapAssociated field metadata map.

Definition at line 247 of file FieldIO.cpp.

251 {
252 #ifdef NEKTAR_USE_MPI
253  int size;
254  int init;
255  MPI_Initialized(&init);
256 
257  // If MPI has been initialised we can check the number of processes
258  // and, if > 1, tell the user he should not be running this
259  // function in parallel. If it is not initialised, we do not
260  // initialise it here, and assume the user knows what they are
261  // doing.
262  if (init)
263  {
264  MPI_Comm_size(MPI_COMM_WORLD, &size);
265  ASSERTL0(size == 1,
266  "This static function is not available in parallel. Please"
267  "instantiate a FieldIO object for parallel use.");
268  }
269 #endif
270  CommSharedPtr c = GetCommFactory().CreateInstance("Serial", 0, 0);
271  FieldIOSharedPtr f = GetFieldIOFactory().CreateInstance("Xml", c, false);
272  f->Write(outFile, fielddefs, fielddata, fieldinfomap, backup);
273 }

References ASSERTL0, Nektar::LibUtilities::NekFactory< tKey, tBase, tParam >::CreateInstance(), GetCommFactory(), and GetFieldIOFactory().

Referenced by main().

Variable Documentation

◆ BasisTypeMap

const char* const Nektar::LibUtilities::BasisTypeMap[]
Initial value:
= {
"NoBasisType", "Ortho_A", "Ortho_B",
"Ortho_C", "Modified_A", "Modified_B",
"Modified_C", "OrthoPyr_C", "ModifiedPyr_C",
"Fourier", "GLL_Lagrange", "Gauss_Lagrange",
"Legendre", "Chebyshev", "Monomial",
"FourierSingleMode", "FourierHalfModeRe", "FourierHalfModeIm"}

Definition at line 46 of file Foundations.hpp.

Referenced by export_Basis(), Nektar::LibUtilities::FieldIOXml::ImportFieldDefs(), operator<<(), Nektar::SpatialDomains::MeshGraph::ReadExpansionInfo(), Nektar::SolverUtils::DriverAdaptive::ReplaceExpansion(), and Nektar::LibUtilities::FieldIOXml::v_Write().

◆ EndianTypeMap

const std::string Nektar::LibUtilities::EndianTypeMap[]
Initial value:
= {"UnknownEndian", "BigEndian",
"LittleEndian", "BigWordEndian",
"LittleWordEndian"}

Definition at line 59 of file CompressData.h.

Referenced by Nektar::LibUtilities::CompressData::GetCompressString().

◆ fldCmdFormat

std::string Nektar::LibUtilities::fldCmdFormat
Initial value:
= SessionReader::RegisterCmdLineArgument(
"io-format", "i", "Default input/output format (e.g. Xml, Hdf5)")

Definition at line 66 of file FieldIO.cpp.

◆ functions_p

Nektar::LibUtilities::functions Nektar::LibUtilities::functions_p
static

◆ FunctionTypeMap

const char* const Nektar::LibUtilities::FunctionTypeMap[]
Initial value:
= {"No Function type", "Expression",
"File"}

Definition at line 100 of file SessionReader.h.

◆ kPointsTypeStr

const std::string Nektar::LibUtilities::kPointsTypeStr[]

◆ NodalTetElecAvailable

const unsigned int Nektar::LibUtilities::NodalTetElecAvailable = 10

Definition at line 68 of file NodalTetElecData.h.

◆ NodalTetElecData

const NekDouble Nektar::LibUtilities::NodalTetElecData[][9]
static

◆ NodalTetElecNPTS

const unsigned int Nektar::LibUtilities::NodalTetElecNPTS[NodalTetElecAvailable]
static
Initial value:
= {
1, 2, 3, 5, 6, 9, 11, 15, 18, 23}

Definition at line 69 of file NodalTetElecData.h.

Referenced by Nektar::LibUtilities::NodalTetElec::v_CalculatePoints().

◆ NodalTetSPIAvailable

const unsigned int Nektar::LibUtilities::NodalTetSPIAvailable = 10

Definition at line 42 of file NodalTetSPIData.h.

◆ NodalTetSPIData

const NekDouble Nektar::LibUtilities::NodalTetSPIData[][4]
static

◆ NodalTetSPINPTS

const unsigned int Nektar::LibUtilities::NodalTetSPINPTS[NodalTetSPIAvailable]
static
Initial value:
= {
1, 4, 8, 14, 14, 28, 36, 81, 121, 180}

Definition at line 43 of file NodalTetSPIData.h.

Referenced by Nektar::LibUtilities::NodalTetSPI::v_CalculatePoints(), and Nektar::LibUtilities::NodalTetSPI::v_CalculateWeights().

◆ NodalTriElecAvailable

const unsigned int Nektar::LibUtilities::NodalTriElecAvailable = 16

Definition at line 46 of file NodalTriElecData.h.

◆ NodalTriElecData

const NekDouble Nektar::LibUtilities::NodalTriElecData[][6]
static

◆ NodalTriElecNPTS

const unsigned int Nektar::LibUtilities::NodalTriElecNPTS[NodalTriElecAvailable]
static
Initial value:
= {
1, 2, 3, 4, 5, 7, 8, 10, 12, 14, 16, 19, 21, 24, 27, 30}

Definition at line 47 of file NodalTriElecData.h.

Referenced by Nektar::LibUtilities::NodalTriElec::v_CalculatePoints().

◆ NodalTriFeketeAvailable

const unsigned int Nektar::LibUtilities::NodalTriFeketeAvailable = 16

Definition at line 48 of file NodalTriFeketeData.h.

◆ NodalTriFeketeData

const NekDouble Nektar::LibUtilities::NodalTriFeketeData[][6]
static

◆ NodalTriFeketeNPTS

const unsigned int Nektar::LibUtilities::NodalTriFeketeNPTS[NodalTriFeketeAvailable]
static
Initial value:
= {
1, 2, 3, 4, 5, 7, 8, 10, 12, 14, 16, 19, 21, 24, 27, 30}

Definition at line 49 of file NodalTriFeketeData.h.

Referenced by Nektar::LibUtilities::NodalTriFekete::v_CalculatePoints().

◆ NodalTriSPIAvailable

const unsigned int Nektar::LibUtilities::NodalTriSPIAvailable = 10

Definition at line 42 of file NodalTriSPIData.h.

◆ NodalTriSPIData

const NekDouble Nektar::LibUtilities::NodalTriSPIData[][3]
static

◆ NodalTriSPINPTS

const unsigned int Nektar::LibUtilities::NodalTriSPINPTS[NodalTriSPIAvailable]
static
Initial value:
= {
1, 3, 6, 6, 7, 13, 16, 18, 22, 25}

Definition at line 43 of file NodalTriSPIData.h.

Referenced by Nektar::LibUtilities::NodalTriSPI::v_CalculatePoints(), and Nektar::LibUtilities::NodalTriSPI::v_CalculateWeights().

◆ NullBasisSharedPtr

BasisSharedPtr Nektar::LibUtilities::NullBasisSharedPtr
static

Definition at line 369 of file Basis.h.

Referenced by Nektar::MultiRegions::ExpList::v_GetHomogeneousBasis().

◆ NullBasisSharedPtr1DArray

Array<OneD, BasisSharedPtr> Nektar::LibUtilities::NullBasisSharedPtr1DArray
static

Definition at line 370 of file Basis.h.

◆ NullDomainRangeShPtr

DomainRangeShPtr Nektar::LibUtilities::NullDomainRangeShPtr
static

◆ NullFieldMetaDataMap

FieldMetaDataMap Nektar::LibUtilities::NullFieldMetaDataMap
static

◆ NullNekDoubleVector

std::vector<NekDouble> Nektar::LibUtilities::NullNekDoubleVector
static

Definition at line 964 of file SharedArray.hpp.

◆ NullPointsTypeVector

std::vector<LibUtilities::PointsType> Nektar::LibUtilities::NullPointsTypeVector
static

Definition at line 100 of file PointsType.h.

◆ NullPtsField

PtsFieldSharedPtr Nektar::LibUtilities::NullPtsField
static

◆ NullPtsInfoMap

std::map<PtsInfo, int> Nektar::LibUtilities::NullPtsInfoMap
static

◆ NullPtsMetaDataMap

PtsMetaDataMap Nektar::LibUtilities::NullPtsMetaDataMap
static

Definition at line 59 of file PtsIO.h.

◆ NullUnsignedIntVector

std::vector<unsigned int> Nektar::LibUtilities::NullUnsignedIntVector
static

◆ NullVectorNekDoubleVector

std::vector<std::vector<NekDouble> > Nektar::LibUtilities::NullVectorNekDoubleVector
static
Initial value:
= {
static std::vector< NekDouble > NullNekDoubleVector

Definition at line 966 of file SharedArray.hpp.

Referenced by Nektar::LibUtilities::FieldIOHdf5::v_Import(), and Nektar::LibUtilities::FieldIOXml::v_Import().

◆ perm12A_3d

const unsigned int Nektar::LibUtilities::perm12A_3d[12][4]
static
Initial value:
= {
{0, 1, 2, 3}, {0, 1, 3, 2}, {0, 2, 1, 3}, {0, 2, 3, 1},
{0, 3, 1, 2}, {0, 3, 2, 1}, {2, 0, 1, 3}, {2, 0, 3, 1},
{2, 3, 0, 1}, {3, 0, 1, 2}, {3, 0, 2, 1}, {3, 2, 0, 1}}

Definition at line 48 of file NodalTetElecData.h.

Referenced by Nektar::LibUtilities::NodalTetElec::v_CalculatePoints().

◆ perm12B_3d

const unsigned int Nektar::LibUtilities::perm12B_3d[12][4]
static
Initial value:
= {
{0, 1, 2, 3}, {0, 2, 1, 3}, {0, 2, 3, 1}, {1, 0, 2, 3},
{1, 2, 0, 3}, {1, 2, 3, 0}, {2, 0, 1, 3}, {2, 0, 3, 1},
{2, 1, 0, 3}, {2, 1, 3, 0}, {2, 3, 0, 1}, {2, 3, 1, 0}}

Definition at line 52 of file NodalTetElecData.h.

Referenced by Nektar::LibUtilities::NodalTetElec::v_CalculatePoints().

◆ perm12C_3d

const unsigned int Nektar::LibUtilities::perm12C_3d[12][4]
static
Initial value:
= {
{0, 1, 2, 3}, {0, 1, 3, 2}, {0, 3, 1, 2}, {1, 0, 2, 3},
{1, 0, 3, 2}, {1, 2, 0, 3}, {1, 2, 3, 0}, {1, 3, 0, 2},
{1, 3, 2, 0}, {3, 0, 1, 2}, {3, 1, 0, 2}, {3, 1, 2, 0}}

Definition at line 56 of file NodalTetElecData.h.

Referenced by Nektar::LibUtilities::NodalTetElec::v_CalculatePoints().

◆ perm24_3d

const unsigned int Nektar::LibUtilities::perm24_3d[24][4]
static
Initial value:
= {
{0, 1, 2, 3}, {0, 1, 3, 2}, {0, 2, 1, 3}, {0, 2, 3, 1}, {0, 3, 1, 2},
{0, 3, 2, 1}, {1, 0, 2, 3}, {1, 0, 3, 2}, {1, 2, 0, 3}, {1, 2, 3, 0},
{1, 3, 0, 2}, {1, 3, 2, 0}, {2, 0, 1, 3}, {2, 0, 3, 1}, {2, 1, 0, 3},
{2, 1, 3, 0}, {2, 3, 0, 1}, {2, 3, 1, 0}, {3, 0, 1, 2}, {3, 0, 2, 1},
{3, 1, 0, 2}, {3, 1, 2, 0}, {3, 2, 0, 1}, {3, 2, 1, 0}}

Definition at line 61 of file NodalTetElecData.h.

Referenced by Nektar::LibUtilities::NodalTetElec::v_CalculatePoints().

◆ perm3A_2d [1/2]

const unsigned int Nektar::LibUtilities::perm3A_2d[3][3]
static
Initial value:
= {
{0, 1, 2}, {2, 0, 1}, {0, 2, 1}}

Definition at line 39 of file NodalTriElecData.h.

Referenced by Nektar::LibUtilities::NodalTriElec::v_CalculatePoints(), and Nektar::LibUtilities::NodalTriFekete::v_CalculatePoints().

◆ perm3A_2d [2/2]

const unsigned int Nektar::LibUtilities::perm3A_2d[3][3]
static
Initial value:
= {
{0, 1, 2}, {2, 0, 1}, {0, 2, 1}}

Definition at line 39 of file NodalTriFeketeData.h.

◆ perm3B_2d [1/2]

const unsigned int Nektar::LibUtilities::perm3B_2d[3][3]
static
Initial value:
= {
{0, 1, 2}, {1, 0, 2}, {1, 2, 0}}

Definition at line 41 of file NodalTriElecData.h.

Referenced by Nektar::LibUtilities::NodalTriElec::v_CalculatePoints(), and Nektar::LibUtilities::NodalTriFekete::v_CalculatePoints().

◆ perm3B_2d [2/2]

const unsigned int Nektar::LibUtilities::perm3B_2d[3][3]
static
Initial value:
= {
{0, 1, 2}, {1, 0, 2}, {1, 2, 0}}

Definition at line 41 of file NodalTriFeketeData.h.

◆ perm3C_2d

const unsigned int Nektar::LibUtilities::perm3C_2d[3][3]
static
Initial value:
= {
{0, 1, 2}, {2, 0, 1}, {1, 2, 0}}

Definition at line 43 of file NodalTriFeketeData.h.

◆ perm4_3d

const unsigned int Nektar::LibUtilities::perm4_3d[4][4]
static
Initial value:
= {
{0, 1, 2, 3},
{3, 0, 1, 2},
{2, 3, 0, 1},
{1, 2, 3, 0}}

Definition at line 39 of file NodalTetElecData.h.

Referenced by Nektar::LibUtilities::NodalTetElec::v_CalculatePoints().

◆ perm6_2d [1/2]

const unsigned int Nektar::LibUtilities::perm6_2d[6][3]
static
Initial value:
= {
{0, 1, 2}, {1, 0, 2}, {2, 0, 1},
{2, 1, 0}, {0, 2, 1}, {1, 2, 0}}

Definition at line 43 of file NodalTriElecData.h.

Referenced by Nektar::LibUtilities::NodalTriElec::v_CalculatePoints(), and Nektar::LibUtilities::NodalTriFekete::v_CalculatePoints().

◆ perm6_2d [2/2]

const unsigned int Nektar::LibUtilities::perm6_2d[6][3]
static
Initial value:
= {
{0, 1, 2}, {1, 0, 2}, {2, 0, 1},
{2, 1, 0}, {0, 2, 1}, {1, 2, 0}}

Definition at line 45 of file NodalTriFeketeData.h.

◆ perm6_3d

const unsigned int Nektar::LibUtilities::perm6_3d[6][4]
static
Initial value:
= {
{0, 1, 2, 3}, {0, 2, 1, 3}, {0, 2, 3, 1},
{2, 0, 1, 3}, {2, 0, 3, 1}, {2, 3, 0, 1}}

Definition at line 44 of file NodalTetElecData.h.

Referenced by Nektar::LibUtilities::NodalTetElec::v_CalculatePoints().

◆ ReduceOperatorMap

const char* const Nektar::LibUtilities::ReduceOperatorMap[] = {"ReduceSum", "ReduceMax", "ReduceMin"}

Definition at line 74 of file Comm.h.

Referenced by export_Comm().

◆ ShapeTypeDimMap

constexpr unsigned int Nektar::LibUtilities::ShapeTypeDimMap[SIZE_ShapeType]
constexpr
Initial value:
= {
0,
0,
1,
2,
2,
3,
3,
3,
3,
}

Definition at line 85 of file ShapeType.hpp.

Referenced by Nektar::StdRegions::operator<<(), and Nektar::Collections::CollectionOptimisation::ReadCollOps().

◆ ShapeTypeMap

const char* const Nektar::LibUtilities::ShapeTypeMap[SIZE_ShapeType]