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 []
 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 59 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 63 of file SparseMatrixFwd.hpp.

◆ BCOMatType

Definition at line 64 of file SparseMatrixFwd.hpp.

◆ BCOMatTypeConstIt

typedef BCOMatType::const_iterator Nektar::BCOMatTypeConstIt

Definition at line 65 of file SparseMatrixFwd.hpp.

◆ BCOMatTypeSharedPtr

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

Definition at line 66 of file SparseMatrixFwd.hpp.

◆ BCOMatVector

Definition at line 67 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 63 of file NekTypeDefs.hpp.

◆ BlkMatDNekBlkMatSharedPtr

Definition at line 72 of file NekTypeDefs.hpp.

◆ BlkMatDNekScalBlkMat

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

Definition at line 67 of file NekTypeDefs.hpp.

◆ BlkMatDNekScalBlkMatSharedPtr

Definition at line 74 of file NekTypeDefs.hpp.

◆ BlkMatSNekBlkMat

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

Definition at line 108 of file NekTypeDefs.hpp.

◆ BlkMatSNekBlkMatSharedPtr

Definition at line 117 of file NekTypeDefs.hpp.

◆ BlkMatSNekScalBlkMat

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

Definition at line 112 of file NekTypeDefs.hpp.

◆ BlkMatSNekScalBlkMatSharedPtr

Definition at line 119 of file NekTypeDefs.hpp.

◆ BlockMatrix

typedef NekMatrix<DenseMatrix, BlockMatrixTag> Nektar::BlockMatrix

Definition at line 60 of file NekTypeDefs.hpp.

◆ BoundaryFactory

Definition at line 57 of file PulseWaveBoundary.h.

◆ CellModelFactory

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

Definition at line 60 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 60 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 56 of file SparseMatrixFwd.hpp.

◆ COOMatType

Definition at line 57 of file SparseMatrixFwd.hpp.

◆ COOMatTypeConstIt

typedef COOMatType::const_iterator Nektar::COOMatTypeConstIt

Definition at line 58 of file SparseMatrixFwd.hpp.

◆ COOMatTypeSharedPtr

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

Definition at line 59 of file SparseMatrixFwd.hpp.

◆ COOMatVector

Definition at line 60 of file SparseMatrixFwd.hpp.

◆ CoordType

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

Definition at line 55 of file SparseMatrixFwd.hpp.

◆ CoupledAssemblyMapSharedPtr

Definition at line 62 of file CoupledAssemblyMap.h.

◆ CoupledLocalToGlobalC0ContMapSharedPtr

Definition at line 64 of file CoupledLocalToGlobalC0ContMap.h.

◆ CoupledSolverMatrices

◆ DenseMatrix

typedef NekMatrix<NekDouble, StandardMatrixTag> Nektar::DenseMatrix

Definition at line 52 of file NekTypeDefs.hpp.

◆ DiffusionLDGNSSharedPtr

Definition at line 173 of file DiffusionLDGNS.h.

◆ DNekBlkMat

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

Definition at line 59 of file NekTypeDefs.hpp.

◆ DNekBlkMatSharedPtr

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

Definition at line 71 of file NekTypeDefs.hpp.

◆ DNekLinSys

Definition at line 82 of file NekTypeDefs.hpp.

◆ DNekLinSysSharedPtr

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

Definition at line 83 of file NekTypeDefs.hpp.

◆ DNekMat

typedef NekMatrix<NekDouble, StandardMatrixTag> Nektar::DNekMat

Definition at line 51 of file NekTypeDefs.hpp.

◆ DNekMatSharedPtr

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

Definition at line 69 of file NekTypeDefs.hpp.

◆ DNekScalBlkMat

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

Definition at line 65 of file NekTypeDefs.hpp.

◆ DNekScalBlkMatSharedPtr

Definition at line 73 of file NekTypeDefs.hpp.

◆ DNekScalLinSys

Definition at line 85 of file NekTypeDefs.hpp.

◆ DNekScalLinSysSharedPtr

Definition at line 86 of file NekTypeDefs.hpp.

◆ DNekScalMat

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

Definition at line 68 of file NekMatrixFwd.hpp.

◆ DNekScalMatSharedPtr

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

Definition at line 69 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 67 of file Extrapolate.h.

◆ ExtrapolateSharedPtr

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

Definition at line 61 of file Extrapolate.h.

◆ FilterAeroForcesSPMSharedPtr

Definition at line 106 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 70 of file Extrapolate.h.

◆ IncNavierStokesSharedPtr

Definition at line 275 of file IncNavierStokes.h.

◆ IndexType

typedef unsigned int Nektar::IndexType

Definition at line 50 of file SparseMatrixFwd.hpp.

◆ IndexVector

Definition at line 52 of file SparseMatrixFwd.hpp.

◆ InterfacePointShPtr

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

Definition at line 84 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 108 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 53 of file Protocol.h.

◆ ProtocolSharedPtr

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

A shared pointer to an EquationSystem object.

Definition at line 47 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 77 of file PulseWaveSystemOutput.h.

◆ PulseWaveSystemSharedPtr

Definition at line 198 of file PulseWaveSystem.h.

◆ QInflowSharedPtr

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

Definition at line 48 of file QInflow.h.

◆ RawType_t

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

Definition at line 76 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 105 of file NekTypeDefs.hpp.

◆ ScaledMatrix

typedef NekMatrix<DenseMatrix, ScaledMatrixTag> Nektar::ScaledMatrix

Definition at line 56 of file NekTypeDefs.hpp.

◆ SDenseMatrix

typedef NekMatrix<NekSingle, StandardMatrixTag> Nektar::SDenseMatrix

Definition at line 97 of file NekTypeDefs.hpp.

◆ SharedNekMatrixPtr

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

Definition at line 67 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 179 of file SmoothedProfileMethod.h.

◆ SNekBlkMat

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

Definition at line 104 of file NekTypeDefs.hpp.

◆ SNekBlkMatSharedPtr

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

Definition at line 116 of file NekTypeDefs.hpp.

◆ SNekMat

Definition at line 96 of file NekTypeDefs.hpp.

◆ SNekMatSharedPtr

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

Definition at line 114 of file NekTypeDefs.hpp.

◆ SNekScalBlkMat

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

Definition at line 110 of file NekTypeDefs.hpp.

◆ SNekScalBlkMatSharedPtr

Definition at line 118 of file NekTypeDefs.hpp.

◆ SNekScalMat

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

Definition at line 72 of file NekMatrixFwd.hpp.

◆ SNekScalMatSharedPtr

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

Definition at line 73 of file NekMatrixFwd.hpp.

◆ SNekVec

Definition at line 93 of file NekTypeDefs.hpp.

◆ SScaledMatrix

typedef NekMatrix<SDenseMatrix, ScaledMatrixTag> Nektar::SScaledMatrix

Definition at line 101 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 48 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 832 of file SharedArray.hpp.

◆ TensorOfArray3D

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

Definition at line 838 of file SharedArray.hpp.

◆ TensorOfArray4D

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

Definition at line 848 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 860 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 46 of file VariableConverter.h.

◆ VCSMappingSharedPtr

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

Definition at line 157 of file VCSMapping.h.

◆ VCSWeakPressureSharedPtr

Definition at line 101 of file VelocityCorrectionSchemeWeakPressure.h.

◆ vec_t

Definition at line 59 of file EquationOfState.h.

◆ VelocityCorrectionSchemeSharedPtr

Definition at line 234 of file VelocityCorrectionScheme.h.

◆ WeakPressureExtrapolateSharedPtr

Definition at line 54 of file WeakPressureExtrapolate.h.

◆ WomersleyParamsSharedPtr

Definition at line 129 of file IncNavierStokes.h.

Enumeration Type Documentation

◆ AdvectionForm

Enumerator
eNoAdvectionForm 
eConvective 
eNonConservative 
eLinearised 
eAdjoint 
eSkewSymmetric 
eNoAdvection 
eAdvectionFormSize 

Definition at line 75 of file IncNavierStokes.h.

76  {
81  eAdjoint,
85  };
@ eAdvectionFormSize
@ eSkewSymmetric
@ eNonConservative
@ eNoAdvectionForm

◆ AllowWrappingOfConstArrays

Enumerator
eVECTOR_WRAPPER 

Definition at line 524 of file SharedArray.hpp.

525  {
527  };
@ 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 48 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 51 of file Extrapolate.h.

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

◆ InitWaveType

Enumerator
eLeft 
eBothEnds 
eCenter 
eLeftBottomCorner 
ePoint 
eSpiralDock 
SIZE_InitWaveType 

Length of enum list.

Definition at line 69 of file MMFDiffusion.h.

70  {
71  eLeft,
72  eBothEnds,
73  eCenter,
75  ePoint,
77  SIZE_InitWaveType ///< Length of enum list
78  };
@ SIZE_InitWaveType
Length of enum list.
Definition: MMFDiffusion.h:77
@ eLeftBottomCorner
Definition: MMFDiffusion.h:74
@ eBothEnds
Definition: MMFDiffusion.h:72
@ eSpiralDock
Definition: MMFDiffusion.h:76

◆ 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 42 of file PointerWrapper.h.

43  {
44  eWrapper,
45  eCopy
46  };

◆ 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 54 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 288 of file MatrixOperations.cpp.

290  {
291  typedef typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType NumberType;
292  NekMatrix<NumberType, StandardMatrixTag> result(lhs.GetRows(), lhs.GetColumns());
293  Add(result, lhs, rhs);
294  return result;
295  }
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 288 of file MatrixOperations.cpp.

290  {
291  typedef typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType NumberType;
292  NekMatrix<NumberType, StandardMatrixTag> result(lhs.GetRows(), lhs.GetColumns());
293  Add(result, lhs, rhs);
294  return result;
295  }

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 514 of file NekVector.cpp.

516  {
517  NekVector<LhsDataType> result(lhs.GetDimension());
518  Add(result, lhs, rhs);
519  return result;
520  }
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 
)

◆ 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 235 of file MatrixOperations.cpp.

238  {
239  ASSERTL1(lhs.GetRows() == rhs.GetRows(), std::string("Matrices with different row counts ") +
240  std::to_string(lhs.GetRows()) + std::string(" and ") +
241  std::to_string(rhs.GetRows()) + std::string(" can't be added."));
242  ASSERTL1(lhs.GetColumns() == rhs.GetColumns(), std::string("Matrices with different column counts ") +
243  std::to_string(lhs.GetColumns()) + std::string(" and ") +
244  std::to_string(rhs.GetColumns()) + std::string(" can't be added."));
245 
246  for(unsigned int i = 0; i < lhs.GetRows(); ++i)
247  {
248  for(unsigned int j = 0; j < lhs.GetColumns(); ++j)
249  {
250  result(i,j) = lhs(i,j) + rhs(i,j);
251  }
252  }
253  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
Definition: ErrorUtil.hpp:250

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 235 of file MatrixOperations.cpp.

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

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 429 of file NekVector.cpp.

432  {
433  DataType* r_buf = result.GetRawPtr();
434  const DataType* lhs_buf = lhs.GetRawPtr();
435  const DataType* rhs_buf = rhs.GetRawPtr();
436  const unsigned int ldim = lhs.GetDimension();
437  for(int i = 0; i < ldim; ++i)
438  {
439  r_buf[i] = lhs_buf[i] + rhs_buf[i];
440  }
441  }

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 185 of file MatrixOperations.cpp.

187  {
188  ASSERTL1(result.GetRows() == rhs.GetRows(), std::string("Matrices with different row counts ") +
189  std::to_string(result.GetRows()) + std::string(" and ") +
190  std::to_string(rhs.GetRows()) + std::string(" can't be added."));
191  ASSERTL1(result.GetColumns() == rhs.GetColumns(), std::string("Matrices with different column counts ") +
192  std::to_string(result.GetColumns()) + std::string(" and ") +
193  std::to_string(rhs.GetColumns()) + std::string(" can't be added."));
194 
195  for(unsigned int i = 0; i < rhs.GetRows(); ++i)
196  {
197  for(unsigned int j = 0; j < rhs.GetColumns(); ++j)
198  {
199  result(i,j) += rhs(i,j);
200  }
201  }
202  }

References ASSERTL1.

Referenced by Nektar::NekVector< DataType >::operator+=().

◆ 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 185 of file MatrixOperations.cpp.

187  {
188  ASSERTL1(result.GetRows() == rhs.GetRows(), std::string("Matrices with different row counts ") +
189  std::to_string(result.GetRows()) + std::string(" and ") +
190  std::to_string(rhs.GetRows()) + std::string(" can't be added."));
191  ASSERTL1(result.GetColumns() == rhs.GetColumns(), std::string("Matrices with different column counts ") +
192  std::to_string(result.GetColumns()) + std::string(" and ") +
193  std::to_string(rhs.GetColumns()) + std::string(" can't be added."));
194 
195  for(unsigned int i = 0; i < rhs.GetRows(); ++i)
196  {
197  for(unsigned int j = 0; j < rhs.GetColumns(); ++j)
198  {
199  result(i,j) += rhs(i,j);
200  }
201  }
202  }

References ASSERTL1.

Referenced by Nektar::NekVector< DataType >::operator+=().

◆ AddEqual() [3/5]

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

Definition at line 473 of file NekVector.cpp.

475  {
476  DataType* r_buf = result.GetRawPtr();
477  const DataType* rhs_buf = rhs.GetRawPtr();
478  const unsigned int rdim = rhs.GetDimension();
479  for(int i = 0; i < rdim; ++i)
480  {
481  r_buf[i] += rhs_buf[i];
482  }
483  }

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 206 of file MatrixOperations.cpp.

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

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 486 of file NekVector.cpp.

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

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 256 of file MatrixOperations.cpp.

259  {
260  ASSERTL1(lhs.GetRows() == rhs.GetRows(), std::string("Matrices with different row counts ") +
261  std::to_string(lhs.GetRows()) + std::string(" and ") +
262  std::to_string(rhs.GetRows()) + std::string(" can't be added."));
263  ASSERTL1(lhs.GetColumns() == rhs.GetColumns(), std::string("Matrices with different column counts ") +
264  std::to_string(lhs.GetColumns()) + std::string(" and ") +
265  std::to_string(rhs.GetColumns()) + std::string(" can't be added."));
266 
267  for(unsigned int i = 0; i < lhs.GetRows(); ++i)
268  {
269  for(unsigned int j = 0; j < lhs.GetColumns(); ++j)
270  {
271  result(i,j) = -lhs(i,j) + rhs(i,j);
272  }
273  }
274  }

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 444 of file NekVector.cpp.

447  {
448  DataType* r_buf = result.GetRawPtr();
449  const DataType* lhs_buf = lhs.GetRawPtr();
450  const DataType* rhs_buf = rhs.GetRawPtr();
451  const unsigned int ldim = lhs.GetDimension();
452  for(int i = 0; i < ldim; ++i)
453  {
454  r_buf[i] = -lhs_buf[i] + rhs_buf[i];
455  }
456  }

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 1286 of file NekVector.cpp.

1287  {
1288  unsigned int d = v.GetRows();
1289  std::string result = "(";
1290  for(unsigned int i = 0; i < d; ++i)
1291  {
1292  result += boost::lexical_cast<std::string>(v[i]);
1293  if( i < v.GetDimension()-1 )
1294  {
1295  result += ", ";
1296  }
1297  }
1298  result += ")";
1299  return result;
1300  }

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.

53  {
54  COOMatTypeConstIt entry;
56  int rowcoord, localRow, blkRowCoord;
57  int colcoord, localCol, blkColCoord;
58 
59  for(entry = cooMat.begin(); entry != cooMat.end(); entry++)
60  {
61  rowcoord = (entry->first).first;
62  colcoord = (entry->first).second;
63 
64  blkRowCoord = rowcoord / blkDim;
65  blkColCoord = colcoord / blkDim;
66 
67  CoordType blkCoords = std::make_pair(blkRowCoord,blkColCoord);
68  blk = bcoMat.find(blkCoords);
69  if (blk == bcoMat.end())
70  {
71  BCOEntryType b(blkDim*blkDim, 0.0);
72  bcoMat[blkCoords] = b;
73  }
74 
75  localRow = rowcoord % blkDim;
76  localCol = colcoord % blkDim;
77 
78  // transpose it: NIST SpBLAS expects Fortran ordering
79  // of dense subblocks
80  const unsigned int localoffset = localRow + localCol*blkDim;
81  (bcoMat[blkCoords])[localoffset] = entry->second;
82  }
83  }
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 797 of file SharedArray.hpp.

798  {
799  if( dest.size() != source.size() )
800  {
801  dest = Array<OneD, DataType>(source.size());
802  }
803 
804  std::copy(source.data(), source.data() + source.size(), dest.data());
805  }
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::NekVector< DataType >::NekVector(), Nektar::StdRegions::StdExpansion0D::PhysTensorDeriv(), and Nektar::StdRegions::StdExpansion1D::PhysTensorDeriv().

◆ 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 808 of file SharedArray.hpp.

810  {
811  if( dest.size() != n )
812  {
813  dest = Array<OneD, DataType>(n);
814  }
815 
816  std::copy(source.data(), source.data() + n, dest.data());
817  }

References CellMLToNektar.pycml::copy().

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 177 of file ArrayPolicies.hpp.

178  {
179  typedef boost::multi_array_ref<DataType, Dim::Value> ArrayType;
180  size_t size = std::accumulate(extent.begin(), extent.end(), 1,
181  std::multiplies<size_t>());
182  DataType* storage = MemoryManager<DataType>::RawAllocate(size);
183  return MemoryManager<ArrayType>::AllocateSharedPtrD(
184  [=](boost::multi_array_ref<DataType, Dim::Value> *ptr) {
185  boost::ignore_unused(ptr);
186  ArrayDestructionPolicy<DataType>::Destroy(storage, size);
187  MemoryManager<DataType>::RawDeallocate(storage, size);
188  },
189  storage, extent);
190  }

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 194 of file ArrayPolicies.hpp.

195  {
196  std::vector<size_t> extents = { d1 };
197  return CreateStorage<OneD, DataType>(extents);
198  }

◆ 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 202 of file ArrayPolicies.hpp.

203  {
204  std::vector<size_t> extents = { d1, d2 };
205  return CreateStorage<TwoD, DataType>(extents);
206  }

◆ 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 210 of file ArrayPolicies.hpp.

211  {
212  std::vector<size_t> extents = { d1, d2, d3 };
213  return CreateStorage<ThreeD, DataType>(extents);
214  }

◆ createVectorFromPoints() [1/3]

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

Definition at line 1003 of file NekVector.cpp.

1005  {
1006  NekVector<DataType> result(3, 0.0);
1007  for(unsigned int i = 0; i < 3; ++i)
1008  {
1009  result[i] = dest[i]-source[i];
1010  }
1011  return result;
1012  }

◆ 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 1266 of file NekVector.cpp.

1268  {
1269  ASSERTL1(lhs.GetDimension() == 3 && rhs.GetDimension() == 3, "Cross is only valid for 3D vectors.");
1270 
1271  DataType first = lhs.y()*rhs.z() - lhs.z()*rhs.y();
1272  DataType second = lhs.z()*rhs.x() - lhs.x()*rhs.z();
1273  DataType third = lhs.x()*rhs.y() - lhs.y()*rhs.x();
1274 
1275  NekVector<DataType> result(first, second, third);
1276  return result;
1277  }

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 258 of file MatrixVectorMultiplication.cpp.

261  {
262  unsigned int numberOfBlockRows = lhs.GetNumberOfBlockRows();
263  double* result_ptr = result.GetRawPtr();
264  const double* rhs_ptr = rhs.GetRawPtr();
265 
266  Array<OneD, unsigned int> rowSizes;
267  Array<OneD, unsigned int> colSizes;
268  lhs.GetBlockSizes(rowSizes, colSizes);
269 
270  unsigned int curResultRow = 0;
271  unsigned int curWrapperRow = 0;
272  unsigned int rowsInBlock = 0;
273  unsigned int columnsInBlock = 0;
274  for(unsigned int blockRow = 0; blockRow < numberOfBlockRows; ++blockRow)
275  {
276  curResultRow += rowsInBlock;
277  curWrapperRow += columnsInBlock;
278  if ( blockRow == 0)
279  {
280  rowsInBlock = rowSizes[blockRow] + 1;
281  columnsInBlock = colSizes[blockRow] + 1;
282  }
283  else
284  {
285  rowsInBlock = rowSizes[blockRow] - rowSizes[blockRow-1];
286  columnsInBlock = colSizes[blockRow] - colSizes[blockRow-1];
287  }
288 
289  if( rowsInBlock == 0)
290  {
291  continue;
292  }
293  if( columnsInBlock == 0)
294  {
295  std::fill(result.begin()+curResultRow,
296  result.begin()+curResultRow + rowsInBlock, 0.0);
297  continue;
298  }
299 
300  const DNekScalMat* block = lhs.GetBlockPtr(blockRow, blockRow);
301  if( !block )
302  {
303  continue;
304  }
305 
306  double* resultWrapper = result_ptr + curResultRow;
307  const double* rhsWrapper = rhs_ptr + curWrapperRow;
308 
309  // Multiply
310  const unsigned int* size = block->GetSize();
311  Blas::Gemv('N', size[0], size[1], block->Scale(),
312  block->GetRawPtr(), size[0], rhsWrapper, 1,
313  0.0, resultWrapper, 1);
314  }
315  curResultRow += rowsInBlock;
316  if (curResultRow < result.GetRows())
317  {
318  std::fill(result.begin()+curResultRow, result.end(), 0.0);
319  }
320  }
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:247
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 322 of file MatrixVectorMultiplication.cpp.

325  {
326  unsigned int numberOfBlockRows = lhs.GetNumberOfBlockRows();
327  NekSingle* result_ptr = result.GetRawPtr();
328  const NekSingle* rhs_ptr = rhs.GetRawPtr();
329 
330  Array<OneD, unsigned int> rowSizes;
331  Array<OneD, unsigned int> colSizes;
332  lhs.GetBlockSizes(rowSizes, colSizes);
333 
334  unsigned int curResultRow = 0;
335  unsigned int curWrapperRow = 0;
336  unsigned int rowsInBlock = 0;
337  unsigned int columnsInBlock = 0;
338  for(unsigned int blockRow = 0; blockRow < numberOfBlockRows; ++blockRow)
339  {
340  curResultRow += rowsInBlock;
341  curWrapperRow += columnsInBlock;
342  if ( blockRow == 0)
343  {
344  rowsInBlock = rowSizes[blockRow] + 1;
345  columnsInBlock = colSizes[blockRow] + 1;
346  }
347  else
348  {
349  rowsInBlock = rowSizes[blockRow] - rowSizes[blockRow-1];
350  columnsInBlock = colSizes[blockRow] - colSizes[blockRow-1];
351  }
352 
353  if( rowsInBlock == 0)
354  {
355  continue;
356  }
357  if( columnsInBlock == 0)
358  {
359  std::fill(result.begin()+curResultRow,
360  result.begin()+curResultRow + rowsInBlock, 0.0);
361  continue;
362  }
363 
364  const SNekScalMat* block = lhs.GetBlockPtr(blockRow, blockRow);
365  if( !block )
366  {
367  continue;
368  }
369 
370  NekSingle* resultWrapper = result_ptr + curResultRow;
371  const NekSingle* rhsWrapper = rhs_ptr + curWrapperRow;
372 
373  // Multiply
374  const unsigned int* size = block->GetSize();
375  Blas::Gemv('N', size[0], size[1], block->Scale(),
376  block->GetRawPtr(), size[0], rhsWrapper, 1,
377  0.0, resultWrapper, 1);
378  }
379  curResultRow += rowsInBlock;
380  if (curResultRow < result.GetRows())
381  {
382  std::fill(result.begin()+curResultRow, result.end(), 0.0);
383  }
384  }
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 198 of file MatrixVectorMultiplication.cpp.

201  {
202  unsigned int numberOfBlockRows = lhs.GetNumberOfBlockRows();
203  DataType* result_ptr = result.GetRawPtr();
204  const DataType* rhs_ptr = rhs.GetRawPtr();
205 
206  Array<OneD, unsigned int> rowSizes;
207  Array<OneD, unsigned int> colSizes;
208  lhs.GetBlockSizes(rowSizes, colSizes);
209 
210  unsigned int curResultRow = 0;
211  unsigned int curWrapperRow = 0;
212  unsigned int rowsInBlock = 0;
213  unsigned int columnsInBlock = 0;
214  for(unsigned int blockRow = 0; blockRow < numberOfBlockRows; ++blockRow)
215  {
216  curResultRow += rowsInBlock;
217  curWrapperRow += columnsInBlock;
218  if ( blockRow == 0)
219  {
220  rowsInBlock = rowSizes[blockRow] + 1;
221  columnsInBlock = colSizes[blockRow] + 1;
222  }
223  else
224  {
225  rowsInBlock = rowSizes[blockRow] - rowSizes[blockRow-1];
226  columnsInBlock = colSizes[blockRow] - colSizes[blockRow-1];
227  }
228 
229  if( rowsInBlock == 0)
230  {
231  continue;
232  }
233  if( columnsInBlock == 0)
234  {
235  std::fill(result.begin()+curResultRow,
236  result.begin()+curResultRow + rowsInBlock, 0.0);
237  continue;
238  }
239 
240  const LhsInnerMatrixType* block = lhs.GetBlockPtr(blockRow, blockRow);
241  if( !block )
242  {
243  continue;
244  }
245 
246  DataType* resultWrapper = result_ptr + curResultRow;
247  const DataType* rhsWrapper = rhs_ptr + curWrapperRow;
248  Multiply(resultWrapper, *block, rhsWrapper);
249  //resultWrapper = (*block)*rhsWrapper;
250  }
251  curResultRow += rowsInBlock;
252  if (curResultRow < result.GetRows())
253  {
254  std::fill(result.begin()+curResultRow, result.end(), 0.0);
255  }
256  }
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 454 of file NekPoint.hpp.

456  {
457  DataType result = 0.0;
458  for(unsigned int i = 0; i < 3; ++i)
459  {
460  DataType temp = lhs[i] - rhs[i];
461  result += temp*temp;
462  }
463  return sqrt(result);
464  }
scalarT< T > sqrt(scalarT< T > in)
Definition: scalar.hpp:267

References tinysimd::sqrt().

◆ Divide() [1/8]

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

Definition at line 718 of file NekVector.cpp.

720  {
721  NekVector<DataType> result(lhs.GetDimension());
722  Divide(result, lhs, rhs);
723  return result;
724  }
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 728 of file NekVector.cpp.

730  {
731  NekVector<DataType> result(lhs.GetDimension());
732  Divide(result, lhs, rhs);
733  return result;
734  }

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 
)

◆ 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 643 of file NekVector.cpp.

646  {
647  ResultDataType* r_buf = result.GetRawPtr();
648  typename std::add_const<InputDataType>::type* lhs_buf = lhs.GetRawPtr();
649 
650  const unsigned int ldim = lhs.GetDimension();
651  for(int i = 0; i < ldim; ++i)
652  {
653  r_buf[i] = lhs_buf[i] / rhs;
654  }
655  }

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

Referenced by Divide(), and 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 658 of file NekVector.cpp.

661  {
662  ResultDataType* r_buf = result.GetRawPtr();
663  typename std::add_const<InputDataType>::type* lhs_buf = lhs.GetRawPtr();
664 
665  const unsigned int ldim = lhs.GetDimension();
666  for(int i = 0; i < ldim; ++i)
667  {
668  r_buf[i] = lhs_buf[i] / rhs;
669  }
670  }

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 683 of file NekVector.cpp.

685  {
686  ResultDataType* r_buf = result.GetRawPtr();
687 
688  const unsigned int resdim = result.GetDimension();
689  for(int i = 0; i < resdim; ++i)
690  {
691  r_buf[i] /= rhs;
692  }
693  }

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

Referenced by Nektar::NekVector< DataType >::operator/=().

◆ DivideEqual() [4/4]

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

Definition at line 696 of file NekVector.cpp.

698  {
699  ResultDataType* r_buf = result.GetRawPtr();
700 
701  const unsigned int resdim = result.GetDimension();
702  for(int i = 0; i < resdim; ++i)
703  {
704  r_buf[i] /= rhs;
705  }
706  }

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 1220 of file NekVector.cpp.

1222  {
1223  ASSERTL1( lhs.GetDimension() == rhs.GetDimension(), "Dot, dimension of the two operands must be identical.");
1224 
1225  DataType result = DataType(0);
1226  const unsigned int ldim = lhs.GetDimension();
1227  for(unsigned int i = 0; i < ldim; ++i)
1228  {
1229  result += lhs[i]*rhs[i];
1230  }
1231 
1232  return result;
1233  }

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

Referenced by Nektar::PulseWaveSystem::BifurcationRiemann(), Nektar::NekVector< DataType >::Dot(), Nektar::PulseWaveSystem::JunctionRiemann(), 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 1024 of file NekVector.cpp.

1026  {
1027  NekPoint<DataType> result;
1028  for(unsigned int i = 0; i < 3; ++i)
1029  {
1030  result[i] = lhs[i]*t;
1031  }
1032 
1033  return result;
1034  }

◆ 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 1080 of file NekVector.cpp.

1081  {
1082  std::vector<DataType> result;
1083 
1084  try
1085  {
1086  typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
1087  boost::char_separator<char> sep("(<,>) ");
1088  tokenizer tokens(str, sep);
1089  for( tokenizer::iterator strIter = tokens.begin(); strIter != tokens.end(); ++strIter)
1090  {
1091  result.push_back(boost::lexical_cast<DataType>(*strIter));
1092  }
1093  }
1094  catch(boost::bad_lexical_cast&)
1095  {
1096  }
1097 
1098  return result;
1099  }

◆ fromString()

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

Definition at line 467 of file NekPoint.hpp.

468  {
469  try
470  {
471  typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
472  boost::char_separator<char> sep("(<,>) ");
473  tokenizer tokens(str, sep);
474  unsigned int i = 0;
475  for(tokenizer::iterator iter = tokens.begin(); iter != tokens.end(); ++iter)
476  {
477  result[i] = boost::lexical_cast<DataType>(*iter);
478  ++i;
479  }
480 
481  return i == 3;
482  }
483  catch(boost::bad_lexical_cast&)
484  {
485  return false;
486  }
487  }

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 133 of file MatrixVectorMultiplication.cpp.

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

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:60

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:60

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 49 of file Extrapolate.cpp.

50  {
51  static ExtrapolateFactory instance;
52  return instance;
53  }
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:67

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

◆ GetMemoryPool()

MemPool & Nektar::GetMemoryPool ( )

Definition at line 36 of file ThreadSpecificPool.cpp.

37  {
38  static MemPool instance;
39  return instance;
40  }

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 55 of file PulseWavePressureArea.cpp.

56 {
57  static PressureAreaFactory instance;
58  return instance;
59 }
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:53

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 53 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 70 of file ExactSolverToro.cpp.

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

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

References hash_combine(), and hash_range().

◆ InfinityNorm() [1/3]

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

Definition at line 1148 of file NekVector.cpp.

1149  {
1150  DataType result = fabs(v[0]);
1151  const unsigned int vdim = v.GetDimension();
1152  for(unsigned int i = 0; i < vdim; ++i)
1153  {
1154  result = std::max(DataType(fabs(v[i])), result);
1155  }
1156  return result;
1157  }

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 1257 of file NekVector.cpp.

1257 { v = 1.0/v; }

◆ InvertInPlace() [2/2]

void Nektar::InvertInPlace ( NekSingle v)

Definition at line 1263 of file NekVector.cpp.

1263 { v = 1.0/v; }

◆ IsEqual()

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

Definition at line 744 of file SharedArray.hpp.

745  {
746  return IsEqualImpl(lhs, rhs, std::is_floating_point<T>());
747  }
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 731 of file SharedArray.hpp.

732  {
733  return lhs == rhs;
734  }

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 738 of file SharedArray.hpp.

739  {
740  return LibUtilities::IsRealEqual(lhs, rhs);
741  }
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 1108 of file NekVector.cpp.

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

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 1128 of file NekVector.cpp.

1129  {
1130  typedef NekVector<DataType> VectorType;
1131 
1132  DataType result(0);
1133  for(typename VectorType::const_iterator iter = v.begin(); iter != v.end(); ++iter)
1134  {
1135  DataType v = fabs(*iter);
1136  result += v*v;
1137  }
1138  return sqrt(result);
1139  }

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 1201 of file NekVector.cpp.

1202  {
1203  DataType result = DataType(0);
1204 
1205  const unsigned int vdim = v.GetDimension();
1206  for(unsigned int i = 0; i < vdim; ++i)
1207  {
1208  result += v[i]*v[i];
1209  }
1210  return sqrt(result);
1211  }

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; mapref(1,0) = -1.0;
95  mapref(0,1) = 1.0; mapref(1,1) = -1.0;
96  mapref(0,2) = -1.0; mapref(1,2) = 1.0;
97  }
98  else if (n == 4)
99  {
100  mapref(0,0) = -1.0; mapref(1,0) = -1.0; mapref(2,0) = -1.0;
101  mapref(0,1) = 1.0; mapref(1,1) = -1.0; mapref(2,1) = -1.0;
102  mapref(0,2) = -1.0; mapref(1,2) = 1.0; mapref(2,2) = -1.0;
103  mapref(0,3) = -1.0; mapref(1,3) = -1.0; mapref(2,3) = 1.0;
104  }
105 
106  map.Invert();
107 
108  DNekMat newmap = mapref * map;
109  DNekMat mapred(n-1, n-1, 1.0, eFULL);
110 
111  for (i = 0; i < n-1; ++i)
112  {
113  for (j = 0; j < n-1; ++j)
114  {
115  mapred(i,j) = newmap(i,j);
116  }
117  }
118 
119  return mapred;
120 }
NekMatrix< NekDouble, StandardMatrixTag > DNekMat
Definition: NekTypeDefs.hpp:51

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 94 of file MatrixOperations.cpp.

97  {
98  return Multiply(rhs, lhs);
99  }
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 94 of file MatrixOperations.cpp.

97  {
98  return Multiply(rhs, lhs);
99  }

References Multiply().

◆ Multiply() [3/36]

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

Definition at line 975 of file NekVector.cpp.

977  {
978  return Multiply(rhs, lhs);
979  }
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 64 of file MatrixOperations.cpp.

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

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 64 of file MatrixOperations.cpp.

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

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 268 of file MatrixOperations.hpp.

270 {
271  typedef typename std::remove_const<
272  typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType>::type
273  NumberType;
274  NekMatrix<NumberType, StandardMatrixTag> result(lhs.GetRows(),
275  rhs.GetColumns());
276  Multiply(result, lhs, rhs);
277  return result;
278 }
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 602 of file MatrixVectorMultiplication.cpp.

604  {
605  NekVector<DataType> result(lhs.GetRows(), DataType(0));
606  Multiply(result, lhs, rhs);
607  return result;
608  }

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 602 of file MatrixVectorMultiplication.cpp.

604  {
605  NekVector<DataType> result(lhs.GetRows(), DataType(0));
606  Multiply(result, lhs, rhs);
607  return result;
608  }

References Multiply().

◆ Multiply() [10/36]

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

◆ Multiply() [11/36]

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

Definition at line 878 of file NekVector.cpp.

880  {
881  NekVector<DataType> result(lhs.GetDimension());
882  Multiply(result, lhs, rhs);
883  return result;
884  }

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 888 of file NekVector.cpp.

890  {
891  NekVector<DataType> result(lhs.GetDimension());
892  Multiply(result, lhs, rhs);
893  return result;
894  }

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 788 of file NekVector.cpp.

790  {
791  NekVector<DataType> result(lhs.GetDimension());
792  Multiply(result, lhs, rhs);
793  return result;
794  }

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 534 of file MatrixVectorMultiplication.cpp.

537  {
538  switch(lhs.GetType())
539  {
540  case eFULL:
541  NekMultiplyFullMatrix(result, lhs, rhs);
542  break;
543  case eDIAGONAL:
544  NekMultiplyDiagonalMatrix(result, lhs, rhs);
545  break;
546  case eUPPER_TRIANGULAR:
547  NekMultiplyUpperTriangularMatrix(result, lhs, rhs);
548  break;
549  case eLOWER_TRIANGULAR:
550  NekMultiplyLowerTriangularMatrix(result, lhs, rhs);
551  break;
552  case eSYMMETRIC:
553  NekMultiplySymmetricMatrix(result, lhs, rhs);
554  break;
555  case eBANDED:
556  NekMultiplyBandedMatrix(result, lhs, rhs);
557  break;
558  case eSYMMETRIC_BANDED:
561  default:
562  NekMultiplyUnspecializedMatrixType(result, lhs, rhs);
563  }
564  }
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 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 NekMultiplyUnspecializedMatrixType(DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
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 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 159 of file MatrixOperations.cpp.

162  {
163  ASSERTL1(lhs.GetColumns() == rhs.GetRows(), std::string("A left side matrix with column count ") +
164  std::to_string(lhs.GetColumns()) +
165  std::string(" and a right side matrix with row count ") +
166  std::to_string(rhs.GetRows()) + std::string(" can't be multiplied."));
167 
168  result.SetSize(lhs.GetRows(), rhs.GetColumns());
169  if( lhs.GetType() == eFULL && rhs.GetType() == eFULL)
170  {
171  NekMultiplyFullMatrixFullMatrix(result, lhs, rhs);
172  }
173  else
174  {
175  NekMultiplyDefaultImpl(result, lhs, rhs);
176  }
177  }
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::JunctionRiemann(), 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 79 of file MatrixOperations.cpp.

83  {
84  Multiply(result, rhs, lhs);
85  }

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 79 of file MatrixOperations.cpp.

83  {
84  Multiply(result, rhs, lhs);
85  }

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 567 of file MatrixVectorMultiplication.cpp.

570  {
571 
572  ASSERTL1(lhs.GetColumns() == rhs.GetRows(), std::string("A left side matrix with column count ") +
573  std::to_string(lhs.GetColumns()) +
574  std::string(" and a right side vector with row count ") +
575  std::to_string(rhs.GetRows()) + std::string(" can't be multiplied."));
576  Multiply(result.GetRawPtr(), lhs, rhs.GetRawPtr());
577  }

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 583 of file MatrixVectorMultiplication.cpp.

586  {
587  if( lhs.GetStorageType() == eDIAGONAL )
588  {
589  DiagonalBlockMatrixMultiply(result, lhs, rhs);
590  }
591  else
592  {
593  FullBlockMatrixMultiply(result, lhs, rhs);
594  }
595  }
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 583 of file MatrixVectorMultiplication.cpp.

586  {
587  if( lhs.GetStorageType() == eDIAGONAL )
588  {
589  DiagonalBlockMatrixMultiply(result, lhs, rhs);
590  }
591  else
592  {
593  FullBlockMatrixMultiply(result, lhs, rhs);
594  }
595  }

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.

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

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 931 of file NekVector.cpp.

934  {
935  Multiply(result, rhs, lhs);
936  }

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 806 of file NekVector.cpp.

809  {
810  ResultDataType* r_buf = result.GetRawPtr();
811  const InputDataType* lhs_buf = lhs.GetRawPtr();
812 
813  const unsigned int ldim = lhs.GetDimension();
814  for(int i = 0; i < ldim; ++i)
815  {
816  r_buf[i] = lhs_buf[i] * rhs;
817  }
818  }

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 821 of file NekVector.cpp.

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

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 747 of file NekVector.cpp.

750  {
751  ResultDataType* result_buf = result.GetRawPtr();
752  const InputDataType* rhs_buf = rhs.GetRawPtr();
753  const InputDataType* lhs_buf = lhs.GetRawPtr();
754  const unsigned int resdim = result.GetDimension();
755  for(int i = 0; i < resdim; ++i)
756  {
757  result_buf[i] = lhs_buf[i] * rhs_buf[i];
758  }
759  }

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 225 of file MatrixOperations.hpp.

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

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 107 of file MatrixOperations.cpp.

109  {
110  typedef typename NekMatrix<LhsDataType, StandardMatrixTag>::iterator iterator;
111  for( iterator iter = lhs.begin(); iter != lhs.end(); ++iter)
112  {
113  *iter *= rhs;
114  }
115  }

Referenced by Nektar::NekVector< DataType >::operator*=().

◆ MultiplyEqual() [3/11]

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

Definition at line 107 of file MatrixOperations.cpp.

109  {
110  typedef typename NekMatrix<LhsDataType, StandardMatrixTag>::iterator iterator;
111  for( iterator iter = lhs.begin(); iter != lhs.end(); ++iter)
112  {
113  *iter *= rhs;
114  }
115  }

Referenced by Nektar::NekVector< DataType >::operator*=().

◆ 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 187 of file MatrixOperations.hpp.

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

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 846 of file NekVector.cpp.

848  {
849  ResultDataType* r_buf = result.GetRawPtr();
850  const unsigned int rdim = result.GetDimension();
851  for(unsigned int i = 0; i < rdim; ++i)
852  {
853  r_buf[i] *= rhs;
854  }
855  }

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 858 of file NekVector.cpp.

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

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 768 of file NekVector.cpp.

770  {
771  ResultDataType* result_buf = result.GetRawPtr();
772  const InputDataType* rhs_buf = rhs.GetRawPtr();
773  const unsigned int resdim = result.GetDimension();
774  for(int i = 0; i < resdim; ++i)
775  {
776  result_buf[i] *= rhs_buf[i];
777  }
778  }

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 915 of file NekVector.cpp.

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

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 939 of file NekVector.cpp.

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

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 1166 of file NekVector.cpp.

1167  {
1168  NekVector<DataType> temp(v);
1169  const unsigned int tdim = temp.GetDimension();
1170  for(unsigned int i = 0; i < tdim; ++i)
1171  {
1172  temp(i) = -temp(i);
1173  }
1174  return temp;
1175  }

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

Referenced by Nektar::NekVector< DataType >::operator-().

◆ 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 367 of file NekPoint.hpp.

368  {
369  rhs.negate();
370  }

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

◆ NegateInPlace() [1/11]

void Nektar::NegateInPlace ( NekDouble v)

Definition at line 1256 of file NekVector.cpp.

1256 { v = -v; }

◆ NegateInPlace() [2/11]

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

Definition at line 238 of file ScaledMatrix.cpp.

239  {
240  v.SetScale(-1.0*v.Scale());
241  }

◆ NegateInPlace() [3/11]

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

Definition at line 834 of file StandardMatrix.cpp.

835  {
836  for(unsigned int i = 0; i < m.GetRows(); ++i)
837  {
838  for(unsigned int j = 0; j < m.GetColumns(); ++j)
839  {
840  m(i,j) *= -1.0;
841  }
842  }
843  }

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 1262 of file NekVector.cpp.

1262 { v = -v; }

◆ NegateInPlace() [9/11]

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

Definition at line 1184 of file NekVector.cpp.

1185  {
1186  DataType* data = v.GetRawPtr();
1187  const unsigned int vdim = v.GetDimension();
1188  for(unsigned int i = 0; i < vdim; ++i)
1189  {
1190  data[i] = -data[i];
1191  }
1192  }

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 121 of file MatrixVectorMultiplication.cpp.

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

References 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 123 of file MatrixOperations.cpp.

126  {
127  ASSERTL1(lhs.GetColumns() == rhs.GetRows(), std::string("A left side matrix with column count ") +
128  std::to_string(lhs.GetColumns()) +
129  std::string(" and a right side matrix with row count ") +
130  std::to_string(rhs.GetRows()) + std::string(" can't be multiplied."));
131 
132  for(unsigned int i = 0; i < result.GetRows(); ++i)
133  {
134  for(unsigned int j = 0; j < result.GetColumns(); ++j)
135  {
136  ResultType t = ResultType(0);
137 
138  // Set the result(i,j) element.
139  for(unsigned int k = 0; k < lhs.GetColumns(); ++k)
140  {
141  t += lhs(i,k)*rhs(k,j);
142  }
143  result(i,j) = t;
144  }
145  }
146  }

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:192

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 503 of file MatrixVectorMultiplication.cpp.

505  {
506  boost::ignore_unused(p);
507 
508  const unsigned int* size = lhs.GetSize();
509 
510  char t = lhs.GetTransposeFlag();
511 
512  DataType alpha = lhs.Scale();
513  const DataType* a = lhs.GetRawPtr();
514  int lda = size[0];
515  const DataType* x = rhs;
516  int incx = 1;
517  DataType beta = 0.0;
518  DataType* y = result;
519  int incy = 1;
520 
521  Blas::Gemv(t, size[0], size[1], alpha, a, lda, x, incx, beta, y, incy);
522  }

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

Referenced by Multiply().

◆ 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 525 of file MatrixVectorMultiplication.cpp.

527  {
528  boost::ignore_unused(p);
529 
530  NekMultiplyUnspecializedMatrixType(result, lhs, rhs);
531  }

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

◆ 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,
176  rhs.GetRawPtr(), LDB, 0.0, result.GetRawPtr(),
177  result.GetRows());
178 }

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 150 of file MatrixOperations.cpp.

153  {
154  NekMultiplyDefaultImpl(result, lhs, rhs);
155  }

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 387 of file MatrixVectorMultiplication.cpp.

390  {
391  int vectorSize = lhs.GetColumns();
392  std::copy(rhs, rhs+vectorSize, result);
393  int n = lhs.GetRows();
394  const DataType* a = lhs.GetRawPtr();
395  DataType* x = result;
396  int incx = 1;
397 
398  Blas::Tpmv('L', lhs.GetTransposeFlag(), 'N', n, a, x, incx);
399  }
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:305

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 415 of file MatrixVectorMultiplication.cpp.

418  {
419  for(unsigned int i = 0; i < lhs.GetRows(); ++i)
420  {
421  DataType accum = DataType(0);
422  for(unsigned int j = 0; j <= i; ++j)
423  {
424  accum += lhs(i,j)*rhs[j];
425  }
426  result[i] = accum;
427  }
428  }

◆ NekMultiplyLowerTriangularMatrix() [3/3]

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

Definition at line 402 of file MatrixVectorMultiplication.cpp.

405  {
406  NekMultiplyLowerTriangularMatrix(result, *lhs.GetOwnedMatrix(), rhs);
407 
408  for(unsigned int i = 0; i < lhs.GetColumns(); ++i)
409  {
410  result[i] *= lhs.Scale();
411  }
412  }

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 475 of file MatrixVectorMultiplication.cpp.

477  {
478  boost::ignore_unused(p);
479 
480  const unsigned int* size = lhs.GetSize();
481 
482  DataType alpha = lhs.Scale();
483  const DataType* a = lhs.GetRawPtr();
484  const DataType* x = rhs;
485  int incx = 1;
486  DataType beta = 0.0;
487  DataType* y = result;
488  int incy = 1;
489 
490  Blas::Spmv('U', size[0], alpha, a, x, incx, beta, y, incy);
491  }
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:327

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

Referenced by Multiply().

◆ 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 494 of file MatrixVectorMultiplication.cpp.

496  {
497  boost::ignore_unused(p);
498 
499  NekMultiplyUnspecializedMatrixType(result, lhs, rhs);
500  }

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

◆ 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 431 of file MatrixVectorMultiplication.cpp.

434  {
435  int vectorSize = lhs.GetColumns();
436  std::copy(rhs, rhs+vectorSize, result);
437  int n = lhs.GetRows();
438  const DataType* a = lhs.GetRawPtr();
439  DataType* x = result;
440  int incx = 1;
441 
442  Blas::Tpmv('U', lhs.GetTransposeFlag(), 'N', n, a, x, incx);
443  }

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 459 of file MatrixVectorMultiplication.cpp.

462  {
463  for(unsigned int i = 0; i < lhs.GetRows(); ++i)
464  {
465  DataType accum = DataType(0);
466  for(unsigned int j = i; j < lhs.GetColumns(); ++j)
467  {
468  accum += lhs(i,j)*rhs[j];
469  }
470  result[i] = accum;
471  }
472  }

◆ NekMultiplyUpperTriangularMatrix() [3/3]

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

Definition at line 446 of file MatrixVectorMultiplication.cpp.

449  {
450  NekMultiplyUpperTriangularMatrix(result, *lhs.GetOwnedMatrix(), rhs);
451 
452  for(unsigned int i = 0; i < lhs.GetColumns(); ++i)
453  {
454  result[i] *= lhs.Scale();
455  }
456  }

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 1244 of file NekVector.cpp.

1245  {
1246  DataType m = v.Magnitude();
1247  if( m > DataType(0) )
1248  {
1249  v /= m;
1250  }
1251  }

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 776 of file SharedArray.hpp.

778  {
779  return !(lhs == rhs);
780  }

◆ operator!=() [2/6]

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

Definition at line 902 of file SharedArray.hpp.

904  {
905  return !(lhs == rhs);
906  }

◆ operator!=() [3/6]

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

Definition at line 308 of file NekMemoryManager.hpp.

309 {
310  return !(lhs == rhs);
311 }

◆ operator!=() [4/6]

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

Definition at line 1065 of file NekVector.cpp.

1067  {
1068  return !(lhs == rhs);
1069  }

◆ 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 306 of file NekVector.hpp.

308  {
309  return Multiply(lhs, rhs);
310  }
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 285 of file MatrixOperations.hpp.

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

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 437 of file NekPoint.hpp.

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

◆ operator*() [7/9]

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

Definition at line 299 of file NekVector.hpp.

301  {
302  return Multiply(lhs, rhs);
303  }

References Multiply().

◆ operator*() [8/9]

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

Definition at line 313 of file NekVector.hpp.

315  {
316  return Multiply(lhs, rhs);
317  }

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 428 of file NekPoint.hpp.

429  {
430  NekPoint<DataType> result(rhs);
431  result *= lhs;
432  return result;
433  }

◆ 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 783 of file SharedArray.hpp.

785  {
786  return Array<OneD, const DataType>::CreateWithOffset(lhs, offset);
787  }

◆ 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 316 of file MatrixOperations.hpp.

318 {
319  return Add(lhs, rhs);
320 }
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 374 of file NekPoint.hpp.

375  {
376  NekPoint<DataType> result(lhs);
377  result += rhs;
378  return result;
379  }

◆ 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 392 of file NekPoint.hpp.

393  {
394  NekPoint<DataType> result(lhs);
395  result += rhs;
396  return result;
397  }

◆ operator+() [5/7]

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

Definition at line 327 of file NekVector.hpp.

329  {
330  return Add(lhs, rhs);
331  }
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 790 of file SharedArray.hpp.

792  {
793  return Array<OneD, const DataType>::CreateWithOffset(rhs, offset);
794  }

◆ 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 383 of file NekPoint.hpp.

384  {
385  NekPoint<DataType> result(rhs);
386  result += lhs;
387  return result;
388  }

◆ 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 366 of file MatrixOperations.hpp.

368 {
369  return Subtract(lhs, rhs);
370 }
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 401 of file NekPoint.hpp.

402  {
403  NekPoint<DataType> result(lhs);
404  result -= rhs;
405  return result;
406  }

◆ 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 419 of file NekPoint.hpp.

420  {
421  NekPoint<DataType> result(lhs);
422  result -= rhs;
423  return result;
424  }

◆ operator-() [4/5]

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

Definition at line 334 of file NekVector.hpp.

336  {
337  return Subtract(lhs, rhs);
338  }
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 410 of file NekPoint.hpp.

411  {
412  NekPoint<DataType> result(-rhs);
413  result += lhs;
414  return result;
415  }

◆ 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 446 of file NekPoint.hpp.

447  {
448  NekPoint<DataType> result(lhs);
449  result /= rhs;
450  return result;
451  }

◆ operator/() [2/2]

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

Definition at line 320 of file NekVector.hpp.

322  {
323  return Divide(lhs, rhs);
324  }
void Divide(NekVector< ResultDataType > &result, const NekVector< InputDataType > &lhs, const NekDouble &rhs)
Definition: NekVector.cpp:643

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.

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

◆ operator<<() [2/9]

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

Definition at line 490 of file NekPoint.hpp.

491  {
492  os << p.AsString();
493  return os;
494  }

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 114 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 86 of file SparseUtils.cpp.

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

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 990 of file NekVector.cpp.

991  {
992  os << rhs.AsString();
993  return os;
994  }

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 750 of file SharedArray.hpp.

752  {
753  if (lhs.size() != rhs.size())
754  {
755  return false;
756  }
757 
758  if (lhs.data() == rhs.data())
759  {
760  return true;
761  }
762 
763  typename Array<OneD, T1>::size_type size_value(lhs.size());
764  for (typename Array<OneD, T1>::size_type i = 0; i < size_value; ++i)
765  {
766  if (!IsEqual(lhs[i], rhs[i]))
767  {
768  return false;
769  }
770  }
771 
772  return true;
773  }
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 872 of file SharedArray.hpp.

874  {
875  if ( (lhs.GetRows() != rhs.GetRows()) ||
876  (lhs.GetColumns() != rhs.GetColumns()) )
877  {
878  return false;
879  }
880 
881  if ( lhs.data() == rhs.data() )
882  {
883  return true;
884  }
885 
886  for (typename Array<OneD, T1>::size_type i = 0; i < lhs.GetRows(); ++i)
887  {
888  for (typename Array<OneD, T1>::size_type j = 0;
889  j < lhs.GetColumns(); ++j)
890  {
891  if (!IsEqual(lhs[i][j], rhs[i][j]))
892  {
893  return false;
894  }
895  }
896  }
897 
898  return true;
899  }

References IsEqual().

◆ operator==() [3/6]

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

Definition at line 301 of file NekMemoryManager.hpp.

302 {
303  boost::ignore_unused(lhs,rhs);
304  return true;
305 }

◆ operator==() [4/6]

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

Definition at line 1045 of file NekVector.cpp.

1047  {
1048  if( lhs.GetDimension() != rhs.GetDimension() )
1049  {
1050  return false;
1051  }
1052 
1053  return std::equal(lhs.begin(), lhs.end(), rhs.begin());
1054  }

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 77 of file NekMatrix.hpp.

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

◆ 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 120 of file ExactSolverToro.cpp.

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

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 79 of file RoeSolver.h.

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

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 405 of file MatrixOperations.cpp.

407  {
408  typedef typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType NumberType;
409  NekMatrix<NumberType, StandardMatrixTag> result(lhs.GetRows(), lhs.GetColumns());
410  Subtract(result, lhs, rhs);
411  return result;
412  }
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 405 of file MatrixOperations.cpp.

407  {
408  typedef typename NekMatrix<LhsDataType, LhsMatrixType>::NumberType NumberType;
409  NekMatrix<NumberType, StandardMatrixTag> result(lhs.GetRows(), lhs.GetColumns());
410  Subtract(result, lhs, rhs);
411  return result;
412  }

References Subtract().

◆ Subtract() [3/9]

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

Definition at line 624 of file NekVector.cpp.

626  {
627  NekVector<DataType> result(lhs.GetDimension());
628  Subtract(result, lhs, rhs);
629  return result;
630  }
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 
)

◆ 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 303 of file MatrixOperations.cpp.

306  {
307  ASSERTL1(lhs.GetRows() == rhs.GetRows(), std::string("Matrices with different row counts ") +
308  std::to_string(lhs.GetRows()) + std::string(" and ") +
309  std::to_string(rhs.GetRows()) + std::string(" can't be subtracted."));
310  ASSERTL1(lhs.GetColumns() == rhs.GetColumns(), std::string("Matrices with different column counts ") +
311  std::to_string(lhs.GetColumns()) + std::string(" and ") +
312  std::to_string(rhs.GetColumns()) + std::string(" can't be subtracted."));
313 
314  for(unsigned int i = 0; i < lhs.GetRows(); ++i)
315  {
316  for(unsigned int j = 0; j < lhs.GetColumns(); ++j)
317  {
318  result(i,j) = lhs(i,j) - rhs(i,j);
319  }
320  }
321  }

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 531 of file NekVector.cpp.

534  {
535  ResultDataType* r_buf = result.GetRawPtr();
536  typename std::add_const<InputDataType>::type* lhs_buf = lhs.GetRawPtr();
537  typename std::add_const<InputDataType>::type* rhs_buf = rhs.GetRawPtr();
538  const unsigned int ldim = lhs.GetDimension();
539  for(int i = 0; i < ldim; ++i)
540  {
541  r_buf[i] = lhs_buf[i] - rhs_buf[i];
542  }
543  }

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 356 of file MatrixOperations.cpp.

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

References ASSERTL1.

Referenced by Nektar::NekVector< DataType >::operator-=().

◆ 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 356 of file MatrixOperations.cpp.

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

References ASSERTL1.

Referenced by Nektar::NekVector< DataType >::operator-=().

◆ 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 581 of file NekVector.cpp.

583  {
584  ResultDataType* r_buf = result.GetRawPtr();
585  typename std::add_const<InputDataType>::type* rhs_buf = rhs.GetRawPtr();
586  const unsigned int rdim = rhs.GetDimension();
587  for(int i = 0; i < rdim; ++i)
588  {
589  r_buf[i] -= rhs_buf[i];
590  }
591  }

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 376 of file MatrixOperations.cpp.

378  {
379  ASSERTL1(result.GetRows() == rhs.GetRows(), std::string("Matrices with different row counts ") +
380  std::to_string(result.GetRows()) + std::string(" and ") +
381  std::to_string(rhs.GetRows()) + std::string(" can't be subtracted."));
382  ASSERTL1(result.GetColumns() == rhs.GetColumns(), std::string("Matrices with different column counts ") +
383  std::to_string(result.GetColumns()) + std::string(" and ") +
384  std::to_string(rhs.GetColumns()) + std::string(" can't be subtracted."));
385 
386  for(unsigned int i = 0; i < rhs.GetRows(); ++i)
387  {
388  for(unsigned int j = 0; j < rhs.GetColumns(); ++j)
389  {
390  result(i,j) = -result(i,j) - rhs(i,j);
391  }
392  }
393  }

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 594 of file NekVector.cpp.

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

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 324 of file MatrixOperations.cpp.

327  {
328  ASSERTL1(lhs.GetRows() == rhs.GetRows(), std::string("Matrices with different row counts ") +
329  std::to_string(lhs.GetRows()) + std::string(" and ") +
330  std::to_string(rhs.GetRows()) + std::string(" can't be subtracted."));
331  ASSERTL1(lhs.GetColumns() == rhs.GetColumns(), std::string("Matrices with different column counts ") +
332  std::to_string(lhs.GetColumns()) + std::string(" and ") +
333  std::to_string(rhs.GetColumns()) + std::string(" can't be subtracted."));
334 
335  for(unsigned int i = 0; i < lhs.GetRows(); ++i)
336  {
337  for(unsigned int j = 0; j < lhs.GetColumns(); ++j)
338  {
339  result(i,j) = -lhs(i,j) - rhs(i,j);
340  }
341  }
342  }

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 546 of file NekVector.cpp.

549  {
550  ResultDataType* r_buf = result.GetRawPtr();
551  typename std::add_const<InputDataType>::type* lhs_buf = lhs.GetRawPtr();
552  typename std::add_const<InputDataType>::type* rhs_buf = rhs.GetRawPtr();
553  const unsigned int ldim = lhs.GetDimension();
554  for(int i = 0; i < ldim; ++i)
555  {
556  r_buf[i] = -lhs_buf[i] - rhs_buf[i];
557  }
558  }

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 178 of file ScaledMatrix.cpp.

179  {
180  NekMatrix<DataType, ScaledMatrixTag> result(rhs);
181  result.Transpose();
182  return result;
183  }

◆ Transpose() [2/7]

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

Definition at line 816 of file StandardMatrix.cpp.

817  {
818  NekMatrix<DataType, StandardMatrixTag> result(rhs.GetRows(), rhs.GetColumns(),
819  rhs.GetPtr(), eWrapper, rhs.GetType(), rhs.GetNumberOfSubDiagonals(),
820  rhs.GetNumberOfSuperDiagonals());
821  result.Transpose();
822  return result;
823  }

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 57 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 65 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 73 of file CFLtester.h.

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

◆ EigenvaluesRegMeshes

NekDouble Nektar::EigenvaluesRegMeshes[10][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},
{32.277580, 67.919290, 113.860500, 169.431300, 234.151800, 307.678500, 389.746800, 480.143200, 578.689500, 685.233500, 799.642600, 921.799700, 1051.600000, 1188.949000},
{56.418920, 115.463200, 191.215900, 282.444600, 388.469600, 508.597500, 642.523200, 789.745400, 950.116100, 1123.225000, 1309.009000, 1507.109000, 1717.513000, 1939.900000},
{77.988010, 158.974000, 262.115100, 385.943600, 529.415800, 691.770100, 872.414200, 1070.867000, 1286.725000, 1519.644000, 1769.323000, 2035.496000, 2317.925000, 2616.397000},
{102.518800, 207.512500, 340.960200, 500.891100, 686.042600, 895.336300, 1128.107000, 1383.623000, 1661.474000, 1961.100000, 2282.224000, 2624.386000, 2987.395000, 3370.856000},
{125.653700, 253.549800, 415.661800, 609.711500, 834.071300, 1087.549000, 1369.216000, 1678.315000, 2014.214000, 2376.369000, 2764.308000, 3177.613000, 3615.910000, 4078.863000},
{150.392200, 302.534600, 495.170300, 725.542200, 991.784100, 1292.405000, 1626.378000, 1992.722000, 2390.769000, 2819.785000, 3279.297000, 3768.717000, 4287.691000, 4835.729000},
{174.106400, 349.636100, 571.545300, 836.751500, 1143.031000, 1488.755000, 1872.650000, 2293.681000, 2750.981000, 3243.808000, 3771.512000, 4333.522000, 4929.325000, 5558.461000},
{198.947800, 398.852300, 651.400800, 953.050400, 1301.327000, 1694.312000, 2130.624000, 2609.014000, 3128.566000, 3688.361000, 4287.733000, 4925.959000, 5602.527000, 6316.841000},
{222.978700, 446.558300, 728.737000, 1065.639000, 1454.438000, 1893.064000, 2379.896000, 2913.620000, 3493.132000, 4117.485000, 4785.857000, 5497.519000, 6251.820000, 7079.855200}}

Definition at line 45 of file CFLtester.h.

◆ FlagTypeMap

const char* const Nektar::FlagTypeMap[]
Initial value:
= {
"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 80 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 88 of file IncNavierStokes.h.

◆ kEquationTypeStr

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

Definition at line 62 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 59 of file MatrixOperations.cpp.

◆ NEKTAR_BLOCK_MATRIX_TYPES_SINGLE

Nektar::NEKTAR_BLOCK_MATRIX_TYPES_SINGLE

Definition at line 598 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 580 of file MatrixVectorMultiplication.cpp.

◆ NekVector< NekSingle >

Definition at line 611 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 88 of file NekTypeDefs.hpp.

◆ NullArraySNekBlkMatSharedPtr

Array<OneD, SNekBlkMatSharedPtr> Nektar::NullArraySNekBlkMatSharedPtr
static

Definition at line 130 of file NekTypeDefs.hpp.

◆ NullDNekMatSharedPtr

DNekMatSharedPtr Nektar::NullDNekMatSharedPtr
static

◆ NullDNekScalBlkMatSharedPtr

DNekScalBlkMatSharedPtr Nektar::NullDNekScalBlkMatSharedPtr
static

◆ NullDNekScalMatSharedPtr

DNekScalMatSharedPtr Nektar::NullDNekScalMatSharedPtr
static

Definition at line 79 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 820 of file SharedArray.hpp.

Referenced by Nektar::SolverUtils::DiffusionIP::AddSecondDerivToTrace(), Nektar::MultiRegions::ExpList::AddTraceJacToElmtJac(), Nektar::VelocityCorrectionScheme::AppendSVVFactors(), Nektar::Collections::Collection::ApplyOperator(), Nektar::CoupledAssemblyMap::CoupledAssemblyMap(), Nektar::StdRegions::StdExpansion::H1(), Nektar::SolverUtils::EquationSystem::L2Error(), Nektar::MultiRegions::ExpList::Linf(), Nektar::StdRegions::StdExpansion::Linf(), Nektar::CFSImplicit::NumCalcRiemFluxJac(), Nektar::CFSImplicit::PreconCoeff(), Nektar::FieldUtils::ProcessEquiSpacedOutput::Process(), Nektar::FieldUtils::ProcessInterpField::Process(), Nektar::VelocityCorrectionScheme::SetUpSVV(), Nektar::CFSImplicit::UpdateTimeStepCheck(), Nektar::SolverUtils::DiffusionIP::v_DiffuseCalcDerivative(), Nektar::SolverUtils::DiffusionIP::v_DiffuseVolumeFlux(), Nektar::MultiRegions::PreconditionerLinear::v_DoPreconditioner(), Nektar::MultiRegions::PreconditionerLinear::v_DoPreconditionerWithNonVertOutput(), Nektar::VelocityCorrectionScheme::v_GenerateSummary(), 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::SolverUtils::ForcingMovingReferenceFrame::v_InitObject(), Nektar::SolverUtils::DiffusionIP::v_InitObject(), 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::TriExp::v_PhysDeriv(), Nektar::StdRegions::StdHexExp::v_PhysDeriv(), Nektar::StdRegions::StdPyrExp::v_PhysDeriv(), Nektar::StdRegions::StdQuadExp::v_PhysDeriv(), Nektar::StdRegions::StdTriExp::v_PhysDeriv(), Nektar::LocalRegions::SegExp::v_PhysDeriv(), and Nektar::VCSWeakPressure::v_SolvePressure().

◆ NullNekDoubleArrayOfArray

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

◆ NullNekDoubleTensorOfArray3D

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

Definition at line 828 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 123 of file NekTypeDefs.hpp.

◆ NullSNekScalBlkMatSharedPtr

SNekScalBlkMatSharedPtr Nektar::NullSNekScalBlkMatSharedPtr
static

Definition at line 125 of file NekTypeDefs.hpp.

◆ NullSNekScalMatSharedPtr

SNekScalMatSharedPtr Nektar::NullSNekScalMatSharedPtr
static

Definition at line 124 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::MMFAdvection::v_InitObject(), Nektar::MMFDiffusion::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 63 of file VortexWaveInteraction.h.

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