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

The above copyright notice and this permission notice shall be included. More...

Namespaces

 Collections
 
 detail
 
 FieldUtils
 
 GlobalMapping
 
 LibUtilities
 
 LocalRegions
 
 MultiRegions
 
 NekConstants
 
 RiemannTests
 
 SolverUtils
 
 SpatialDomains
 
 StdRegions
 The namespace associated with the the StdRegions library (StdRegions introduction)
 
 Thread
 

Classes

struct  OneD
 
struct  TwoD
 
struct  ThreeD
 
struct  FourD
 
class  FlagList
 Defines a list of flags. More...
 
class  ArrayInitializationPolicy
 
class  ArrayInitializationPolicy< ObjectType, typename std::enable_if< std::is_fundamental< ObjectType >::value >::type >
 
class  ArrayInitializationPolicy< ObjectType, typename std::enable_if<!std::is_fundamental< ObjectType >::value >::type >
 
class  ArrayDestructionPolicy
 
class  ArrayDestructionPolicy< ObjectType, typename std::enable_if< std::is_fundamental< ObjectType >::value >::type >
 
class  ArrayDestructionPolicy< ObjectType, typename std::enable_if<!std::is_fundamental< ObjectType >::value >::type >
 
struct  ConsistentObjectAccess
 
struct  ConsistentObjectAccess< DataType * >
 
struct  ConsistentObjectAccess< std::shared_ptr< DataType > >
 
class  ErrorUtil
 
struct  EnumHash
 
struct  PairHash
 
struct  PushBackFunctor
 Helper functors for holding a vector of numbers to be parsed by boost::spirit. More...
 
class  ParseUtils
 
struct  RawType
 
struct  RawType< std::shared_ptr< T > >
 
struct  RawType< const std::shared_ptr< T > >
 
struct  RawType< volatile std::shared_ptr< T > >
 
struct  RawType< const volatile std::shared_ptr< T > >
 
class  Array
 
class  Array< OneD, const DataType >
 1D Array of constant elements with garbage collection and bounds checking. More...
 
class  Array< TwoD, const DataType >
 2D array with garbage collection and bounds checking. More...
 
class  Array< OneD, DataType >
 1D Array More...
 
class  Array< TwoD, DataType >
 A 2D array. More...
 
class  NekMatrix< NekMatrix< DataType, InnerMatrixType >, BlockMatrixTag >
 
struct  CanGetRawPtr
 
struct  CanGetRawPtr< NekMatrix< T, StandardMatrixTag > >
 
struct  CanGetRawPtr< NekMatrix< NekMatrix< T, R >, ScaledMatrixTag > >
 
struct  CanGetRawPtr< NekMatrix< T, M > >
 
class  ConstMatrix
 
class  Matrix
 
struct  BandedMatrixFuncs
 
struct  FullMatrixFuncs
 
struct  TriangularMatrixFuncs
 
struct  UpperTriangularMatrixFuncs
 
struct  LowerTriangularMatrixFuncs
 
struct  SymmetricMatrixFuncs
 
struct  DiagonalMatrixFuncs
 
struct  TriangularBandedMatrixFuncs
 
struct  UpperTriangularBandedMatrixFuncs
 
struct  LowerTriangularBandedMatrixFuncs
 
struct  SymmetricBandedMatrixFuncs
 
struct  IsSharedPointer
 
struct  IsSharedPointer< std::shared_ptr< DataType > >
 
struct  LinearSystemSolver
 
class  LinearSystem
 
class  NekMatrix
 
class  NekPoint
 
class  NekVector
 
struct  IsVector
 
struct  IsVector< NekVector< DataType > >
 
class  NekMatrix< NekMatrix< DataType, InnerMatrixType >, ScaledMatrixTag >
 
class  NekSparseDiagBlkMatrix
 
class  NekSparseMatrix
 
class  StorageSmvBsr
 
class  NekMatrix< DataType, StandardMatrixTag >
 Standard Matrix. More...
 
class  MemoryManager
 General purpose memory allocation routines with the ability to allocate from thread specific memory pools. More...
 
class  MemPool
 
class  AcousticSystem
 
class  APE
 
class  LEE
 
class  AcousticSolver
 
class  APELaxFriedrichsSolver
 
class  APEUpwindSolver
 
class  LEELaxFriedrichsSolver
 
class  LEESolver
 
class  LEEUpwindSolver
 
class  CFLtester
 
class  EigenValuesAdvection
 
class  Helmholtz
 
class  Laplace
 
class  MMFAdvection
 
class  Poisson
 
class  Projection
 
class  SteadyAdvectionDiffusion
 
class  SteadyAdvectionDiffusionReaction
 
class  UnsteadyAdvection
 
class  UnsteadyAdvectionDiffusion
 
class  UnsteadyDiffusion
 
class  UnsteadyInviscidBurger
 
class  UnsteadyReactionDiffusion
 
class  UnsteadyViscousBurgers
 
class  CellModelAlievPanfilov
 Aliev Panfilov model. More...
 
class  CellModel
 Cell model base class. More...
 
class  CourtemancheRamirezNattel98
 
class  FentonKarma
 
class  CellModelFitzHughNagumo
 FitzHugh-Nagumo model. More...
 
class  Fox02
 
class  LuoRudy91
 
class  PanditGilesDemir03
 
class  TenTusscher06
 
class  Winslow99
 
class  Bidomain
 A model for cardiac conduction. More...
 
class  BidomainRoth
 A model for cardiac conduction. More...
 
class  Monodomain
 A model for cardiac conduction. More...
 
class  FilterBenchmark
 Records activation and repolarisation times. More...
 
class  FilterCellHistoryPoints
 
class  FilterCheckpointCellModel
 
class  FilterElectrogram
 
class  Protocol
 Protocol base class. More...
 
class  ProtocolS1
 Protocol base class. More...
 
class  ProtocolS1S2
 Protocol base class. More...
 
class  ProtocolSingle
 Protocol base class. More...
 
class  Stimulus
 Stimulus base class. More...
 
class  StimulusCirc
 Protocol base class. More...
 
class  StimulusPoint
 Protocol base class. More...
 
class  StimulusRect
 Protocol base class. More...
 
class  ArtificialDiffusion
 Encapsulates the artificial diffusion used in shock capture. More...
 
class  NonSmoothShockCapture
 Non Smooth artificial diffusion for shock capture for compressible flow problems. More...
 
class  CFSBndCond
 Encapsulates the user-defined boundary conditions for compressible flow solver. More...
 
class  ExtrapOrder0BC
 Extrapolation of order 0 for all the variables such that, at the boundaries, a trivial Riemann problem is solved. More...
 
class  IsentropicVortexBC
 Wall boundary conditions for compressible flow problems. More...
 
class  PressureInflowFileBC
 Pressure inflow boundary conditions for compressible flow problems where either the density and the velocities are assigned from a file or the full state is assigned from a file (depending on the problem type, either subsonic or supersonic). More...
 
class  PressureMachTemperatureBC
 Boundary condition in terms of pressure, Mach number and temperature. P should be defined in the "rho" entry, T in the "E" entry and the Mach number in each direction in the corresponding momentum variable. This state is converted to conserved variables and a Dirichlet condition is applied. More...
 
class  PressureOutflowBC
 Pressure outflow boundary conditions for compressible flow problems. More...
 
class  PressureOutflowNonReflectiveBC
 Pressure outflow non-reflective boundary conditions for compressible flow problems. More...
 
class  RiemannInvariantBC
 Outflow characteristic boundary conditions for compressible flow problems. More...
 
class  RinglebFlowBC
 Wall boundary conditions for compressible flow problems. More...
 
class  StagnationInflowBC
 Stagnation conditions inflow boundary conditions for compressible flow problems where the energy and density are prescribed. More...
 
class  SymmetryBC
 Symmetry boundary conditions for compressible flow problems. More...
 
class  TimeDependentBC
 Time dependent boundary condition. More...
 
class  WallBC
 Wall boundary conditions for compressible flow problems. More...
 
class  WallViscousBC
 Wall boundary conditions for viscous compressible flow problems. More...
 
class  DiffusionLDGNS
 
class  CompressibleFlowSystem
 
class  CFSImplicit
 
class  EulerCFE
 
class  EulerImplicitCFE
 
class  IsentropicVortex
 
class  NavierStokesCFE
 
class  NavierStokesCFEAxisym
 
class  NavierStokesImplicitCFE
 
class  RinglebFlow
 
class  ForcingAxiSymmetric
 
class  ForcingQuasi1D
 
class  EquationOfState
 Encapsulates equations of state allowing us to obtain thermodynamic properties: most relations are in the form X(rho,e) More...
 
class  IdealGasEoS
 Ideal gas equation of state: p = rho * R * T. More...
 
class  PengRobinsonEoS
 Peng-Robinson equation of state: p = RT/(1/rho - b) - a*Alpha(T/Tc) / (1/rho^2 + 2*b/rho - b^2) with a = 0.45724 * (R*Tc)^2 / Pc b = 0.0778 * (R*Tc) / Pc Alpha(T/Tc) = [1 + fw * (1 - sqrt(T/ Tc))]^2 fw = 0.37464 + 1.54226*omega - 0.2699*omega*omega. More...
 
class  RedlichKwongEoS
 Redlich-Kwong equation of state: p = RT/(1/rho - b) - a/( sqrt(T / Tc) * (1/rho^2 + b/rho) with a = 0.42748 * (R*Tc)^2 / Pc b = 0.08664 * (R*Tc) / Pc. More...
 
class  VanDerWaalsEoS
 van der Waals equation of state: p = RT/(1/rho - b) - a * rho^2 with a = 27/64 * (R*Tc)^2 / Pc b = 1/8 * (R*Tc) / Pc More...
 
class  VariableConverter
 
class  PreconCfs
 
class  PreconCfsBRJ
 
class  NekPreconCfsOperators
 
class  PreconCfsOp
 
class  AUSM0Solver
 
class  AUSM1Solver
 
class  AUSM2Solver
 
class  AUSM3Solver
 
class  AverageSolver
 
class  CompressibleSolver
 
class  ExactSolverToro
 
class  HLLCSolver
 
class  HLLSolver
 
class  LaxFriedrichsSolver
 
class  RoeSolver
 
class  RoeSolverSIMD
 
class  MMFDiffusion
 A model for cardiac conduction. More...
 
class  Dummy
 
class  ImageWarpingSystem
 
class  AdjointAdvection
 Advection for the adjoint form of the linearised Navier-Stokes equations. More...
 
class  AlternateSkewAdvection
 
class  LinearisedAdvection
 
class  NavierStokesAdvection
 
class  NoAdvection
 
class  SkewSymmetricAdvection
 
struct  coupledSolverMatrices
 
class  CoupledLinearNS
 
class  CoupledLocalToGlobalC0ContMap
 
class  Extrapolate
 
struct  HighOrderOutflow
 
struct  WomersleyParams
 
class  IncNavierStokes
 This class is the base class for Navier Stokes problems. More...
 
class  MappingExtrapolate
 
class  SmoothedProfileMethod
 
class  StandardExtrapolate
 
class  SubSteppingExtrapolate
 
class  SubSteppingExtrapolateWeakPressure
 
class  VCSMapping
 
class  VelocityCorrectionScheme
 
class  VCSWeakPressure
 
class  WeakPressureExtrapolate
 
class  FilterAeroForcesSPM
 
class  FilterMovingBody
 
class  ForcingMovingBody
 
class  ForcingStabilityCoupledLNS
 
class  CoupledAssemblyMap
 Modified version of MultiRegions::AssemblyMapCG that allows for coupled fields [u,v,w] instead of individual scalar fields u, v and w. More...
 
class  IterativeElasticSystem
 Class for iterative elastic system, in which linear elasticity is applied in substeps to attain a large deformation. More...
 
class  LinearElasticSystem
 Base class for linear elastic system. More...
 
class  MMFMaxwell
 
class  AInflow
 
class  BetaPressureArea
 
class  EmpiricalPressureArea
 
class  PowerPressureArea
 
class  PulseWaveBoundary
 
class  PulseWavePressureArea
 
class  PulseWavePropagation
 
struct  InterfacePoint
 
class  PulseWaveSystem
 Base class for unsteady solvers. More...
 
class  QInflow
 
class  RCROutflow
 
class  ROutflow
 
class  TemplatePressureArea
 
class  TerminalOutflow
 A global linear system. More...
 
class  TimeDependentInflow
 
class  UInflow
 A global linear system. More...
 
class  UndefinedInOutflow
 
class  UpwindPulseSolver
 
class  PulseWaveSystemOutput
 Base class for unsteady solvers. More...
 
class  LinearSWE
 
class  MMFSWE
 
class  NonlinearPeregrine
 
class  NonlinearSWE
 
class  ShallowWaterSystem
 Base class for unsteady solvers. More...
 
class  LinearAverageSolver
 
class  LinearHLLSolver
 
class  LinearSWESolver
 
class  NonlinearSWESolver
 
class  NoSolver
 
class  VortexWaveInteraction
 

Typedefs

typedef double NekDouble
 
typedef float NekSingle
 
typedef std::int32_t NekInt
 
typedef std::int32_t NekInt32
 
typedef std::int64_t NekInt64
 
typedef std::uint32_t NekUInt
 
typedef std::uint32_t NekUInt32
 
typedef std::uint64_t NekUInt64
 
template<typename T >
using RawType_t = typename RawType< T >::type
 
template<class T >
using TensorOfArray2D = Array< OneD, Array< OneD, T > >
 
template<class T >
using TensorOfArray3D = Array< OneD, Array< OneD, Array< OneD, T > >>
 
template<class T >
using TensorOfArray4D = Array< OneD, Array< OneD, Array< OneD, Array< OneD, T > >> >
 
template<class T >
using TensorOfArray5D = Array< OneD, Array< OneD, Array< OneD, Array< OneD, Array< OneD, T > >> >>
 
typedef std::shared_ptr< NekMatrix< NekDouble, StandardMatrixTag > > SharedNekMatrixPtr
 
typedef NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > DNekScalMat
 
typedef std::shared_ptr< DNekScalMatDNekScalMatSharedPtr
 
typedef std::shared_ptr< NekMatrix< NekSingle, StandardMatrixTag > > SharedSNekMatrixPtr
 
typedef NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag > SNekScalMat
 
typedef std::shared_ptr< SNekScalMatSNekScalMatSharedPtr
 
typedef NekVector< NekDoubleDNekVec
 
typedef NekMatrix< NekDouble, StandardMatrixTag > DNekMat
 
typedef NekMatrix< NekDouble, StandardMatrixTag > DenseMatrix
 
typedef NekMatrix< DenseMatrix, ScaledMatrixTag > ScaledMatrix
 
typedef NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, BlockMatrixTag > DNekBlkMat
 
typedef NekMatrix< DenseMatrix, BlockMatrixTag > BlockMatrix
 
typedef NekMatrix< NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, BlockMatrixTag >, BlockMatrixTag > BlkMatDNekBlkMat
 
typedef NekMatrix< NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag > DNekScalBlkMat
 
typedef NekMatrix< NekMatrix< NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag >, BlockMatrixTag > BlkMatDNekScalBlkMat
 
typedef std::shared_ptr< DNekMatDNekMatSharedPtr
 
typedef std::shared_ptr< DNekBlkMatDNekBlkMatSharedPtr
 
typedef std::shared_ptr< BlkMatDNekBlkMatBlkMatDNekBlkMatSharedPtr
 
typedef std::shared_ptr< DNekScalBlkMatDNekScalBlkMatSharedPtr
 
typedef std::shared_ptr< BlkMatDNekScalBlkMatBlkMatDNekScalBlkMatSharedPtr
 
typedef LinearSystem DNekLinSys
 
typedef std::shared_ptr< DNekLinSysDNekLinSysSharedPtr
 
typedef LinearSystem DNekScalLinSys
 
typedef std::shared_ptr< DNekScalLinSysDNekScalLinSysSharedPtr
 
typedef NekVector< NekSingleSNekVec
 
typedef NekMatrix< NekSingle, StandardMatrixTag > SNekMat
 
typedef NekMatrix< NekSingle, StandardMatrixTag > SDenseMatrix
 
typedef NekMatrix< SDenseMatrix, ScaledMatrixTag > SScaledMatrix
 
typedef NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, BlockMatrixTag > SNekBlkMat
 
typedef NekMatrix< SDenseMatrix, BlockMatrixTag > SBlockMatrix
 
typedef NekMatrix< NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, BlockMatrixTag >, BlockMatrixTag > BlkMatSNekBlkMat
 
typedef NekMatrix< NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag > SNekScalBlkMat
 
typedef NekMatrix< NekMatrix< NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag >, BlockMatrixTag > BlkMatSNekScalBlkMat
 
typedef std::shared_ptr< SNekMatSNekMatSharedPtr
 
typedef std::shared_ptr< SNekBlkMatSNekBlkMatSharedPtr
 
typedef std::shared_ptr< BlkMatSNekBlkMatBlkMatSNekBlkMatSharedPtr
 
typedef std::shared_ptr< SNekScalBlkMatSNekScalBlkMatSharedPtr
 
typedef std::shared_ptr< BlkMatSNekScalBlkMatBlkMatSNekScalBlkMatSharedPtr
 
typedef unsigned int IndexType
 
typedef Array< OneD, IndexTypeIndexVector
 
typedef std::pair< IndexType, IndexTypeCoordType
 
typedef NekDouble COOEntryType
 
typedef std::map< CoordType, NekDoubleCOOMatType
 
typedef COOMatType::const_iterator COOMatTypeConstIt
 
typedef std::shared_ptr< COOMatTypeCOOMatTypeSharedPtr
 
typedef Array< OneD, COOMatTypeCOOMatVector
 
typedef Array< OneD, NekDoubleBCOEntryType
 
typedef std::map< CoordType, BCOEntryTypeBCOMatType
 
typedef BCOMatType::const_iterator BCOMatTypeConstIt
 
typedef std::shared_ptr< BCOMatTypeBCOMatTypeSharedPtr
 
typedef Array< OneD, BCOMatTypeBCOMatVector
 
typedef std::vector< std::pair< std::string, std::string > > SummaryList
 
typedef std::shared_ptr< CellModelCellModelSharedPtr
 A shared pointer to an EquationSystem object. More...
 
typedef LibUtilities::NekFactory< std::string, CellModel, const LibUtilities::SessionReaderSharedPtr &, const MultiRegions::ExpListSharedPtr & > CellModelFactory
 Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class. More...
 
typedef std::shared_ptr< ProtocolProtocolSharedPtr
 A shared pointer to an EquationSystem object. More...
 
typedef LibUtilities::NekFactory< std::string, Protocol, const LibUtilities::SessionReaderSharedPtr &, const TiXmlElement * > ProtocolFactory
 Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class. More...
 
typedef std::shared_ptr< StimulusStimulusSharedPtr
 A shared pointer to an EquationSystem object. More...
 
typedef LibUtilities::NekFactory< std::string, Stimulus, const LibUtilities::SessionReaderSharedPtr &, const MultiRegions::ExpListSharedPtr &, const TiXmlElement * > StimulusFactory
 Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class. More...
 
typedef std::shared_ptr< ArtificialDiffusionArtificialDiffusionSharedPtr
 A shared pointer to a artificial diffusion object. More...
 
typedef LibUtilities::NekFactory< std::string, ArtificialDiffusion, const LibUtilities::SessionReaderSharedPtr &, const Array< OneD, MultiRegions::ExpListSharedPtr > &, const int > ArtificialDiffusionFactory
 Declaration of the artificial diffusion factory. More...
 
typedef std::shared_ptr< CFSBndCondCFSBndCondSharedPtr
 A shared pointer to a boundary condition object. More...
 
typedef LibUtilities::NekFactory< std::string, CFSBndCond, const LibUtilities::SessionReaderSharedPtr &, const Array< OneD, MultiRegions::ExpListSharedPtr > &, const Array< OneD, Array< OneD, NekDouble > > &, const int, const int, const int > CFSBndCondFactory
 Declaration of the boundary condition factory. More...
 
typedef std::shared_ptr< DiffusionLDGNSDiffusionLDGNSSharedPtr
 
typedef std::shared_ptr< EquationOfStateEquationOfStateSharedPtr
 A shared pointer to an equation of state object. More...
 
typedef LibUtilities::NekFactory< std::string, EquationOfState, const LibUtilities::SessionReaderSharedPtr & > EquationOfStateFactory
 Declaration of the equation of state factory. More...
 
using vec_t = tinysimd::simd< NekDouble >
 
typedef std::shared_ptr< VariableConverterVariableConverterSharedPtr
 
typedef std::shared_ptr< PreconCfsPreconCfsSharedPtr
 
typedef std::shared_ptr< PreconCfsOpPreconCfsOpSharedPtr
 
typedef LibUtilities::NekFactory< std::string, PreconCfsOp, const Array< OneD, MultiRegions::ExpListSharedPtr > &, const LibUtilities::SessionReaderSharedPtr &, const LibUtilities::CommSharedPtr & > PreconCfsOpFactory
 Declaration of the boundary condition factory. More...
 
typedef struct Nektar::coupledSolverMatrices CoupledSolverMatrices
 
typedef std::shared_ptr< CoupledLocalToGlobalC0ContMapCoupledLocalToGlobalC0ContMapSharedPtr
 
typedef std::shared_ptr< ExtrapolateExtrapolateSharedPtr
 
typedef LibUtilities::NekFactory< std::string, Extrapolate, const LibUtilities::SessionReaderSharedPtr &, Array< OneD, MultiRegions::ExpListSharedPtr > &, MultiRegions::ExpListSharedPtr &, const Array< OneD, int > &, const SolverUtils::AdvectionSharedPtr & > ExtrapolateFactory
 
typedef std::shared_ptr< HighOrderOutflowHighOrderOutflowSharedPtr
 
typedef std::complex< double > NekComplexDouble
 
typedef std::shared_ptr< WomersleyParamsWomersleyParamsSharedPtr
 
typedef std::shared_ptr< IncNavierStokesIncNavierStokesSharedPtr
 
typedef std::shared_ptr< MappingExtrapolateMappingExtrapolateSharedPtr
 
typedef std::shared_ptr< SmoothedProfileMethodSmoothedProfileMethodSharedPtr
 
typedef std::shared_ptr< StandardExtrapolateStandardExtrapolateSharedPtr
 
typedef std::shared_ptr< SubSteppingExtrapolateSubSteppingExtrapolateSharedPtr
 
typedef std::shared_ptr< SubSteppingExtrapolateWeakPressureSubSteppingExtrapolateWeakPressureSharedPtr
 
typedef std::shared_ptr< VCSMappingVCSMappingSharedPtr
 
typedef std::shared_ptr< VelocityCorrectionSchemeVelocityCorrectionSchemeSharedPtr
 
typedef std::shared_ptr< VCSWeakPressureVCSWeakPressureSharedPtr
 
typedef std::shared_ptr< WeakPressureExtrapolateWeakPressureExtrapolateSharedPtr
 
typedef std::shared_ptr< FilterAeroForcesSPMFilterAeroForcesSPMSharedPtr
 
typedef std::shared_ptr< FilterMovingBodyFilterMovingBodySharedPtr
 
typedef std::map< std::string, std::string > FilterParams
 
typedef std::pair< std::string, FilterParamsFilterMap
 
typedef std::shared_ptr< CoupledAssemblyMapCoupledAssemblyMapSharedPtr
 
typedef std::shared_ptr< AInflowAInflowSharedPtr
 
typedef std::shared_ptr< BetaPressureAreaBetaPressureAreaSharedPtr
 
typedef std::shared_ptr< EmpiricalPressureAreaEmpiricalPressureAreaSharedPtr
 
typedef std::shared_ptr< PowerPressureAreaPowerPressureAreaSharedPtr
 
typedef std::shared_ptr< PulseWaveBoundaryPulseWaveBoundarySharedPtr
 
typedef LibUtilities::NekFactory< std::string, PulseWaveBoundary, Array< OneD, MultiRegions::ExpListSharedPtr > &, const LibUtilities::SessionReaderSharedPtr &, PulseWavePressureAreaSharedPtr & > BoundaryFactory
 
typedef std::shared_ptr< PulseWavePressureAreaPulseWavePressureAreaSharedPtr
 
typedef LibUtilities::NekFactory< std::string, PulseWavePressureArea, Array< OneD, MultiRegions::ExpListSharedPtr > &, const LibUtilities::SessionReaderSharedPtr & > PressureAreaFactory
 
typedef std::shared_ptr< InterfacePointInterfacePointShPtr
 
typedef std::shared_ptr< PulseWaveSystemPulseWaveSystemSharedPtr
 
typedef std::shared_ptr< QInflowQInflowSharedPtr
 
typedef std::shared_ptr< RCROutflowRCROutflowSharedPtr
 
typedef std::shared_ptr< ROutflowROutflowSharedPtr
 
typedef std::shared_ptr< TemplatePressureAreaTemplatePressureAreaSharedPtr
 
typedef std::shared_ptr< TerminalOutflowTerminalOutflowSharedPtr
 Pointer to a PulseWaveOutflow object. More...
 
typedef std::shared_ptr< TimeDependentInflowTimeDependentInflowSharedPtr
 
typedef std::shared_ptr< UInflowUInflowSharedPtr
 Pointer to a PulseWaveOutflow object. More...
 
typedef std::shared_ptr< UndefinedInOutflowUndefinedInOutflowSharedPtr
 
typedef std::shared_ptr< PulseWaveSystemOutputPulseWaveSystemOutputSharedPtr
 

Enumerations

enum  Direction { xDir = 0 , yDir = 1 , zDir = 2 }
 
enum  OutputFormat {
  eTecplot , eTecplotZones , eTecplotSingleBlock , eGmsh ,
  eGnuplot
}
 
enum  FlagType { eUseGlobal }
 Enumeration of flags for passing a list of options. More...
 
enum  AllowWrappingOfConstArrays { eVECTOR_WRAPPER }
 
enum  MatrixStorage {
  eFULL , eDIAGONAL , eUPPER_TRIANGULAR , eLOWER_TRIANGULAR ,
  eSYMMETRIC , ePOSITIVE_DEFINITE_SYMMETRIC , eBANDED , eSYMMETRIC_BANDED ,
  ePOSITIVE_DEFINITE_SYMMETRIC_BANDED , eUPPER_TRIANGULAR_BANDED , eLOWER_TRIANGULAR_BANDED
}
 
enum  PointerWrapper { eWrapper , eCopy }
 Specifies if the pointer passed to a NekMatrix or NekVector is copied into an internal representation or used directly. More...
 
enum  PrecType { eNull , eDiagonal , eSparse }
 
enum  TestType {
  eTestPlane , eTestCube , eTestLinearSphere , eTestNonlinearSphere ,
  eFHNStandard , eFHNRogers , eFHNAlievPanf , SIZE_TestType ,
  eTestPlane , eTestSteadyZonal , eTestUnsteadyZonal , eTestIsolatedMountain ,
  eTestUnstableJet , eTestRossbyWave , SIZE_TestType
}
 
enum  InitWaveType {
  eLeft , eBothEnds , eCenter , eLeftBottomCorner ,
  ePoint , eSpiralDock , SIZE_InitWaveType
}
 
enum  HBCType { eNOHBC , eHBCNeumann , eOBC , eConvectiveOBC }
 
enum  EquationType {
  eNoEquationType , eSteadyStokes , eSteadyOseen , eSteadyLinearisedNS ,
  eUnsteadyStokes , eUnsteadyLinearisedNS , eUnsteadyNavierStokes , eSteadyNavierStokes ,
  eEquationTypeSize
}
 
enum  AdvectionForm {
  eNoAdvectionForm , eConvective , eNonConservative , eLinearised ,
  eAdjoint , eSkewSymmetric , eNoAdvection , eAdvectionFormSize
}
 
enum  UpwindTypePulse { eNotSetPulse , eUpwindPulse , SIZE_UpwindTypePulse }
 
enum  TestType {
  eTestPlane , eTestCube , eTestLinearSphere , eTestNonlinearSphere ,
  eFHNStandard , eFHNRogers , eFHNAlievPanf , SIZE_TestType ,
  eTestPlane , eTestSteadyZonal , eTestUnsteadyZonal , eTestIsolatedMountain ,
  eTestUnstableJet , eTestRossbyWave , SIZE_TestType
}
 
enum  ProblemType { eGeneral , eSolitaryWave , SIZE_ProblemType }
 
enum  VWIIterationType {
  eFixedAlpha , eFixedWaveForcing , eFixedAlphaWaveForcing , eFixedWaveForcingWithSubIterationOnAlpha ,
  eVWIIterationTypeSize
}
 

Functions

template<typename Dim , typename DataType , typename ExtentListType >
std::shared_ptr< boost::multi_array_ref< DataType, Dim::Value > > CreateStorage (const ExtentListType &extent)
 
template<typename DataType >
std::shared_ptr< boost::multi_array_ref< DataType, 1 > > CreateStorage (size_t d1)
 
template<typename DataType >
std::shared_ptr< boost::multi_array_ref< DataType, 2 > > CreateStorage (size_t d1, size_t d2)
 
template<typename DataType >
std::shared_ptr< boost::multi_array_ref< DataType, 3 > > CreateStorage (size_t d1, size_t d2, size_t d3)
 
void hash_combine (std::size_t &seed)
 
template<typename T , typename... Args>
void hash_combine (std::size_t &seed, const T &v, Args... args)
 
template<typename T , typename... Args>
std::size_t hash_combine (const T &v, Args... args)
 
template<typename Iter >
std::size_t hash_range (Iter first, Iter last)
 
template<typename Iter >
void hash_range (std::size_t &seed, Iter first, Iter last)
 
template<typename T >
bool IsEqualImpl (const T &lhs, const T &rhs, std::false_type)
 
template<typename T >
bool IsEqualImpl (const T &lhs, const T &rhs, std::true_type)
 
template<typename T >
bool IsEqual (const T &lhs, const T &rhs)
 
template<typename T1 , typename T2 >
bool operator== (const Array< OneD, T1 > &lhs, const Array< OneD, T2 > &rhs)
 
template<typename T1 , typename T2 >
bool operator!= (const Array< OneD, T1 > &lhs, const Array< OneD, T2 > &rhs)
 
template<typename DataType >
Array< OneD, DataType > operator+ (const Array< OneD, DataType > &lhs, typename Array< OneD, DataType >::size_type offset)
 
template<typename DataType >
Array< OneD, DataType > operator+ (typename Array< OneD, DataType >::size_type offset, const Array< OneD, DataType > &rhs)
 
template<typename ConstDataType , typename DataType >
void CopyArray (const Array< OneD, ConstDataType > &source, Array< OneD, DataType > &dest)
 
template<typename ConstDataType , typename DataType >
void CopyArrayN (const Array< OneD, ConstDataType > &source, Array< OneD, DataType > &dest, typename Array< OneD, DataType >::size_type n)
 
template<typename T1 , typename T2 >
bool operator== (const Array< TwoD, T1 > &lhs, const Array< TwoD, T2 > &rhs)
 
template<typename T1 , typename T2 >
bool operator!= (const Array< TwoD, T1 > &lhs, const Array< TwoD, T2 > &rhs)
 
template<typename InnerMatrixType >
NekMatrix< InnerMatrixType, BlockMatrixTag > Transpose (NekMatrix< InnerMatrixType, BlockMatrixTag > &rhs)
 
template<typename ResultDataType , typename LhsDataType , typename LhsMatrixType >
void Multiply (NekMatrix< ResultDataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const ResultDataType &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (Multiply, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(1,(DNekMat &)),(1,(const NekDouble &))) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(Multiply
 
template<typename DataType , typename LhsDataType , typename LhsMatrixType >
SNekMat const NekSingle &NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Multiply (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const DataType &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (Multiply, NEKTAR_ALL_MATRIX_TYPES,(1,(DNekMat)),(0,()),(1,(const NekDouble &))) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(Multiply
 
template<typename RhsDataType , typename RhsMatrixType , typename ResultDataType >
const NekSingle &void Multiply (NekMatrix< ResultDataType, StandardMatrixTag > &result, const ResultDataType &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (Multiply, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(2,(DNekMat &, const NekDouble &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(Multiply
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
SNekMat const NekSingle NekMatrix< typename NekMatrix< RhsDataType, RhsMatrixType >::NumberType, StandardMatrixTag > Multiply (const DataType &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (Multiply, NEKTAR_ALL_MATRIX_TYPES,(1,(DNekMat)),(1,(const NekDouble &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(Multiply
 
template<typename LhsDataType >
const NekSingle void MultiplyEqual (NekMatrix< LhsDataType, StandardMatrixTag > &lhs, typename boost::call_traits< LhsDataType >::const_reference rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (MultiplyEqual,(1,(DNekMat &)),(1,(void)),(0,()),(1,(const NekDouble &))) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(MultiplyEqual
 
template<typename ResultType , typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
SNekMat const NekSingle &void NekMultiplyDefaultImpl (NekMatrix< ResultType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename ResultType , typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
void NekMultiplyFullMatrixFullMatrix (NekMatrix< ResultType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename LhsDataType , typename RhsDataType , typename DataType , typename LhsMatrixType , typename RhsMatrixType >
void Multiply (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES (Multiply, NEKTAR_ALL_MATRIX_TYPES, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(1,(DNekMat &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES(Multiply
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
SNekMat void AddEqual (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
void AddEqualNegatedLhs (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (AddEqual, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(1,(DNekMat &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(AddEqual
 
template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
SNekMat SNekMat void Add (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
void AddNegatedLhs (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES (Add, NEKTAR_ALL_MATRIX_TYPES, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(1,(DNekMat &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES(Add
 
template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
SNekMat SNekMat NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Add (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES (Add, NEKTAR_ALL_MATRIX_TYPES, NEKTAR_ALL_MATRIX_TYPES,(1,(DNekMat)),(0,()),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES(Add
 
template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
void Subtract (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
void SubtractNegatedLhs (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES (Subtract, NEKTAR_ALL_MATRIX_TYPES, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(1,(DNekMat &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES(Subtract
 
SNekMat NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES (SubtractNegatedLhs, NEKTAR_ALL_MATRIX_TYPES, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(1,(DNekMat &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES(SubtractNegatedLhs
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
SNekMat SNekMat void SubtractEqual (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
void SubtractEqualNegatedLhs (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (SubtractEqual, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(1,(DNekMat &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(SubtractEqual
 
SNekMat NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (SubtractEqualNegatedLhs, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(1,(DNekMat &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(SubtractEqualNegatedLhs
 
template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
SNekMat SNekMat NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Subtract (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES (Subtract, NEKTAR_ALL_MATRIX_TYPES, NEKTAR_ALL_MATRIX_TYPES,(1,(DNekMat)),(0,()),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES(Subtract
 
template<typename DataType , typename LhsDataType , typename MatrixType >
NekVector< DataType > Multiply (const NekMatrix< LhsDataType, MatrixType > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void Multiply (NekVector< DataType > &result, const NekMatrix< LhsDataType, MatrixType > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType , typename LhsInnerMatrixType >
void Multiply (NekVector< DataType > &result, const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
NekVector< DataType > operator* (const NekMatrix< LhsDataType, MatrixType > &lhs, const NekVector< DataType > &rhs)
 
void DiagonalBlockFullScalMatrixMultiply (NekVector< double > &result, const NekMatrix< NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag > &lhs, const NekVector< double > &rhs)
 
void DiagonalBlockFullScalMatrixMultiply (NekVector< NekSingle > &result, const NekMatrix< NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag > &lhs, const NekVector< NekSingle > &rhs)
 
template<typename DataType , typename LhsDataType , typename LhsMatrixType >
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Multiply (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const DataType &rhs)
 
template<typename RhsDataType , typename RhsMatrixType , typename ResultDataType >
void Multiply (NekMatrix< ResultDataType, StandardMatrixTag > &result, const ResultDataType &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< RhsDataType, RhsMatrixType >::NumberType, StandardMatrixTag > Multiply (const DataType &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< RhsDataType, RhsMatrixType >::NumberType, StandardMatrixTag > operator* (const DataType &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< RhsDataType, RhsMatrixType >::NumberType, StandardMatrixTag > operator* (const NekMatrix< RhsDataType, RhsMatrixType > &lhs, const DataType &rhs)
 
template<typename LhsDataType >
void MultiplyEqual (NekMatrix< LhsDataType, StandardMatrixTag > &lhs, typename boost::call_traits< LhsDataType >::const_reference rhs)
 
template<typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
void NekMultiplyFullMatrixFullMatrix (NekMatrix< LhsDataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs, typename std::enable_if< CanGetRawPtr< NekMatrix< LhsDataType, LhsMatrixType >>::value &&CanGetRawPtr< NekMatrix< RhsDataType, RhsMatrixType >>::value >::type *p=0)
 
template<typename RhsInnerType , typename RhsMatrixType >
void MultiplyEqual (NekMatrix< RhsInnerType, StandardMatrixTag > &result, const NekMatrix< RhsInnerType, RhsMatrixType > &rhs, typename std::enable_if< std::is_same< RawType_t< typename NekMatrix< RhsInnerType, RhsMatrixType >::NumberType >, RhsInnerType >::value &&CanGetRawPtr< NekMatrix< RhsInnerType, RhsMatrixType >>::value >::type *t=0)
 
template<typename DataType , typename RhsInnerType , typename RhsMatrixType >
void MultiplyEqual (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsInnerType, RhsMatrixType > &rhs, typename std::enable_if< !std::is_same< RawType_t< typename NekMatrix< RhsInnerType, RhsMatrixType >::NumberType >, DataType >::value||!CanGetRawPtr< NekMatrix< RhsInnerType, RhsMatrixType >>::value >::type *t=0)
 
template<typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
NekMatrix< typename std::remove_const< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType >::type, StandardMatrixTag > Multiply (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
NekMatrix< typename std::remove_const< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType >::type, StandardMatrixTag > operator* (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
void AddEqual (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
void Add (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Add (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > operator+ (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
void SubtractEqual (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Subtract (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > operator- (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void NekMultiplyUnspecializedMatrixType (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void NekMultiplyDiagonalMatrix (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
 
template<typename DataType , typename LhsDataType >
void NekMultiplyDiagonalMatrix (DataType *result, const NekMatrix< LhsDataType, StandardMatrixTag > &lhs, const DataType *rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void NekMultiplyBandedMatrix (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs, typename std::enable_if< CanGetRawPtr< NekMatrix< LhsDataType, MatrixType >>::value >::type *p=0)
 
template<typename DataType , typename LhsDataType >
void NekMultiplyBandedMatrix (DataType *result, const NekMatrix< LhsDataType, BlockMatrixTag > &lhs, const DataType *rhs, typename std::enable_if< !CanGetRawPtr< NekMatrix< LhsDataType, BlockMatrixTag >>::value >::type *p=0)
 
template<typename DataType , typename LhsInnerMatrixType >
void FullBlockMatrixMultiply (NekVector< DataType > &result, const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType , typename LhsInnerMatrixType >
void DiagonalBlockMatrixMultiply (NekVector< DataType > &result, const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType >
void NekMultiplyLowerTriangularMatrix (DataType *result, const NekMatrix< DataType, StandardMatrixTag > &lhs, const DataType *rhs)
 
template<typename DataType >
void NekMultiplyLowerTriangularMatrix (DataType *result, const NekMatrix< NekMatrix< DataType, StandardMatrixTag >, ScaledMatrixTag > &lhs, const DataType *rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void NekMultiplyLowerTriangularMatrix (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
 
template<typename DataType >
void NekMultiplyUpperTriangularMatrix (DataType *result, const NekMatrix< DataType, StandardMatrixTag > &lhs, const DataType *rhs)
 
template<typename DataType >
void NekMultiplyUpperTriangularMatrix (DataType *result, const NekMatrix< NekMatrix< DataType, StandardMatrixTag >, ScaledMatrixTag > &lhs, const DataType *rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void NekMultiplyUpperTriangularMatrix (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
 
template<typename DataType , typename InnerMatrixType , typename MatrixTag >
void NekMultiplySymmetricMatrix (DataType *result, const NekMatrix< InnerMatrixType, MatrixTag > &lhs, const DataType *rhs, typename std::enable_if< CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag >>::value >::type *p=0)
 
template<typename DataType , typename InnerMatrixType , typename MatrixTag >
void NekMultiplySymmetricMatrix (DataType *result, const NekMatrix< InnerMatrixType, MatrixTag > &lhs, const DataType *rhs, typename std::enable_if< !CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag >>::value >::type *p=0)
 
template<typename DataType , typename InnerMatrixType , typename MatrixTag >
void NekMultiplyFullMatrix (DataType *result, const NekMatrix< InnerMatrixType, MatrixTag > &lhs, const DataType *rhs, typename std::enable_if< CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag >>::value >::type *p=0)
 
template<typename DataType , typename InnerMatrixType , typename MatrixTag >
void NekMultiplyFullMatrix (DataType *result, const NekMatrix< InnerMatrixType, MatrixTag > &lhs, const DataType *rhs, typename std::enable_if< !CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag >>::value >::type *p=0)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void Multiply (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (Multiply, NEKTAR_STANDARD_AND_SCALED_MATRICES,(1,(void)),(1,(NekVector< NekDouble > &)),(1,(const NekVector< NekDouble > &))) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(Multiply
 
template<typename DataType , typename LhsInnerMatrixType >
NekVector< NekSingle > const NekVector< NekSingle > &void Multiply (NekVector< DataType > &result, const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &lhs, const NekVector< DataType > &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (Multiply, NEKTAR_BLOCK_MATRIX_TYPES,(1,(void)),(1,(NekVector< NekDouble > &)),(1,(const NekVector< NekDouble > &))) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(Multiply
 
template<typename DataType , typename LhsDataType , typename MatrixType >
NekVector< NekSingle > const NekVector< NekSingle > &NekVector< DataType > Multiply (const NekMatrix< LhsDataType, MatrixType > &lhs, const NekVector< DataType > &rhs)
 
 NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (Multiply, NEKTAR_ALL_MATRIX_TYPES,(1,(NekVector< NekDouble >)),(0,()),(1,(const NekVector< NekDouble > &))) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(Multiply
 
template<typename DataType >
std::vector< NekVector< DataType > > GramSchmidtOrthogonalization (const std::vector< NekVector< DataType >> &x)
 Calculates the orthogonal, normalized vectors from linearly independent input. More...
 
template<typename DataType , typename FormType >
std::ostream & operator<< (std::ostream &os, const NekMatrix< DataType, FormType > &rhs)
 
template<typename DataType , typename FormType >
std::ostream & operator>> (std::ostream &os, const NekMatrix< DataType, FormType > &rhs)
 
template<typename DataType >
void negate (NekPoint< DataType > &rhs)
 
template<typename DataType >
NekPoint< DataType > operator+ (const NekPoint< DataType > &lhs, const NekPoint< DataType > &rhs)
 
template<typename DataType >
NekPoint< DataType > operator+ (typename boost::call_traits< DataType >::const_reference lhs, const NekPoint< DataType > &rhs)
 
template<typename DataType >
NekPoint< DataType > operator+ (const NekPoint< DataType > &lhs, typename boost::call_traits< DataType >::const_reference rhs)
 
template<typename DataType >
NekPoint< DataType > operator- (const NekPoint< DataType > &lhs, const NekPoint< DataType > &rhs)
 
template<typename DataType >
NekPoint< DataType > operator- (typename boost::call_traits< DataType >::const_reference lhs, const NekPoint< DataType > &rhs)
 
template<typename DataType >
NekPoint< DataType > operator- (const NekPoint< DataType > &lhs, typename boost::call_traits< DataType >::const_reference rhs)
 
template<typename DataType , typename dim , typename space , typename ScalarType >
NekPoint< DataType > operator* (const ScalarType &lhs, const NekPoint< DataType > &rhs)
 
template<typename DataType , typename dim , typename space , typename ScalarType >
NekPoint< DataType > operator* (const NekPoint< DataType > &lhs, const ScalarType &rhs)
 
template<typename DataType >
NekPoint< DataType > operator/ (const NekPoint< DataType > &lhs, typename boost::call_traits< DataType >::param_type rhs)
 
template<typename DataType >
boost::call_traits< DataType >::value_type distanceBetween (const NekPoint< DataType > &lhs, const NekPoint< DataType > &rhs)
 
template<typename DataType >
bool fromString (const std::string &str, NekPoint< DataType > &result)
 
template<typename DataType >
std::ostream & operator<< (std::ostream &os, const NekPoint< DataType > &p)
 
template<typename DataType >
void Add (NekVector< DataType > &result, const NekVector< DataType > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType >
void AddNegatedLhs (NekVector< DataType > &result, const NekVector< DataType > &lhs, const NekVector< DataType > &rhs)
 
template void Add (NekVector< NekDouble > &result, const NekVector< NekDouble > &lhs, const NekVector< NekDouble > &rhs)
 
template void AddNegatedLhs (NekVector< NekDouble > &result, const NekVector< NekDouble > &lhs, const NekVector< NekDouble > &rhs)
 
template void Add (NekVector< NekSingle > &result, const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)
 
template void AddNegatedLhs (NekVector< NekSingle > &result, const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)
 
template<typename DataType >
void AddEqual (NekVector< DataType > &result, const NekVector< DataType > &rhs)
 
template<typename DataType >
void AddEqualNegatedLhs (NekVector< DataType > &result, const NekVector< DataType > &rhs)
 
template void AddEqual (NekVector< NekDouble > &result, const NekVector< NekDouble > &rhs)
 
template void AddEqualNegatedLhs (NekVector< NekDouble > &result, const NekVector< NekDouble > &rhs)
 
template void AddEqual (NekVector< NekSingle > &result, const NekVector< NekSingle > &rhs)
 
template void AddEqualNegatedLhs (NekVector< NekSingle > &result, const NekVector< NekSingle > &rhs)
 
template<typename LhsDataType , typename RhsDataType >
NekVector< LhsDataType > Add (const NekVector< LhsDataType > &lhs, const NekVector< RhsDataType > &rhs)
 
template NekVector< NekDoubleAdd (const NekVector< NekDouble > &lhs, const NekVector< NekDouble > &rhs)
 
template NekVector< NekSingleAdd (const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)
 
template<typename ResultDataType , typename InputDataType >
void Subtract (NekVector< ResultDataType > &result, const NekVector< InputDataType > &lhs, const NekVector< InputDataType > &rhs)
 
template<typename ResultDataType , typename InputDataType >
void SubtractNegatedLhs (NekVector< ResultDataType > &result, const NekVector< InputDataType > &lhs, const NekVector< InputDataType > &rhs)
 
template void Subtract (NekVector< NekDouble > &result, const NekVector< NekDouble > &lhs, const NekVector< NekDouble > &rhs)
 
template void SubtractNegatedLhs (NekVector< NekDouble > &result, const NekVector< NekDouble > &lhs, const NekVector< NekDouble > &rhs)
 
template void Subtract (NekVector< NekSingle > &result, const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)
 
template void SubtractNegatedLhs (NekVector< NekSingle > &result, const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)
 
template<typename ResultDataType , typename InputDataType >
void SubtractEqual (NekVector< ResultDataType > &result, const NekVector< InputDataType > &rhs)
 
template<typename ResultDataType , typename InputDataType >
void SubtractEqualNegatedLhs (NekVector< ResultDataType > &result, const NekVector< InputDataType > &rhs)
 
template void SubtractEqual (NekVector< NekDouble > &result, const NekVector< NekDouble > &rhs)
 
template void SubtractEqualNegatedLhs (NekVector< NekDouble > &result, const NekVector< NekDouble > &rhs)
 
template void SubtractEqual (NekVector< NekSingle > &result, const NekVector< NekSingle > &rhs)
 
template void SubtractEqualNegatedLhs (NekVector< NekSingle > &result, const NekVector< NekSingle > &rhs)
 
template<typename DataType >
NekVector< DataType > Subtract (const NekVector< DataType > &lhs, const NekVector< DataType > &rhs)
 
template NekVector< NekDoubleSubtract (const NekVector< NekDouble > &lhs, const NekVector< NekDouble > &rhs)
 
template NekVector< NekSingleSubtract (const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)
 
template<typename ResultDataType , typename InputDataType >
void Divide (NekVector< ResultDataType > &result, const NekVector< InputDataType > &lhs, const NekDouble &rhs)
 
template<typename ResultDataType , typename InputDataType >
void Divide (NekVector< ResultDataType > &result, const NekVector< InputDataType > &lhs, const NekSingle &rhs)
 
template void Divide (NekVector< NekDouble > &result, const NekVector< NekDouble > &lhs, const NekDouble &rhs)
 
template void Divide (NekVector< NekSingle > &result, const NekVector< NekSingle > &lhs, const NekSingle &rhs)
 
template<typename ResultDataType >
void DivideEqual (NekVector< ResultDataType > &result, const NekDouble &rhs)
 
template<typename ResultDataType >
void DivideEqual (NekVector< ResultDataType > &result, const NekSingle &rhs)
 
template void DivideEqual (NekVector< NekDouble > &result, const NekDouble &rhs)
 
template void DivideEqual (NekVector< NekSingle > &result, const NekSingle &rhs)
 
template<typename DataType >
NekVector< DataType > Divide (const NekVector< DataType > &lhs, const NekDouble &rhs)
 
template<typename DataType >
NekVector< DataType > Divide (const NekVector< DataType > &lhs, const NekSingle &rhs)
 
template NekVector< NekDoubleDivide (const NekVector< NekDouble > &lhs, const NekDouble &rhs)
 
template NekVector< NekSingleDivide (const NekVector< NekSingle > &lhs, const NekSingle &rhs)
 
template<typename ResultDataType , typename InputDataType >
void Multiply (NekVector< ResultDataType > &result, const NekVector< InputDataType > &lhs, const NekVector< InputDataType > &rhs)
 
template void Multiply (NekVector< NekDouble > &result, const NekVector< NekDouble > &lhs, const NekVector< NekDouble > &rhs)
 
template void Multiply (NekVector< NekSingle > &result, const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)
 
template<typename ResultDataType , typename InputDataType >
void MultiplyEqual (NekVector< ResultDataType > &result, const NekVector< InputDataType > &rhs)
 
template void MultiplyEqual (NekVector< NekDouble > &result, const NekVector< NekDouble > &rhs)
 
template void MultiplyEqual (NekVector< NekSingle > &result, const NekVector< NekSingle > &rhs)
 
template<typename DataType , typename InputDataType >
NekVector< DataType > Multiply (const NekVector< DataType > &lhs, const NekVector< InputDataType > &rhs)
 
template NekVector< NekDoubleMultiply (const NekVector< NekDouble > &lhs, const NekVector< NekDouble > &rhs)
 
template NekVector< NekSingleMultiply (const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)
 
template<typename ResultDataType , typename InputDataType >
void Multiply (NekVector< ResultDataType > &result, const NekVector< InputDataType > &lhs, const NekDouble &rhs)
 
template<typename ResultDataType , typename InputDataType >
void Multiply (NekVector< ResultDataType > &result, const NekVector< InputDataType > &lhs, const NekSingle &rhs)
 
template void Multiply (NekVector< NekDouble > &result, const NekVector< NekDouble > &lhs, const NekDouble &rhs)
 
template void Multiply (NekVector< NekSingle > &result, const NekVector< NekSingle > &lhs, const NekSingle &rhs)
 
template<typename ResultDataType >
void MultiplyEqual (NekVector< ResultDataType > &result, const NekDouble &rhs)
 
template<typename ResultDataType >
void MultiplyEqual (NekVector< ResultDataType > &result, const NekSingle &rhs)
 
template void MultiplyEqual (NekVector< NekDouble > &result, const NekDouble &rhs)
 
template void MultiplyEqual (NekVector< NekSingle > &result, const NekSingle &rhs)
 
template<typename DataType >
NekVector< DataType > Multiply (const NekVector< DataType > &lhs, const NekDouble &rhs)
 
template<typename DataType >
NekVector< DataType > Multiply (const NekVector< DataType > &lhs, const NekSingle &rhs)
 
template NekVector< NekDoubleMultiply (const NekVector< NekDouble > &lhs, const NekDouble &rhs)
 
template NekVector< NekSingleMultiply (const NekVector< NekSingle > &lhs, const NekSingle &rhs)
 
template<typename ResultDataType , typename InputDataType >
void Multiply (NekVector< ResultDataType > &result, const NekDouble &lhs, const NekVector< InputDataType > &rhs)
 
template<typename ResultDataType , typename InputDataType >
void MultiplyInvertedLhs (NekVector< ResultDataType > &result, const NekDouble &lhs, const NekVector< InputDataType > &rhs)
 
template<typename ResultDataType , typename InputDataType >
void Multiply (NekVector< ResultDataType > &result, const NekSingle &lhs, const NekVector< InputDataType > &rhs)
 
template<typename ResultDataType , typename InputDataType >
void MultiplyInvertedLhs (NekVector< ResultDataType > &result, const NekSingle &lhs, const NekVector< InputDataType > &rhs)
 
template void MultiplyInvertedLhs (NekVector< NekDouble > &result, const NekDouble &lhs, const NekVector< NekDouble > &rhs)
 
template void Multiply (NekVector< NekDouble > &result, const NekDouble &lhs, const NekVector< NekDouble > &rhs)
 
template void MultiplyInvertedLhs (NekVector< NekSingle > &result, const NekSingle &lhs, const NekVector< NekSingle > &rhs)
 
template void Multiply (NekVector< NekSingle > &result, const NekSingle &lhs, const NekVector< NekSingle > &rhs)
 
template<typename DataType >
NekVector< DataType > Multiply (const DataType &lhs, const NekVector< DataType > &rhs)
 
template NekVector< NekDoubleMultiply (const NekDouble &lhs, const NekVector< NekDouble > &rhs)
 
template NekVector< NekSingleMultiply (const NekSingle &lhs, const NekVector< NekSingle > &rhs)
 
template<typename DataType >
std::ostream & operator<< (std::ostream &os, const NekVector< DataType > &rhs)
 
template std::ostream & operator<< (std::ostream &os, const NekVector< NekDouble > &rhs)
 
template std::ostream & operator<< (std::ostream &os, const NekVector< NekSingle > &rhs)
 
template<typename DataType >
NekVector< DataType > createVectorFromPoints (const NekPoint< DataType > &source, const NekPoint< DataType > &dest)
 
template NekVector< NekDoublecreateVectorFromPoints (const NekPoint< NekDouble > &source, const NekPoint< NekDouble > &dest)
 
template NekVector< NekSinglecreateVectorFromPoints (const NekPoint< NekSingle > &source, const NekPoint< NekSingle > &dest)
 
template<typename DataType >
NekPoint< DataType > findPointAlongVector (const NekVector< DataType > &lhs, const DataType &t)
 
template NekPoint< NekDoublefindPointAlongVector (const NekVector< NekDouble > &lhs, const NekDouble &t)
 
template NekPoint< NekSinglefindPointAlongVector (const NekVector< NekSingle > &lhs, const NekSingle &t)
 
template<typename DataType >
bool operator== (const NekVector< DataType > &lhs, const NekVector< DataType > &rhs)
 
template bool operator== (const NekVector< NekDouble > &lhs, const NekVector< NekDouble > &rhs)
 
template bool operator== (const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)
 
template<typename DataType >
bool operator!= (const NekVector< DataType > &lhs, const NekVector< DataType > &rhs)
 
template bool operator!= (const NekVector< NekDouble > &lhs, const NekVector< NekDouble > &rhs)
 
template bool operator!= (const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)
 
template<typename DataType >
std::vector< DataType > FromString (const std::string &str)
 
template<typename DataType >
DataType L1Norm (const NekVector< DataType > &v)
 
template NekDouble L1Norm (const NekVector< NekDouble > &v)
 
template NekSingle L1Norm (const NekVector< NekSingle > &v)
 
template<typename DataType >
DataType L2Norm (const NekVector< DataType > &v)
 
template NekDouble L2Norm (const NekVector< NekDouble > &v)
 
template NekSingle L2Norm (const NekVector< NekSingle > &v)
 
template<typename DataType >
DataType InfinityNorm (const NekVector< DataType > &v)
 
template NekDouble InfinityNorm (const NekVector< NekDouble > &v)
 
template NekSingle InfinityNorm (const NekVector< NekSingle > &v)
 
template<typename DataType >
NekVector< DataType > Negate (const NekVector< DataType > &v)
 
template NekVector< NekDoubleNegate (const NekVector< NekDouble > &v)
 
template NekVector< NekSingleNegate (const NekVector< NekSingle > &v)
 
template<typename DataType >
void NegateInPlace (NekVector< DataType > &v)
 
template void NegateInPlace (NekVector< NekDouble > &v)
 
template void NegateInPlace (NekVector< NekSingle > &v)
 
template<typename DataType >
DataType Magnitude (const NekVector< DataType > &v)
 
template NekDouble Magnitude (const NekVector< NekDouble > &v)
 
template NekSingle Magnitude (const NekVector< NekSingle > &v)
 
template<typename DataType >
DataType Dot (const NekVector< DataType > &lhs, const NekVector< DataType > &rhs)
 
template NekDouble Dot (const NekVector< NekDouble > &lhs, const NekVector< NekDouble > &rhs)
 
template NekSingle Dot (const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)
 
template<typename DataType >
void Normalize (NekVector< DataType > &v)
 
template void Normalize (NekVector< NekDouble > &v)
 
void NegateInPlace (NekDouble &v)
 
void InvertInPlace (NekDouble &v)
 
template void Normalize (NekVector< NekSingle > &v)
 
void NegateInPlace (NekSingle &v)
 
void InvertInPlace (NekSingle &v)
 
template<typename DataType >
NekVector< DataType > Cross (const NekVector< DataType > &lhs, const NekVector< DataType > &rhs)
 
template NekVector< NekDoubleCross (const NekVector< NekDouble > &lhs, const NekVector< NekDouble > &rhs)
 
template NekVector< NekSingleCross (const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)
 
template<typename DataType >
std::string AsString (const NekVector< DataType > &v)
 
template std::string AsString (const NekVector< NekDouble > &v)
 
template std::string AsString (const NekVector< NekSingle > &v)
 
template<typename DataType >
NekVector< DataType > operator* (const NekVector< DataType > &lhs, const NekDouble &rhs)
 
template<typename DataType >
NekVector< DataType > operator* (const NekDouble &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType >
NekVector< DataType > operator* (const NekVector< DataType > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType >
NekVector< DataType > operator/ (const NekVector< DataType > &lhs, const NekDouble &rhs)
 
template<typename DataType >
NekVector< DataType > operator+ (const NekVector< DataType > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType >
NekVector< DataType > operator- (const NekVector< DataType > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType >
NekMatrix< DataType, ScaledMatrixTag > Transpose (NekMatrix< DataType, ScaledMatrixTag > &rhs)
 
template NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > Transpose (NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > &rhs)
 
template<typename DataType >
void NegateInPlace (NekMatrix< DataType, ScaledMatrixTag > &v)
 
template void NegateInPlace (NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > &v)
 
template NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag > Transpose (NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag > &rhs)
 
template void NegateInPlace (NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag > &v)
 
void convertCooToBco (const unsigned int blkDim, const COOMatType &cooMat, BCOMatType &bcoMat)
 
template<typename SparseStorageType >
std::ostream & operator<< (std::ostream &os, const NekSparseMatrix< SparseStorageType > &rhs)
 
template<typename SparseStorageType >
std::ostream & operator<< (std::ostream &os, const NekSparseDiagBlkMatrix< SparseStorageType > &rhs)
 
template std::ostream & operator<< (std::ostream &os, const NekSparseMatrix< StorageSmvBsr< NekDouble >> &rhs)
 
template std::ostream & operator<< (std::ostream &os, const NekSparseDiagBlkMatrix< StorageSmvBsr< NekDouble >> &rhs)
 
template<typename DataType >
NekMatrix< DataType, StandardMatrixTag > Transpose (NekMatrix< DataType, StandardMatrixTag > &rhs)
 
template NekMatrix< NekDouble, StandardMatrixTag > Transpose (NekMatrix< NekDouble, StandardMatrixTag > &rhs)
 
template NekMatrix< NekSingle, StandardMatrixTag > Transpose (NekMatrix< NekSingle, StandardMatrixTag > &rhs)
 
template<typename DataType >
void NegateInPlace (NekMatrix< DataType, StandardMatrixTag > &m)
 
template void NegateInPlace (NekMatrix< double, StandardMatrixTag > &v)
 
template void NegateInPlace (NekMatrix< NekSingle, StandardMatrixTag > &v)
 
template<typename DataType >
bool operator== (const MemoryManager< DataType > &lhs, const MemoryManager< DataType > &rhs)
 
template<typename DataType >
bool operator!= (const MemoryManager< DataType > &lhs, const MemoryManager< DataType > &rhs)
 
MemPoolGetMemoryPool ()
 
CellModelFactoryGetCellModelFactory ()
 
ProtocolFactoryGetProtocolFactory ()
 
StimulusFactoryGetStimulusFactory ()
 
ArtificialDiffusionFactoryGetArtificialDiffusionFactory ()
 Declaration of the artificial diffusion factory singleton. More...
 
CFSBndCondFactoryGetCFSBndCondFactory ()
 Declaration of the boundary condition factory singleton. More...
 
EquationOfStateFactoryGetEquationOfStateFactory ()
 Declaration of the equation of state factory singleton. More...
 
PreconCfsOpFactoryGetPreconCfsOpFactory ()
 Declaration of the boundary condition factory singleton. More...
 
NekDouble guessp (NekDouble g[], NekDouble rhoL, NekDouble uL, NekDouble pL, NekDouble cL, NekDouble rhoR, NekDouble uR, NekDouble pR, NekDouble cR)
 Use either PVRS, two-rarefaction or two-shock Riemann solvers to calculate an initial pressure for the Newton-Raphson scheme. More...
 
void prefun (NekDouble *g, NekDouble p, NekDouble dk, NekDouble pk, NekDouble ck, NekDouble &f, NekDouble &fd)
 Evaluate pressure functions fL and fR in Newton iteration of Riemann solver (see equation 4.85 and 4.86 of Toro 2009). More...
 
template<class T , typename = typename std::enable_if< std::is_floating_point<T>::value || tinysimd::is_vector_floating_point<T>::value>::type>
void RoeKernel (T &rhoL, T &rhouL, T &rhovL, T &rhowL, T &EL, T &rhoR, T &rhouR, T &rhovR, T &rhowR, T &ER, T &rhof, T &rhouf, T &rhovf, T &rhowf, T &Ef, NekDouble gamma)
 
ExtrapolateFactoryGetExtrapolateFactory ()
 
DNekMat MappingIdealToRef (SpatialDomains::GeometrySharedPtr geom)
 
BoundaryFactoryGetBoundaryFactory ()
 
PressureAreaFactoryGetPressureAreaFactory ()
 

Variables

const char *const FlagTypeMap [] = {"UseGlobal"}
 String map for FlagType enumeration. More...
 
static Array< OneD, int > NullInt1DArray
 
static Array< OneD, NekDoubleNullNekDouble1DArray
 
static Array< OneD, Array< OneD, NekDouble > > NullNekDoubleArrayOfArray
 
static Array< OneD, Array< OneD, Array< OneD, NekDouble > > > NullNekDoubleTensorOfArray3D
 
 NEKTAR_ALL_MATRIX_TYPES_SINGLE
 
 void
 
SNekMat NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (AddEqualNegatedLhs, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(1,(DNekMat &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(AddEqualNegatedLhs
 
SNekMat NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES (AddNegatedLhs, NEKTAR_ALL_MATRIX_TYPES, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(1,(DNekMat &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES(AddNegatedLhs
 
 NEKTAR_STANDARD_AND_SCALED_MATRICES_SINGLE
 
 NEKTAR_BLOCK_MATRIX_TYPES_SINGLE
 
 NekVector< NekSingle >
 
static DNekMatSharedPtr NullDNekMatSharedPtr
 
static DNekScalMatSharedPtr NullDNekScalMatSharedPtr
 
static DNekScalBlkMatSharedPtr NullDNekScalBlkMatSharedPtr
 
static Array< OneD, DNekBlkMatSharedPtrNullArrayDNekBlkMatSharedPtr
 
static SNekMatSharedPtr NullSNekMatSharedPtr
 
static SNekScalMatSharedPtr NullSNekScalMatSharedPtr
 
static SNekScalBlkMatSharedPtr NullSNekScalBlkMatSharedPtr
 
static Array< OneD, SNekBlkMatSharedPtrNullArraySNekBlkMatSharedPtr
 
static const int NistSpBlasDescra [5][9]
 
static NekDouble EigenvaluesRegMeshes [10][14]
 
static NekDouble EigenvaluesAnaMeshesAB2 [6][14]
 
static NekDouble EigenvaluesAnaMeshesRK2 [6][14]
 
static NekDouble EigenvaluesAnaMeshesRK4 [6][14]
 
const char *const TestTypeMap []
 
const char *const InitWaveTypeMap []
 
const std::string kEquationTypeStr []
 
const std::string kAdvectionFormStr []
 
static PulseWaveBoundarySharedPtr NullPulseWaveBoundarySharedPtr
 
static PulseWavePressureAreaSharedPtr NullPulseWavePressureAreaSharedPtr
 
const char *const UpwindTypeMapPulse []
 
const char *const ProblemTypeMap [] = {"General", "SolitaryWave"}
 
const std::string VWIIterationTypeMap []
 

Detailed Description

The above copyright notice and this permission notice shall be included.

Typedef Documentation

◆ AInflowSharedPtr

typedef std::shared_ptr<AInflow> Nektar::AInflowSharedPtr

Definition at line 48 of file AInflow.h.

◆ ArtificialDiffusionFactory

Declaration of the artificial diffusion factory.

Definition at line 60 of file ArtificialDiffusion.h.

◆ ArtificialDiffusionSharedPtr

A shared pointer to a artificial diffusion object.

Definition at line 53 of file ArtificialDiffusion.h.

◆ BCOEntryType

Definition at line 62 of file SparseMatrixFwd.hpp.

◆ BCOMatType

Definition at line 63 of file SparseMatrixFwd.hpp.

◆ BCOMatTypeConstIt

typedef BCOMatType::const_iterator Nektar::BCOMatTypeConstIt

Definition at line 64 of file SparseMatrixFwd.hpp.

◆ BCOMatTypeSharedPtr

typedef std::shared_ptr<BCOMatType> Nektar::BCOMatTypeSharedPtr

Definition at line 65 of file SparseMatrixFwd.hpp.

◆ BCOMatVector

Definition at line 66 of file SparseMatrixFwd.hpp.

◆ BetaPressureAreaSharedPtr

Definition at line 47 of file BetaPressureArea.h.

◆ BlkMatDNekBlkMat

typedef NekMatrix< NekMatrix<NekMatrix<NekDouble, StandardMatrixTag>, BlockMatrixTag>, BlockMatrixTag> Nektar::BlkMatDNekBlkMat

Definition at line 64 of file NekTypeDefs.hpp.

◆ BlkMatDNekBlkMatSharedPtr

Definition at line 78 of file NekTypeDefs.hpp.

◆ BlkMatDNekScalBlkMat

typedef NekMatrix<NekMatrix<NekMatrix<NekMatrix<NekDouble, StandardMatrixTag>, ScaledMatrixTag>, BlockMatrixTag>, BlockMatrixTag> Nektar::BlkMatDNekScalBlkMat

Definition at line 73 of file NekTypeDefs.hpp.

◆ BlkMatDNekScalBlkMatSharedPtr

Definition at line 80 of file NekTypeDefs.hpp.

◆ BlkMatSNekBlkMat

typedef NekMatrix< NekMatrix<NekMatrix<NekSingle, StandardMatrixTag>, BlockMatrixTag>, BlockMatrixTag> Nektar::BlkMatSNekBlkMat

Definition at line 111 of file NekTypeDefs.hpp.

◆ BlkMatSNekBlkMatSharedPtr

Definition at line 125 of file NekTypeDefs.hpp.

◆ BlkMatSNekScalBlkMat

typedef NekMatrix<NekMatrix<NekMatrix<NekMatrix<NekSingle, StandardMatrixTag>, ScaledMatrixTag>, BlockMatrixTag>, BlockMatrixTag> Nektar::BlkMatSNekScalBlkMat

Definition at line 120 of file NekTypeDefs.hpp.

◆ BlkMatSNekScalBlkMatSharedPtr

Definition at line 127 of file NekTypeDefs.hpp.

◆ BlockMatrix

typedef NekMatrix<DenseMatrix, BlockMatrixTag> Nektar::BlockMatrix

Definition at line 59 of file NekTypeDefs.hpp.

◆ BoundaryFactory

Definition at line 58 of file PulseWaveBoundary.h.

◆ CellModelFactory

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

Definition at line 61 of file CellModel.h.

◆ CellModelSharedPtr

typedef std::shared_ptr<CellModel> Nektar::CellModelSharedPtr

A shared pointer to an EquationSystem object.

Definition at line 55 of file CellModel.h.

◆ CFSBndCondFactory

Declaration of the boundary condition factory.

Definition at line 59 of file CFSBndCond.h.

◆ CFSBndCondSharedPtr

typedef std::shared_ptr<CFSBndCond> Nektar::CFSBndCondSharedPtr

A shared pointer to a boundary condition object.

Definition at line 51 of file CFSBndCond.h.

◆ COOEntryType

Definition at line 55 of file SparseMatrixFwd.hpp.

◆ COOMatType

Definition at line 56 of file SparseMatrixFwd.hpp.

◆ COOMatTypeConstIt

typedef COOMatType::const_iterator Nektar::COOMatTypeConstIt

Definition at line 57 of file SparseMatrixFwd.hpp.

◆ COOMatTypeSharedPtr

typedef std::shared_ptr<COOMatType> Nektar::COOMatTypeSharedPtr

Definition at line 58 of file SparseMatrixFwd.hpp.

◆ COOMatVector

Definition at line 59 of file SparseMatrixFwd.hpp.

◆ CoordType

typedef std::pair<IndexType, IndexType> Nektar::CoordType

Definition at line 54 of file SparseMatrixFwd.hpp.

◆ CoupledAssemblyMapSharedPtr

Definition at line 62 of file CoupledAssemblyMap.h.

◆ CoupledLocalToGlobalC0ContMapSharedPtr

Definition at line 66 of file CoupledLocalToGlobalC0ContMap.h.

◆ CoupledSolverMatrices

◆ DenseMatrix

typedef NekMatrix<NekDouble, StandardMatrixTag> Nektar::DenseMatrix

Definition at line 51 of file NekTypeDefs.hpp.

◆ DiffusionLDGNSSharedPtr

Definition at line 169 of file DiffusionLDGNS.h.

◆ DNekBlkMat

typedef NekMatrix<NekMatrix<NekDouble, StandardMatrixTag>, BlockMatrixTag> Nektar::DNekBlkMat

Definition at line 58 of file NekTypeDefs.hpp.

◆ DNekBlkMatSharedPtr

typedef std::shared_ptr<DNekBlkMat> Nektar::DNekBlkMatSharedPtr

Definition at line 77 of file NekTypeDefs.hpp.

◆ DNekLinSys

Definition at line 87 of file NekTypeDefs.hpp.

◆ DNekLinSysSharedPtr

typedef std::shared_ptr<DNekLinSys> Nektar::DNekLinSysSharedPtr

Definition at line 88 of file NekTypeDefs.hpp.

◆ DNekMat

typedef NekMatrix<NekDouble, StandardMatrixTag> Nektar::DNekMat

Definition at line 50 of file NekTypeDefs.hpp.

◆ DNekMatSharedPtr

typedef std::shared_ptr<DNekMat> Nektar::DNekMatSharedPtr

Definition at line 75 of file NekTypeDefs.hpp.

◆ DNekScalBlkMat

typedef NekMatrix< NekMatrix<NekMatrix<NekDouble, StandardMatrixTag>, ScaledMatrixTag>, BlockMatrixTag> Nektar::DNekScalBlkMat

Definition at line 68 of file NekTypeDefs.hpp.

◆ DNekScalBlkMatSharedPtr

Definition at line 79 of file NekTypeDefs.hpp.

◆ DNekScalLinSys

Definition at line 90 of file NekTypeDefs.hpp.

◆ DNekScalLinSysSharedPtr

Definition at line 91 of file NekTypeDefs.hpp.

◆ DNekScalMat

typedef NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > Nektar::DNekScalMat

Definition at line 67 of file NekMatrixFwd.hpp.

◆ DNekScalMatSharedPtr

typedef std::shared_ptr< DNekScalMat > Nektar::DNekScalMatSharedPtr

Definition at line 68 of file NekMatrixFwd.hpp.

◆ DNekVec

Definition at line 48 of file NekTypeDefs.hpp.

◆ EmpiricalPressureAreaSharedPtr

Definition at line 49 of file EmpiricalPressureArea.h.

◆ EquationOfStateFactory

Declaration of the equation of state factory.

Definition at line 54 of file EquationOfState.h.

◆ EquationOfStateSharedPtr

A shared pointer to an equation of state object.

Definition at line 49 of file EquationOfState.h.

◆ ExtrapolateFactory

Definition at line 66 of file Extrapolate.h.

◆ ExtrapolateSharedPtr

typedef std::shared_ptr<Extrapolate> Nektar::ExtrapolateSharedPtr

Definition at line 60 of file Extrapolate.h.

◆ FilterAeroForcesSPMSharedPtr

Definition at line 105 of file FilterAeroForcesSPM.h.

◆ FilterMap

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

Definition at line 48 of file FilterMovingBody.h.

◆ FilterMovingBodySharedPtr

Definition at line 46 of file FilterMovingBody.h.

◆ FilterParams

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

Definition at line 47 of file FilterMovingBody.h.

◆ HighOrderOutflowSharedPtr

Definition at line 69 of file Extrapolate.h.

◆ IncNavierStokesSharedPtr

Definition at line 292 of file IncNavierStokes.h.

◆ IndexType

typedef unsigned int Nektar::IndexType

Definition at line 49 of file SparseMatrixFwd.hpp.

◆ IndexVector

Definition at line 51 of file SparseMatrixFwd.hpp.

◆ InterfacePointShPtr

typedef std::shared_ptr<InterfacePoint> Nektar::InterfacePointShPtr

Definition at line 74 of file PulseWaveSystem.h.

◆ MappingExtrapolateSharedPtr

Definition at line 49 of file MappingExtrapolate.h.

◆ NekComplexDouble

typedef std::complex<double> Nektar::NekComplexDouble

Definition at line 100 of file IncNavierStokes.h.

◆ NekDouble

typedef double Nektar::NekDouble

Definition at line 43 of file NektarUnivTypeDefs.hpp.

◆ NekInt

typedef std::int32_t Nektar::NekInt

Definition at line 46 of file NektarUnivTypeDefs.hpp.

◆ NekInt32

typedef std::int32_t Nektar::NekInt32

Definition at line 47 of file NektarUnivTypeDefs.hpp.

◆ NekInt64

typedef std::int64_t Nektar::NekInt64

Definition at line 48 of file NektarUnivTypeDefs.hpp.

◆ NekSingle

typedef float Nektar::NekSingle

Definition at line 44 of file NektarUnivTypeDefs.hpp.

◆ NekUInt

typedef std::uint32_t Nektar::NekUInt

Definition at line 49 of file NektarUnivTypeDefs.hpp.

◆ NekUInt32

typedef std::uint32_t Nektar::NekUInt32

Definition at line 50 of file NektarUnivTypeDefs.hpp.

◆ NekUInt64

typedef std::uint64_t Nektar::NekUInt64

Definition at line 51 of file NektarUnivTypeDefs.hpp.

◆ PowerPressureAreaSharedPtr

Definition at line 49 of file PowerPressureArea.h.

◆ PreconCfsOpFactory

Declaration of the boundary condition factory.

Definition at line 162 of file PreconCfsOp.h.

◆ PreconCfsOpSharedPtr

typedef std::shared_ptr< PreconCfsOp > Nektar::PreconCfsOpSharedPtr

Definition at line 154 of file PreconCfsOp.h.

◆ PreconCfsSharedPtr

typedef std::shared_ptr<PreconCfs> Nektar::PreconCfsSharedPtr

Definition at line 110 of file PreconCfs.h.

◆ PressureAreaFactory

Definition at line 56 of file PulseWavePressureArea.h.

◆ ProtocolFactory

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

Definition at line 56 of file Protocol.h.

◆ ProtocolSharedPtr

typedef std::shared_ptr<Protocol> Nektar::ProtocolSharedPtr

A shared pointer to an EquationSystem object.

Definition at line 49 of file Protocol.h.

◆ PulseWaveBoundarySharedPtr

Definition at line 50 of file PulseWaveBoundary.h.

◆ PulseWavePressureAreaSharedPtr

Definition at line 49 of file PulseWavePressureArea.h.

◆ PulseWaveSystemOutputSharedPtr

Definition at line 78 of file PulseWaveSystemOutput.h.

◆ PulseWaveSystemSharedPtr

Definition at line 211 of file PulseWaveSystem.h.

◆ QInflowSharedPtr

typedef std::shared_ptr<QInflow> Nektar::QInflowSharedPtr

Definition at line 49 of file QInflow.h.

◆ RawType_t

template<typename T >
using Nektar::RawType_t = typedef typename RawType<T>::type

Definition at line 70 of file RawType.hpp.

◆ RCROutflowSharedPtr

typedef std::shared_ptr<RCROutflow> Nektar::RCROutflowSharedPtr

Definition at line 49 of file RCROutflow.h.

◆ ROutflowSharedPtr

typedef std::shared_ptr<ROutflow> Nektar::ROutflowSharedPtr

Definition at line 49 of file ROutflow.h.

◆ SBlockMatrix

typedef NekMatrix<SDenseMatrix, BlockMatrixTag> Nektar::SBlockMatrix

Definition at line 106 of file NekTypeDefs.hpp.

◆ ScaledMatrix

typedef NekMatrix<DenseMatrix, ScaledMatrixTag> Nektar::ScaledMatrix

Definition at line 55 of file NekTypeDefs.hpp.

◆ SDenseMatrix

typedef NekMatrix<NekSingle, StandardMatrixTag> Nektar::SDenseMatrix

Definition at line 98 of file NekTypeDefs.hpp.

◆ SharedNekMatrixPtr

typedef std::shared_ptr<NekMatrix<NekDouble, StandardMatrixTag> > Nektar::SharedNekMatrixPtr

Definition at line 65 of file NekMatrixFwd.hpp.

◆ SharedSNekMatrixPtr

typedef std::shared_ptr<NekMatrix<NekSingle, StandardMatrixTag> > Nektar::SharedSNekMatrixPtr

Definition at line 71 of file NekMatrixFwd.hpp.

◆ SmoothedProfileMethodSharedPtr

Definition at line 170 of file SmoothedProfileMethod.h.

◆ SNekBlkMat

typedef NekMatrix<NekMatrix<NekSingle, StandardMatrixTag>, BlockMatrixTag> Nektar::SNekBlkMat

Definition at line 105 of file NekTypeDefs.hpp.

◆ SNekBlkMatSharedPtr

typedef std::shared_ptr<SNekBlkMat> Nektar::SNekBlkMatSharedPtr

Definition at line 124 of file NekTypeDefs.hpp.

◆ SNekMat

Definition at line 97 of file NekTypeDefs.hpp.

◆ SNekMatSharedPtr

typedef std::shared_ptr<SNekMat> Nektar::SNekMatSharedPtr

Definition at line 122 of file NekTypeDefs.hpp.

◆ SNekScalBlkMat

typedef NekMatrix< NekMatrix<NekMatrix<NekSingle, StandardMatrixTag>, ScaledMatrixTag>, BlockMatrixTag> Nektar::SNekScalBlkMat

Definition at line 115 of file NekTypeDefs.hpp.

◆ SNekScalBlkMatSharedPtr

Definition at line 126 of file NekTypeDefs.hpp.

◆ SNekScalMat

typedef NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag > Nektar::SNekScalMat

Definition at line 73 of file NekMatrixFwd.hpp.

◆ SNekScalMatSharedPtr

typedef std::shared_ptr< SNekScalMat > Nektar::SNekScalMatSharedPtr

Definition at line 74 of file NekMatrixFwd.hpp.

◆ SNekVec

Definition at line 95 of file NekTypeDefs.hpp.

◆ SScaledMatrix

typedef NekMatrix<SDenseMatrix, ScaledMatrixTag> Nektar::SScaledMatrix

Definition at line 102 of file NekTypeDefs.hpp.

◆ StandardExtrapolateSharedPtr

Definition at line 55 of file StandardExtrapolate.h.

◆ StimulusFactory

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

Definition at line 59 of file Stimulus.h.

◆ StimulusSharedPtr

typedef std::shared_ptr<Stimulus> Nektar::StimulusSharedPtr

A shared pointer to an EquationSystem object.

Definition at line 52 of file Stimulus.h.

◆ SubSteppingExtrapolateSharedPtr

Definition at line 55 of file SubSteppingExtrapolate.h.

◆ SubSteppingExtrapolateWeakPressureSharedPtr

Definition at line 49 of file SubSteppingExtrapolateWeakPressure.h.

◆ SummaryList

typedef std::vector<std::pair<std::string, std::string> > Nektar::SummaryList

Definition at line 52 of file CellModel.h.

◆ TemplatePressureAreaSharedPtr

Definition at line 47 of file TemplatePressureArea.h.

◆ TensorOfArray2D

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

Definition at line 908 of file SharedArray.hpp.

◆ TensorOfArray3D

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

Definition at line 914 of file SharedArray.hpp.

◆ TensorOfArray4D

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

Definition at line 919 of file SharedArray.hpp.

◆ TensorOfArray5D

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

Definition at line 924 of file SharedArray.hpp.

◆ TerminalOutflowSharedPtr

Pointer to a PulseWaveOutflow object.

Definition at line 49 of file TerminalOutflow.h.

◆ TimeDependentInflowSharedPtr

Definition at line 49 of file TimeDependentInflow.h.

◆ UInflowSharedPtr

typedef std::shared_ptr<UInflow> Nektar::UInflowSharedPtr

Pointer to a PulseWaveOutflow object.

Definition at line 48 of file UInflow.h.

◆ UndefinedInOutflowSharedPtr

Definition at line 49 of file UndefinedInOutflow.h.

◆ VariableConverterSharedPtr

Definition at line 47 of file VariableConverter.h.

◆ VCSMappingSharedPtr

typedef std::shared_ptr<VCSMapping> Nektar::VCSMappingSharedPtr

Definition at line 154 of file VCSMapping.h.

◆ VCSWeakPressureSharedPtr

Definition at line 98 of file VelocityCorrectionSchemeWeakPressure.h.

◆ vec_t

Definition at line 59 of file EquationOfState.h.

◆ VelocityCorrectionSchemeSharedPtr

Definition at line 232 of file VelocityCorrectionScheme.h.

◆ WeakPressureExtrapolateSharedPtr

Definition at line 55 of file WeakPressureExtrapolate.h.

◆ WomersleyParamsSharedPtr

Definition at line 127 of file IncNavierStokes.h.

Enumeration Type Documentation

◆ AdvectionForm

Enumerator
eNoAdvectionForm 
eConvective 
eNonConservative 
eLinearised 
eAdjoint 
eSkewSymmetric 
eNoAdvection 
eAdvectionFormSize 

Definition at line 79 of file IncNavierStokes.h.

80 {
85  eAdjoint,
89 };
@ eAdvectionFormSize
@ eSkewSymmetric
@ eNonConservative
@ eNoAdvectionForm

◆ AllowWrappingOfConstArrays

Enumerator
eVECTOR_WRAPPER 

Definition at line 576 of file SharedArray.hpp.

577 {
579 };
@ eVECTOR_WRAPPER

◆ Direction

Enumerator
xDir 
yDir 
zDir 

Definition at line 71 of file NektarUnivTypeDefs.hpp.

72 {
73  xDir = 0,
74  yDir = 1,
75  zDir = 2
76 };

◆ EquationType

Enumerator
eNoEquationType 
eSteadyStokes 
eSteadyOseen 
eSteadyLinearisedNS 
eUnsteadyStokes 
eUnsteadyLinearisedNS 
eUnsteadyNavierStokes 
eSteadyNavierStokes 
eEquationTypeSize 

Definition at line 54 of file IncNavierStokes.h.

◆ FlagType

Enumeration of flags for passing a list of options.

Enumerator
eUseGlobal 

Definition at line 88 of file NektarUnivTypeDefs.hpp.

89 {
91 };

◆ HBCType

Enumerator
eNOHBC 
eHBCNeumann 
eOBC 
eConvectiveOBC 

Definition at line 50 of file Extrapolate.h.

51 {
52  eNOHBC,
53  eHBCNeumann, // Standard High Order BC
54  eOBC, // High Order outflow BC (Neumann-Dirichlet) from Dong et al JCP 2014
55  eConvectiveOBC // Convective High Order (Robin type) BC from Dong JCP 2015
56 };
@ eNOHBC
Definition: Extrapolate.h:52
@ eConvectiveOBC
Definition: Extrapolate.h:55
@ eHBCNeumann
Definition: Extrapolate.h:53

◆ InitWaveType

Enumerator
eLeft 
eBothEnds 
eCenter 
eLeftBottomCorner 
ePoint 
eSpiralDock 
SIZE_InitWaveType 

Length of enum list.

Definition at line 63 of file MMFDiffusion.h.

64 {
65  eLeft,
66  eBothEnds,
67  eCenter,
69  ePoint,
71  SIZE_InitWaveType ///< Length of enum list
72 };
@ SIZE_InitWaveType
Length of enum list.
Definition: MMFDiffusion.h:71
@ eLeftBottomCorner
Definition: MMFDiffusion.h:68
@ eBothEnds
Definition: MMFDiffusion.h:66
@ eSpiralDock
Definition: MMFDiffusion.h:70

◆ MatrixStorage

Enumerator
eFULL 
eDIAGONAL 
eUPPER_TRIANGULAR 
eLOWER_TRIANGULAR 
eSYMMETRIC 
ePOSITIVE_DEFINITE_SYMMETRIC 
eBANDED 
eSYMMETRIC_BANDED 
ePOSITIVE_DEFINITE_SYMMETRIC_BANDED 
eUPPER_TRIANGULAR_BANDED 
eLOWER_TRIANGULAR_BANDED 

Definition at line 41 of file MatrixStorageType.h.

◆ OutputFormat

Enumerator
eTecplot 
eTecplotZones 
eTecplotSingleBlock 
eGmsh 
eGnuplot 

Definition at line 78 of file NektarUnivTypeDefs.hpp.

◆ PointerWrapper

Specifies if the pointer passed to a NekMatrix or NekVector is copied into an internal representation or used directly.

Enumerator
eWrapper 
eCopy 

Definition at line 43 of file PointerWrapper.h.

44 {
45  eWrapper,
46  eCopy
47 };

◆ PrecType

Enumerator
eNull 

No Solution type specified.

eDiagonal 
eSparse 

Definition at line 45 of file PreconCfs.h.

46 {
47  eNull, ///< No Solution type specified
48  eDiagonal,
49  eSparse,
50 };
@ eNull
No Solution type specified.
Definition: PreconCfs.h:47
@ eDiagonal
Definition: PreconCfs.h:48
@ eSparse
Definition: PreconCfs.h:49

◆ ProblemType

Enumerator
eGeneral 

No problem defined - Default Inital data.

eSolitaryWave 

First order Laitone solitary wave.

SIZE_ProblemType 

Length of enum list.

Definition at line 44 of file NonlinearPeregrine.h.

45 {
46  eGeneral, ///< No problem defined - Default Inital data
47  eSolitaryWave, ///< First order Laitone solitary wave
48  SIZE_ProblemType ///< Length of enum list
49 };
@ eGeneral
No problem defined - Default Inital data.
@ SIZE_ProblemType
Length of enum list.
@ eSolitaryWave
First order Laitone solitary wave.

◆ TestType [1/2]

Enumerator
eTestPlane 
eTestCube 
eTestLinearSphere 
eTestNonlinearSphere 
eFHNStandard 
eFHNRogers 
eFHNAlievPanf 
SIZE_TestType 

Length of enum list.

eTestPlane 
eTestSteadyZonal 
eTestUnsteadyZonal 
eTestIsolatedMountain 
eTestUnstableJet 
eTestRossbyWave 
SIZE_TestType 

Length of enum list.

Definition at line 46 of file MMFDiffusion.h.

47 {
48  eTestPlane,
49  eTestCube,
53  eFHNRogers,
55  SIZE_TestType ///< Length of enum list
56 };
@ SIZE_TestType
Length of enum list.
Definition: MMFAdvection.h:49
@ eTestPlane
Definition: MMFAdvection.h:45
@ eTestCube
Definition: MMFAdvection.h:47
@ eFHNStandard
Definition: MMFDiffusion.h:52
@ eTestLinearSphere
Definition: MMFDiffusion.h:50
@ eTestNonlinearSphere
Definition: MMFDiffusion.h:51
@ eFHNRogers
Definition: MMFDiffusion.h:53
@ eFHNAlievPanf
Definition: MMFDiffusion.h:54

◆ TestType [2/2]

Enumerator
eTestPlane 
eTestCube 
eTestLinearSphere 
eTestNonlinearSphere 
eFHNStandard 
eFHNRogers 
eFHNAlievPanf 
SIZE_TestType 

Length of enum list.

eTestPlane 
eTestSteadyZonal 
eTestUnsteadyZonal 
eTestIsolatedMountain 
eTestUnstableJet 
eTestRossbyWave 
SIZE_TestType 

Length of enum list.

Definition at line 44 of file MMFSWE.h.

45 {
46  eTestPlane,
52  SIZE_TestType ///< Length of enum list
53 };
@ eTestUnstableJet
Definition: MMFSWE.h:50
@ eTestSteadyZonal
Definition: MMFSWE.h:47
@ eTestUnsteadyZonal
Definition: MMFSWE.h:48
@ eTestIsolatedMountain
Definition: MMFSWE.h:49
@ eTestRossbyWave
Definition: MMFSWE.h:51

◆ UpwindTypePulse

Enumerator
eNotSetPulse 

flux not defined

eUpwindPulse 

simple upwinding scheme

SIZE_UpwindTypePulse 

Length of enum list.

Definition at line 47 of file PulseWaveSystem.h.

48 {
49  eNotSetPulse, ///< flux not defined
50  eUpwindPulse, ///< simple upwinding scheme
51  SIZE_UpwindTypePulse ///< Length of enum list
52 };
@ eUpwindPulse
simple upwinding scheme
@ eNotSetPulse
flux not defined
@ SIZE_UpwindTypePulse
Length of enum list.

◆ VWIIterationType

Enumerator
eFixedAlpha 
eFixedWaveForcing 
eFixedAlphaWaveForcing 
eFixedWaveForcingWithSubIterationOnAlpha 
eVWIIterationTypeSize 

Definition at line 53 of file VortexWaveInteraction.h.

Function Documentation

◆ Add() [1/10]

template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
SNekMat SNekMat NekMatrix<typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType, StandardMatrixTag> Nektar::Add ( const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 335 of file MatrixOperations.cpp.

337 {
338  typedef
339  typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType NumberType;
340  NekMatrix<NumberType, StandardMatrixTag> result(lhs.GetRows(),
341  lhs.GetColumns());
342  Add(result, lhs, rhs);
343  return result;
344 }
SNekMat SNekMat NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Add(const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)

References Add().

◆ Add() [2/10]

template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
NekMatrix<typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType, StandardMatrixTag> Nektar::Add ( const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 335 of file MatrixOperations.cpp.

337 {
338  typedef
339  typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType NumberType;
340  NekMatrix<NumberType, StandardMatrixTag> result(lhs.GetRows(),
341  lhs.GetColumns());
342  Add(result, lhs, rhs);
343  return result;
344 }

References Add().

◆ Add() [3/10]

template<typename LhsDataType , typename RhsDataType >
NekVector< LhsDataType > Nektar::Add ( const NekVector< LhsDataType > &  lhs,
const NekVector< RhsDataType > &  rhs 
)

Definition at line 561 of file NekVector.cpp.

563 {
564  NekVector<LhsDataType> result(lhs.GetDimension());
565  Add(result, lhs, rhs);
566  return result;
567 }
template NekVector< NekSingle > Add(const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)

References Add(), and Nektar::NekVector< DataType >::GetDimension().

◆ Add() [4/10]

template NekVector<NekDouble> Nektar::Add ( const NekVector< NekDouble > &  lhs,
const NekVector< NekDouble > &  rhs 
)

◆ Add() [5/10]

template NekVector<NekSingle> Nektar::Add ( const NekVector< NekSingle > &  lhs,
const NekVector< NekSingle > &  rhs 
)

Referenced by Add().

◆ Add() [6/10]

template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
SNekMat SNekMat void Nektar::Add ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 268 of file MatrixOperations.cpp.

271 {
272  ASSERTL1(lhs.GetRows() == rhs.GetRows(),
273  std::string("Matrices with different row counts ") +
274  std::to_string(lhs.GetRows()) + std::string(" and ") +
275  std::to_string(rhs.GetRows()) +
276  std::string(" can't be added."));
277  ASSERTL1(lhs.GetColumns() == rhs.GetColumns(),
278  std::string("Matrices with different column counts ") +
279  std::to_string(lhs.GetColumns()) + std::string(" and ") +
280  std::to_string(rhs.GetColumns()) +
281  std::string(" can't be added."));
282 
283  for (unsigned int i = 0; i < lhs.GetRows(); ++i)
284  {
285  for (unsigned int j = 0; j < lhs.GetColumns(); ++j)
286  {
287  result(i, j) = lhs(i, j) + rhs(i, j);
288  }
289  }
290 }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
Definition: ErrorUtil.hpp:249

References ASSERTL1.

Referenced by Add(), and operator+().

◆ Add() [7/10]

template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
void Nektar::Add ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 268 of file MatrixOperations.cpp.

271 {
272  ASSERTL1(lhs.GetRows() == rhs.GetRows(),
273  std::string("Matrices with different row counts ") +
274  std::to_string(lhs.GetRows()) + std::string(" and ") +
275  std::to_string(rhs.GetRows()) +
276  std::string(" can't be added."));
277  ASSERTL1(lhs.GetColumns() == rhs.GetColumns(),
278  std::string("Matrices with different column counts ") +
279  std::to_string(lhs.GetColumns()) + std::string(" and ") +
280  std::to_string(rhs.GetColumns()) +
281  std::string(" can't be added."));
282 
283  for (unsigned int i = 0; i < lhs.GetRows(); ++i)
284  {
285  for (unsigned int j = 0; j < lhs.GetColumns(); ++j)
286  {
287  result(i, j) = lhs(i, j) + rhs(i, j);
288  }
289  }
290 }

References ASSERTL1.

Referenced by Add(), and operator+().

◆ Add() [8/10]

template<typename DataType >
void Nektar::Add ( NekVector< DataType > &  result,
const NekVector< DataType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 484 of file NekVector.cpp.

486 {
487  DataType *r_buf = result.GetRawPtr();
488  const DataType *lhs_buf = lhs.GetRawPtr();
489  const DataType *rhs_buf = rhs.GetRawPtr();
490  const unsigned int ldim = lhs.GetDimension();
491  for (int i = 0; i < ldim; ++i)
492  {
493  r_buf[i] = lhs_buf[i] + rhs_buf[i];
494  }
495 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ Add() [9/10]

template void Nektar::Add ( NekVector< NekDouble > &  result,
const NekVector< NekDouble > &  lhs,
const NekVector< NekDouble > &  rhs 
)

◆ Add() [10/10]

template void Nektar::Add ( NekVector< NekSingle > &  result,
const NekVector< NekSingle > &  lhs,
const NekVector< NekSingle > &  rhs 
)

◆ AddEqual() [1/5]

template<typename DataType , typename RhsDataType , typename RhsMatrixType >
SNekMat void Nektar::AddEqual ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 207 of file MatrixOperations.cpp.

209 {
210  ASSERTL1(result.GetRows() == rhs.GetRows(),
211  std::string("Matrices with different row counts ") +
212  std::to_string(result.GetRows()) + std::string(" and ") +
213  std::to_string(rhs.GetRows()) +
214  std::string(" can't be added."));
215  ASSERTL1(result.GetColumns() == rhs.GetColumns(),
216  std::string("Matrices with different column counts ") +
217  std::to_string(result.GetColumns()) + std::string(" and ") +
218  std::to_string(rhs.GetColumns()) +
219  std::string(" can't be added."));
220 
221  for (unsigned int i = 0; i < rhs.GetRows(); ++i)
222  {
223  for (unsigned int j = 0; j < rhs.GetColumns(); ++j)
224  {
225  result(i, j) += rhs(i, j);
226  }
227  }
228 }

References ASSERTL1.

◆ AddEqual() [2/5]

template<typename DataType , typename RhsDataType , typename RhsMatrixType >
void Nektar::AddEqual ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 207 of file MatrixOperations.cpp.

209 {
210  ASSERTL1(result.GetRows() == rhs.GetRows(),
211  std::string("Matrices with different row counts ") +
212  std::to_string(result.GetRows()) + std::string(" and ") +
213  std::to_string(rhs.GetRows()) +
214  std::string(" can't be added."));
215  ASSERTL1(result.GetColumns() == rhs.GetColumns(),
216  std::string("Matrices with different column counts ") +
217  std::to_string(result.GetColumns()) + std::string(" and ") +
218  std::to_string(rhs.GetColumns()) +
219  std::string(" can't be added."));
220 
221  for (unsigned int i = 0; i < rhs.GetRows(); ++i)
222  {
223  for (unsigned int j = 0; j < rhs.GetColumns(); ++j)
224  {
225  result(i, j) += rhs(i, j);
226  }
227  }
228 }

References ASSERTL1.

◆ AddEqual() [3/5]

template<typename DataType >
void Nektar::AddEqual ( NekVector< DataType > &  result,
const NekVector< DataType > &  rhs 
)

Definition at line 526 of file NekVector.cpp.

527 {
528  DataType *r_buf = result.GetRawPtr();
529  const DataType *rhs_buf = rhs.GetRawPtr();
530  const unsigned int rdim = rhs.GetDimension();
531  for (int i = 0; i < rdim; ++i)
532  {
533  r_buf[i] += rhs_buf[i];
534  }
535 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ AddEqual() [4/5]

template void Nektar::AddEqual ( NekVector< NekDouble > &  result,
const NekVector< NekDouble > &  rhs 
)

◆ AddEqual() [5/5]

template void Nektar::AddEqual ( NekVector< NekSingle > &  result,
const NekVector< NekSingle > &  rhs 
)

◆ AddEqualNegatedLhs() [1/4]

template<typename DataType , typename RhsDataType , typename RhsMatrixType >
void Nektar::AddEqualNegatedLhs ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 231 of file MatrixOperations.cpp.

233 {
234  ASSERTL1(result.GetRows() == rhs.GetRows(),
235  std::string("Matrices with different row counts ") +
236  std::to_string(result.GetRows()) + std::string(" and ") +
237  std::to_string(rhs.GetRows()) +
238  std::string(" can't be added."));
239  ASSERTL1(result.GetColumns() == rhs.GetColumns(),
240  std::string("Matrices with different column counts ") +
241  std::to_string(result.GetColumns()) + std::string(" and ") +
242  std::to_string(rhs.GetColumns()) +
243  std::string(" can't be added."));
244 
245  for (unsigned int i = 0; i < rhs.GetRows(); ++i)
246  {
247  for (unsigned int j = 0; j < rhs.GetColumns(); ++j)
248  {
249  result(i, j) = -result(i, j) + rhs(i, j);
250  }
251  }
252 }

References ASSERTL1, Nektar::ConstMatrix< DataType >::GetColumns(), and Nektar::ConstMatrix< DataType >::GetRows().

◆ AddEqualNegatedLhs() [2/4]

template<typename DataType >
void Nektar::AddEqualNegatedLhs ( NekVector< DataType > &  result,
const NekVector< DataType > &  rhs 
)

Definition at line 538 of file NekVector.cpp.

540 {
541  DataType *r_buf = result.GetRawPtr();
542  const DataType *rhs_buf = rhs.GetRawPtr();
543  const unsigned int rdim = rhs.GetDimension();
544  for (int i = 0; i < rdim; ++i)
545  {
546  r_buf[i] = -r_buf[i] + rhs_buf[i];
547  }
548 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ AddEqualNegatedLhs() [3/4]

template void Nektar::AddEqualNegatedLhs ( NekVector< NekDouble > &  result,
const NekVector< NekDouble > &  rhs 
)

◆ AddEqualNegatedLhs() [4/4]

template void Nektar::AddEqualNegatedLhs ( NekVector< NekSingle > &  result,
const NekVector< NekSingle > &  rhs 
)

◆ AddNegatedLhs() [1/4]

template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
void Nektar::AddNegatedLhs ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 294 of file MatrixOperations.cpp.

297 {
298  ASSERTL1(lhs.GetRows() == rhs.GetRows(),
299  std::string("Matrices with different row counts ") +
300  std::to_string(lhs.GetRows()) + std::string(" and ") +
301  std::to_string(rhs.GetRows()) +
302  std::string(" can't be added."));
303  ASSERTL1(lhs.GetColumns() == rhs.GetColumns(),
304  std::string("Matrices with different column counts ") +
305  std::to_string(lhs.GetColumns()) + std::string(" and ") +
306  std::to_string(rhs.GetColumns()) +
307  std::string(" can't be added."));
308 
309  for (unsigned int i = 0; i < lhs.GetRows(); ++i)
310  {
311  for (unsigned int j = 0; j < lhs.GetColumns(); ++j)
312  {
313  result(i, j) = -lhs(i, j) + rhs(i, j);
314  }
315  }
316 }

References ASSERTL1.

◆ AddNegatedLhs() [2/4]

template<typename DataType >
void Nektar::AddNegatedLhs ( NekVector< DataType > &  result,
const NekVector< DataType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 498 of file NekVector.cpp.

500 {
501  DataType *r_buf = result.GetRawPtr();
502  const DataType *lhs_buf = lhs.GetRawPtr();
503  const DataType *rhs_buf = rhs.GetRawPtr();
504  const unsigned int ldim = lhs.GetDimension();
505  for (int i = 0; i < ldim; ++i)
506  {
507  r_buf[i] = -lhs_buf[i] + rhs_buf[i];
508  }
509 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ AddNegatedLhs() [3/4]

template void Nektar::AddNegatedLhs ( NekVector< NekDouble > &  result,
const NekVector< NekDouble > &  lhs,
const NekVector< NekDouble > &  rhs 
)

◆ AddNegatedLhs() [4/4]

template void Nektar::AddNegatedLhs ( NekVector< NekSingle > &  result,
const NekVector< NekSingle > &  lhs,
const NekVector< NekSingle > &  rhs 
)

◆ AsString() [1/3]

template<typename DataType >
std::string Nektar::AsString ( const NekVector< DataType > &  v)

Definition at line 1266 of file NekVector.cpp.

1267 {
1268  unsigned int d = v.GetRows();
1269  std::string result = "(";
1270  for (unsigned int i = 0; i < d; ++i)
1271  {
1272  result += boost::lexical_cast<std::string>(v[i]);
1273  if (i < v.GetDimension() - 1)
1274  {
1275  result += ", ";
1276  }
1277  }
1278  result += ")";
1279  return result;
1280 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRows().

Referenced by Nektar::NekVector< DataType >::AsString().

◆ AsString() [2/3]

template std::string Nektar::AsString ( const NekVector< NekDouble > &  v)

◆ AsString() [3/3]

template std::string Nektar::AsString ( const NekVector< NekSingle > &  v)

◆ convertCooToBco()

void Nektar::convertCooToBco ( const unsigned int  blkDim,
const COOMatType cooMat,
BCOMatType bcoMat 
)

Definition at line 49 of file SparseUtils.cpp.

51 {
52  COOMatTypeConstIt entry;
54  int rowcoord, localRow, blkRowCoord;
55  int colcoord, localCol, blkColCoord;
56 
57  for (entry = cooMat.begin(); entry != cooMat.end(); entry++)
58  {
59  rowcoord = (entry->first).first;
60  colcoord = (entry->first).second;
61 
62  blkRowCoord = rowcoord / blkDim;
63  blkColCoord = colcoord / blkDim;
64 
65  CoordType blkCoords = std::make_pair(blkRowCoord, blkColCoord);
66  blk = bcoMat.find(blkCoords);
67  if (blk == bcoMat.end())
68  {
69  BCOEntryType b(blkDim * blkDim, 0.0);
70  bcoMat[blkCoords] = b;
71  }
72 
73  localRow = rowcoord % blkDim;
74  localCol = colcoord % blkDim;
75 
76  // transpose it: NIST SpBLAS expects Fortran ordering
77  // of dense subblocks
78  const unsigned int localoffset = localRow + localCol * blkDim;
79  (bcoMat[blkCoords])[localoffset] = entry->second;
80  }
81 }
COOMatType::const_iterator COOMatTypeConstIt
std::pair< IndexType, IndexType > CoordType
Array< OneD, NekDouble > BCOEntryType
BCOMatType::const_iterator BCOMatTypeConstIt

Referenced by Nektar::MultiRegions::GlobalMatrix::GlobalMatrix().

◆ CopyArray()

template<typename ConstDataType , typename DataType >
void Nektar::CopyArray ( const Array< OneD, ConstDataType > &  source,
Array< OneD, DataType > &  dest 
)

Definition at line 875 of file SharedArray.hpp.

877 {
878  if (dest.size() != source.size())
879  {
880  dest = Array<OneD, DataType>(source.size());
881  }
882 
883  std::copy(source.data(), source.data() + source.size(), dest.data());
884 }
def copy(self)
Definition: pycml.py:2663

References CellMLToNektar.pycml::copy(), Nektar::Array< OneD, DataType >::data(), and Nektar::Array< OneD, const DataType >::size().

Referenced by Nektar::LinearSystem::LinearSystem(), Nektar::StdRegions::StdExpansion0D::PhysTensorDeriv(), Nektar::StdRegions::StdExpansion1D::PhysTensorDeriv(), and Nektar::NekVector< NekDouble >::SetZ().

◆ CopyArrayN()

template<typename ConstDataType , typename DataType >
void Nektar::CopyArrayN ( const Array< OneD, ConstDataType > &  source,
Array< OneD, DataType > &  dest,
typename Array< OneD, DataType >::size_type  n 
)

Definition at line 887 of file SharedArray.hpp.

890 {
891  if (dest.size() != n)
892  {
893  dest = Array<OneD, DataType>(n);
894  }
895 
896  std::copy(source.data(), source.data() + n, dest.data());
897 }

References CellMLToNektar.pycml::copy(), Nektar::Array< OneD, DataType >::data(), and Nektar::Array< OneD, const DataType >::size().

Referenced by Nektar::NekMatrix< DataType, StandardMatrixTag >::NekMatrix(), Nektar::NekMatrix< DataType, StandardMatrixTag >::PerformCopyConstruction(), and Nektar::NekMatrix< DataType, StandardMatrixTag >::RemoveExcessCapacity().

◆ CreateStorage() [1/4]

template<typename Dim , typename DataType , typename ExtentListType >
std::shared_ptr<boost::multi_array_ref<DataType, Dim::Value> > Nektar::CreateStorage ( const ExtentListType &  extent)

Definition at line 182 of file ArrayPolicies.hpp.

184 {
185  typedef boost::multi_array_ref<DataType, Dim::Value> ArrayType;
186  size_t size = std::accumulate(extent.begin(), extent.end(), 1,
187  std::multiplies<size_t>());
188  DataType *storage = MemoryManager<DataType>::RawAllocate(size);
189  return MemoryManager<ArrayType>::AllocateSharedPtrD(
190  [=](boost::multi_array_ref<DataType, Dim::Value> *ptr) {
191  boost::ignore_unused(ptr);
192  ArrayDestructionPolicy<DataType>::Destroy(storage, size);
193  MemoryManager<DataType>::RawDeallocate(storage, size);
194  },
195  storage, extent);
196 }

References Nektar::MemoryManager< DataType >::AllocateSharedPtrD(), Nektar::MemoryManager< DataType >::RawAllocate(), and Nektar::MemoryManager< DataType >::RawDeallocate().

Referenced by Nektar::Array< OneD, const DataType >::Array().

◆ CreateStorage() [2/4]

template<typename DataType >
std::shared_ptr<boost::multi_array_ref<DataType, 1> > Nektar::CreateStorage ( size_t  d1)

Definition at line 199 of file ArrayPolicies.hpp.

200 {
201  std::vector<size_t> extents = {d1};
202  return CreateStorage<OneD, DataType>(extents);
203 }

◆ CreateStorage() [3/4]

template<typename DataType >
std::shared_ptr<boost::multi_array_ref<DataType, 2> > Nektar::CreateStorage ( size_t  d1,
size_t  d2 
)

Definition at line 206 of file ArrayPolicies.hpp.

208 {
209  std::vector<size_t> extents = {d1, d2};
210  return CreateStorage<TwoD, DataType>(extents);
211 }

◆ CreateStorage() [4/4]

template<typename DataType >
std::shared_ptr<boost::multi_array_ref<DataType, 3> > Nektar::CreateStorage ( size_t  d1,
size_t  d2,
size_t  d3 
)

Definition at line 214 of file ArrayPolicies.hpp.

217 {
218  std::vector<size_t> extents = {d1, d2, d3};
219  return CreateStorage<ThreeD, DataType>(extents);
220 }

◆ createVectorFromPoints() [1/3]

template<typename DataType >
NekVector< DataType > Nektar::createVectorFromPoints ( const NekPoint< DataType > &  source,
const NekPoint< DataType > &  dest 
)

Definition at line 995 of file NekVector.cpp.

997 {
998  NekVector<DataType> result(3, 0.0);
999  for (unsigned int i = 0; i < 3; ++i)
1000  {
1001  result[i] = dest[i] - source[i];
1002  }
1003  return result;
1004 }

◆ createVectorFromPoints() [2/3]

template NekVector<NekDouble> Nektar::createVectorFromPoints ( const NekPoint< NekDouble > &  source,
const NekPoint< NekDouble > &  dest 
)

◆ createVectorFromPoints() [3/3]

template NekVector<NekSingle> Nektar::createVectorFromPoints ( const NekPoint< NekSingle > &  source,
const NekPoint< NekSingle > &  dest 
)

◆ Cross() [1/3]

template<typename DataType >
NekVector< DataType > Nektar::Cross ( const NekVector< DataType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 1246 of file NekVector.cpp.

1248 {
1249  ASSERTL1(lhs.GetDimension() == 3 && rhs.GetDimension() == 3,
1250  "Cross is only valid for 3D vectors.");
1251 
1252  DataType first = lhs.y() * rhs.z() - lhs.z() * rhs.y();
1253  DataType second = lhs.z() * rhs.x() - lhs.x() * rhs.z();
1254  DataType third = lhs.x() * rhs.y() - lhs.y() * rhs.x();
1255 
1256  NekVector<DataType> result(first, second, third);
1257  return result;
1258 }

References ASSERTL1, Nektar::NekVector< DataType >::GetDimension(), Nektar::NekVector< DataType >::x(), Nektar::NekVector< DataType >::y(), and Nektar::NekVector< DataType >::z().

Referenced by Nektar::NekVector< DataType >::Cross().

◆ Cross() [2/3]

template NekVector<NekDouble> Nektar::Cross ( const NekVector< NekDouble > &  lhs,
const NekVector< NekDouble > &  rhs 
)

◆ Cross() [3/3]

template NekVector<NekSingle> Nektar::Cross ( const NekVector< NekSingle > &  lhs,
const NekVector< NekSingle > &  rhs 
)

◆ DiagonalBlockFullScalMatrixMultiply() [1/2]

void Nektar::DiagonalBlockFullScalMatrixMultiply ( NekVector< double > &  result,
const NekMatrix< NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag > &  lhs,
const NekVector< double > &  rhs 
)

Definition at line 266 of file MatrixVectorMultiplication.cpp.

272 {
273  unsigned int numberOfBlockRows = lhs.GetNumberOfBlockRows();
274  double *result_ptr = result.GetRawPtr();
275  const double *rhs_ptr = rhs.GetRawPtr();
276 
277  Array<OneD, unsigned int> rowSizes;
278  Array<OneD, unsigned int> colSizes;
279  lhs.GetBlockSizes(rowSizes, colSizes);
280 
281  unsigned int curResultRow = 0;
282  unsigned int curWrapperRow = 0;
283  unsigned int rowsInBlock = 0;
284  unsigned int columnsInBlock = 0;
285  for (unsigned int blockRow = 0; blockRow < numberOfBlockRows; ++blockRow)
286  {
287  curResultRow += rowsInBlock;
288  curWrapperRow += columnsInBlock;
289  if (blockRow == 0)
290  {
291  rowsInBlock = rowSizes[blockRow] + 1;
292  columnsInBlock = colSizes[blockRow] + 1;
293  }
294  else
295  {
296  rowsInBlock = rowSizes[blockRow] - rowSizes[blockRow - 1];
297  columnsInBlock = colSizes[blockRow] - colSizes[blockRow - 1];
298  }
299 
300  if (rowsInBlock == 0)
301  {
302  continue;
303  }
304  if (columnsInBlock == 0)
305  {
306  std::fill(result.begin() + curResultRow,
307  result.begin() + curResultRow + rowsInBlock, 0.0);
308  continue;
309  }
310 
311  const DNekScalMat *block = lhs.GetBlockPtr(blockRow, blockRow);
312  if (!block)
313  {
314  continue;
315  }
316 
317  double *resultWrapper = result_ptr + curResultRow;
318  const double *rhsWrapper = rhs_ptr + curWrapperRow;
319 
320  // Multiply
321  const unsigned int *size = block->GetSize();
322  Blas::Gemv('N', size[0], size[1], block->Scale(), block->GetRawPtr(),
323  size[0], rhsWrapper, 1, 0.0, resultWrapper, 1);
324  }
325  curResultRow += rowsInBlock;
326  if (curResultRow < result.GetRows())
327  {
328  std::fill(result.begin() + curResultRow, result.end(), 0.0);
329  }
330 }
static void Gemv(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:228
NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > DNekScalMat

References Nektar::NekVector< DataType >::begin(), Nektar::NekVector< DataType >::end(), Blas::Gemv(), Nektar::NekVector< DataType >::GetRawPtr(), and Nektar::NekVector< DataType >::GetRows().

◆ DiagonalBlockFullScalMatrixMultiply() [2/2]

void Nektar::DiagonalBlockFullScalMatrixMultiply ( NekVector< NekSingle > &  result,
const NekMatrix< NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag > &  lhs,
const NekVector< NekSingle > &  rhs 
)

Definition at line 332 of file MatrixVectorMultiplication.cpp.

338 {
339  unsigned int numberOfBlockRows = lhs.GetNumberOfBlockRows();
340  NekSingle *result_ptr = result.GetRawPtr();
341  const NekSingle *rhs_ptr = rhs.GetRawPtr();
342 
343  Array<OneD, unsigned int> rowSizes;
344  Array<OneD, unsigned int> colSizes;
345  lhs.GetBlockSizes(rowSizes, colSizes);
346 
347  unsigned int curResultRow = 0;
348  unsigned int curWrapperRow = 0;
349  unsigned int rowsInBlock = 0;
350  unsigned int columnsInBlock = 0;
351  for (unsigned int blockRow = 0; blockRow < numberOfBlockRows; ++blockRow)
352  {
353  curResultRow += rowsInBlock;
354  curWrapperRow += columnsInBlock;
355  if (blockRow == 0)
356  {
357  rowsInBlock = rowSizes[blockRow] + 1;
358  columnsInBlock = colSizes[blockRow] + 1;
359  }
360  else
361  {
362  rowsInBlock = rowSizes[blockRow] - rowSizes[blockRow - 1];
363  columnsInBlock = colSizes[blockRow] - colSizes[blockRow - 1];
364  }
365 
366  if (rowsInBlock == 0)
367  {
368  continue;
369  }
370  if (columnsInBlock == 0)
371  {
372  std::fill(result.begin() + curResultRow,
373  result.begin() + curResultRow + rowsInBlock, 0.0);
374  continue;
375  }
376 
377  const SNekScalMat *block = lhs.GetBlockPtr(blockRow, blockRow);
378  if (!block)
379  {
380  continue;
381  }
382 
383  NekSingle *resultWrapper = result_ptr + curResultRow;
384  const NekSingle *rhsWrapper = rhs_ptr + curWrapperRow;
385 
386  // Multiply
387  const unsigned int *size = block->GetSize();
388  Blas::Gemv('N', size[0], size[1], block->Scale(), block->GetRawPtr(),
389  size[0], rhsWrapper, 1, 0.0, resultWrapper, 1);
390  }
391  curResultRow += rowsInBlock;
392  if (curResultRow < result.GetRows())
393  {
394  std::fill(result.begin() + curResultRow, result.end(), 0.0);
395  }
396 }
NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag > SNekScalMat

References Nektar::NekVector< DataType >::begin(), Nektar::NekVector< DataType >::end(), Blas::Gemv(), Nektar::NekVector< DataType >::GetRawPtr(), and Nektar::NekVector< DataType >::GetRows().

◆ DiagonalBlockMatrixMultiply()

template<typename DataType , typename LhsInnerMatrixType >
void Nektar::DiagonalBlockMatrixMultiply ( NekVector< DataType > &  result,
const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 205 of file MatrixVectorMultiplication.cpp.

209 {
210  unsigned int numberOfBlockRows = lhs.GetNumberOfBlockRows();
211  DataType *result_ptr = result.GetRawPtr();
212  const DataType *rhs_ptr = rhs.GetRawPtr();
213 
214  Array<OneD, unsigned int> rowSizes;
215  Array<OneD, unsigned int> colSizes;
216  lhs.GetBlockSizes(rowSizes, colSizes);
217 
218  unsigned int curResultRow = 0;
219  unsigned int curWrapperRow = 0;
220  unsigned int rowsInBlock = 0;
221  unsigned int columnsInBlock = 0;
222  for (unsigned int blockRow = 0; blockRow < numberOfBlockRows; ++blockRow)
223  {
224  curResultRow += rowsInBlock;
225  curWrapperRow += columnsInBlock;
226  if (blockRow == 0)
227  {
228  rowsInBlock = rowSizes[blockRow] + 1;
229  columnsInBlock = colSizes[blockRow] + 1;
230  }
231  else
232  {
233  rowsInBlock = rowSizes[blockRow] - rowSizes[blockRow - 1];
234  columnsInBlock = colSizes[blockRow] - colSizes[blockRow - 1];
235  }
236 
237  if (rowsInBlock == 0)
238  {
239  continue;
240  }
241  if (columnsInBlock == 0)
242  {
243  std::fill(result.begin() + curResultRow,
244  result.begin() + curResultRow + rowsInBlock, 0.0);
245  continue;
246  }
247 
248  const LhsInnerMatrixType *block = lhs.GetBlockPtr(blockRow, blockRow);
249  if (!block)
250  {
251  continue;
252  }
253 
254  DataType *resultWrapper = result_ptr + curResultRow;
255  const DataType *rhsWrapper = rhs_ptr + curWrapperRow;
256  Multiply(resultWrapper, *block, rhsWrapper);
257  // resultWrapper = (*block)*rhsWrapper;
258  }
259  curResultRow += rowsInBlock;
260  if (curResultRow < result.GetRows())
261  {
262  std::fill(result.begin() + curResultRow, result.end(), 0.0);
263  }
264 }
NekVector< NekSingle > const NekVector< NekSingle > &NekVector< DataType > Multiply(const NekMatrix< LhsDataType, MatrixType > &lhs, const NekVector< DataType > &rhs)

References Nektar::NekVector< DataType >::begin(), Nektar::NekVector< DataType >::end(), Nektar::NekVector< DataType >::GetRawPtr(), Nektar::NekVector< DataType >::GetRows(), and Multiply().

Referenced by Multiply().

◆ distanceBetween()

template<typename DataType >
boost::call_traits<DataType>::value_type Nektar::distanceBetween ( const NekPoint< DataType > &  lhs,
const NekPoint< DataType > &  rhs 
)

Definition at line 462 of file NekPoint.hpp.

464 {
465  DataType result = 0.0;
466  for (unsigned int i = 0; i < 3; ++i)
467  {
468  DataType temp = lhs[i] - rhs[i];
469  result += temp * temp;
470  }
471  return sqrt(result);
472 }
scalarT< T > sqrt(scalarT< T > in)
Definition: scalar.hpp:294

References tinysimd::sqrt().

◆ Divide() [1/8]

template<typename DataType >
NekVector< DataType > Nektar::Divide ( const NekVector< DataType > &  lhs,
const NekDouble rhs 
)

Definition at line 741 of file NekVector.cpp.

742 {
743  NekVector<DataType> result(lhs.GetDimension());
744  Divide(result, lhs, rhs);
745  return result;
746 }
template NekVector< NekSingle > Divide(const NekVector< NekSingle > &lhs, const NekSingle &rhs)

References Divide(), and Nektar::NekVector< DataType >::GetDimension().

◆ Divide() [2/8]

template<typename DataType >
NekVector<DataType> Nektar::Divide ( const NekVector< DataType > &  lhs,
const NekSingle rhs 
)

Definition at line 749 of file NekVector.cpp.

750 {
751  NekVector<DataType> result(lhs.GetDimension());
752  Divide(result, lhs, rhs);
753  return result;
754 }

References Divide(), and Nektar::NekVector< DataType >::GetDimension().

◆ Divide() [3/8]

template NekVector<NekDouble> Nektar::Divide ( const NekVector< NekDouble > &  lhs,
const NekDouble rhs 
)

◆ Divide() [4/8]

template NekVector<NekSingle> Nektar::Divide ( const NekVector< NekSingle > &  lhs,
const NekSingle rhs 
)

Referenced by Divide().

◆ Divide() [5/8]

template void Nektar::Divide ( NekVector< NekDouble > &  result,
const NekVector< NekDouble > &  lhs,
const NekDouble rhs 
)

◆ Divide() [6/8]

template void Nektar::Divide ( NekVector< NekSingle > &  result,
const NekVector< NekSingle > &  lhs,
const NekSingle rhs 
)

◆ Divide() [7/8]

template<typename ResultDataType , typename InputDataType >
void Nektar::Divide ( NekVector< ResultDataType > &  result,
const NekVector< InputDataType > &  lhs,
const NekDouble rhs 
)

Definition at line 675 of file NekVector.cpp.

677 {
678  ResultDataType *r_buf = result.GetRawPtr();
679  typename std::add_const<InputDataType>::type *lhs_buf = lhs.GetRawPtr();
680 
681  const unsigned int ldim = lhs.GetDimension();
682  for (int i = 0; i < ldim; ++i)
683  {
684  r_buf[i] = lhs_buf[i] / rhs;
685  }
686 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

Referenced by operator/().

◆ Divide() [8/8]

template<typename ResultDataType , typename InputDataType >
void Nektar::Divide ( NekVector< ResultDataType > &  result,
const NekVector< InputDataType > &  lhs,
const NekSingle rhs 
)

Definition at line 689 of file NekVector.cpp.

691 {
692  ResultDataType *r_buf = result.GetRawPtr();
693  typename std::add_const<InputDataType>::type *lhs_buf = lhs.GetRawPtr();
694 
695  const unsigned int ldim = lhs.GetDimension();
696  for (int i = 0; i < ldim; ++i)
697  {
698  r_buf[i] = lhs_buf[i] / rhs;
699  }
700 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ DivideEqual() [1/4]

template void Nektar::DivideEqual ( NekVector< NekDouble > &  result,
const NekDouble rhs 
)

◆ DivideEqual() [2/4]

template void Nektar::DivideEqual ( NekVector< NekSingle > &  result,
const NekSingle rhs 
)

◆ DivideEqual() [3/4]

template<typename ResultDataType >
void Nektar::DivideEqual ( NekVector< ResultDataType > &  result,
const NekDouble rhs 
)

Definition at line 711 of file NekVector.cpp.

712 {
713  ResultDataType *r_buf = result.GetRawPtr();
714 
715  const unsigned int resdim = result.GetDimension();
716  for (int i = 0; i < resdim; ++i)
717  {
718  r_buf[i] /= rhs;
719  }
720 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ DivideEqual() [4/4]

template<typename ResultDataType >
void Nektar::DivideEqual ( NekVector< ResultDataType > &  result,
const NekSingle rhs 
)

Definition at line 723 of file NekVector.cpp.

724 {
725  ResultDataType *r_buf = result.GetRawPtr();
726 
727  const unsigned int resdim = result.GetDimension();
728  for (int i = 0; i < resdim; ++i)
729  {
730  r_buf[i] /= rhs;
731  }
732 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ Dot() [1/3]

template<typename DataType >
DataType Nektar::Dot ( const NekVector< DataType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 1193 of file NekVector.cpp.

1194 {
1195  ASSERTL1(lhs.GetDimension() == rhs.GetDimension(),
1196  "Dot, dimension of the two operands must be identical.");
1197 
1198  DataType result = DataType(0);
1199  const unsigned int ldim = lhs.GetDimension();
1200  for (unsigned int i = 0; i < ldim; ++i)
1201  {
1202  result += lhs[i] * rhs[i];
1203  }
1204 
1205  return result;
1206 }

References ASSERTL1, and Nektar::NekVector< DataType >::GetDimension().

Referenced by Nektar::PulseWaveSystem::BifurcationRiemann(), Nektar::NekVector< DataType >::Dot(), Nektar::PulseWaveSystem::InterfaceRiemann(), and Nektar::PulseWaveSystem::MergingRiemann().

◆ Dot() [2/3]

template NekDouble Nektar::Dot ( const NekVector< NekDouble > &  lhs,
const NekVector< NekDouble > &  rhs 
)

◆ Dot() [3/3]

template NekSingle Nektar::Dot ( const NekVector< NekSingle > &  lhs,
const NekVector< NekSingle > &  rhs 
)

◆ findPointAlongVector() [1/3]

template<typename DataType >
NekPoint< DataType > Nektar::findPointAlongVector ( const NekVector< DataType > &  lhs,
const DataType &  t 
)

Definition at line 1013 of file NekVector.cpp.

1015 {
1016  NekPoint<DataType> result;
1017  for (unsigned int i = 0; i < 3; ++i)
1018  {
1019  result[i] = lhs[i] * t;
1020  }
1021 
1022  return result;
1023 }

◆ findPointAlongVector() [2/3]

template NekPoint<NekDouble> Nektar::findPointAlongVector ( const NekVector< NekDouble > &  lhs,
const NekDouble t 
)

◆ findPointAlongVector() [3/3]

template NekPoint<NekSingle> Nektar::findPointAlongVector ( const NekVector< NekSingle > &  lhs,
const NekSingle t 
)

◆ FromString()

template<typename DataType >
std::vector< DataType > Nektar::FromString ( const std::string &  str)

Definition at line 1061 of file NekVector.cpp.

1062 {
1063  std::vector<DataType> result;
1064 
1065  try
1066  {
1067  typedef boost::tokenizer<boost::char_separator<char>> tokenizer;
1068  boost::char_separator<char> sep("(<,>) ");
1069  tokenizer tokens(str, sep);
1070  for (tokenizer::iterator strIter = tokens.begin();
1071  strIter != tokens.end(); ++strIter)
1072  {
1073  result.push_back(boost::lexical_cast<DataType>(*strIter));
1074  }
1075  }
1076  catch (boost::bad_lexical_cast &)
1077  {
1078  }
1079 
1080  return result;
1081 }

◆ fromString()

template<typename DataType >
bool Nektar::fromString ( const std::string &  str,
NekPoint< DataType > &  result 
)

Definition at line 475 of file NekPoint.hpp.

476 {
477  try
478  {
479  typedef boost::tokenizer<boost::char_separator<char>> tokenizer;
480  boost::char_separator<char> sep("(<,>) ");
481  tokenizer tokens(str, sep);
482  unsigned int i = 0;
483  for (tokenizer::iterator iter = tokens.begin(); iter != tokens.end();
484  ++iter)
485  {
486  result[i] = boost::lexical_cast<DataType>(*iter);
487  ++i;
488  }
489 
490  return i == 3;
491  }
492  catch (boost::bad_lexical_cast &)
493  {
494  return false;
495  }
496 }

Referenced by Nektar::NekPoint< data_type >::NekPoint().

◆ FullBlockMatrixMultiply()

template<typename DataType , typename LhsInnerMatrixType >
void Nektar::FullBlockMatrixMultiply ( NekVector< DataType > &  result,
const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 134 of file MatrixVectorMultiplication.cpp.

138 {
139  unsigned int numberOfBlockRows = lhs.GetNumberOfBlockRows();
140  unsigned int numberOfBlockColumns = lhs.GetNumberOfBlockColumns();
141  DataType *result_ptr = result.GetRawPtr();
142  const DataType *rhs_ptr = rhs.GetRawPtr();
143 
144  for (unsigned int i = 0; i < result.GetDimension(); ++i)
145  {
146  result_ptr[i] = DataType(0);
147  }
148  Array<OneD, DataType> temp(result.GetDimension());
149  DataType *temp_ptr = temp.get();
150 
151  unsigned int curResultRow = 0;
152  for (unsigned int blockRow = 0; blockRow < numberOfBlockRows; ++blockRow)
153  {
154  unsigned int rowsInBlock = lhs.GetNumberOfRowsInBlockRow(blockRow);
155 
156  if (blockRow != 0)
157  {
158  curResultRow += lhs.GetNumberOfRowsInBlockRow(blockRow - 1);
159  }
160 
161  if (rowsInBlock == 0)
162  {
163  continue;
164  }
165 
166  DataType *resultWrapper = result_ptr + curResultRow;
167 
168  unsigned int curWrapperRow = 0;
169  for (unsigned int blockColumn = 0; blockColumn < numberOfBlockColumns;
170  ++blockColumn)
171  {
172  if (blockColumn != 0)
173  {
174  curWrapperRow +=
175  lhs.GetNumberOfColumnsInBlockColumn(blockColumn - 1);
176  }
177 
178  // const std::shared_ptr<const LhsInnerMatrixType>& block =
179  // lhs.GetBlock(blockRow, blockColumn);
180  const LhsInnerMatrixType *block =
181  lhs.GetBlockPtr(blockRow, blockColumn);
182  if (!block)
183  {
184  continue;
185  }
186 
187  unsigned int columnsInBlock =
188  lhs.GetNumberOfColumnsInBlockColumn(blockColumn);
189  if (columnsInBlock == 0)
190  {
191  continue;
192  }
193 
194  const DataType *rhsWrapper = rhs_ptr + curWrapperRow;
195  Multiply(temp_ptr, *block, rhsWrapper);
196  for (unsigned int i = 0; i < rowsInBlock; ++i)
197  {
198  resultWrapper[i] += temp_ptr[i];
199  }
200  }
201  }
202 }

References Nektar::Array< OneD, DataType >::get(), Nektar::NekVector< DataType >::GetDimension(), Nektar::NekVector< DataType >::GetRawPtr(), and Multiply().

Referenced by Multiply().

◆ GetArtificialDiffusionFactory()

ArtificialDiffusionFactory & Nektar::GetArtificialDiffusionFactory ( )

Declaration of the artificial diffusion factory singleton.

Definition at line 42 of file ArtificialDiffusion.cpp.

43 {
44  static ArtificialDiffusionFactory instance;
45  return instance;
46 }
LibUtilities::NekFactory< std::string, ArtificialDiffusion, const LibUtilities::SessionReaderSharedPtr &, const Array< OneD, MultiRegions::ExpListSharedPtr > &, const int > ArtificialDiffusionFactory
Declaration of the artificial diffusion factory.

Referenced by Nektar::CompressibleFlowSystem::v_InitObject().

◆ GetBoundaryFactory()

BoundaryFactory & Nektar::GetBoundaryFactory ( )

Definition at line 62 of file PulseWaveBoundary.cpp.

63 {
64  static BoundaryFactory instance;
65  return instance;
66 }
LibUtilities::NekFactory< std::string, PulseWaveBoundary, Array< OneD, MultiRegions::ExpListSharedPtr > &, const LibUtilities::SessionReaderSharedPtr &, PulseWavePressureAreaSharedPtr & > BoundaryFactory

Referenced by Nektar::PulseWavePropagation::SetPulseWaveBoundaryConditions().

◆ GetCellModelFactory()

CellModelFactory & Nektar::GetCellModelFactory ( )

Definition at line 46 of file CellModel.cpp.

47 {
48  static CellModelFactory instance;
49  return instance;
50 }
LibUtilities::NekFactory< std::string, CellModel, const LibUtilities::SessionReaderSharedPtr &, const MultiRegions::ExpListSharedPtr & > CellModelFactory
Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class.
Definition: CellModel.h:61

Referenced by main(), Nektar::Bidomain::v_InitObject(), Nektar::BidomainRoth::v_InitObject(), and Nektar::Monodomain::v_InitObject().

◆ GetCFSBndCondFactory()

CFSBndCondFactory & Nektar::GetCFSBndCondFactory ( )

Declaration of the boundary condition factory singleton.

Definition at line 41 of file CFSBndCond.cpp.

42 {
43  static CFSBndCondFactory instance;
44  return instance;
45 }
LibUtilities::NekFactory< std::string, CFSBndCond, const LibUtilities::SessionReaderSharedPtr &, const Array< OneD, MultiRegions::ExpListSharedPtr > &, const Array< OneD, Array< OneD, NekDouble > > &, const int, const int, const int > CFSBndCondFactory
Declaration of the boundary condition factory.
Definition: CFSBndCond.h:59

Referenced by Nektar::CompressibleFlowSystem::v_InitObject().

◆ GetEquationOfStateFactory()

EquationOfStateFactory & Nektar::GetEquationOfStateFactory ( )

Declaration of the equation of state factory singleton.

Definition at line 41 of file EquationOfState.cpp.

42 {
43  static EquationOfStateFactory instance;
44  return instance;
45 }
LibUtilities::NekFactory< std::string, EquationOfState, const LibUtilities::SessionReaderSharedPtr & > EquationOfStateFactory
Declaration of the equation of state factory.

Referenced by Nektar::CompressibleSolver::CompressibleSolver(), Nektar::DiffusionLDGNS::v_InitObject(), and Nektar::VariableConverter::VariableConverter().

◆ GetExtrapolateFactory()

ExtrapolateFactory & Nektar::GetExtrapolateFactory ( )

Definition at line 48 of file Extrapolate.cpp.

49 {
50  static ExtrapolateFactory instance;
51  return instance;
52 }
LibUtilities::NekFactory< std::string, Extrapolate, const LibUtilities::SessionReaderSharedPtr &, Array< OneD, MultiRegions::ExpListSharedPtr > &, MultiRegions::ExpListSharedPtr &, const Array< OneD, int > &, const SolverUtils::AdvectionSharedPtr & > ExtrapolateFactory
Definition: Extrapolate.h:66

Referenced by Nektar::VelocityCorrectionScheme::SetUpExtrapolation(), Nektar::CoupledLinearNS::v_InitObject(), and Nektar::VCSMapping::v_InitObject().

◆ GetMemoryPool()

MemPool & Nektar::GetMemoryPool ( )

Definition at line 39 of file ThreadSpecificPool.cpp.

40 {
41  static MemPool instance;
42  return instance;
43 }

Referenced by Nektar::MemoryManager< DataType >::Deallocate(), Nektar::MemoryManager< DataType >::RawAllocate(), and Nektar::MemoryManager< DataType >::RawDeallocate().

◆ GetPreconCfsOpFactory()

PreconCfsOpFactory & Nektar::GetPreconCfsOpFactory ( )

Declaration of the boundary condition factory singleton.

Definition at line 42 of file PreconCfsOp.cpp.

43 {
44  static PreconCfsOpFactory instance;
45  return instance;
46 }
LibUtilities::NekFactory< std::string, PreconCfsOp, const Array< OneD, MultiRegions::ExpListSharedPtr > &, const LibUtilities::SessionReaderSharedPtr &, const LibUtilities::CommSharedPtr & > PreconCfsOpFactory
Declaration of the boundary condition factory.
Definition: PreconCfsOp.h:162

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

◆ GetPressureAreaFactory()

PressureAreaFactory & Nektar::GetPressureAreaFactory ( )

Definition at line 54 of file PulseWavePressureArea.cpp.

55 {
56  static PressureAreaFactory instance;
57  return instance;
58 }
LibUtilities::NekFactory< std::string, PulseWavePressureArea, Array< OneD, MultiRegions::ExpListSharedPtr > &, const LibUtilities::SessionReaderSharedPtr & > PressureAreaFactory

Referenced by Nektar::UpwindPulseSolver::RiemannSolverUpwind(), Nektar::PulseWavePropagation::v_InitObject(), and Nektar::PulseWaveSystem::v_InitObject().

◆ GetProtocolFactory()

ProtocolFactory & Nektar::GetProtocolFactory ( )

Definition at line 39 of file Protocol.cpp.

40 {
41  static ProtocolFactory instance;
42  return instance;
43 }
LibUtilities::NekFactory< std::string, Protocol, const LibUtilities::SessionReaderSharedPtr &, const TiXmlElement * > ProtocolFactory
Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class.
Definition: Protocol.h:56

Referenced by Nektar::Stimulus::Stimulus().

◆ GetStimulusFactory()

StimulusFactory & Nektar::GetStimulusFactory ( )

Definition at line 44 of file Stimulus.cpp.

45 {
46  static StimulusFactory instance;
47  return instance;
48 }
LibUtilities::NekFactory< std::string, Stimulus, const LibUtilities::SessionReaderSharedPtr &, const MultiRegions::ExpListSharedPtr &, const TiXmlElement * > StimulusFactory
Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class.
Definition: Stimulus.h:59

Referenced by Nektar::Stimulus::LoadStimuli().

◆ GramSchmidtOrthogonalization()

template<typename DataType >
std::vector<NekVector<DataType> > Nektar::GramSchmidtOrthogonalization ( const std::vector< NekVector< DataType >> &  x)

Calculates the orthogonal, normalized vectors from linearly independent input.

Returns
A list of ortogonalized vectors corresponding to the input vectors. If the size of the output doesn't match the size of the input then an error occurred. This algorithm is taken from "Parallel Scientific Computing in C++ and MPI", Karniadakis and Kirby, page 55.

Definition at line 52 of file NekLinAlgAlgorithms.hpp.

54 {
55  typedef NekVector<DataType> VectorType;
56  typedef NekMatrix<DataType> MatrixType;
57 
58  // typename dim = x[0].GetDimension();
59  unsigned int dim = x[0].GetDimension();
60  std::vector<VectorType> q(x.size(), VectorType());
61 
62  // This matrix holds the r_ij values. Using the matrix object
63  // is a convenience since it provides a 2D access to a table
64  // of values.
65  MatrixType r(dim, dim);
66  r(0, 0) = x[0].L2Norm();
67 
68  if (r(0, 0) == DataType(0))
69  {
70  return q;
71  }
72 
73  q[0] = x[0] / r(0, 0);
74 
75  for (unsigned int j = 1; j < x.size(); ++j)
76  {
77  for (unsigned int i = 0; i <= j - 1; ++i)
78  {
79  r(i, j) = q[i].Dot(x[j]);
80  }
81 
82  VectorType y = x[j];
83  for (unsigned int i = 0; i <= j - 1; ++i)
84  {
85  y = y - r(i, j) * q[i];
86  }
87 
88  r(j, j) = y.L2Norm();
89  if (r(j, j) == DataType(0))
90  {
91  return q;
92  }
93 
94  q[j] = y / r(j, j);
95  }
96 
97  return q;
98 }

◆ guessp()

NekDouble Nektar::guessp ( NekDouble  g[],
NekDouble  rhoL,
NekDouble  uL,
NekDouble  pL,
NekDouble  cL,
NekDouble  rhoR,
NekDouble  uR,
NekDouble  pR,
NekDouble  cR 
)
inline

Use either PVRS, two-rarefaction or two-shock Riemann solvers to calculate an initial pressure for the Newton-Raphson scheme.

Parameters
gArray of calculated gamma values.
rhoLDensity left state.
rhoRDensity right state.
uLx-velocity component left state.
uRx-velocity component right state.
pLPressure component left state.
pRPressure component right state.
cLSound speed component left state.
cRSound speed component right state.
Returns
Computed initial guess for the Newton-Raphson scheme.

Definition at line 67 of file ExactSolverToro.cpp.

70 {
71  const NekDouble quser = 2.0;
72  NekDouble cup, ppv, pmin, pmax, qmax;
73 
74  cup = 0.25 * (rhoL + rhoR) * (cL + cR);
75  ppv = 0.5 * (pL + pR) + 0.5 * (uL - uR) * cup;
76  ppv = std::max(0.0, ppv);
77  pmin = std::min(pL, pR);
78  pmax = std::max(pL, pR);
79  qmax = pmax / pmin;
80 
81  if (qmax <= quser && pmin <= ppv && ppv <= pmax)
82  {
83  // Select PVRS Riemann solver.
84  return ppv;
85  }
86  else if (ppv < pmin)
87  {
88  // Select two-rarefaction Riemann solver.
89  NekDouble pq = pow(pL / pR, g[1]);
90  NekDouble um =
91  (pq * uL / cL + uR / cR + g[4] * (pq - 1.0)) / (pq / cL + 1.0 / cR);
92  NekDouble ptL = 1.0 + g[7] * (uL - um) / cL;
93  NekDouble ptR = 1.0 + g[7] * (um - uR) / cR;
94  return 0.5 * (pL * pow(ptL, g[3]) + pR * pow(ptR, g[3]));
95  }
96  else
97  {
98  // Select two-shock Riemann solver with PVRS as estimate.
99  NekDouble geL = sqrt((g[5] / rhoL) / (g[6] * pL + ppv));
100  NekDouble geR = sqrt((g[5] / rhoR) / (g[6] * pR + ppv));
101  return (geL * pL + geR * pR - (uR - uL)) / (geL + geR);
102  }
103 }
double NekDouble

References tinysimd::sqrt().

Referenced by Nektar::ExactSolverToro::v_PointSolve().

◆ hash_combine() [1/3]

template<typename T , typename... Args>
std::size_t Nektar::hash_combine ( const T &  v,
Args...  args 
)
inline

Definition at line 60 of file HashUtils.hpp.

61 {
62  boost::ignore_unused(v);
63  std::size_t seed = 0;
64  hash_combine(seed, args...);
65  return seed;
66 }
std::size_t hash_combine(const T &v, Args... args)
Definition: HashUtils.hpp:60

References hash_combine().

◆ hash_combine() [2/3]

void Nektar::hash_combine ( std::size_t &  seed)
inline

◆ hash_combine() [3/3]

template<typename T , typename... Args>
void Nektar::hash_combine ( std::size_t &  seed,
const T &  v,
Args...  args 
)
inline

Definition at line 52 of file HashUtils.hpp.

53 {
54  std::hash<T> hasher;
55  seed ^= hasher(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
56  hash_combine(seed, args...);
57 }

References hash_combine().

◆ hash_range() [1/2]

template<typename Iter >
std::size_t Nektar::hash_range ( Iter  first,
Iter  last 
)

◆ hash_range() [2/2]

template<typename Iter >
void Nektar::hash_range ( std::size_t &  seed,
Iter  first,
Iter  last 
)

Definition at line 79 of file HashUtils.hpp.

80 {
81  hash_combine(seed, hash_range(first, last));
82 }
void hash_range(std::size_t &seed, Iter first, Iter last)
Definition: HashUtils.hpp:79

References hash_combine(), and hash_range().

◆ InfinityNorm() [1/3]

template<typename DataType >
DataType Nektar::InfinityNorm ( const NekVector< DataType > &  v)

Definition at line 1125 of file NekVector.cpp.

1126 {
1127  DataType result = fabs(v[0]);
1128  const unsigned int vdim = v.GetDimension();
1129  for (unsigned int i = 0; i < vdim; ++i)
1130  {
1131  result = std::max(DataType(fabs(v[i])), result);
1132  }
1133  return result;
1134 }

References Nektar::NekVector< DataType >::GetDimension().

Referenced by Nektar::NekVector< DataType >::InfinityNorm().

◆ InfinityNorm() [2/3]

template NekDouble Nektar::InfinityNorm ( const NekVector< NekDouble > &  v)

◆ InfinityNorm() [3/3]

template NekSingle Nektar::InfinityNorm ( const NekVector< NekSingle > &  v)

◆ InvertInPlace() [1/2]

void Nektar::InvertInPlace ( NekDouble v)

Definition at line 1229 of file NekVector.cpp.

1230 {
1231  v = 1.0 / v;
1232 }

◆ InvertInPlace() [2/2]

void Nektar::InvertInPlace ( NekSingle v)

Definition at line 1240 of file NekVector.cpp.

1241 {
1242  v = 1.0 / v;
1243 }

◆ IsEqual()

template<typename T >
bool Nektar::IsEqual ( const T &  lhs,
const T &  rhs 
)
inline

Definition at line 822 of file SharedArray.hpp.

823 {
824  return IsEqualImpl(lhs, rhs, std::is_floating_point<T>());
825 }
bool IsEqualImpl(const T &lhs, const T &rhs, std::true_type)

References IsEqualImpl().

Referenced by operator==().

◆ IsEqualImpl() [1/2]

template<typename T >
bool Nektar::IsEqualImpl ( const T &  lhs,
const T &  rhs,
std::false_type   
)
inline

Definition at line 810 of file SharedArray.hpp.

811 {
812  return lhs == rhs;
813 }

Referenced by IsEqual().

◆ IsEqualImpl() [2/2]

template<typename T >
bool Nektar::IsEqualImpl ( const T &  lhs,
const T &  rhs,
std::true_type   
)
inline

Definition at line 817 of file SharedArray.hpp.

818 {
819  return LibUtilities::IsRealEqual(lhs, rhs);
820 }
bool IsRealEqual(T1 &&lhs, T2 &&rhs, const unsigned int factor=NekConstants::kNekFloatCompFact)
compare reals of same type with relative tolerance

References Nektar::LibUtilities::IsRealEqual().

◆ L1Norm() [1/3]

template<typename DataType >
DataType Nektar::L1Norm ( const NekVector< DataType > &  v)
Todo:
Do the Norms with Blas where applicable.

Definition at line 1089 of file NekVector.cpp.

1090 {
1091  typedef NekVector<DataType> VectorType;
1092 
1093  DataType result(0);
1094  for (typename VectorType::const_iterator iter = v.begin(); iter != v.end();
1095  ++iter)
1096  {
1097  result += fabs(*iter);
1098  }
1099 
1100  return result;
1101 }

References Nektar::NekVector< DataType >::begin(), and Nektar::NekVector< DataType >::end().

Referenced by Nektar::NekVector< DataType >::L1Norm().

◆ L1Norm() [2/3]

template NekDouble Nektar::L1Norm ( const NekVector< NekDouble > &  v)

◆ L1Norm() [3/3]

template NekSingle Nektar::L1Norm ( const NekVector< NekSingle > &  v)

◆ L2Norm() [1/3]

template<typename DataType >
DataType Nektar::L2Norm ( const NekVector< DataType > &  v)

Definition at line 1107 of file NekVector.cpp.

1108 {
1109  typedef NekVector<DataType> VectorType;
1110 
1111  DataType result(0);
1112  for (typename VectorType::const_iterator iter = v.begin(); iter != v.end();
1113  ++iter)
1114  {
1115  DataType v = fabs(*iter);
1116  result += v * v;
1117  }
1118  return sqrt(result);
1119 }

References Nektar::NekVector< DataType >::begin(), Nektar::NekVector< DataType >::end(), and tinysimd::sqrt().

Referenced by Nektar::NekVector< DataType >::L2Norm().

◆ L2Norm() [2/3]

template NekDouble Nektar::L2Norm ( const NekVector< NekDouble > &  v)

◆ L2Norm() [3/3]

template NekSingle Nektar::L2Norm ( const NekVector< NekSingle > &  v)

◆ Magnitude() [1/3]

template<typename DataType >
DataType Nektar::Magnitude ( const NekVector< DataType > &  v)

Definition at line 1174 of file NekVector.cpp.

1175 {
1176  DataType result = DataType(0);
1177 
1178  const unsigned int vdim = v.GetDimension();
1179  for (unsigned int i = 0; i < vdim; ++i)
1180  {
1181  result += v[i] * v[i];
1182  }
1183  return sqrt(result);
1184 }

References Nektar::NekVector< DataType >::GetDimension(), and tinysimd::sqrt().

Referenced by Nektar::NekVector< DataType >::Magnitude().

◆ Magnitude() [2/3]

template NekDouble Nektar::Magnitude ( const NekVector< NekDouble > &  v)

◆ Magnitude() [3/3]

template NekSingle Nektar::Magnitude ( const NekVector< NekSingle > &  v)

◆ MappingIdealToRef()

DNekMat Nektar::MappingIdealToRef ( SpatialDomains::GeometrySharedPtr  geom)
inline

Definition at line 75 of file LinearElasticSystem.cpp.

76 {
77  int n = geom->GetNumVerts(), i, j;
78 
79  DNekMat map(n, n, 1.0, eFULL);
80  DNekMat mapref(n, n, 1.0, eFULL);
81 
82  // Extract coordinate information.
83  for (i = 0; i < n; ++i)
84  {
85  for (j = 0; j < n - 1; ++j)
86  {
87  map(j, i) = (*geom->GetVertex(i))[j];
88  }
89  }
90 
91  // Set up reference triangle or tetrahedron mapping.
92  if (n == 3)
93  {
94  mapref(0, 0) = -1.0;
95  mapref(1, 0) = -1.0;
96  mapref(0, 1) = 1.0;
97  mapref(1, 1) = -1.0;
98  mapref(0, 2) = -1.0;
99  mapref(1, 2) = 1.0;
100  }
101  else if (n == 4)
102  {
103  mapref(0, 0) = -1.0;
104  mapref(1, 0) = -1.0;
105  mapref(2, 0) = -1.0;
106  mapref(0, 1) = 1.0;
107  mapref(1, 1) = -1.0;
108  mapref(2, 1) = -1.0;
109  mapref(0, 2) = -1.0;
110  mapref(1, 2) = 1.0;
111  mapref(2, 2) = -1.0;
112  mapref(0, 3) = -1.0;
113  mapref(1, 3) = -1.0;
114  mapref(2, 3) = 1.0;
115  }
116 
117  map.Invert();
118 
119  DNekMat newmap = mapref * map;
120  DNekMat mapred(n - 1, n - 1, 1.0, eFULL);
121 
122  for (i = 0; i < n - 1; ++i)
123  {
124  for (j = 0; j < n - 1; ++j)
125  {
126  mapred(i, j) = newmap(i, j);
127  }
128  }
129 
130  return mapred;
131 }
NekMatrix< NekDouble, StandardMatrixTag > DNekMat
Definition: NekTypeDefs.hpp:50

References eFULL.

Referenced by Nektar::LinearElasticSystem::v_DoSolve().

◆ Multiply() [1/36]

template<typename DataType , typename RhsDataType , typename RhsMatrixType >
SNekMat const NekSingle NekMatrix<typename NekMatrix<RhsDataType, RhsMatrixType>::NumberType, StandardMatrixTag> Nektar::Multiply ( const DataType &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 103 of file MatrixOperations.cpp.

105 {
106  return Multiply(rhs, lhs);
107 }
void Multiply(NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)

References Multiply().

◆ Multiply() [2/36]

template<typename DataType , typename RhsDataType , typename RhsMatrixType >
NekMatrix<typename NekMatrix<RhsDataType, RhsMatrixType>::NumberType, StandardMatrixTag> Nektar::Multiply ( const DataType &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 103 of file MatrixOperations.cpp.

105 {
106  return Multiply(rhs, lhs);
107 }

References Multiply().

◆ Multiply() [3/36]

template<typename DataType >
NekVector< DataType > Nektar::Multiply ( const DataType &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 969 of file NekVector.cpp.

971 {
972  return Multiply(rhs, lhs);
973 }
template NekVector< NekSingle > Multiply(const NekSingle &lhs, const NekVector< NekSingle > &rhs)

References Multiply().

◆ Multiply() [4/36]

template NekVector<NekDouble> Nektar::Multiply ( const NekDouble lhs,
const NekVector< NekDouble > &  rhs 
)

◆ Multiply() [5/36]

template<typename DataType , typename LhsDataType , typename LhsMatrixType >
SNekMat const NekSingle& NekMatrix<typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType, StandardMatrixTag> Nektar::Multiply ( const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const DataType &  rhs 
)

Definition at line 67 of file MatrixOperations.cpp.

68 {
69  typedef typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType
70  ResultDataType;
71  NekMatrix<ResultDataType, StandardMatrixTag> result(lhs.GetRows(),
72  lhs.GetColumns());
73  Multiply(result, lhs, rhs);
74  return result;
75 }

References Multiply().

◆ Multiply() [6/36]

template<typename DataType , typename LhsDataType , typename LhsMatrixType >
NekMatrix<typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType, StandardMatrixTag> Nektar::Multiply ( const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const DataType &  rhs 
)

Definition at line 67 of file MatrixOperations.cpp.

68 {
69  typedef typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType
70  ResultDataType;
71  NekMatrix<ResultDataType, StandardMatrixTag> result(lhs.GetRows(),
72  lhs.GetColumns());
73  Multiply(result, lhs, rhs);
74  return result;
75 }

References Multiply().

◆ Multiply() [7/36]

template<typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
NekMatrix<typename std::remove_const< typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType>::type, StandardMatrixTag> Nektar::Multiply ( const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 267 of file MatrixOperations.hpp.

269 {
270  typedef typename std::remove_const<
271  typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType>::type
272  NumberType;
273  NekMatrix<NumberType, StandardMatrixTag> result(lhs.GetRows(),
274  rhs.GetColumns());
275  Multiply(result, lhs, rhs);
276  return result;
277 }
NekMatrix< typename std::remove_const< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType >::type, StandardMatrixTag > Multiply(const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)

References Multiply().

◆ Multiply() [8/36]

template<typename DataType , typename LhsDataType , typename MatrixType >
NekVector<DataType> Nektar::Multiply ( const NekMatrix< LhsDataType, MatrixType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 642 of file MatrixVectorMultiplication.cpp.

644 {
645  NekVector<DataType> result(lhs.GetRows(), DataType(0));
646  Multiply(result, lhs, rhs);
647  return result;
648 }

References Multiply().

◆ Multiply() [9/36]

template<typename DataType , typename LhsDataType , typename MatrixType >
NekVector<NekSingle> const NekVector<NekSingle>& NekVector<DataType> Nektar::Multiply ( const NekMatrix< LhsDataType, MatrixType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 642 of file MatrixVectorMultiplication.cpp.

644 {
645  NekVector<DataType> result(lhs.GetRows(), DataType(0));
646  Multiply(result, lhs, rhs);
647  return result;
648 }

References Multiply().

◆ Multiply() [10/36]

template NekVector<NekSingle> Nektar::Multiply ( const NekSingle lhs,
const NekVector< NekSingle > &  rhs 
)

Referenced by Multiply().

◆ Multiply() [11/36]

template<typename DataType >
NekVector< DataType > Nektar::Multiply ( const NekVector< DataType > &  lhs,
const NekDouble rhs 
)

Definition at line 883 of file NekVector.cpp.

885 {
886  NekVector<DataType> result(lhs.GetDimension());
887  Multiply(result, lhs, rhs);
888  return result;
889 }

References Nektar::NekVector< DataType >::GetDimension(), and Multiply().

◆ Multiply() [12/36]

template<typename DataType >
NekVector<DataType> Nektar::Multiply ( const NekVector< DataType > &  lhs,
const NekSingle rhs 
)

Definition at line 892 of file NekVector.cpp.

894 {
895  NekVector<DataType> result(lhs.GetDimension());
896  Multiply(result, lhs, rhs);
897  return result;
898 }

References Nektar::NekVector< DataType >::GetDimension(), and Multiply().

◆ Multiply() [13/36]

template<typename DataType , typename InputDataType >
NekVector< DataType > Nektar::Multiply ( const NekVector< DataType > &  lhs,
const NekVector< InputDataType > &  rhs 
)

Definition at line 805 of file NekVector.cpp.

807 {
808  NekVector<DataType> result(lhs.GetDimension());
809  Multiply(result, lhs, rhs);
810  return result;
811 }

References Nektar::NekVector< DataType >::GetDimension(), and Multiply().

◆ Multiply() [14/36]

template NekVector<NekDouble> Nektar::Multiply ( const NekVector< NekDouble > &  lhs,
const NekDouble rhs 
)

◆ Multiply() [15/36]

template NekVector<NekDouble> Nektar::Multiply ( const NekVector< NekDouble > &  lhs,
const NekVector< NekDouble > &  rhs 
)

◆ Multiply() [16/36]

template NekVector<NekSingle> Nektar::Multiply ( const NekVector< NekSingle > &  lhs,
const NekSingle rhs 
)

◆ Multiply() [17/36]

template NekVector<NekSingle> Nektar::Multiply ( const NekVector< NekSingle > &  lhs,
const NekVector< NekSingle > &  rhs 
)

◆ Multiply() [18/36]

template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::Multiply ( DataType *  result,
const NekMatrix< LhsDataType, MatrixType > &  lhs,
const DataType *  rhs 
)

Definition at line 566 of file MatrixVectorMultiplication.cpp.

568 {
569  switch (lhs.GetType())
570  {
571  case eFULL:
572  NekMultiplyFullMatrix(result, lhs, rhs);
573  break;
574  case eDIAGONAL:
575  NekMultiplyDiagonalMatrix(result, lhs, rhs);
576  break;
577  case eUPPER_TRIANGULAR:
578  NekMultiplyUpperTriangularMatrix(result, lhs, rhs);
579  break;
580  case eLOWER_TRIANGULAR:
581  NekMultiplyLowerTriangularMatrix(result, lhs, rhs);
582  break;
583  case eSYMMETRIC:
584  NekMultiplySymmetricMatrix(result, lhs, rhs);
585  break;
586  case eBANDED:
587  NekMultiplyBandedMatrix(result, lhs, rhs);
588  break;
589  case eSYMMETRIC_BANDED:
592  default:
593  NekMultiplyUnspecializedMatrixType(result, lhs, rhs);
594  }
595 }
void NekMultiplySymmetricMatrix(DataType *result, const NekMatrix< InnerMatrixType, MatrixTag > &lhs, const DataType *rhs, typename std::enable_if< !CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag >>::value >::type *p=0)
void NekMultiplyUpperTriangularMatrix(DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
void NekMultiplyDiagonalMatrix(DataType *result, const NekMatrix< LhsDataType, StandardMatrixTag > &lhs, const DataType *rhs)
void NekMultiplyLowerTriangularMatrix(DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
void NekMultiplyFullMatrix(DataType *result, const NekMatrix< InnerMatrixType, MatrixTag > &lhs, const DataType *rhs, typename std::enable_if< !CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag >>::value >::type *p=0)
void NekMultiplyUnspecializedMatrixType(DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
void NekMultiplyBandedMatrix(DataType *result, const NekMatrix< LhsDataType, BlockMatrixTag > &lhs, const DataType *rhs, typename std::enable_if< !CanGetRawPtr< NekMatrix< LhsDataType, BlockMatrixTag >>::value >::type *p=0)

References eBANDED, eDIAGONAL, eFULL, eLOWER_TRIANGULAR, eLOWER_TRIANGULAR_BANDED, eSYMMETRIC, eSYMMETRIC_BANDED, eUPPER_TRIANGULAR, eUPPER_TRIANGULAR_BANDED, NekMultiplyBandedMatrix(), NekMultiplyDiagonalMatrix(), NekMultiplyFullMatrix(), NekMultiplyLowerTriangularMatrix(), NekMultiplySymmetricMatrix(), NekMultiplyUnspecializedMatrixType(), and NekMultiplyUpperTriangularMatrix().

◆ Multiply() [19/36]

template<typename LhsDataType , typename RhsDataType , typename DataType , typename LhsMatrixType , typename RhsMatrixType >
void Nektar::Multiply ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 177 of file MatrixOperations.cpp.

180 {
181  ASSERTL1(lhs.GetColumns() == rhs.GetRows(),
182  std::string("A left side matrix with column count ") +
183  std::to_string(lhs.GetColumns()) +
184  std::string(" and a right side matrix with row count ") +
185  std::to_string(rhs.GetRows()) +
186  std::string(" can't be multiplied."));
187 
188  result.SetSize(lhs.GetRows(), rhs.GetColumns());
189  if (lhs.GetType() == eFULL && rhs.GetType() == eFULL)
190  {
191  NekMultiplyFullMatrixFullMatrix(result, lhs, rhs);
192  }
193  else
194  {
195  NekMultiplyDefaultImpl(result, lhs, rhs);
196  }
197 }
void NekMultiplyFullMatrixFullMatrix(NekMatrix< ResultType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
SNekMat const NekSingle &void NekMultiplyDefaultImpl(NekMatrix< ResultType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)

References ASSERTL1, eFULL, NekMultiplyDefaultImpl(), NekMultiplyFullMatrixFullMatrix(), and Nektar::NekMatrix< DataType, StandardMatrixTag >::SetSize().

◆ Multiply() [20/36]

template<typename ResultDataType , typename LhsDataType , typename LhsMatrixType >
void Nektar::Multiply ( NekMatrix< ResultDataType, StandardMatrixTag > &  result,
const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const ResultDataType &  rhs 
)

Definition at line 41 of file MatrixOperations.cpp.

44 {
45  // TODO - optimize for the different matrix types.
46  int n = lhs.GetRows();
47  int m = lhs.GetColumns();
48  for (unsigned int i = 0; i < n; ++i)
49  {
50  for (unsigned int j = 0; j < m; ++j)
51  {
52  result(i, j) = lhs(i, j) * rhs;
53  }
54  }
55 }

Referenced by Nektar::PulseWaveSystem::BifurcationRiemann(), DiagonalBlockMatrixMultiply(), FullBlockMatrixMultiply(), Nektar::PulseWaveSystem::InterfaceRiemann(), Nektar::PulseWaveSystem::MergingRiemann(), Multiply(), operator*(), and Nektar::MultiRegions::GlobalLinSysStaticCond::v_Solve().

◆ Multiply() [21/36]

template<typename RhsDataType , typename RhsMatrixType , typename ResultDataType >
const NekSingle& void Nektar::Multiply ( NekMatrix< ResultDataType, StandardMatrixTag > &  result,
const ResultDataType &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 85 of file MatrixOperations.cpp.

89 {
90  Multiply(result, rhs, lhs);
91 }

References Multiply().

◆ Multiply() [22/36]

template<typename RhsDataType , typename RhsMatrixType , typename ResultDataType >
void Nektar::Multiply ( NekMatrix< ResultDataType, StandardMatrixTag > &  result,
const ResultDataType &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 85 of file MatrixOperations.cpp.

89 {
90  Multiply(result, rhs, lhs);
91 }

References Multiply().

◆ Multiply() [23/36]

template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::Multiply ( NekVector< DataType > &  result,
const NekMatrix< LhsDataType, MatrixType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 598 of file MatrixVectorMultiplication.cpp.

601 {
602 
603  ASSERTL1(lhs.GetColumns() == rhs.GetRows(),
604  std::string("A left side matrix with column count ") +
605  std::to_string(lhs.GetColumns()) +
606  std::string(" and a right side vector with row count ") +
607  std::to_string(rhs.GetRows()) +
608  std::string(" can't be multiplied."));
609  Multiply(result.GetRawPtr(), lhs, rhs.GetRawPtr());
610 }

References ASSERTL1, Nektar::NekVector< DataType >::GetRawPtr(), Nektar::NekVector< DataType >::GetRows(), and Multiply().

◆ Multiply() [24/36]

template<typename DataType , typename LhsInnerMatrixType >
void Nektar::Multiply ( NekVector< DataType > &  result,
const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 620 of file MatrixVectorMultiplication.cpp.

623 {
624  if (lhs.GetStorageType() == eDIAGONAL)
625  {
626  DiagonalBlockMatrixMultiply(result, lhs, rhs);
627  }
628  else
629  {
630  FullBlockMatrixMultiply(result, lhs, rhs);
631  }
632 }
void DiagonalBlockMatrixMultiply(NekVector< DataType > &result, const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &lhs, const NekVector< DataType > &rhs)
void FullBlockMatrixMultiply(NekVector< DataType > &result, const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &lhs, const NekVector< DataType > &rhs)

References DiagonalBlockMatrixMultiply(), eDIAGONAL, and FullBlockMatrixMultiply().

◆ Multiply() [25/36]

template<typename DataType , typename LhsInnerMatrixType >
NekVector<NekSingle> const NekVector<NekSingle>& void Nektar::Multiply ( NekVector< DataType > &  result,
const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 620 of file MatrixVectorMultiplication.cpp.

623 {
624  if (lhs.GetStorageType() == eDIAGONAL)
625  {
626  DiagonalBlockMatrixMultiply(result, lhs, rhs);
627  }
628  else
629  {
630  FullBlockMatrixMultiply(result, lhs, rhs);
631  }
632 }

References DiagonalBlockMatrixMultiply(), eDIAGONAL, and FullBlockMatrixMultiply().

◆ Multiply() [26/36]

template void Nektar::Multiply ( NekVector< NekDouble > &  result,
const NekDouble lhs,
const NekVector< NekDouble > &  rhs 
)

◆ Multiply() [27/36]

template void Nektar::Multiply ( NekVector< NekDouble > &  result,
const NekVector< NekDouble > &  lhs,
const NekDouble rhs 
)

◆ Multiply() [28/36]

template void Nektar::Multiply ( NekVector< NekDouble > &  result,
const NekVector< NekDouble > &  lhs,
const NekVector< NekDouble > &  rhs 
)

◆ Multiply() [29/36]

template void Nektar::Multiply ( NekVector< NekSingle > &  result,
const NekSingle lhs,
const NekVector< NekSingle > &  rhs 
)

◆ Multiply() [30/36]

template void Nektar::Multiply ( NekVector< NekSingle > &  result,
const NekVector< NekSingle > &  lhs,
const NekSingle rhs 
)

◆ Multiply() [31/36]

template void Nektar::Multiply ( NekVector< NekSingle > &  result,
const NekVector< NekSingle > &  lhs,
const NekVector< NekSingle > &  rhs 
)

◆ Multiply() [32/36]

template<typename ResultDataType , typename InputDataType >
void Nektar::Multiply ( NekVector< ResultDataType > &  result,
const NekDouble lhs,
const NekVector< InputDataType > &  rhs 
)

Definition at line 907 of file NekVector.cpp.

909 {
910  Multiply(result, rhs, lhs);
911 }

References Multiply().

◆ Multiply() [33/36]

template<typename ResultDataType , typename InputDataType >
void Nektar::Multiply ( NekVector< ResultDataType > &  result,
const NekSingle lhs,
const NekVector< InputDataType > &  rhs 
)

Definition at line 930 of file NekVector.cpp.

932 {
933  Multiply(result, rhs, lhs);
934 }

References Multiply().

◆ Multiply() [34/36]

template<typename ResultDataType , typename InputDataType >
void Nektar::Multiply ( NekVector< ResultDataType > &  result,
const NekVector< InputDataType > &  lhs,
const NekDouble rhs 
)

Definition at line 820 of file NekVector.cpp.

822 {
823  ResultDataType *r_buf = result.GetRawPtr();
824  const InputDataType *lhs_buf = lhs.GetRawPtr();
825 
826  const unsigned int ldim = lhs.GetDimension();
827  for (int i = 0; i < ldim; ++i)
828  {
829  r_buf[i] = lhs_buf[i] * rhs;
830  }
831 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ Multiply() [35/36]

template<typename ResultDataType , typename InputDataType >
void Nektar::Multiply ( NekVector< ResultDataType > &  result,
const NekVector< InputDataType > &  lhs,
const NekSingle rhs 
)

Definition at line 834 of file NekVector.cpp.

836 {
837  ResultDataType *r_buf = result.GetRawPtr();
838  const InputDataType *lhs_buf = lhs.GetRawPtr();
839 
840  const unsigned int ldim = lhs.GetDimension();
841  for (int i = 0; i < ldim; ++i)
842  {
843  r_buf[i] = lhs_buf[i] * rhs;
844  }
845 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ Multiply() [36/36]

template<typename ResultDataType , typename InputDataType >
void Nektar::Multiply ( NekVector< ResultDataType > &  result,
const NekVector< InputDataType > &  lhs,
const NekVector< InputDataType > &  rhs 
)

Definition at line 763 of file NekVector.cpp.

766 {
767  ResultDataType *result_buf = result.GetRawPtr();
768  const InputDataType *rhs_buf = rhs.GetRawPtr();
769  const InputDataType *lhs_buf = lhs.GetRawPtr();
770  const unsigned int resdim = result.GetDimension();
771  for (int i = 0; i < resdim; ++i)
772  {
773  result_buf[i] = lhs_buf[i] * rhs_buf[i];
774  }
775 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ MultiplyEqual() [1/11]

template<typename DataType , typename RhsInnerType , typename RhsMatrixType >
void Nektar::MultiplyEqual ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< RhsInnerType, RhsMatrixType > &  rhs,
typename std::enable_if< !std::is_same< RawType_t< typename NekMatrix< RhsInnerType, RhsMatrixType >::NumberType >, DataType >::value||!CanGetRawPtr< NekMatrix< RhsInnerType, RhsMatrixType >>::value >::type *  t = 0 
)

Definition at line 224 of file MatrixOperations.hpp.

233 {
234  boost::ignore_unused(t);
235  ASSERTL1(result.GetColumns() == rhs.GetRows(),
236  std::string("A left side matrix with column count ") +
237  std::to_string(result.GetColumns()) +
238  std::string(" and a right side matrix with row count ") +
239  std::to_string(rhs.GetRows()) +
240  std::string(" can't be multiplied."));
241  NekMatrix<DataType, StandardMatrixTag> temp(result.GetRows(),
242  result.GetColumns());
243 
244  for (unsigned int i = 0; i < result.GetRows(); ++i)
245  {
246  for (unsigned int j = 0; j < result.GetColumns(); ++j)
247  {
248  DataType t = DataType(0);
249 
250  // Set the result(i,j) element.
251  for (unsigned int k = 0; k < result.GetColumns(); ++k)
252  {
253  t += result(i, k) * rhs(k, j);
254  }
255  temp(i, j) = t;
256  }
257  }
258 
259  result = temp;
260 }

References ASSERTL1, Nektar::ConstMatrix< DataType >::GetColumns(), and Nektar::ConstMatrix< DataType >::GetRows().

◆ MultiplyEqual() [2/11]

template<typename LhsDataType >
const NekSingle void Nektar::MultiplyEqual ( NekMatrix< LhsDataType, StandardMatrixTag > &  lhs,
typename boost::call_traits< LhsDataType >::const_reference  rhs 
)

Definition at line 117 of file MatrixOperations.cpp.

120 {
121  typedef
122  typename NekMatrix<LhsDataType, StandardMatrixTag>::iterator iterator;
123  for (iterator iter = lhs.begin(); iter != lhs.end(); ++iter)
124  {
125  *iter *= rhs;
126  }
127 }

◆ MultiplyEqual() [3/11]

template<typename LhsDataType >
void Nektar::MultiplyEqual ( NekMatrix< LhsDataType, StandardMatrixTag > &  lhs,
typename boost::call_traits< LhsDataType >::const_reference  rhs 
)

Definition at line 117 of file MatrixOperations.cpp.

120 {
121  typedef
122  typename NekMatrix<LhsDataType, StandardMatrixTag>::iterator iterator;
123  for (iterator iter = lhs.begin(); iter != lhs.end(); ++iter)
124  {
125  *iter *= rhs;
126  }
127 }

◆ MultiplyEqual() [4/11]

template<typename RhsInnerType , typename RhsMatrixType >
void Nektar::MultiplyEqual ( NekMatrix< RhsInnerType, StandardMatrixTag > &  result,
const NekMatrix< RhsInnerType, RhsMatrixType > &  rhs,
typename std::enable_if< std::is_same< RawType_t< typename NekMatrix< RhsInnerType, RhsMatrixType >::NumberType >, RhsInnerType >::value &&CanGetRawPtr< NekMatrix< RhsInnerType, RhsMatrixType >>::value >::type *  t = 0 
)

Definition at line 186 of file MatrixOperations.hpp.

195 {
196  boost::ignore_unused(t);
197  ASSERTL0(result.GetType() == eFULL && rhs.GetType() == eFULL,
198  "Only full matrices supported.");
199  unsigned int M = result.GetRows();
200  unsigned int N = rhs.GetColumns();
201  unsigned int K = result.GetColumns();
202 
203  unsigned int LDA = M;
204  if (result.GetTransposeFlag() == 'T')
205  {
206  LDA = K;
207  }
208 
209  unsigned int LDB = K;
210  if (rhs.GetTransposeFlag() == 'T')
211  {
212  LDB = N;
213  }
214  RhsInnerType scale = rhs.Scale();
215  Array<OneD, RhsInnerType> &buf = result.GetTempSpace();
216  Blas::Gemm(result.GetTransposeFlag(), rhs.GetTransposeFlag(), M, N, K,
217  scale, result.GetRawPtr(), LDA, rhs.GetRawPtr(), LDB, 0.0,
218  buf.data(), result.GetRows());
219  result.SetSize(result.GetRows(), rhs.GetColumns());
220  result.SwapTempAndDataBuffers();
221 }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:215
static void Gemm(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:340

References ASSERTL0, eFULL, and Blas::Gemm().

◆ MultiplyEqual() [5/11]

template void Nektar::MultiplyEqual ( NekVector< NekDouble > &  result,
const NekDouble rhs 
)

◆ MultiplyEqual() [6/11]

template void Nektar::MultiplyEqual ( NekVector< NekDouble > &  result,
const NekVector< NekDouble > &  rhs 
)

◆ MultiplyEqual() [7/11]

template void Nektar::MultiplyEqual ( NekVector< NekSingle > &  result,
const NekSingle rhs 
)

◆ MultiplyEqual() [8/11]

template void Nektar::MultiplyEqual ( NekVector< NekSingle > &  result,
const NekVector< NekSingle > &  rhs 
)

◆ MultiplyEqual() [9/11]

template<typename ResultDataType >
void Nektar::MultiplyEqual ( NekVector< ResultDataType > &  result,
const NekDouble rhs 
)

Definition at line 856 of file NekVector.cpp.

857 {
858  ResultDataType *r_buf = result.GetRawPtr();
859  const unsigned int rdim = result.GetDimension();
860  for (unsigned int i = 0; i < rdim; ++i)
861  {
862  r_buf[i] *= rhs;
863  }
864 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ MultiplyEqual() [10/11]

template<typename ResultDataType >
void Nektar::MultiplyEqual ( NekVector< ResultDataType > &  result,
const NekSingle rhs 
)

Definition at line 867 of file NekVector.cpp.

868 {
869  ResultDataType *r_buf = result.GetRawPtr();
870  const unsigned int rdim = result.GetDimension();
871  for (unsigned int i = 0; i < rdim; ++i)
872  {
873  r_buf[i] *= rhs;
874  }
875 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ MultiplyEqual() [11/11]

template<typename ResultDataType , typename InputDataType >
void Nektar::MultiplyEqual ( NekVector< ResultDataType > &  result,
const NekVector< InputDataType > &  rhs 
)

Definition at line 786 of file NekVector.cpp.

788 {
789  ResultDataType *result_buf = result.GetRawPtr();
790  const InputDataType *rhs_buf = rhs.GetRawPtr();
791  const unsigned int resdim = result.GetDimension();
792  for (int i = 0; i < resdim; ++i)
793  {
794  result_buf[i] *= rhs_buf[i];
795  }
796 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ MultiplyInvertedLhs() [1/4]

template void Nektar::MultiplyInvertedLhs ( NekVector< NekDouble > &  result,
const NekDouble lhs,
const NekVector< NekDouble > &  rhs 
)

◆ MultiplyInvertedLhs() [2/4]

template void Nektar::MultiplyInvertedLhs ( NekVector< NekSingle > &  result,
const NekSingle lhs,
const NekVector< NekSingle > &  rhs 
)

◆ MultiplyInvertedLhs() [3/4]

template<typename ResultDataType , typename InputDataType >
void Nektar::MultiplyInvertedLhs ( NekVector< ResultDataType > &  result,
const NekDouble lhs,
const NekVector< InputDataType > &  rhs 
)

Definition at line 914 of file NekVector.cpp.

917 {
918  ResultDataType *r_buf = result.GetRawPtr();
919  const InputDataType *rhs_buf = rhs.GetRawPtr();
920  NekDouble inverse = 1.0 / lhs;
921 
922  const unsigned int rdim = rhs.GetDimension();
923  for (int i = 0; i < rdim; ++i)
924  {
925  r_buf[i] = inverse * rhs_buf[i];
926  }
927 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ MultiplyInvertedLhs() [4/4]

template<typename ResultDataType , typename InputDataType >
void Nektar::MultiplyInvertedLhs ( NekVector< ResultDataType > &  result,
const NekSingle lhs,
const NekVector< InputDataType > &  rhs 
)

Definition at line 937 of file NekVector.cpp.

940 {
941  ResultDataType *r_buf = result.GetRawPtr();
942  const InputDataType *rhs_buf = rhs.GetRawPtr();
943  NekSingle inverse = 1.0 / lhs;
944 
945  const unsigned int rdim = rhs.GetDimension();
946  for (int i = 0; i < rdim; ++i)
947  {
948  r_buf[i] = inverse * rhs_buf[i];
949  }
950 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ Negate() [1/3]

template<typename DataType >
NekVector< DataType > Nektar::Negate ( const NekVector< DataType > &  v)

Definition at line 1143 of file NekVector.cpp.

1144 {
1145  NekVector<DataType> temp(v);
1146  const unsigned int tdim = temp.GetDimension();
1147  for (unsigned int i = 0; i < tdim; ++i)
1148  {
1149  temp(i) = -temp(i);
1150  }
1151  return temp;
1152 }

References Nektar::NekVector< DataType >::GetDimension().

◆ Negate() [2/3]

template NekVector<NekDouble> Nektar::Negate ( const NekVector< NekDouble > &  v)

◆ Negate() [3/3]

template NekVector<NekSingle> Nektar::Negate ( const NekVector< NekSingle > &  v)

◆ negate()

template<typename DataType >
void Nektar::negate ( NekPoint< DataType > &  rhs)

Definition at line 370 of file NekPoint.hpp.

371 {
372  rhs.negate();
373 }

References Nektar::NekPoint< data_type >::negate().

◆ NegateInPlace() [1/11]

void Nektar::NegateInPlace ( NekDouble v)

Definition at line 1225 of file NekVector.cpp.

1226 {
1227  v = -v;
1228 }

◆ NegateInPlace() [2/11]

template<typename DataType >
void Nektar::NegateInPlace ( NekMatrix< DataType, ScaledMatrixTag > &  v)

Definition at line 293 of file ScaledMatrix.cpp.

294 {
295  v.SetScale(-1.0 * v.Scale());
296 }

◆ NegateInPlace() [3/11]

template<typename DataType >
void Nektar::NegateInPlace ( NekMatrix< DataType, StandardMatrixTag > &  m)

Definition at line 898 of file StandardMatrix.cpp.

899 {
900  for (unsigned int i = 0; i < m.GetRows(); ++i)
901  {
902  for (unsigned int j = 0; j < m.GetColumns(); ++j)
903  {
904  m(i, j) *= -1.0;
905  }
906  }
907 }

References Nektar::ConstMatrix< DataType >::GetColumns(), and Nektar::ConstMatrix< DataType >::GetRows().

◆ NegateInPlace() [4/11]

template void Nektar::NegateInPlace ( NekMatrix< double, StandardMatrixTag > &  v)

◆ NegateInPlace() [5/11]

template void Nektar::NegateInPlace ( NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > &  v)

◆ NegateInPlace() [6/11]

template void Nektar::NegateInPlace ( NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag > &  v)

◆ NegateInPlace() [7/11]

template void Nektar::NegateInPlace ( NekMatrix< NekSingle, StandardMatrixTag > &  v)

◆ NegateInPlace() [8/11]

void Nektar::NegateInPlace ( NekSingle v)

Definition at line 1236 of file NekVector.cpp.

1237 {
1238  v = -v;
1239 }

◆ NegateInPlace() [9/11]

template<typename DataType >
void Nektar::NegateInPlace ( NekVector< DataType > &  v)

Definition at line 1160 of file NekVector.cpp.

1161 {
1162  DataType *data = v.GetRawPtr();
1163  const unsigned int vdim = v.GetDimension();
1164  for (unsigned int i = 0; i < vdim; ++i)
1165  {
1166  data[i] = -data[i];
1167  }
1168 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

Referenced by Nektar::NekMatrix< DataType, StandardMatrixTag >::operator-().

◆ NegateInPlace() [10/11]

template void Nektar::NegateInPlace ( NekVector< NekDouble > &  v)

◆ NegateInPlace() [11/11]

template void Nektar::NegateInPlace ( NekVector< NekSingle > &  v)

◆ NekMultiplyBandedMatrix() [1/2]

template<typename DataType , typename LhsDataType >
void Nektar::NekMultiplyBandedMatrix ( DataType *  result,
const NekMatrix< LhsDataType, BlockMatrixTag > &  lhs,
const DataType *  rhs,
typename std::enable_if< !CanGetRawPtr< NekMatrix< LhsDataType, BlockMatrixTag >>::value >::type *  p = 0 
)

Definition at line 120 of file MatrixVectorMultiplication.cpp.

126 {
127  boost::ignore_unused(result, lhs, rhs, p);
128 
129  NEKERROR(ErrorUtil::efatal,
130  "Banded block matrix multiplication not yet implemented");
131 }
#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 Nektar::ErrorUtil::efatal, NEKERROR, and CellMLToNektar.cellml_metadata::p.

◆ NekMultiplyBandedMatrix() [2/2]

template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyBandedMatrix ( DataType *  result,
const NekMatrix< LhsDataType, MatrixType > &  lhs,
const DataType *  rhs,
typename std::enable_if< CanGetRawPtr< NekMatrix< LhsDataType, MatrixType >>::value >::type *  p = 0 
)

Definition at line 96 of file MatrixVectorMultiplication.cpp.

101 {
102  boost::ignore_unused(p);
103 
104  int m = lhs.GetRows();
105  int n = lhs.GetColumns();
106  int kl = lhs.GetNumberOfSubDiagonals();
107  int ku = lhs.GetNumberOfSuperDiagonals();
108  DataType alpha = lhs.Scale();
109  const DataType *a = lhs.GetRawPtr();
110  int lda = kl + ku + 1;
111  const DataType *x = rhs;
112  int incx = 1;
113  DataType beta = 0.0;
114  DataType *y = result;
115  int incy = 1;
116  Blas::Gbmv('N', m, n, kl, ku, alpha, a, lda, x, incx, beta, y, incy);
117 }
static void Gbmv(const char &trans, const int &m, const int &n, const int &kl, const int &ku, const double &alpha, const double *a, const int &lda, const double *x, const int &incx, const double &beta, double *y, const int &incy)
Definition: Blas.hpp:254
@ beta
Gauss Radau pinned at x=-1,.
Definition: PointsType.h:61

References Nektar::LibUtilities::beta, Blas::Gbmv(), and CellMLToNektar.cellml_metadata::p.

Referenced by Multiply().

◆ NekMultiplyDefaultImpl()

template<typename ResultType , typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
SNekMat const NekSingle& void Nektar::NekMultiplyDefaultImpl ( NekMatrix< ResultType, StandardMatrixTag > &  result,
const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 138 of file MatrixOperations.cpp.

141 {
142  ASSERTL1(lhs.GetColumns() == rhs.GetRows(),
143  std::string("A left side matrix with column count ") +
144  std::to_string(lhs.GetColumns()) +
145  std::string(" and a right side matrix with row count ") +
146  std::to_string(rhs.GetRows()) +
147  std::string(" can't be multiplied."));
148 
149  for (unsigned int i = 0; i < result.GetRows(); ++i)
150  {
151  for (unsigned int j = 0; j < result.GetColumns(); ++j)
152  {
153  ResultType t = ResultType(0);
154 
155  // Set the result(i,j) element.
156  for (unsigned int k = 0; k < lhs.GetColumns(); ++k)
157  {
158  t += lhs(i, k) * rhs(k, j);
159  }
160  result(i, j) = t;
161  }
162  }
163 }

References ASSERTL1.

Referenced by Multiply(), and NekMultiplyFullMatrixFullMatrix().

◆ NekMultiplyDiagonalMatrix() [1/2]

template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyDiagonalMatrix ( DataType *  result,
const NekMatrix< LhsDataType, MatrixType > &  lhs,
const DataType *  rhs 
)

Definition at line 74 of file MatrixVectorMultiplication.cpp.

77 {
78  int n = lhs.GetRows();
79  for (unsigned int i = 0; i < n; ++i)
80  {
81  result[i] = lhs(i, i) * rhs[i];
82  }
83 }

Referenced by Multiply().

◆ NekMultiplyDiagonalMatrix() [2/2]

template<typename DataType , typename LhsDataType >
void Nektar::NekMultiplyDiagonalMatrix ( DataType *  result,
const NekMatrix< LhsDataType, StandardMatrixTag > &  lhs,
const DataType *  rhs 
)

Definition at line 86 of file MatrixVectorMultiplication.cpp.

89 {
90  int n = lhs.GetRows();
91  const DataType *mat_ptr = lhs.GetRawPtr();
92  Vmath::Vmul(n, mat_ptr, 1, rhs, 1, result, 1);
93 }
void Vmul(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Multiply vector z = x*y.
Definition: Vmath.cpp:209

References Vmath::Vmul().

◆ NekMultiplyFullMatrix() [1/2]

template<typename DataType , typename InnerMatrixType , typename MatrixTag >
void Nektar::NekMultiplyFullMatrix ( DataType *  result,
const NekMatrix< InnerMatrixType, MatrixTag > &  lhs,
const DataType *  rhs,
typename std::enable_if< !CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag >>::value >::type *  p = 0 
)

Definition at line 553 of file MatrixVectorMultiplication.cpp.

559 {
560  boost::ignore_unused(p);
561 
562  NekMultiplyUnspecializedMatrixType(result, lhs, rhs);
563 }

References NekMultiplyUnspecializedMatrixType(), and CellMLToNektar.cellml_metadata::p.

◆ NekMultiplyFullMatrix() [2/2]

template<typename DataType , typename InnerMatrixType , typename MatrixTag >
void Nektar::NekMultiplyFullMatrix ( DataType *  result,
const NekMatrix< InnerMatrixType, MatrixTag > &  lhs,
const DataType *  rhs,
typename std::enable_if< CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag >>::value >::type *  p = 0 
)

Definition at line 527 of file MatrixVectorMultiplication.cpp.

533 {
534  boost::ignore_unused(p);
535 
536  const unsigned int *size = lhs.GetSize();
537 
538  char t = lhs.GetTransposeFlag();
539 
540  DataType alpha = lhs.Scale();
541  const DataType *a = lhs.GetRawPtr();
542  int lda = size[0];
543  const DataType *x = rhs;
544  int incx = 1;
545  DataType beta = 0.0;
546  DataType *y = result;
547  int incy = 1;
548 
549  Blas::Gemv(t, size[0], size[1], alpha, a, lda, x, incx, beta, y, incy);
550 }

References Nektar::LibUtilities::beta, Blas::Gemv(), and CellMLToNektar.cellml_metadata::p.

Referenced by Multiply().

◆ NekMultiplyFullMatrixFullMatrix() [1/2]

template<typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
void Nektar::NekMultiplyFullMatrixFullMatrix ( NekMatrix< LhsDataType, StandardMatrixTag > &  result,
const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs,
typename std::enable_if< CanGetRawPtr< NekMatrix< LhsDataType, LhsMatrixType >>::value &&CanGetRawPtr< NekMatrix< RhsDataType, RhsMatrixType >>::value >::type *  p = 0 
)

Definition at line 144 of file MatrixOperations.hpp.

152 {
153  boost::ignore_unused(p);
154 
155  ASSERTL1(lhs.GetType() == eFULL && rhs.GetType() == eFULL,
156  "Only full matrices are supported.");
157 
158  unsigned int M = lhs.GetRows();
159  unsigned int N = rhs.GetColumns();
160  unsigned int K = lhs.GetColumns();
161 
162  unsigned int LDA = M;
163  if (lhs.GetTransposeFlag() == 'T')
164  {
165  LDA = K;
166  }
167 
168  unsigned int LDB = K;
169  if (rhs.GetTransposeFlag() == 'T')
170  {
171  LDB = N;
172  }
173 
174  Blas::Gemm(lhs.GetTransposeFlag(), rhs.GetTransposeFlag(), M, N, K,
175  lhs.Scale() * rhs.Scale(), lhs.GetRawPtr(), LDA, rhs.GetRawPtr(),
176  LDB, 0.0, result.GetRawPtr(), result.GetRows());
177 }

References ASSERTL1, eFULL, Blas::Gemm(), and CellMLToNektar.cellml_metadata::p.

◆ NekMultiplyFullMatrixFullMatrix() [2/2]

template<typename ResultType , typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
void Nektar::NekMultiplyFullMatrixFullMatrix ( NekMatrix< ResultType, StandardMatrixTag > &  result,
const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 167 of file MatrixOperations.cpp.

171 {
172  NekMultiplyDefaultImpl(result, lhs, rhs);
173 }

References NekMultiplyDefaultImpl().

Referenced by Multiply().

◆ NekMultiplyLowerTriangularMatrix() [1/3]

template<typename DataType >
void Nektar::NekMultiplyLowerTriangularMatrix ( DataType *  result,
const NekMatrix< DataType, StandardMatrixTag > &  lhs,
const DataType *  rhs 
)

Definition at line 399 of file MatrixVectorMultiplication.cpp.

402 {
403  int vectorSize = lhs.GetColumns();
404  std::copy(rhs, rhs + vectorSize, result);
405  int n = lhs.GetRows();
406  const DataType *a = lhs.GetRawPtr();
407  DataType *x = result;
408  int incx = 1;
409 
410  Blas::Tpmv('L', lhs.GetTransposeFlag(), 'N', n, a, x, incx);
411 }
static void Tpmv(const char &uplo, const char &trans, const char &diag, const int &n, const double *ap, double *x, const int &incx)
Definition: Blas.hpp:281

References CellMLToNektar.pycml::copy(), Nektar::ConstMatrix< DataType >::GetColumns(), Nektar::NekMatrix< DataType, StandardMatrixTag >::GetRawPtr(), Nektar::ConstMatrix< DataType >::GetRows(), Nektar::ConstMatrix< DataType >::GetTransposeFlag(), and Blas::Tpmv().

Referenced by Multiply(), and NekMultiplyLowerTriangularMatrix().

◆ NekMultiplyLowerTriangularMatrix() [2/3]

template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyLowerTriangularMatrix ( DataType *  result,
const NekMatrix< LhsDataType, MatrixType > &  lhs,
const DataType *  rhs 
)

Definition at line 429 of file MatrixVectorMultiplication.cpp.

432 {
433  for (unsigned int i = 0; i < lhs.GetRows(); ++i)
434  {
435  DataType accum = DataType(0);
436  for (unsigned int j = 0; j <= i; ++j)
437  {
438  accum += lhs(i, j) * rhs[j];
439  }
440  result[i] = accum;
441  }
442 }

◆ NekMultiplyLowerTriangularMatrix() [3/3]

template<typename DataType >
void Nektar::NekMultiplyLowerTriangularMatrix ( DataType *  result,
const NekMatrix< NekMatrix< DataType, StandardMatrixTag >, ScaledMatrixTag > &  lhs,
const DataType *  rhs 
)

Definition at line 414 of file MatrixVectorMultiplication.cpp.

419 {
420  NekMultiplyLowerTriangularMatrix(result, *lhs.GetOwnedMatrix(), rhs);
421 
422  for (unsigned int i = 0; i < lhs.GetColumns(); ++i)
423  {
424  result[i] *= lhs.Scale();
425  }
426 }

References NekMultiplyLowerTriangularMatrix().

◆ NekMultiplySymmetricMatrix() [1/2]

template<typename DataType , typename InnerMatrixType , typename MatrixTag >
void Nektar::NekMultiplySymmetricMatrix ( DataType *  result,
const NekMatrix< InnerMatrixType, MatrixTag > &  lhs,
const DataType *  rhs,
typename std::enable_if< !CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag >>::value >::type *  p = 0 
)

Definition at line 514 of file MatrixVectorMultiplication.cpp.

520 {
521  boost::ignore_unused(p);
522 
523  NekMultiplyUnspecializedMatrixType(result, lhs, rhs);
524 }

References NekMultiplyUnspecializedMatrixType(), and CellMLToNektar.cellml_metadata::p.

◆ NekMultiplySymmetricMatrix() [2/2]

template<typename DataType , typename InnerMatrixType , typename MatrixTag >
void Nektar::NekMultiplySymmetricMatrix ( DataType *  result,
const NekMatrix< InnerMatrixType, MatrixTag > &  lhs,
const DataType *  rhs,
typename std::enable_if< CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag >>::value >::type *  p = 0 
)

Definition at line 491 of file MatrixVectorMultiplication.cpp.

497 {
498  boost::ignore_unused(p);
499 
500  const unsigned int *size = lhs.GetSize();
501 
502  DataType alpha = lhs.Scale();
503  const DataType *a = lhs.GetRawPtr();
504  const DataType *x = rhs;
505  int incx = 1;
506  DataType beta = 0.0;
507  DataType *y = result;
508  int incy = 1;
509 
510  Blas::Spmv('U', size[0], alpha, a, x, incx, beta, y, incy);
511 }
static void Spmv(const char &uplo, const int &n, const double &alpha, const double *a, 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 is symmetric packed.
Definition: Blas.hpp:304

References Nektar::LibUtilities::beta, CellMLToNektar.cellml_metadata::p, and Blas::Spmv().

Referenced by Multiply().

◆ NekMultiplyUnspecializedMatrixType()

template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyUnspecializedMatrixType ( DataType *  result,
const NekMatrix< LhsDataType, MatrixType > &  lhs,
const DataType *  rhs 
)

Definition at line 58 of file MatrixVectorMultiplication.cpp.

61 {
62  for (unsigned int i = 0; i < lhs.GetRows(); ++i)
63  {
64  DataType accum = DataType(0);
65  for (unsigned int j = 0; j < lhs.GetColumns(); ++j)
66  {
67  accum += lhs(i, j) * rhs[j];
68  }
69  result[i] = accum;
70  }
71 }

Referenced by Multiply(), NekMultiplyFullMatrix(), and NekMultiplySymmetricMatrix().

◆ NekMultiplyUpperTriangularMatrix() [1/3]

template<typename DataType >
void Nektar::NekMultiplyUpperTriangularMatrix ( DataType *  result,
const NekMatrix< DataType, StandardMatrixTag > &  lhs,
const DataType *  rhs 
)

Definition at line 445 of file MatrixVectorMultiplication.cpp.

448 {
449  int vectorSize = lhs.GetColumns();
450  std::copy(rhs, rhs + vectorSize, result);
451  int n = lhs.GetRows();
452  const DataType *a = lhs.GetRawPtr();
453  DataType *x = result;
454  int incx = 1;
455 
456  Blas::Tpmv('U', lhs.GetTransposeFlag(), 'N', n, a, x, incx);
457 }

References CellMLToNektar.pycml::copy(), Nektar::ConstMatrix< DataType >::GetColumns(), Nektar::NekMatrix< DataType, StandardMatrixTag >::GetRawPtr(), Nektar::ConstMatrix< DataType >::GetRows(), Nektar::ConstMatrix< DataType >::GetTransposeFlag(), and Blas::Tpmv().

Referenced by Multiply(), and NekMultiplyUpperTriangularMatrix().

◆ NekMultiplyUpperTriangularMatrix() [2/3]

template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyUpperTriangularMatrix ( DataType *  result,
const NekMatrix< LhsDataType, MatrixType > &  lhs,
const DataType *  rhs 
)

Definition at line 475 of file MatrixVectorMultiplication.cpp.

478 {
479  for (unsigned int i = 0; i < lhs.GetRows(); ++i)
480  {
481  DataType accum = DataType(0);
482  for (unsigned int j = i; j < lhs.GetColumns(); ++j)
483  {
484  accum += lhs(i, j) * rhs[j];
485  }
486  result[i] = accum;
487  }
488 }

◆ NekMultiplyUpperTriangularMatrix() [3/3]

template<typename DataType >
void Nektar::NekMultiplyUpperTriangularMatrix ( DataType *  result,
const NekMatrix< NekMatrix< DataType, StandardMatrixTag >, ScaledMatrixTag > &  lhs,
const DataType *  rhs 
)

Definition at line 460 of file MatrixVectorMultiplication.cpp.

465 {
466  NekMultiplyUpperTriangularMatrix(result, *lhs.GetOwnedMatrix(), rhs);
467 
468  for (unsigned int i = 0; i < lhs.GetColumns(); ++i)
469  {
470  result[i] *= lhs.Scale();
471  }
472 }

References NekMultiplyUpperTriangularMatrix().

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX() [1/11]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX ( AddEqual  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(void))  ,
(1,(DNekMat &))  ,
(0,())   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX() [2/11]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX ( Multiply  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(DNekMat))  ,
(0,())  ,
(1,(const NekDouble &))   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX() [3/11]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX ( Multiply  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(DNekMat))  ,
(1,(const NekDouble &))  ,
(0,())   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX() [4/11]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX ( Multiply  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(NekVector< NekDouble >))  ,
(0,())  ,
(1,(const NekVector< NekDouble > &))   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX() [5/11]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX ( Multiply  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(void))  ,
(1,(DNekMat &))  ,
(1,(const NekDouble &))   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX() [6/11]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX ( Multiply  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(void))  ,
(2,(DNekMat &, const NekDouble &))  ,
(0,())   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX() [7/11]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX ( Multiply  ,
NEKTAR_BLOCK_MATRIX_TYPES  ,
(1,(void))  ,
(1,(NekVector< NekDouble > &))  ,
(1,(const NekVector< NekDouble > &))   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX() [8/11]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX ( Multiply  ,
NEKTAR_STANDARD_AND_SCALED_MATRICES  ,
(1,(void))  ,
(1,(NekVector< NekDouble > &))  ,
(1,(const NekVector< NekDouble > &))   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX() [9/11]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX ( MultiplyEqual  ,
(1,(DNekMat &))  ,
(1,(void))  ,
(0,())  ,
(1,(const NekDouble &))   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX() [10/11]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX ( SubtractEqual  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(void))  ,
(1,(DNekMat &))  ,
(0,())   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX() [11/11]

SNekMat Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX ( SubtractEqualNegatedLhs  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(void))  ,
(1,(DNekMat &))  ,
(0,())   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES() [1/6]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES ( Add  ,
NEKTAR_ALL_MATRIX_TYPES  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(DNekMat))  ,
(0,())  ,
(0,())   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES() [2/6]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES ( Add  ,
NEKTAR_ALL_MATRIX_TYPES  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(void))  ,
(1,(DNekMat &))  ,
(0,())   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES() [3/6]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES ( Multiply  ,
NEKTAR_ALL_MATRIX_TYPES  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(void))  ,
(1,(DNekMat &))  ,
(0,())   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES() [4/6]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES ( Subtract  ,
NEKTAR_ALL_MATRIX_TYPES  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(DNekMat))  ,
(0,())  ,
(0,())   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES() [5/6]

Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES ( Subtract  ,
NEKTAR_ALL_MATRIX_TYPES  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(void))  ,
(1,(DNekMat &))  ,
(0,())   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES() [6/6]

SNekMat Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES ( SubtractNegatedLhs  ,
NEKTAR_ALL_MATRIX_TYPES  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(void))  ,
(1,(DNekMat &))  ,
(0,())   
)

◆ Normalize() [1/3]

template<typename DataType >
void Nektar::Normalize ( NekVector< DataType > &  v)

Definition at line 1214 of file NekVector.cpp.

1215 {
1216  DataType m = v.Magnitude();
1217  if (m > DataType(0))
1218  {
1219  v /= m;
1220  }
1221 }

References Nektar::NekVector< DataType >::Magnitude().

Referenced by Nektar::NekVector< DataType >::Normalize().

◆ Normalize() [2/3]

template void Nektar::Normalize ( NekVector< NekDouble > &  v)

◆ Normalize() [3/3]

template void Nektar::Normalize ( NekVector< NekSingle > &  v)

◆ operator!=() [1/6]

template<typename T1 , typename T2 >
bool Nektar::operator!= ( const Array< OneD, T1 > &  lhs,
const Array< OneD, T2 > &  rhs 
)

Definition at line 853 of file SharedArray.hpp.

854 {
855  return !(lhs == rhs);
856 }

◆ operator!=() [2/6]

template<typename T1 , typename T2 >
bool Nektar::operator!= ( const Array< TwoD, T1 > &  lhs,
const Array< TwoD, T2 > &  rhs 
)

Definition at line 957 of file SharedArray.hpp.

958 {
959  return !(lhs == rhs);
960 }

◆ operator!=() [3/6]

template<typename DataType >
bool Nektar::operator!= ( const MemoryManager< DataType > &  lhs,
const MemoryManager< DataType > &  rhs 
)

Definition at line 315 of file NekMemoryManager.hpp.

317 {
318  return !(lhs == rhs);
319 }

◆ operator!=() [4/6]

template<typename DataType >
bool Nektar::operator!= ( const NekVector< DataType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 1049 of file NekVector.cpp.

1050 {
1051  return !(lhs == rhs);
1052 }

◆ operator!=() [5/6]

template bool Nektar::operator!= ( const NekVector< NekDouble > &  lhs,
const NekVector< NekDouble > &  rhs 
)

◆ operator!=() [6/6]

template bool Nektar::operator!= ( const NekVector< NekSingle > &  lhs,
const NekVector< NekSingle > &  rhs 
)

◆ operator*() [1/9]

template<typename DataType , typename RhsDataType , typename RhsMatrixType >
NekMatrix<typename NekMatrix<RhsDataType, RhsMatrixType>::NumberType, StandardMatrixTag> Nektar::operator* ( const DataType &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 120 of file MatrixOperations.hpp.

121 {
122  return Multiply(lhs, rhs);
123 }

References Multiply().

◆ operator*() [2/9]

template<typename DataType >
NekVector<DataType> Nektar::operator* ( const NekDouble lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 314 of file NekVector.hpp.

316 {
317  return Multiply(lhs, rhs);
318 }
void Multiply(NekMatrix< ResultDataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const ResultDataType &rhs)

References Multiply().

◆ operator*() [3/9]

template<typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
NekMatrix<typename std::remove_const< typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType>::type, StandardMatrixTag> Nektar::operator* ( const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 284 of file MatrixOperations.hpp.

286 {
287  return Multiply(lhs, rhs);
288 }

References Multiply().

◆ operator*() [4/9]

template<typename DataType , typename LhsDataType , typename MatrixType >
NekVector<DataType> Nektar::operator* ( const NekMatrix< LhsDataType, MatrixType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 74 of file MatrixOperations.hpp.

76 {
77  return Multiply(lhs, rhs);
78 }

References Multiply().

◆ operator*() [5/9]

template<typename DataType , typename RhsDataType , typename RhsMatrixType >
NekMatrix<typename NekMatrix<RhsDataType, RhsMatrixType>::NumberType, StandardMatrixTag> Nektar::operator* ( const NekMatrix< RhsDataType, RhsMatrixType > &  lhs,
const DataType &  rhs 
)

Definition at line 128 of file MatrixOperations.hpp.

129 {
130  return Multiply(lhs, rhs);
131 }

References Multiply().

◆ operator*() [6/9]

template<typename DataType , typename dim , typename space , typename ScalarType >
NekPoint<DataType> Nektar::operator* ( const NekPoint< DataType > &  lhs,
const ScalarType &  rhs 
)

Definition at line 443 of file NekPoint.hpp.

445 {
446  NekPoint<DataType> result(lhs);
447  result *= rhs;
448  return result;
449 }

◆ operator*() [7/9]

template<typename DataType >
NekVector<DataType> Nektar::operator* ( const NekVector< DataType > &  lhs,
const NekDouble rhs 
)

Definition at line 307 of file NekVector.hpp.

309 {
310  return Multiply(lhs, rhs);
311 }

References Multiply().

◆ operator*() [8/9]

template<typename DataType >
NekVector<DataType> Nektar::operator* ( const NekVector< DataType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 321 of file NekVector.hpp.

323 {
324  return Multiply(lhs, rhs);
325 }

References Multiply().

◆ operator*() [9/9]

template<typename DataType , typename dim , typename space , typename ScalarType >
NekPoint<DataType> Nektar::operator* ( const ScalarType &  lhs,
const NekPoint< DataType > &  rhs 
)

Definition at line 434 of file NekPoint.hpp.

436 {
437  NekPoint<DataType> result(rhs);
438  result *= lhs;
439  return result;
440 }

◆ operator+() [1/7]

template<typename DataType >
Array<OneD, DataType> Nektar::operator+ ( const Array< OneD, DataType > &  lhs,
typename Array< OneD, DataType >::size_type  offset 
)

Definition at line 859 of file SharedArray.hpp.

862 {
863  return Array<OneD, const DataType>::CreateWithOffset(lhs, offset);
864 }

◆ operator+() [2/7]

template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
NekMatrix<typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType, StandardMatrixTag> Nektar::operator+ ( const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 315 of file MatrixOperations.hpp.

317 {
318  return Add(lhs, rhs);
319 }
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Add(const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)

References Add().

◆ operator+() [3/7]

template<typename DataType >
NekPoint<DataType> Nektar::operator+ ( const NekPoint< DataType > &  lhs,
const NekPoint< DataType > &  rhs 
)

Definition at line 376 of file NekPoint.hpp.

378 {
379  NekPoint<DataType> result(lhs);
380  result += rhs;
381  return result;
382 }

◆ operator+() [4/7]

template<typename DataType >
NekPoint<DataType> Nektar::operator+ ( const NekPoint< DataType > &  lhs,
typename boost::call_traits< DataType >::const_reference  rhs 
)

Definition at line 395 of file NekPoint.hpp.

398 {
399  NekPoint<DataType> result(lhs);
400  result += rhs;
401  return result;
402 }

◆ operator+() [5/7]

template<typename DataType >
NekVector<DataType> Nektar::operator+ ( const NekVector< DataType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 335 of file NekVector.hpp.

337 {
338  return Add(lhs, rhs);
339 }
SNekMat SNekMat void Add(NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)

References Add().

◆ operator+() [6/7]

template<typename DataType >
Array<OneD, DataType> Nektar::operator+ ( typename Array< OneD, DataType >::size_type  offset,
const Array< OneD, DataType > &  rhs 
)

Definition at line 867 of file SharedArray.hpp.

870 {
871  return Array<OneD, const DataType>::CreateWithOffset(rhs, offset);
872 }

◆ operator+() [7/7]

template<typename DataType >
NekPoint<DataType> Nektar::operator+ ( typename boost::call_traits< DataType >::const_reference  lhs,
const NekPoint< DataType > &  rhs 
)

Definition at line 385 of file NekPoint.hpp.

388 {
389  NekPoint<DataType> result(rhs);
390  result += lhs;
391  return result;
392 }

◆ operator-() [1/5]

template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
NekMatrix<typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType, StandardMatrixTag> Nektar::operator- ( const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 365 of file MatrixOperations.hpp.

367 {
368  return Subtract(lhs, rhs);
369 }
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Subtract(const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)

References Subtract().

◆ operator-() [2/5]

template<typename DataType >
NekPoint<DataType> Nektar::operator- ( const NekPoint< DataType > &  lhs,
const NekPoint< DataType > &  rhs 
)

Definition at line 405 of file NekPoint.hpp.

407 {
408  NekPoint<DataType> result(lhs);
409  result -= rhs;
410  return result;
411 }

◆ operator-() [3/5]

template<typename DataType >
NekPoint<DataType> Nektar::operator- ( const NekPoint< DataType > &  lhs,
typename boost::call_traits< DataType >::const_reference  rhs 
)

Definition at line 424 of file NekPoint.hpp.

427 {
428  NekPoint<DataType> result(lhs);
429  result -= rhs;
430  return result;
431 }

◆ operator-() [4/5]

template<typename DataType >
NekVector<DataType> Nektar::operator- ( const NekVector< DataType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 342 of file NekVector.hpp.

344 {
345  return Subtract(lhs, rhs);
346 }
void Subtract(NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)

References Subtract().

◆ operator-() [5/5]

template<typename DataType >
NekPoint<DataType> Nektar::operator- ( typename boost::call_traits< DataType >::const_reference  lhs,
const NekPoint< DataType > &  rhs 
)

Definition at line 414 of file NekPoint.hpp.

417 {
418  NekPoint<DataType> result(-rhs);
419  result += lhs;
420  return result;
421 }

◆ operator/() [1/2]

template<typename DataType >
NekPoint<DataType> Nektar::operator/ ( const NekPoint< DataType > &  lhs,
typename boost::call_traits< DataType >::param_type  rhs 
)

Definition at line 452 of file NekPoint.hpp.

455 {
456  NekPoint<DataType> result(lhs);
457  result /= rhs;
458  return result;
459 }

◆ operator/() [2/2]

template<typename DataType >
NekVector<DataType> Nektar::operator/ ( const NekVector< DataType > &  lhs,
const NekDouble rhs 
)

Definition at line 328 of file NekVector.hpp.

330 {
331  return Divide(lhs, rhs);
332 }
void Divide(NekVector< ResultDataType > &result, const NekVector< InputDataType > &lhs, const NekDouble &rhs)
Definition: NekVector.cpp:675

References Divide().

◆ operator<<() [1/9]

template<typename DataType , typename FormType >
std::ostream& Nektar::operator<< ( std::ostream &  os,
const NekMatrix< DataType, FormType > &  rhs 
)

Definition at line 49 of file NekMatrix.hpp.

51 {
52  int oswidth = 9;
53  int osprecision = 6;
54 
55  for (unsigned int i = 0; i < rhs.GetRows(); ++i)
56  {
57  os << "[";
58  for (unsigned int j = 0; j < rhs.GetColumns(); ++j)
59  {
60  os.width(oswidth);
61  os.precision(osprecision);
62  os << rhs(i, j);
63  if (j != rhs.GetColumns() - 1)
64  {
65  os << ", ";
66  }
67  }
68  os << "]";
69  if (i != rhs.GetRows() - 1)
70  {
71  os << std::endl;
72  }
73  }
74  return os;
75 }

◆ operator<<() [2/9]

template<typename DataType >
std::ostream& Nektar::operator<< ( std::ostream &  os,
const NekPoint< DataType > &  p 
)

Definition at line 499 of file NekPoint.hpp.

500 {
501  os << p.AsString();
502  return os;
503 }

References CellMLToNektar.cellml_metadata::p.

◆ operator<<() [3/9]

template<typename SparseStorageType >
std::ostream & Nektar::operator<< ( std::ostream &  os,
const NekSparseDiagBlkMatrix< SparseStorageType > &  rhs 
)

Definition at line 113 of file SparseUtils.cpp.

115 {
116  int oswidth = 9;
117  int osprecision = 6;
118 
119  for (unsigned int i = 0; i < rhs.GetRows(); ++i)
120  {
121  os << "[";
122  for (unsigned int j = 0; j < rhs.GetColumns(); ++j)
123  {
124  os.width(oswidth);
125  os.precision(osprecision);
126  os << rhs(i, j);
127  if (j != rhs.GetColumns() - 1)
128  {
129  os << ", ";
130  }
131  }
132  os << "]";
133  if (i != rhs.GetRows() - 1)
134  {
135  os << std::endl;
136  }
137  }
138  return os;
139 }

References Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetColumns(), and Nektar::NekSparseDiagBlkMatrix< SparseStorageType >::GetRows().

◆ operator<<() [4/9]

template std::ostream& Nektar::operator<< ( std::ostream &  os,
const NekSparseDiagBlkMatrix< StorageSmvBsr< NekDouble >> &  rhs 
)

◆ operator<<() [5/9]

template<typename SparseStorageType >
std::ostream & Nektar::operator<< ( std::ostream &  os,
const NekSparseMatrix< SparseStorageType > &  rhs 
)

Definition at line 84 of file SparseUtils.cpp.

86 {
87  int oswidth = 9;
88  int osprecision = 6;
89 
90  for (unsigned int i = 0; i < rhs.GetRows(); ++i)
91  {
92  os << "[";
93  for (unsigned int j = 0; j < rhs.GetColumns(); ++j)
94  {
95  os.width(oswidth);
96  os.precision(osprecision);
97  os << rhs(i, j);
98  if (j != rhs.GetColumns() - 1)
99  {
100  os << ", ";
101  }
102  }
103  os << "]";
104  if (i != rhs.GetRows() - 1)
105  {
106  os << std::endl;
107  }
108  }
109  return os;
110 }

References Nektar::NekSparseMatrix< SparseStorageType >::GetColumns(), and Nektar::NekSparseMatrix< SparseStorageType >::GetRows().

◆ operator<<() [6/9]

template std::ostream& Nektar::operator<< ( std::ostream &  os,
const NekSparseMatrix< StorageSmvBsr< NekDouble >> &  rhs 
)

◆ operator<<() [7/9]

template<typename DataType >
std::ostream & Nektar::operator<< ( std::ostream &  os,
const NekVector< DataType > &  rhs 
)

Definition at line 982 of file NekVector.cpp.

983 {
984  os << rhs.AsString();
985  return os;
986 }

References Nektar::NekVector< DataType >::AsString().

◆ operator<<() [8/9]

template std::ostream& Nektar::operator<< ( std::ostream &  os,
const NekVector< NekDouble > &  rhs 
)

◆ operator<<() [9/9]

template std::ostream& Nektar::operator<< ( std::ostream &  os,
const NekVector< NekSingle > &  rhs 
)

◆ operator==() [1/6]

template<typename T1 , typename T2 >
bool Nektar::operator== ( const Array< OneD, T1 > &  lhs,
const Array< OneD, T2 > &  rhs 
)

Definition at line 828 of file SharedArray.hpp.

829 {
830  if (lhs.size() != rhs.size())
831  {
832  return false;
833  }
834 
835  if (lhs.data() == rhs.data())
836  {
837  return true;
838  }
839 
840  typename Array<OneD, T1>::size_type size_value(lhs.size());
841  for (typename Array<OneD, T1>::size_type i = 0; i < size_value; ++i)
842  {
843  if (!IsEqual(lhs[i], rhs[i]))
844  {
845  return false;
846  }
847  }
848 
849  return true;
850 }
bool IsEqual(const T &lhs, const T &rhs)

References IsEqual().

◆ operator==() [2/6]

template<typename T1 , typename T2 >
bool Nektar::operator== ( const Array< TwoD, T1 > &  lhs,
const Array< TwoD, T2 > &  rhs 
)

Definition at line 928 of file SharedArray.hpp.

929 {
930  if ((lhs.GetRows() != rhs.GetRows()) ||
931  (lhs.GetColumns() != rhs.GetColumns()))
932  {
933  return false;
934  }
935 
936  if (lhs.data() == rhs.data())
937  {
938  return true;
939  }
940 
941  for (typename Array<OneD, T1>::size_type i = 0; i < lhs.GetRows(); ++i)
942  {
943  for (typename Array<OneD, T1>::size_type j = 0; j < lhs.GetColumns();
944  ++j)
945  {
946  if (!IsEqual(lhs[i][j], rhs[i][j]))
947  {
948  return false;
949  }
950  }
951  }
952 
953  return true;
954 }

References IsEqual().

◆ operator==() [3/6]

template<typename DataType >
bool Nektar::operator== ( const MemoryManager< DataType > &  lhs,
const MemoryManager< DataType > &  rhs 
)

Definition at line 307 of file NekMemoryManager.hpp.

309 {
310  boost::ignore_unused(lhs, rhs);
311  return true;
312 }

◆ operator==() [4/6]

template<typename DataType >
bool Nektar::operator== ( const NekVector< DataType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 1032 of file NekVector.cpp.

1033 {
1034  if (lhs.GetDimension() != rhs.GetDimension())
1035  {
1036  return false;
1037  }
1038 
1039  return std::equal(lhs.begin(), lhs.end(), rhs.begin());
1040 }

References Nektar::NekVector< DataType >::begin(), Nektar::NekVector< DataType >::end(), and Nektar::NekVector< DataType >::GetDimension().

◆ operator==() [5/6]

template bool Nektar::operator== ( const NekVector< NekDouble > &  lhs,
const NekVector< NekDouble > &  rhs 
)

◆ operator==() [6/6]

template bool Nektar::operator== ( const NekVector< NekSingle > &  lhs,
const NekVector< NekSingle > &  rhs 
)

◆ operator>>()

template<typename DataType , typename FormType >
std::ostream& Nektar::operator>> ( std::ostream &  os,
const NekMatrix< DataType, FormType > &  rhs 
)

Definition at line 78 of file NekMatrix.hpp.

80 {
81  NekDouble tol = 1e-12;
82  os << "[" << std::endl;
83 
84  for (unsigned int i = 0; i < rhs.GetRows(); ++i)
85  {
86  for (unsigned int j = 0; j < rhs.GetColumns(); ++j)
87  {
88  if ((NekDouble)rhs(i, j) > tol)
89  {
90  os << '+';
91  }
92  else if ((NekDouble)rhs(i, j) < -tol)
93  {
94  os << '*';
95  }
96  else
97  {
98  os << '-';
99  }
100  }
101  if (i != rhs.GetRows() - 1)
102  {
103  os << std::endl;
104  }
105  }
106  os << "]" << std::endl;
107  return os;
108 }

◆ prefun()

void Nektar::prefun ( NekDouble g,
NekDouble  p,
NekDouble  dk,
NekDouble  pk,
NekDouble  ck,
NekDouble f,
NekDouble fd 
)
inline

Evaluate pressure functions fL and fR in Newton iteration of Riemann solver (see equation 4.85 and 4.86 of Toro 2009).

Parameters
gArray of gamma parameters.
pPressure at current iteration.
dkDensity (left or right state)
pkPressure (left or right state)
ckSound speed (left or right state)
fComputed pressure (shock).
fdComputed pressure (rarefaction).

Definition at line 117 of file ExactSolverToro.cpp.

119 {
120  if (p <= pk)
121  {
122  // Rarefaction wave
123  NekDouble prat = p / pk;
124  f = g[4] * ck * (pow(prat, g[1]) - 1.0);
125  fd = pow(prat, -g[2]) / (dk * ck);
126  }
127  else
128  {
129  // Shock wave
130  NekDouble ak = g[5] / dk;
131  NekDouble bk = g[6] * pk;
132  NekDouble qrt = sqrt(ak / (bk + p));
133  f = (p - pk) * qrt;
134  fd = (1.0 - 0.5 * (p - pk) / (bk + p)) * qrt;
135  }
136 }

References CellMLToNektar.cellml_metadata::p, and tinysimd::sqrt().

Referenced by Nektar::ExactSolverToro::v_PointSolve().

◆ RoeKernel()

template<class T , typename = typename std::enable_if< std::is_floating_point<T>::value || tinysimd::is_vector_floating_point<T>::value>::type>
void Nektar::RoeKernel ( T &  rhoL,
T &  rhouL,
T &  rhovL,
T &  rhowL,
T &  EL,
T &  rhoR,
T &  rhouR,
T &  rhovR,
T &  rhowR,
T &  ER,
T &  rhof,
T &  rhouf,
T &  rhovf,
T &  rhowf,
T &  Ef,
NekDouble  gamma 
)
inline

Definition at line 75 of file RoeSolver.h.

78 {
79  // Left and right velocities
80  T uL = rhouL / rhoL;
81  T vL = rhovL / rhoL;
82  T wL = rhowL / rhoL;
83  T uR = rhouR / rhoR;
84  T vR = rhovR / rhoR;
85  T wR = rhowR / rhoR;
86 
87  // Left and right pressures
88  T pL = (gamma - 1.0) * (EL - 0.5 * (rhouL * uL + rhovL * vL + rhowL * wL));
89  T pR = (gamma - 1.0) * (ER - 0.5 * (rhouR * uR + rhovR * vR + rhowR * wR));
90 
91  // Left and right enthalpy
92  T hL = (EL + pL) / rhoL;
93  T hR = (ER + pR) / rhoR;
94 
95  // Square root of rhoL and rhoR.
96  T srL = sqrt(rhoL);
97  T srR = sqrt(rhoR);
98  T srLR = srL + srR;
99 
100  // Velocity, enthalpy and sound speed Roe averages (equation 11.60).
101  T uRoe = (srL * uL + srR * uR) / srLR;
102  T vRoe = (srL * vL + srR * vR) / srLR;
103  T wRoe = (srL * wL + srR * wR) / srLR;
104  T hRoe = (srL * hL + srR * hR) / srLR;
105  T URoe = (uRoe * uRoe + vRoe * vRoe + wRoe * wRoe);
106  T cRoe = sqrt((gamma - 1.0) * (hRoe - 0.5 * URoe));
107 
108  // Compute eigenvectors (equation 11.59).
109  T k[5][5] = {{1., uRoe - cRoe, vRoe, wRoe, hRoe - uRoe * cRoe},
110  {1., uRoe, vRoe, wRoe, 0.5 * URoe},
111  {0., 0., 1., 0., vRoe},
112  {0., 0., 0., 1., wRoe},
113  {1., uRoe + cRoe, vRoe, wRoe, hRoe + uRoe * cRoe}};
114 
115  // Calculate jumps \Delta u_i (defined preceding equation 11.67).
116  T jump[5] = {rhoR - rhoL, rhouR - rhouL, rhovR - rhovL, rhowR - rhowL,
117  ER - EL};
118 
119  // Define \Delta u_5 (equation 11.70).
120  T jumpbar = jump[4] - (jump[2] - vRoe * jump[0]) * vRoe -
121  (jump[3] - wRoe * jump[0]) * wRoe;
122 
123  // Compute wave amplitudes (equations 11.68, 11.69).
124  T alpha[5];
125  alpha[1] = (gamma - 1.0) *
126  (jump[0] * (hRoe - uRoe * uRoe) + uRoe * jump[1] - jumpbar) /
127  (cRoe * cRoe);
128  alpha[0] =
129  (jump[0] * (uRoe + cRoe) - jump[1] - cRoe * alpha[1]) / (2.0 * cRoe);
130  alpha[4] = jump[0] - (alpha[0] + alpha[1]);
131  alpha[2] = jump[2] - vRoe * jump[0];
132  alpha[3] = jump[3] - wRoe * jump[0];
133 
134  // Compute average of left and right fluxes needed for equation 11.29.
135  rhof = 0.5 * (rhoL * uL + rhoR * uR);
136  rhouf = 0.5 * (pL + rhoL * uL * uL + pR + rhoR * uR * uR);
137  rhovf = 0.5 * (rhoL * uL * vL + rhoR * uR * vR);
138  rhowf = 0.5 * (rhoL * uL * wL + rhoR * uR * wR);
139  Ef = 0.5 * (uL * (EL + pL) + uR * (ER + pR));
140 
141  // Needed to get right overload resolution for std::abs
142  using std::abs;
143 
144  // Compute eigenvalues \lambda_i (equation 11.58).
145  T uRoeAbs = abs(uRoe);
146  T lambda[5] = {abs(uRoe - cRoe), uRoeAbs, uRoeAbs, uRoeAbs,
147  abs(uRoe + cRoe)};
148 
149  // Finally perform summation (11.29).
150  for (size_t i = 0; i < 5; ++i)
151  {
152  uRoeAbs = 0.5 * alpha[i] * lambda[i];
153 
154  rhof -= uRoeAbs * k[i][0];
155  rhouf -= uRoeAbs * k[i][1];
156  rhovf -= uRoeAbs * k[i][2];
157  rhowf -= uRoeAbs * k[i][3];
158  Ef -= uRoeAbs * k[i][4];
159  }
160 }
scalarT< T > abs(scalarT< T > in)
Definition: scalar.hpp:298

References tinysimd::abs(), and tinysimd::sqrt().

Referenced by main(), Nektar::RoeSolver::v_ArraySolve(), Nektar::RoeSolver::v_PointSolve(), and Nektar::RoeSolverSIMD::v_Solve().

◆ Subtract() [1/9]

template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
SNekMat SNekMat NekMatrix<typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType, StandardMatrixTag> Nektar::Subtract ( const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 483 of file MatrixOperations.cpp.

485 {
486  typedef
487  typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType NumberType;
488  NekMatrix<NumberType, StandardMatrixTag> result(lhs.GetRows(),
489  lhs.GetColumns());
490  Subtract(result, lhs, rhs);
491  return result;
492 }
SNekMat SNekMat NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Subtract(const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)

References Subtract().

◆ Subtract() [2/9]

template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
NekMatrix<typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType, StandardMatrixTag> Nektar::Subtract ( const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 483 of file MatrixOperations.cpp.

485 {
486  typedef
487  typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType NumberType;
488  NekMatrix<NumberType, StandardMatrixTag> result(lhs.GetRows(),
489  lhs.GetColumns());
490  Subtract(result, lhs, rhs);
491  return result;
492 }

References Subtract().

◆ Subtract() [3/9]

template<typename DataType >
NekVector< DataType > Nektar::Subtract ( const NekVector< DataType > &  lhs,
const NekVector< DataType > &  rhs 
)

Definition at line 660 of file NekVector.cpp.

662 {
663  NekVector<DataType> result(lhs.GetDimension());
664  Subtract(result, lhs, rhs);
665  return result;
666 }
template NekVector< NekSingle > Subtract(const NekVector< NekSingle > &lhs, const NekVector< NekSingle > &rhs)

References Nektar::NekVector< DataType >::GetDimension(), and Subtract().

◆ Subtract() [4/9]

template NekVector<NekDouble> Nektar::Subtract ( const NekVector< NekDouble > &  lhs,
const NekVector< NekDouble > &  rhs 
)

◆ Subtract() [5/9]

template NekVector<NekSingle> Nektar::Subtract ( const NekVector< NekSingle > &  lhs,
const NekVector< NekSingle > &  rhs 
)

Referenced by Subtract().

◆ Subtract() [6/9]

template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
void Nektar::Subtract ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 355 of file MatrixOperations.cpp.

358 {
359  ASSERTL1(lhs.GetRows() == rhs.GetRows(),
360  std::string("Matrices with different row counts ") +
361  std::to_string(lhs.GetRows()) + std::string(" and ") +
362  std::to_string(rhs.GetRows()) +
363  std::string(" can't be subtracted."));
364  ASSERTL1(lhs.GetColumns() == rhs.GetColumns(),
365  std::string("Matrices with different column counts ") +
366  std::to_string(lhs.GetColumns()) + std::string(" and ") +
367  std::to_string(rhs.GetColumns()) +
368  std::string(" can't be subtracted."));
369 
370  for (unsigned int i = 0; i < lhs.GetRows(); ++i)
371  {
372  for (unsigned int j = 0; j < lhs.GetColumns(); ++j)
373  {
374  result(i, j) = lhs(i, j) - rhs(i, j);
375  }
376  }
377 }

References ASSERTL1.

Referenced by operator-(), and Subtract().

◆ Subtract() [7/9]

template void Nektar::Subtract ( NekVector< NekDouble > &  result,
const NekVector< NekDouble > &  lhs,
const NekVector< NekDouble > &  rhs 
)

◆ Subtract() [8/9]

template void Nektar::Subtract ( NekVector< NekSingle > &  result,
const NekVector< NekSingle > &  lhs,
const NekVector< NekSingle > &  rhs 
)

◆ Subtract() [9/9]

template<typename ResultDataType , typename InputDataType >
void Nektar::Subtract ( NekVector< ResultDataType > &  result,
const NekVector< InputDataType > &  lhs,
const NekVector< InputDataType > &  rhs 
)

Definition at line 576 of file NekVector.cpp.

579 {
580  ResultDataType *r_buf = result.GetRawPtr();
581  typename std::add_const<InputDataType>::type *lhs_buf = lhs.GetRawPtr();
582  typename std::add_const<InputDataType>::type *rhs_buf = rhs.GetRawPtr();
583  const unsigned int ldim = lhs.GetDimension();
584  for (int i = 0; i < ldim; ++i)
585  {
586  r_buf[i] = lhs_buf[i] - rhs_buf[i];
587  }
588 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ SubtractEqual() [1/5]

template<typename DataType , typename RhsDataType , typename RhsMatrixType >
SNekMat SNekMat void Nektar::SubtractEqual ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 419 of file MatrixOperations.cpp.

421 {
422  ASSERTL1(result.GetRows() == rhs.GetRows(),
423  std::string("Matrices with different row counts ") +
424  std::to_string(result.GetRows()) + std::string(" and ") +
425  std::to_string(rhs.GetRows()) +
426  std::string(" can't be subtracted."));
427  ASSERTL1(result.GetColumns() == rhs.GetColumns(),
428  std::string("Matrices with different column counts ") +
429  std::to_string(result.GetColumns()) + std::string(" and ") +
430  std::to_string(rhs.GetColumns()) +
431  std::string(" can't be subtracted."));
432 
433  for (unsigned int i = 0; i < rhs.GetRows(); ++i)
434  {
435  for (unsigned int j = 0; j < rhs.GetColumns(); ++j)
436  {
437  result(i, j) -= rhs(i, j);
438  }
439  }
440 }

References ASSERTL1.

◆ SubtractEqual() [2/5]

template<typename DataType , typename RhsDataType , typename RhsMatrixType >
void Nektar::SubtractEqual ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 419 of file MatrixOperations.cpp.

421 {
422  ASSERTL1(result.GetRows() == rhs.GetRows(),
423  std::string("Matrices with different row counts ") +
424  std::to_string(result.GetRows()) + std::string(" and ") +
425  std::to_string(rhs.GetRows()) +
426  std::string(" can't be subtracted."));
427  ASSERTL1(result.GetColumns() == rhs.GetColumns(),
428  std::string("Matrices with different column counts ") +
429  std::to_string(result.GetColumns()) + std::string(" and ") +
430  std::to_string(rhs.GetColumns()) +
431  std::string(" can't be subtracted."));
432 
433  for (unsigned int i = 0; i < rhs.GetRows(); ++i)
434  {
435  for (unsigned int j = 0; j < rhs.GetColumns(); ++j)
436  {
437  result(i, j) -= rhs(i, j);
438  }
439  }
440 }

References ASSERTL1.

◆ SubtractEqual() [3/5]

template void Nektar::SubtractEqual ( NekVector< NekDouble > &  result,
const NekVector< NekDouble > &  rhs 
)

◆ SubtractEqual() [4/5]

template void Nektar::SubtractEqual ( NekVector< NekSingle > &  result,
const NekVector< NekSingle > &  rhs 
)

◆ SubtractEqual() [5/5]

template<typename ResultDataType , typename InputDataType >
void Nektar::SubtractEqual ( NekVector< ResultDataType > &  result,
const NekVector< InputDataType > &  rhs 
)

Definition at line 622 of file NekVector.cpp.

624 {
625  ResultDataType *r_buf = result.GetRawPtr();
626  typename std::add_const<InputDataType>::type *rhs_buf = rhs.GetRawPtr();
627  const unsigned int rdim = rhs.GetDimension();
628  for (int i = 0; i < rdim; ++i)
629  {
630  r_buf[i] -= rhs_buf[i];
631  }
632 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ SubtractEqualNegatedLhs() [1/4]

template<typename DataType , typename RhsDataType , typename RhsMatrixType >
void Nektar::SubtractEqualNegatedLhs ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 443 of file MatrixOperations.cpp.

445 {
446  ASSERTL1(result.GetRows() == rhs.GetRows(),
447  std::string("Matrices with different row counts ") +
448  std::to_string(result.GetRows()) + std::string(" and ") +
449  std::to_string(rhs.GetRows()) +
450  std::string(" can't be subtracted."));
451  ASSERTL1(result.GetColumns() == rhs.GetColumns(),
452  std::string("Matrices with different column counts ") +
453  std::to_string(result.GetColumns()) + std::string(" and ") +
454  std::to_string(rhs.GetColumns()) +
455  std::string(" can't be subtracted."));
456 
457  for (unsigned int i = 0; i < rhs.GetRows(); ++i)
458  {
459  for (unsigned int j = 0; j < rhs.GetColumns(); ++j)
460  {
461  result(i, j) = -result(i, j) - rhs(i, j);
462  }
463  }
464 }

References ASSERTL1, Nektar::ConstMatrix< DataType >::GetColumns(), and Nektar::ConstMatrix< DataType >::GetRows().

◆ SubtractEqualNegatedLhs() [2/4]

template void Nektar::SubtractEqualNegatedLhs ( NekVector< NekDouble > &  result,
const NekVector< NekDouble > &  rhs 
)

◆ SubtractEqualNegatedLhs() [3/4]

template void Nektar::SubtractEqualNegatedLhs ( NekVector< NekSingle > &  result,
const NekVector< NekSingle > &  rhs 
)

◆ SubtractEqualNegatedLhs() [4/4]

template<typename ResultDataType , typename InputDataType >
void Nektar::SubtractEqualNegatedLhs ( NekVector< ResultDataType > &  result,
const NekVector< InputDataType > &  rhs 
)

Definition at line 635 of file NekVector.cpp.

637 {
638  ResultDataType *r_buf = result.GetRawPtr();
639  typename std::add_const<InputDataType>::type *rhs_buf = rhs.GetRawPtr();
640  const unsigned int rdim = rhs.GetDimension();
641  for (int i = 0; i < rdim; ++i)
642  {
643  r_buf[i] = -r_buf[i] - rhs_buf[i];
644  }
645 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ SubtractNegatedLhs() [1/4]

template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
void Nektar::SubtractNegatedLhs ( NekMatrix< DataType, StandardMatrixTag > &  result,
const NekMatrix< LhsDataType, LhsMatrixType > &  lhs,
const NekMatrix< RhsDataType, RhsMatrixType > &  rhs 
)

Definition at line 381 of file MatrixOperations.cpp.

384 {
385  ASSERTL1(lhs.GetRows() == rhs.GetRows(),
386  std::string("Matrices with different row counts ") +
387  std::to_string(lhs.GetRows()) + std::string(" and ") +
388  std::to_string(rhs.GetRows()) +
389  std::string(" can't be subtracted."));
390  ASSERTL1(lhs.GetColumns() == rhs.GetColumns(),
391  std::string("Matrices with different column counts ") +
392  std::to_string(lhs.GetColumns()) + std::string(" and ") +
393  std::to_string(rhs.GetColumns()) +
394  std::string(" can't be subtracted."));
395 
396  for (unsigned int i = 0; i < lhs.GetRows(); ++i)
397  {
398  for (unsigned int j = 0; j < lhs.GetColumns(); ++j)
399  {
400  result(i, j) = -lhs(i, j) - rhs(i, j);
401  }
402  }
403 }

References ASSERTL1.

◆ SubtractNegatedLhs() [2/4]

template void Nektar::SubtractNegatedLhs ( NekVector< NekDouble > &  result,
const NekVector< NekDouble > &  lhs,
const NekVector< NekDouble > &  rhs 
)

◆ SubtractNegatedLhs() [3/4]

template void Nektar::SubtractNegatedLhs ( NekVector< NekSingle > &  result,
const NekVector< NekSingle > &  lhs,
const NekVector< NekSingle > &  rhs 
)

◆ SubtractNegatedLhs() [4/4]

template<typename ResultDataType , typename InputDataType >
void Nektar::SubtractNegatedLhs ( NekVector< ResultDataType > &  result,
const NekVector< InputDataType > &  lhs,
const NekVector< InputDataType > &  rhs 
)

Definition at line 591 of file NekVector.cpp.

594 {
595  ResultDataType *r_buf = result.GetRawPtr();
596  typename std::add_const<InputDataType>::type *lhs_buf = lhs.GetRawPtr();
597  typename std::add_const<InputDataType>::type *rhs_buf = rhs.GetRawPtr();
598  const unsigned int ldim = lhs.GetDimension();
599  for (int i = 0; i < ldim; ++i)
600  {
601  r_buf[i] = -lhs_buf[i] - rhs_buf[i];
602  }
603 }

References Nektar::NekVector< DataType >::GetDimension(), and Nektar::NekVector< DataType >::GetRawPtr().

◆ Transpose() [1/7]

template<typename DataType >
NekMatrix< DataType, ScaledMatrixTag > Nektar::Transpose ( NekMatrix< DataType, ScaledMatrixTag > &  rhs)

Definition at line 221 of file ScaledMatrix.cpp.

223 {
224  NekMatrix<DataType, ScaledMatrixTag> result(rhs);
225  result.Transpose();
226  return result;
227 }

◆ Transpose() [2/7]

template<typename DataType >
NekMatrix< DataType, StandardMatrixTag > Nektar::Transpose ( NekMatrix< DataType, StandardMatrixTag > &  rhs)

Definition at line 877 of file StandardMatrix.cpp.

879 {
880  NekMatrix<DataType, StandardMatrixTag> result(
881  rhs.GetRows(), rhs.GetColumns(), rhs.GetPtr(), eWrapper, rhs.GetType(),
882  rhs.GetNumberOfSubDiagonals(), rhs.GetNumberOfSuperDiagonals());
883  result.Transpose();
884  return result;
885 }

References eWrapper, Nektar::ConstMatrix< DataType >::GetColumns(), Nektar::NekMatrix< DataType, StandardMatrixTag >::GetNumberOfSubDiagonals(), Nektar::NekMatrix< DataType, StandardMatrixTag >::GetNumberOfSuperDiagonals(), Nektar::NekMatrix< DataType, StandardMatrixTag >::GetPtr(), Nektar::ConstMatrix< DataType >::GetRows(), Nektar::ConstMatrix< DataType >::GetType(), and Nektar::ConstMatrix< DataType >::Transpose().

◆ Transpose() [3/7]

template<typename InnerMatrixType >
NekMatrix<InnerMatrixType, BlockMatrixTag> Nektar::Transpose ( NekMatrix< InnerMatrixType, BlockMatrixTag > &  rhs)

◆ Transpose() [4/7]

template NekMatrix<NekDouble, StandardMatrixTag> Nektar::Transpose ( NekMatrix< NekDouble, StandardMatrixTag > &  rhs)

◆ Transpose() [5/7]

template NekMatrix<NekMatrix<NekDouble, StandardMatrixTag>, ScaledMatrixTag> Nektar::Transpose ( NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > &  rhs)

◆ Transpose() [6/7]

template NekMatrix<NekMatrix<NekSingle, StandardMatrixTag>, ScaledMatrixTag> Nektar::Transpose ( NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag > &  rhs)

◆ Transpose() [7/7]

template NekMatrix<NekSingle, StandardMatrixTag> Nektar::Transpose ( NekMatrix< NekSingle, StandardMatrixTag > &  rhs)

Variable Documentation

◆ EigenvaluesAnaMeshesAB2

NekDouble Nektar::EigenvaluesAnaMeshesAB2[6][14]
static
Initial value:
= {
{18.849560, 37.699110, 62.254810, 92.114370, 127.199300, 167.209300,
212.189900, 261.852900, 316.311600, 375.280200, 438.911800, 506.922500,
579.489600, 656.332100},
{625.358147, 1196.328877, 1817.986152, 2475.195638, 3162.726621,
3867.689152, 4595.324620, 5340.967597, 6188.286000, 7399.972000,
8708.072000, 10111.160000, 11608.000000, 13197.470000},
{705.738221, 1268.022370, 1883.167893, 2533.621042, 3215.460527,
3915.574276, 4638.993612, 5380.985954, 6153.131100, 6914.337599,
7721.969961, 8529.801758, 9326.138300, 10138.712574},
{733.261678, 1293.053007, 1905.511959, 2553.681869, 3233.562783,
3932.056639, 4654.037626, 5394.854534, 6165.912400, 6926.174929,
7732.912435, 8509.531270, 9335.504451, 10147.409120},
{747.053764, 1305.602041, 1916.689465, 2563.704820, 3242.557000,
3940.217950, 4661.410438, 5401.601883, 6172.029656, 6931.769221,
7737.958233, 8514.117977, 9339.576627, 10151.066350},
{755.354971, 1313.162315, 1923.399136, 2569.711788, 3247.904628,
3945.042610, 4665.705043, 5405.487354, 6175.462753, 6934.840253,
7740.605266, 8518.215978, 9343.872193, 10156.126788}}

Definition at line 77 of file CFLtester.h.

Referenced by Nektar::CFLtester::v_GetTimeStep().

◆ EigenvaluesAnaMeshesRK2

NekDouble Nektar::EigenvaluesAnaMeshesRK2[6][14]
static
Initial value:
= {
{18.849560, 37.699110, 62.254810, 92.114370, 127.199300, 167.209300,
212.189900, 261.852900, 316.311600, 375.280200, 438.911800, 506.922500,
579.489600, 656.332100},
{557.050244, 1050.871071, 1626.248117, 2260.761693, 2948.760275,
3677.949231, 4461.704082, 5269.668301, 6188.286000, 7399.972000,
8708.072000, 10111.160000, 11608.000000, 13197.470000},
{628.920938, 1115.037602, 1684.555318, 2314.125522, 2997.926601,
3723.485221, 4504.103288, 5309.152432, 6144.425035, 6997.224333,
7899.393530, 8799.536577, 9741.728144, 10730.151339},
{653.448558, 1137.048335, 1704.542817, 2332.448417, 3014.804194,
3739.158997, 4518.709861, 5322.835874, 6157.188251, 7009.203565,
7910.587422, 8810.047856, 9751.511668, 10739.355196},
{665.739421, 1148.083349, 1714.541462, 2341.603048, 3023.189930,
3746.919933, 4525.868290, 5329.493149, 6163.296851, 7014.864920,
7915.749155, 8814.796544, 9755.765307, 10668.230508},
{673.137069, 1154.731489, 1720.543482, 2347.089614, 3028.175778,
3751.507906, 4508.994826, 5306.299694, 6166.725091, 7017.972766,
7918.457008, 8818.796544, 9759.765307, 10672.230508}}

Definition at line 97 of file CFLtester.h.

Referenced by Nektar::CFLtester::v_GetTimeStep().

◆ EigenvaluesAnaMeshesRK4

NekDouble Nektar::EigenvaluesAnaMeshesRK4[6][14]
static
Initial value:
= {
{18.849560, 37.699110, 62.254810, 92.114370, 127.199300, 167.209300,
212.189900, 261.852900, 316.311600, 375.280200, 438.911800, 506.922500,
579.489600, 656.332100},
{606.168101, 1187.787270, 1793.615712, 2391.865039, 2950.786843,
3487.596192, 4060.011000, 5074.723000, 6188.286000, 7399.972000,
8708.072000, 10111.160000, 11608.000000, 13197.470000},
{684.081594, 1260.315774, 1857.923680, 2448.327633, 2999.987783,
3530.775456, 4073.368829, 4591.645387, 5121.018725, 5647.554500,
6330.380000, 7341.464000, 8418.710000, 9561.240000},
{710.760453, 1285.192482, 1879.968339, 2467.708932, 3016.876152,
3545.638033, 4086.578922, 4603.479913, 5131.656118, 5657.223101,
6197.802683, 7022.172000, 8034.773000, 9107.511000},
{724.129308, 1297.665239, 1890.995890, 2477.394447, 3025.267650,
3552.997300, 4093.052410, 4609.237151, 5136.747279, 5661.792457,
6397.687000, 7383.760000, 8431.678000, 9540.598000},
{732.175780, 1305.179484, 1897.615616, 2483.199183, 3030.256925,
3557.347822, 4096.823380, 4612.552660, 5139.604517, 5664.300842,
6771.812000, 7388.760000, 8436.678000, 9546.598000}}

Definition at line 117 of file CFLtester.h.

Referenced by Nektar::CFLtester::v_GetTimeStep().

◆ EigenvaluesRegMeshes

NekDouble Nektar::EigenvaluesRegMeshes[10][14]
static

Definition at line 45 of file CFLtester.h.

◆ FlagTypeMap

const char* const Nektar::FlagTypeMap[] = {"UseGlobal"}

String map for FlagType enumeration.

Definition at line 94 of file NektarUnivTypeDefs.hpp.

◆ InitWaveTypeMap

const char* const Nektar::InitWaveTypeMap[]
Initial value:
= {
"Left", "BothEnd", "Center", "LeftBottomCorner", "Point", "SpiralDock",
}

Definition at line 74 of file MMFDiffusion.h.

Referenced by Nektar::MMFDiffusion::v_InitObject().

◆ kAdvectionFormStr

const std::string Nektar::kAdvectionFormStr[]
Initial value:
= {"NoType",
"Convective",
"NonConservative",
"Linearised",
"Adjoint",
"SkewSymmetric"
"NoAdvection"}

Definition at line 92 of file IncNavierStokes.h.

◆ kEquationTypeStr

const std::string Nektar::kEquationTypeStr[]
Initial value:
= {
"NoType",
"SteadyStokes",
"SteadyOseen",
"SteadyLinearisedNS",
"UnsteadyStokes",
"UnsteadyLinearisedNS",
"UnsteadyNavierStokes",
"SteadyNavierStokes",
}

Definition at line 68 of file IncNavierStokes.h.

Referenced by Nektar::IncNavierStokes::v_InitObject().

◆ NEKTAR_ALL_MATRIX_TYPES_SINGLE

SNekMat Nektar::NEKTAR_ALL_MATRIX_TYPES_SINGLE

Definition at line 61 of file MatrixOperations.cpp.

◆ NEKTAR_BLOCK_MATRIX_TYPES_SINGLE

Nektar::NEKTAR_BLOCK_MATRIX_TYPES_SINGLE

Definition at line 638 of file MatrixVectorMultiplication.cpp.

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX

SNekMat Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(SubtractEqualNegatedLhs, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(1,(DNekMat &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(SubtractEqualNegatedLhs ( AddEqualNegatedLhs  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(void))  ,
(1,(DNekMat &))  ,
(0,())   
)

◆ NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES

SNekMat Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES(SubtractNegatedLhs, NEKTAR_ALL_MATRIX_TYPES, NEKTAR_ALL_MATRIX_TYPES,(1,(void)),(1,(DNekMat &)),(0,())) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_TWO_MATRICES(SubtractNegatedLhs ( AddNegatedLhs  ,
NEKTAR_ALL_MATRIX_TYPES  ,
NEKTAR_ALL_MATRIX_TYPES  ,
(1,(void))  ,
(1,(DNekMat &))  ,
(0,())   
)

◆ NEKTAR_STANDARD_AND_SCALED_MATRICES_SINGLE

Nektar::NEKTAR_STANDARD_AND_SCALED_MATRICES_SINGLE

Definition at line 616 of file MatrixVectorMultiplication.cpp.

◆ NekVector< NekSingle >

Definition at line 654 of file MatrixVectorMultiplication.cpp.

◆ NistSpBlasDescra

const int Nektar::NistSpBlasDescra[5][9]
static

Definition at line 44 of file NistSparseDescriptors.hpp.

◆ NullArrayDNekBlkMatSharedPtr

Array<OneD, DNekBlkMatSharedPtr> Nektar::NullArrayDNekBlkMatSharedPtr
static

Definition at line 93 of file NekTypeDefs.hpp.

◆ NullArraySNekBlkMatSharedPtr

Array<OneD, SNekBlkMatSharedPtr> Nektar::NullArraySNekBlkMatSharedPtr
static

Definition at line 137 of file NekTypeDefs.hpp.

◆ NullDNekMatSharedPtr

DNekMatSharedPtr Nektar::NullDNekMatSharedPtr
static

◆ NullDNekScalBlkMatSharedPtr

DNekScalBlkMatSharedPtr Nektar::NullDNekScalBlkMatSharedPtr
static

◆ NullDNekScalMatSharedPtr

DNekScalMatSharedPtr Nektar::NullDNekScalMatSharedPtr
static

Definition at line 84 of file NekTypeDefs.hpp.

Referenced by Nektar::LocalRegions::Expansion::v_GetLocMatrix().

◆ NullInt1DArray

Array<OneD, int> Nektar::NullInt1DArray
static

◆ NullNekDouble1DArray

Array<OneD, NekDouble> Nektar::NullNekDouble1DArray
static

Definition at line 900 of file SharedArray.hpp.

Referenced by Nektar::SolverUtils::DiffusionIP::AddSecondDerivToTrace(), Nektar::MultiRegions::ExpList::AddTraceJacToElmtJac(), Nektar::VelocityCorrectionScheme::AppendSVVFactors(), Nektar::MultiRegions::GJPStabilisation::Apply(), Nektar::Collections::Collection::ApplyOperator(), Nektar::CoupledAssemblyMap::CoupledAssemblyMap(), Nektar::UnsteadyAdvection::DoOdeProjection(), Nektar::VariableConverter::GetAv(), Nektar::VariableConverter::GetAvTrace(), Nektar::VariableConverter::GetElmtMinHP(), Nektar::StdRegions::StdExpansion::H1(), Nektar::SolverUtils::EquationSystem::L2Error(), Nektar::MultiRegions::ExpList::Linf(), Nektar::StdRegions::StdExpansion::Linf(), Nektar::CFSImplicit::NumCalcRiemFluxJac(), Nektar::CFSImplicit::PreconCoeff(), Nektar::VariableConverter::SetAv(), Nektar::VariableConverter::SetElmtMinHP(), Nektar::VelocityCorrectionScheme::SetUpSVV(), Nektar::LocalRegions::Expansion::StdDerivBaseOnTraceMat(), Nektar::SolverUtils::DiffusionIP::v_DiffuseCalcDerivative(), Nektar::MultiRegions::PreconditionerLinear::v_DoPreconditioner(), Nektar::MultiRegions::PreconditionerLinear::v_DoPreconditionerWithNonVertOutput(), Nektar::VelocityCorrectionScheme::v_GenerateSummary(), Nektar::LocalRegions::Expansion2D::v_GenMatrix(), Nektar::LocalRegions::Expansion3D::v_GenMatrix(), Nektar::SolverUtils::Driver::v_GetImagEvl(), Nektar::MultiRegions::DisContField::v_GetLocTraceFromTracePts(), Nektar::LocalRegions::Expansion::v_GetPhysNormals(), Nektar::LocalRegions::SegExp::v_GetPhysNormals(), Nektar::SolverUtils::Driver::v_GetRealEvl(), Nektar::MultiRegions::ContField::v_HelmSolve(), Nektar::MultiRegions::ExpList3DHomogeneous1D::v_L2(), Nektar::MultiRegions::ExpList::v_L2(), Nektar::MultiRegions::ExpListHomogeneous1D::v_PhysDeriv(), Nektar::StdRegions::StdPrismExp::v_PhysDeriv(), Nektar::StdRegions::StdTetExp::v_PhysDeriv(), Nektar::LocalRegions::HexExp::v_PhysDeriv(), Nektar::LocalRegions::QuadExp::v_PhysDeriv(), Nektar::LocalRegions::SegExp::v_PhysDeriv(), Nektar::LocalRegions::TriExp::v_PhysDeriv(), Nektar::StdRegions::StdHexExp::v_PhysDeriv(), Nektar::StdRegions::StdPyrExp::v_PhysDeriv(), Nektar::StdRegions::StdQuadExp::v_PhysDeriv(), Nektar::StdRegions::StdTriExp::v_PhysDeriv(), Nektar::FieldUtils::ProcessEquiSpacedOutput::v_Process(), Nektar::FieldUtils::ProcessInterpField::v_Process(), Nektar::VCSWeakPressure::v_SolvePressure(), Nektar::CFSImplicit::v_UpdateTimeStepCheck(), and Nektar::VariableConverter::VariableConverter().

◆ NullNekDoubleArrayOfArray

Array<OneD, Array<OneD, NekDouble> > Nektar::NullNekDoubleArrayOfArray
static

◆ NullNekDoubleTensorOfArray3D

Array<OneD, Array<OneD, Array<OneD, NekDouble> > > Nektar::NullNekDoubleTensorOfArray3D
static

Definition at line 905 of file SharedArray.hpp.

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

◆ NullPulseWaveBoundarySharedPtr

PulseWaveBoundarySharedPtr Nektar::NullPulseWaveBoundarySharedPtr
static

Definition at line 52 of file PulseWaveBoundary.h.

◆ NullPulseWavePressureAreaSharedPtr

PulseWavePressureAreaSharedPtr Nektar::NullPulseWavePressureAreaSharedPtr
static

Definition at line 51 of file PulseWavePressureArea.h.

◆ NullSNekMatSharedPtr

SNekMatSharedPtr Nektar::NullSNekMatSharedPtr
static

Definition at line 130 of file NekTypeDefs.hpp.

◆ NullSNekScalBlkMatSharedPtr

SNekScalBlkMatSharedPtr Nektar::NullSNekScalBlkMatSharedPtr
static

Definition at line 132 of file NekTypeDefs.hpp.

◆ NullSNekScalMatSharedPtr

SNekScalMatSharedPtr Nektar::NullSNekScalMatSharedPtr
static

Definition at line 131 of file NekTypeDefs.hpp.

◆ ProblemTypeMap

const char* const Nektar::ProblemTypeMap[] = {"General", "SolitaryWave"}

Definition at line 51 of file NonlinearPeregrine.h.

Referenced by Nektar::NonlinearPeregrine::v_InitObject().

◆ TestTypeMap

const char *const Nektar::TestTypeMap
Initial value:
= {
"TestPlane", "TestCube", "TestLinearSphere", "TestNonlinearSphere",
"FHNStandard", "FHNRogers", "FHNAlievPanf",
}

Definition at line 58 of file MMFDiffusion.h.

Referenced by Nektar::MMFAdvection::v_GenerateSummary(), Nektar::MMFDiffusion::v_GenerateSummary(), Nektar::MMFSWE::v_GenerateSummary(), Nektar::MMFDiffusion::v_InitObject(), Nektar::MMFAdvection::v_InitObject(), and Nektar::MMFSWE::v_InitObject().

◆ UpwindTypeMapPulse

const char* const Nektar::UpwindTypeMapPulse[]
Initial value:
= {
"NoSetPulse",
"UpwindPulse",
}

Definition at line 54 of file PulseWaveSystem.h.

Referenced by Nektar::PulseWaveSystem::v_InitObject().

◆ void

SNekMat Nektar::void

◆ VWIIterationTypeMap

const std::string Nektar::VWIIterationTypeMap[]
Initial value:
= {
"FixedAlpha", "FixedWaveForcing", "FixedAlphaWaveForcing",
"FixedWaveForcingWithSubIterationOnAlpha"}

Definition at line 62 of file VortexWaveInteraction.h.

Referenced by Nektar::VortexWaveInteraction::VortexWaveInteraction().