Nektar++
Classes | Typedefs | Enumerations | Functions | Variables
Nektar::SolverUtils Namespace Reference

Classes

class  Advection
 An abstract base class encapsulating the concept of advection of a vector field. More...
 
class  Advection3DHomogeneous1D
 
class  AdvectionFR
 
class  AdvectionNonConservative
 
class  AdvectionSystem
 A base class for PDEs which include an advection component. More...
 
class  AdvectionWeakDG
 
struct  ALEBase
 
struct  ALEFixed
 
class  ALEHelper
 
struct  ALERotate
 
struct  ALETranslate
 
class  Coupling
 
class  CouplingCwipi
 
class  CouplingFile
 
class  Diffusion
 
class  Diffusion3DHomogeneous1D
 
class  DiffusionIP
 
class  DiffusionLDG
 
class  DiffusionLFR
 
class  DiffusionLFRNS
 
class  Driver
 Base class for the development of solvers. More...
 
class  DriverAdaptive
 Base class for the adaptive polynomial order driver. More...
 
class  DriverArnoldi
 Base class for the development of solvers. More...
 
class  DriverArpack
 Base class for the development of solvers. More...
 
class  DriverModifiedArnoldi
 
class  DriverParallelInTime
 Base class for the development of parallel-in-time solvers. More...
 
class  DriverParareal
 Base class for the development of solvers. More...
 
class  DriverPFASST
 Base class for the development of solvers. More...
 
class  DriverStandard
 Base class for the development of solvers. More...
 
class  DriverSteadyState
 
class  EquationSystem
 A base class for describing how to solve specific equations. More...
 
class  EvaluatePoints
 
class  FileFieldInterpolator
 
class  FileSolution
 This class is the base class for Navier Stokes problems. More...
 
class  Filter
 
class  FilterAeroForces
 
class  FilterAverageFields
 
class  FilterBodyFittedVelocity
 
class  FilterCheckpoint
 
class  FilterEnergy
 
class  FilterEnergy1D
 Filter for one-dimensional energy spectrum. More...
 
class  FilterError
 
class  FilterFieldConvert
 
class  FilterHistoryPoints
 
class  FilterIntegral
 
class  FilterLagrangianPoints
 
class  FilterMaxMinFields
 
class  FilterMean
 
class  FilterModalEnergy
 
class  FilterMovingAverage
 
class  FilterPython
 
class  FilterReynoldsStresses
 Append Reynolds stresses to the average fields. More...
 
class  FilterThresholdMax
 
class  FilterThresholdMin
 
class  FluidInterface
 
class  Forcing
 Defines a forcing term to be explicitly applied. More...
 
class  ForcingAbsorption
 
class  ForcingBody
 
class  ForcingCFSSyntheticEddy
 
class  ForcingIncNSSyntheticEddy
 
class  ForcingMovingReferenceFrame
 
class  ForcingNoise
 
class  ForcingProgrammatic
 
class  ForcingSyntheticEddy
 
class  FrameTransform
 
class  HomoRSScalar
 Wrapper class for Riemann solver scalars. More...
 
class  HomoRSVector
 Wrapper class for Riemann solver scalars. More...
 
class  MMFSystem
 A base class for PDEs which include an advection component. More...
 
class  MobilePoint
 
class  Newmark_BetaSolver
 
class  RiemannSolver
 The RiemannSolver class provides an abstract interface under which solvers for various Riemann problems can be implemented. More...
 
class  SessionFunction
 
class  StationaryPoints
 
class  StatLagrangianPoints
 
class  UnsteadySystem
 Base class for unsteady solvers. More...
 
class  UpwindSolver
 Upwind scheme Riemann solver. More...
 

Typedefs

typedef std::shared_ptr< AdvectionAdvectionSharedPtr
 A shared pointer to an Advection object. More...
 
typedef LibUtilities::NekFactory< std::string, Advection, std::string > AdvectionFactory
 Datatype of the NekFactory used to instantiate classes derived from the Advection class. More...
 
typedef std::function< void(const Array< OneD, Array< OneD, NekDouble > > &, Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &)> AdvectionFluxVecCB
 
typedef std::shared_ptr< AdvectionSystemAdvectionSystemSharedPtr
 Shared pointer to an AdvectionSystem class. More...
 
typedef std::shared_ptr< ALEBaseALEBaseShPtr
 
typedef std::shared_ptr< ALEFixedALEFixedShPtr
 
typedef std::shared_ptr< ALETranslateALETranslateShPtr
 
typedef std::shared_ptr< ALERotateALERotateShPtr
 
typedef std::function< void(Array< OneD, Array< OneD, NekDouble > > &interpField, Array< OneD, Array< OneD, NekDouble > > &distCoords)> SendCallbackType
 
typedef std::vector< std::pair< std::string, std::string > > SummaryList
 
typedef std::shared_ptr< SessionFunctionSessionFunctionSharedPtr
 
typedef std::shared_ptr< DiffusionDiffusionSharedPtr
 A shared pointer to an EquationSystem object. More...
 
typedef LibUtilities::NekFactory< std::string, Diffusion, std::string > DiffusionFactory
 Datatype of the NekFactory used to instantiate classes derived from the Diffusion class. More...
 
typedef std::function< void(const Array< OneD, Array< OneD, NekDouble > > &, const TensorOfArray3D< NekDouble > &, TensorOfArray3D< NekDouble > &)> DiffusionFluxVecCB
 
typedef std::function< void(const Array< OneD, Array< OneD, NekDouble > > &, TensorOfArray3D< NekDouble > &, TensorOfArray3D< NekDouble > &)> DiffusionFluxVecCBNS
 
typedef std::function< void(const Array< OneD, Array< OneD, NekDouble > > &, const Array< OneD, Array< OneD, NekDouble > > &, Array< OneD, Array< OneD, NekDouble > > &)> DiffusionFluxPenaltyNS
 
typedef std::function< void(const Array< OneD, const Array< OneD, NekDouble > > &, const Array< OneD, const Array< OneD, Array< OneD, NekDouble > > > &, NekDouble, const Array< OneD, const Array< OneD, NekDouble > > &, const Array< OneD, const Array< OneD, Array< OneD, NekDouble > > > &)> FunctorDerivBndCond
 
typedef std::function< void(const int, const Array< OneD, Array< OneD, NekDouble > > &, const TensorOfArray3D< NekDouble > &, TensorOfArray3D< NekDouble > &, Array< OneD, int > &, const Array< OneD, Array< OneD, NekDouble > > &)> DiffusionFluxCons
 
typedef std::function< void(const int, const Array< OneD, Array< OneD, NekDouble > > &, const Array< OneD, Array< OneD, NekDouble > > &, TensorOfArray3D< NekDouble > &, Array< OneD, int > &, const Array< OneD, Array< OneD, NekDouble > > &)> DiffusionSymmFluxCons
 
typedef std::function< void(Array< OneD, Array< OneD, NekDouble > > &)> SpecialBndTreat
 
typedef std::shared_ptr< DiffusionLFRNSDiffusionLFRNSSharedPtr
 
typedef std::shared_ptr< DriverDriverSharedPtr
 A shared pointer to a Driver object. More...
 
typedef LibUtilities::NekFactory< std::string, Driver, const LibUtilities::SessionReaderSharedPtr &, const SpatialDomains::MeshGraphSharedPtr & > DriverFactory
 Datatype of the NekFactory used to instantiate classes derived from the Driver class. More...
 
typedef Array< OneD, Array< OneD, Array< OneD, NekDouble > > > SDCarray
 
typedef std::shared_ptr< EquationSystemEquationSystemSharedPtr
 A shared pointer to an EquationSystem object. More...
 
typedef LibUtilities::NekFactory< std::string, EquationSystem, const LibUtilities::SessionReaderSharedPtr &, const SpatialDomains::MeshGraphSharedPtr & > EquationSystemFactory
 Datatype of the NekFactory used to instantiate classes derived from the EquationSystem class. More...
 
typedef std::shared_ptr< MobilePointMobilePointSharedPtr
 
typedef std::shared_ptr< StationaryPointsStationaryPointsSharedPtr
 
typedef std::shared_ptr< FilterFilterSharedPtr
 A shared pointer to a Driver object. More...
 
typedef LibUtilities::NekFactory< std::string, Filter, const LibUtilities::SessionReaderSharedPtr &, const std::shared_ptr< EquationSystem > &, const std::map< std::string, std::string > & > FilterFactory
 Datatype of the NekFactory used to instantiate classes derived from the Driver class. More...
 
typedef std::shared_ptr< FilterAeroForcesFilterAeroForcesSharedPtr
 
typedef LibUtilities::NekFactory< std::string, Forcing, const LibUtilities::SessionReaderSharedPtr &, const std::weak_ptr< EquationSystem > &, const Array< OneD, MultiRegions::ExpListSharedPtr > &, const unsigned int &, const TiXmlElement * > ForcingFactory
 Declaration of the forcing factory. More...
 
typedef std::shared_ptr< MMFSystemMMFSystemSharedPtr
 
typedef std::function< const Array< OneD, const NekDouble > &()> RSScalarFuncType
 
typedef std::function< const Array< OneD, const Array< OneD, NekDouble > > &()> RSVecFuncType
 
typedef std::function< NekDouble()> RSParamFuncType
 
typedef std::shared_ptr< RiemannSolverRiemannSolverSharedPtr
 A shared pointer to an EquationSystem object. More...
 
typedef LibUtilities::NekFactory< std::string, RiemannSolver, const LibUtilities::SessionReaderSharedPtr & > RiemannSolverFactory
 Datatype of the NekFactory used to instantiate classes derived from the RiemannSolver class. More...
 
typedef std::shared_ptr< FileFieldInterpolatorFileFieldInterpolatorSharedPtr
 

Enumerations

enum  ProblemType { eCompressible , eIncompressible , eOthers }
 
enum  SurfaceType {
  ePlane , eSphere , eTRSphere , eIrregular ,
  eNonconvex , eCube , SIZE_SurfaceType
}
 
enum  BoundaryCopyType {
  eDirichlet , eNeumann , eFwdEQBwd , eFwdEQNegBwd ,
  SIZE_BoundaryCopyType
}
 
enum  UpwindType {
  eNotSet , eAverage , eLaxFriedrich , eUpwind ,
  eRusanov , eHLL , eHLLC , SIZE_UpwindType
}
 
enum  TestMaxwellType {
  eMaxwell1D , eTestMaxwell2DPEC , eTestMaxwell2DPECAVGFLUX , eTestMaxwell2DPMC ,
  eMaxwell3D , eScatField1D , eScatField2D , eScatField3D ,
  eTotField1D , eTotField2D , eTotField3D , eMaxwellSphere ,
  eELF2DSurface , SIZE_TestMaxwellType
}
 
enum  PolType { eTransMagnetic , eTransElectric , SIZE_PolType }
 
enum  IncType { ePlaneWave , ePlaneWaveImag , eCylindricalWave , SIZE_IncType }
 
enum  EvolutionOperatorType {
  eNonlinear , eDirect , eAdjoint , eTransientGrowth ,
  eSkewSymmetric , eAdaptiveSFD
}
 

Functions

AdvectionFactoryGetAdvectionFactory ()
 Gets the factory for initialising advection objects. More...
 
CouplingFactoryGetCouplingFactory ()
 Declaration of the Coupling factory singleton. More...
 
void AddSummaryItem (SummaryList &l, const std::string &name, const std::string &value)
 Adds a summary item to the summary info list. More...
 
void AddSummaryItem (SummaryList &l, const std::string &name, const int &value)
 Adds a summary item to the summary info list. More...
 
void AddSummaryItem (SummaryList &l, const std::string &name, const NekDouble &value)
 Adds a summary item to the summary info list. More...
 
DiffusionFactoryGetDiffusionFactory ()
 
DriverFactoryGetDriverFactory ()
 
EquationSystemFactoryGetEquationSystemFactory ()
 
FilterFactoryGetFilterFactory ()
 
static void RollOver (Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &data)
 
static int BinaryWrite (std::ofstream &ofile, std::string str)
 
static int OutputTec360_binary (const std::string filename, const std::vector< std::string > &variables, const std::vector< int > &rawN, std::vector< Array< OneD, NekDouble > > &data, int isdouble)
 
std::string parse_python_exception ()
 Temporarily stolen from boost examples. More...
 
py::list ArrayOneDToPyList (const Array< OneD, const MultiRegions::ExpListSharedPtr > &pFields)
 
ForcingFactoryGetForcingFactory ()
 Declaration of the forcing factory singleton. More...
 
RiemannSolverFactoryGetRiemannSolverFactory ()
 
template<class T , typename = typename std::enable_if< std::is_floating_point<T>::value || tinysimd::is_vector_floating_point<T>::value>::type>
void rotateToNormalKernel (T *in, T *rotMat, T *out)
 
template<class T , typename = typename std::enable_if< std::is_floating_point<T>::value || tinysimd::is_vector_floating_point<T>::value>::type>
void rotateFromNormalKernel (T *in, T *rotMat, T *out)
 

Variables

SOLVER_UTILS_EXPORT typedef std::shared_ptr< CouplingCouplingSharedPtr
 
SOLVER_UTILS_EXPORT typedef LibUtilities::NekFactory< std::string, Coupling, MultiRegions::ExpListSharedPtrCouplingFactory
 Declaration of the Coupling factory. More...
 
SOLVER_UTILS_EXPORT typedef std::shared_ptr< ForcingForcingSharedPtr
 A shared pointer to an EquationSystem object. More...
 
SOLVER_UTILS_EXPORT typedef std::shared_ptr< ForcingProgrammaticForcingProgrammaticSharedPtr
 A shared pointer to an EquationSystem object. More...
 
static std::map< std::string, SendCallbackTypeSendCallbackMap
 
static SessionFunctionSharedPtr NullSessionFunction
 
const char *const SurfaceTypeMap []
 
const char *const BoundaryCopyTypeMap []
 
const char *const UpwindTypeMap []
 
const char *const TestMaxwellTypeMap []
 
const char *const PolTypeMap []
 
const char *const IncTypeMap []
 

Typedef Documentation

◆ AdvectionFactory

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

Definition at line 59 of file Advection.h.

◆ AdvectionFluxVecCB

Defines a callback function type which evaluates the flux vector \( F(u) \) in a conservative advection of the form \( \nabla\cdot F(u) \).

Definition at line 70 of file Advection.h.

◆ AdvectionSharedPtr

A shared pointer to an Advection object.

Definition at line 54 of file Advection.h.

◆ AdvectionSystemSharedPtr

Shared pointer to an AdvectionSystem class.

Definition at line 92 of file AdvectionSystem.h.

◆ ALEBaseShPtr

typedef std::shared_ptr<ALEBase> Nektar::SolverUtils::ALEBaseShPtr

Definition at line 48 of file ALEHelper.h.

◆ ALEFixedShPtr

typedef std::shared_ptr<ALEFixed> Nektar::SolverUtils::ALEFixedShPtr

Definition at line 157 of file ALEHelper.h.

◆ ALERotateShPtr

Definition at line 159 of file ALEHelper.h.

◆ ALETranslateShPtr

Definition at line 158 of file ALEHelper.h.

◆ DiffusionFactory

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

Definition at line 60 of file Diffusion.h.

◆ DiffusionFluxCons

typedef std::function<void( const int, const Array<OneD, Array<OneD, NekDouble>> &, const TensorOfArray3D<NekDouble> &, TensorOfArray3D<NekDouble> &, Array<OneD, int> &, const Array<OneD, Array<OneD, NekDouble>> &)> Nektar::SolverUtils::DiffusionFluxCons

Parameter list meaning: 1st: nvariables 2nd: nspaceDimension 3rd: field conservative variables 4th: Devrivatives of field conservative varialbes 5th: nonzero flux index array, optional 6th: normal vectors optional

a null pointer need to be passed for optional parameters

Definition at line 110 of file Diffusion.h.

◆ DiffusionFluxPenaltyNS

Definition at line 76 of file Diffusion.h.

◆ DiffusionFluxVecCB

Definition at line 66 of file Diffusion.h.

◆ DiffusionFluxVecCBNS

Definition at line 71 of file Diffusion.h.

◆ DiffusionLFRNSSharedPtr

Definition at line 185 of file DiffusionLFRNS.h.

◆ DiffusionSharedPtr

A shared pointer to an EquationSystem object.

Definition at line 55 of file Diffusion.h.

◆ DiffusionSymmFluxCons

typedef std::function<void( const int, const Array<OneD, Array<OneD, NekDouble>> &, const Array<OneD, Array<OneD, NekDouble>> &, TensorOfArray3D<NekDouble> &, Array<OneD, int> &, const Array<OneD, Array<OneD, NekDouble>> &)> Nektar::SolverUtils::DiffusionSymmFluxCons

Parameter list meaning: 1st: nvariables 2nd: nspaceDimension 3rd: trace conservative variables for Diffusion Flux Jacobian 4th: trace conservative variables( usually the jump of trace value) 5th: trace symmetric flux 6th: nonzero flux index array, optional

a null pointer need to be passed for optional parameters

Definition at line 127 of file Diffusion.h.

◆ DriverFactory

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

Definition at line 59 of file Driver.h.

◆ DriverSharedPtr

typedef std::shared_ptr<Driver> Nektar::SolverUtils::DriverSharedPtr

A shared pointer to a Driver object.

Definition at line 52 of file Driver.h.

◆ EquationSystemFactory

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

Definition at line 71 of file EquationSystem.h.

◆ EquationSystemSharedPtr

A shared pointer to an EquationSystem object.

Definition at line 65 of file EquationSystem.h.

◆ FileFieldInterpolatorSharedPtr

Definition at line 51 of file FileSolution.h.

◆ FilterAeroForcesSharedPtr

Definition at line 153 of file FilterAeroForces.h.

◆ FilterFactory

typedef LibUtilities::NekFactory<std::string, Filter, const LibUtilities::SessionReaderSharedPtr &, const std::shared_ptr<EquationSystem> &, const std::map<std::string, std::string> &> Nektar::SolverUtils::FilterFactory

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

Definition at line 59 of file Filter.h.

◆ FilterSharedPtr

typedef std::shared_ptr<Filter> Nektar::SolverUtils::FilterSharedPtr

A shared pointer to a Driver object.

Definition at line 51 of file Filter.h.

◆ ForcingFactory

typedef LibUtilities::NekFactory< std::string, Forcing, const LibUtilities::SessionReaderSharedPtr &, const std::weak_ptr<EquationSystem> &, const Array<OneD, MultiRegions::ExpListSharedPtr> &, const unsigned int &, const TiXmlElement *> Nektar::SolverUtils::ForcingFactory

Declaration of the forcing factory.

Definition at line 61 of file Forcing.h.

◆ FunctorDerivBndCond

typedef std::function<void( const Array<OneD, const Array<OneD, NekDouble>> &, const Array<OneD, const Array<OneD, Array<OneD, NekDouble>>> &, NekDouble, const Array<OneD, const Array<OneD, NekDouble>> &, const Array<OneD, const Array<OneD, Array<OneD, NekDouble>>> &)> Nektar::SolverUtils::FunctorDerivBndCond

Parameter list meaning: 1st: field conservative variables 2th: Devrivatives of field conservative varialbes 3rd: the current time for time-dependent boundary 4th: Fwd of field conservative variables optional 5th: Fwd of Devrivatives(2nd) optional

a null pointer need to be passed for optional parameters

Definition at line 93 of file Diffusion.h.

◆ MMFSystemSharedPtr

Definition at line 381 of file MMFSystem.h.

◆ MobilePointSharedPtr

Definition at line 54 of file EvaluatePoints.h.

◆ RiemannSolverFactory

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

Definition at line 207 of file RiemannSolver.h.

◆ RiemannSolverSharedPtr

A shared pointer to an EquationSystem object.

Definition at line 202 of file RiemannSolver.h.

◆ RSParamFuncType

Definition at line 55 of file RiemannSolver.h.

◆ RSScalarFuncType

typedef std::function<const Array<OneD, const NekDouble> &()> Nektar::SolverUtils::RSScalarFuncType

Definition at line 52 of file RiemannSolver.h.

◆ RSVecFuncType

typedef std::function<const Array<OneD, const Array<OneD, NekDouble> > &()> Nektar::SolverUtils::RSVecFuncType

Definition at line 54 of file RiemannSolver.h.

◆ SDCarray

Definition at line 45 of file DriverPFASST.h.

◆ SendCallbackType

typedef std::function<void(Array<OneD, Array<OneD, NekDouble>> &interpField, Array<OneD, Array<OneD, NekDouble>> &distCoords)> Nektar::SolverUtils::SendCallbackType

Definition at line 180 of file CouplingCwipi.h.

◆ SessionFunctionSharedPtr

Definition at line 152 of file SessionFunction.h.

◆ SpecialBndTreat

Parameter list meaning: 1rd: trace conservative variables

Definition at line 134 of file Diffusion.h.

◆ StationaryPointsSharedPtr

Definition at line 55 of file EvaluatePoints.h.

◆ SummaryList

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

Definition at line 46 of file Misc.h.

Enumeration Type Documentation

◆ BoundaryCopyType

Enumerator
eDirichlet 
eNeumann 
eFwdEQBwd 
eFwdEQNegBwd 
SIZE_BoundaryCopyType 

Length of enum list.

Definition at line 58 of file MMFSystem.h.

59{
64 SIZE_BoundaryCopyType ///< Length of enum list
65};
@ SIZE_BoundaryCopyType
Length of enum list.
Definition: MMFSystem.h:64

◆ EvolutionOperatorType

Enumerator
eNonlinear 
eDirect 
eAdjoint 
eTransientGrowth 
eSkewSymmetric 
eAdaptiveSFD 

Definition at line 37 of file SolverUtils.hpp.

◆ IncType

Enumerator
ePlaneWave 
ePlaneWaveImag 
eCylindricalWave 
SIZE_IncType 

Definition at line 128 of file MMFSystem.h.

◆ PolType

Enumerator
eTransMagnetic 
eTransElectric 
SIZE_PolType 

Definition at line 116 of file MMFSystem.h.

◆ ProblemType

Enumerator
eCompressible 
eIncompressible 
eOthers 

Definition at line 43 of file FilterMaxMinFields.h.

◆ SurfaceType

Enumerator
ePlane 
eSphere 
eTRSphere 
eIrregular 
eNonconvex 
eCube 
SIZE_SurfaceType 

Definition at line 43 of file MMFSystem.h.

◆ TestMaxwellType

Enumerator
eMaxwell1D 
eTestMaxwell2DPEC 
eTestMaxwell2DPECAVGFLUX 
eTestMaxwell2DPMC 
eMaxwell3D 
eScatField1D 
eScatField2D 
eScatField3D 
eTotField1D 
eTotField2D 
eTotField3D 
eMaxwellSphere 
eELF2DSurface 
SIZE_TestMaxwellType 

Length of enum list.

Definition at line 90 of file MMFSystem.h.

◆ UpwindType

Enumerator
eNotSet 

flux not defined

eAverage 

averaged (or centred) flux

eLaxFriedrich 

Lax-Friedrich flux.

eUpwind 
eRusanov 

Upwind.

Rusanov flux

eHLL 

Harten-Lax-Leer flux.

eHLLC 

Harten-Lax-Leer Contact wave flux.

SIZE_UpwindType 

Length of enum list.

Definition at line 74 of file MMFSystem.h.

75{
76 eNotSet, ///< flux not defined
77 eAverage, ///< averaged (or centred) flux
78 eLaxFriedrich, ///< Lax-Friedrich flux
79 eUpwind, /// Upwind
80 eRusanov, ///< Rusanov flux
81 eHLL, ///< Harten-Lax-Leer flux
82 eHLLC, ///< Harten-Lax-Leer Contact wave flux
83 SIZE_UpwindType ///< Length of enum list
84};
@ SIZE_UpwindType
Length of enum list.
Definition: MMFSystem.h:83
@ eAverage
averaged (or centred) flux
Definition: MMFSystem.h:77
@ eHLL
Harten-Lax-Leer flux.
Definition: MMFSystem.h:81
@ eLaxFriedrich
Lax-Friedrich flux.
Definition: MMFSystem.h:78
@ eNotSet
flux not defined
Definition: MMFSystem.h:76
@ eHLLC
Harten-Lax-Leer Contact wave flux.
Definition: MMFSystem.h:82
@ eRusanov
Upwind.
Definition: MMFSystem.h:80

Function Documentation

◆ AddSummaryItem() [1/3]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::AddSummaryItem ( SummaryList l,
const std::string &  name,
const int &  value 
)

Adds a summary item to the summary info list.

Definition at line 54 of file Misc.cpp.

55{
56 l.push_back(std::make_pair(name, std::to_string(value)));
57}

References CellMLToNektar.pycml::name.

◆ AddSummaryItem() [2/3]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::AddSummaryItem ( SummaryList l,
const std::string &  name,
const NekDouble value 
)

Adds a summary item to the summary info list.

Definition at line 60 of file Misc.cpp.

62{
63 l.push_back(std::make_pair(name, str(boost::format("%g") % value)));
64}

References CellMLToNektar.pycml::format, and CellMLToNektar.pycml::name.

◆ AddSummaryItem() [3/3]

SOLVER_UTILS_EXPORT void Nektar::SolverUtils::AddSummaryItem ( SummaryList l,
const std::string &  name,
const std::string &  value 
)

Adds a summary item to the summary info list.

Adds an item to a SummaryList

Definition at line 47 of file Misc.cpp.

49{
50 l.push_back(std::make_pair(name, value));
51}

References CellMLToNektar.pycml::name.

Referenced by Nektar::SolverUtils::EquationSystem::SessionSummary(), Nektar::Helmholtz::v_GenerateSummary(), Nektar::MMFAdvection::v_GenerateSummary(), Nektar::Poisson::v_GenerateSummary(), Nektar::Projection::v_GenerateSummary(), Nektar::SteadyAdvectionDiffusionReaction::v_GenerateSummary(), Nektar::UnsteadyAdvection::v_GenerateSummary(), Nektar::UnsteadyAdvectionDiffusion::v_GenerateSummary(), Nektar::UnsteadyViscousBurgers::v_GenerateSummary(), Nektar::CompressibleFlowSystem::v_GenerateSummary(), Nektar::MMFDiffusion::v_GenerateSummary(), Nektar::CoupledLinearNS::v_GenerateSummary(), Nektar::SmoothedProfileMethod::v_GenerateSummary(), Nektar::VelocityCorrectionScheme::v_GenerateSummary(), Nektar::VCSImplicit::v_GenerateSummary(), Nektar::VCSWeakPressure::v_GenerateSummary(), Nektar::LinearElasticSystem::v_GenerateSummary(), Nektar::MMFMaxwell::v_GenerateSummary(), Nektar::LinearSWE::v_GenerateSummary(), Nektar::MMFSWE::v_GenerateSummary(), Nektar::NonlinearSWE::v_GenerateSummary(), Nektar::ShallowWaterSystem::v_GenerateSummary(), Nektar::SolverUtils::MMFSystem::v_GenerateSummary(), Nektar::SolverUtils::UnsteadySystem::v_GenerateSummary(), Nektar::UnsteadyDiffusion::v_GenerateSummary(), Nektar::CellModelAlievPanfilov::v_GenerateSummary(), Nektar::CourtemancheRamirezNattel98::v_GenerateSummary(), Nektar::FentonKarma::v_GenerateSummary(), Nektar::CellModelFitzHughNagumo::v_GenerateSummary(), Nektar::Fox02::v_GenerateSummary(), Nektar::LuoRudy91::v_GenerateSummary(), Nektar::PanditGilesDemir03::v_GenerateSummary(), Nektar::TenTusscher06::v_GenerateSummary(), Nektar::Winslow99::v_GenerateSummary(), and Nektar::Monodomain::v_GenerateSummary().

◆ ArrayOneDToPyList()

py::list Nektar::SolverUtils::ArrayOneDToPyList ( const Array< OneD, const MultiRegions::ExpListSharedPtr > &  pFields)
inline

Definition at line 123 of file FilterPython.cpp.

125{
126 py::list expLists;
127
128 for (int i = 0; i < pFields.size(); ++i)
129 {
130 expLists.append(py::object(pFields[i]));
131 }
132
133 return expLists;
134}

Referenced by Nektar::SolverUtils::FilterPython::v_Finalise(), Nektar::SolverUtils::FilterPython::v_Initialise(), and Nektar::SolverUtils::FilterPython::v_Update().

◆ BinaryWrite()

static int Nektar::SolverUtils::BinaryWrite ( std::ofstream &  ofile,
std::string  str 
)
static

Definition at line 153 of file FilterLagrangianPoints.cpp.

154{
155 int tmp = 0;
156 for (size_t i = 0; i < str.size(); ++i)
157 {
158 tmp = str[i];
159 ofile.write((char *)&tmp, 4);
160 }
161 tmp = 0;
162 ofile.write((char *)&tmp, 4);
163 return 4;
164}

Referenced by OutputTec360_binary().

◆ GetAdvectionFactory()

SOLVER_UTILS_EXPORT AdvectionFactory & Nektar::SolverUtils::GetAdvectionFactory ( )

◆ GetCouplingFactory()

SOLVER_UTILS_EXPORT CouplingFactory & Nektar::SolverUtils::GetCouplingFactory ( )

Declaration of the Coupling factory singleton.

Definition at line 42 of file Coupling.cpp.

43{
44 static CouplingFactory instance;
45 return instance;
46}
SOLVER_UTILS_EXPORT typedef LibUtilities::NekFactory< std::string, Coupling, MultiRegions::ExpListSharedPtr > CouplingFactory
Declaration of the Coupling factory.
Definition: Coupling.h:50

References CouplingFactory.

Referenced by Nektar::AcousticSystem::v_InitObject(), and Nektar::Dummy::v_InitObject().

◆ GetDiffusionFactory()

SOLVER_UTILS_EXPORT DiffusionFactory & Nektar::SolverUtils::GetDiffusionFactory ( )

◆ GetDriverFactory()

SOLVER_UTILS_EXPORT DriverFactory & Nektar::SolverUtils::GetDriverFactory ( )

Definition at line 66 of file Driver.cpp.

67{
68 static DriverFactory instance;
69 return instance;
70}

Referenced by Nektar::VortexWaveInteraction::ExecuteStreak(), Nektar::VortexWaveInteraction::ExecuteWave(), and main().

◆ GetEquationSystemFactory()

SOLVER_UTILS_EXPORT EquationSystemFactory & Nektar::SolverUtils::GetEquationSystemFactory ( )

◆ GetFilterFactory()

SOLVER_UTILS_EXPORT FilterFactory & Nektar::SolverUtils::GetFilterFactory ( )

◆ GetForcingFactory()

SOLVER_UTILS_EXPORT ForcingFactory & Nektar::SolverUtils::GetForcingFactory ( )

Declaration of the forcing factory singleton.

Definition at line 42 of file Forcing.cpp.

43{
44 static ForcingFactory instance;
45 return instance;
46}

Referenced by Nektar::VortexWaveInteraction::ExecuteRoll(), and Nektar::SolverUtils::Forcing::Load().

◆ GetRiemannSolverFactory()

SOLVER_UTILS_EXPORT RiemannSolverFactory & Nektar::SolverUtils::GetRiemannSolverFactory ( )

◆ OutputTec360_binary()

static int Nektar::SolverUtils::OutputTec360_binary ( const std::string  filename,
const std::vector< std::string > &  variables,
const std::vector< int > &  rawN,
std::vector< Array< OneD, NekDouble > > &  data,
int  isdouble 
)
static

Definition at line 166 of file FilterLagrangianPoints.cpp.

171{
172 std::vector<int> N = rawN;
173 for (int i = N.size(); i < 3; ++i)
174 {
175 N.push_back(1);
176 }
177 std::ofstream odata;
178 odata.open(filename, std::ios::binary);
179 if (!odata.is_open())
180 {
181 printf("error unable to open file %s\n", filename.c_str());
182 return -1;
183 }
184 char tecplotversion[] = "#!TDV112";
185 odata.write((char *)tecplotversion, 8);
186 int value1 = 1;
187 odata.write((char *)&value1, 4);
188 int filetype = 0;
189 odata.write((char *)&filetype, 4);
190 // read file title and variable names
191 std::string filetitle = "";
192 BinaryWrite(odata, filetitle);
193 int nvar = variables.size();
194 odata.write((char *)&nvar, 4); // number of variables
195 std::vector<std::string> vartitle;
196 for (int i = 0; i < nvar; ++i)
197 {
198 BinaryWrite(odata, variables[i]);
199 }
200 float zonemarker299I = 299.0f;
201 odata.write((char *)&zonemarker299I, 4);
202 // zone title
203 std::string zonetitle("ZONE 0");
204 BinaryWrite(odata, zonetitle);
205 int parentzone = -1;
206 odata.write((char *)&parentzone, 4);
207 int strandid = -1;
208 odata.write((char *)&strandid, 4);
209 double soltime = 0.0;
210 odata.write((char *)&soltime, 8);
211 int unused = -1;
212 odata.write((char *)&unused, 4);
213 int zonetype = 0;
214 odata.write((char *)&zonetype, 4);
215 int zero = 0;
216 odata.write((char *)&zero, 4);
217 odata.write((char *)&zero, 4);
218 odata.write((char *)&zero, 4);
219 for (int i = 0; i < 3; ++i)
220 {
221 int tmp = N[i];
222 odata.write((char *)&tmp, 4);
223 }
224
225 odata.write((char *)&zero, 4);
226 float eohmarker357 = 357.0f;
227 odata.write((char *)&eohmarker357, 4);
228 float zonemarker299II = 299.0f;
229 odata.write((char *)&zonemarker299II, 4);
230 std::vector<int> binarydatatype(nvar, 1 + (isdouble > 0));
231 odata.write((char *)binarydatatype.data(), 4 * nvar);
232 odata.write((char *)&zero, 4);
233 odata.write((char *)&zero, 4);
234 int minus1 = -1;
235 odata.write((char *)&minus1, 4);
236
237 int datanumber, datasize;
238 datanumber = N[0] * N[1] * N[2];
239 datasize = N[0] * N[1] * N[2] * 4;
240 for (int i = 0; i < nvar; ++i)
241 {
242 double minv = 0., maxv = 1.;
243 for (int p = 0; p < datanumber; ++p)
244 {
245 if (maxv < data[i][p])
246 {
247 maxv = data[i][p];
248 }
249 if (minv > data[i][p])
250 {
251 minv = data[i][p];
252 }
253 }
254 odata.write((char *)&minv, 8);
255 odata.write((char *)&maxv, 8);
256 }
257
258 std::vector<float> vardata(datanumber);
259 for (int i = 0; i < nvar; ++i)
260 {
261 if (isdouble)
262 {
263 odata.write((char *)data[i].data(), datasize * 2);
264 }
265 else
266 {
267 std::vector<float> fdata(datanumber);
268 for (int j = 0; j < datanumber; ++j)
269 {
270 fdata[j] = data[i][j];
271 }
272 odata.write((char *)fdata.data(), datasize);
273 }
274 }
275 odata.close();
276 return 0;
277}
static int BinaryWrite(std::ofstream &ofile, std::string str)

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

Referenced by Nektar::SolverUtils::StatLagrangianPoints::v_OutputData().

◆ parse_python_exception()

std::string Nektar::SolverUtils::parse_python_exception ( )

Temporarily stolen from boost examples.

Definition at line 47 of file FilterPython.cpp.

48{
49 PyObject *type_ptr = nullptr, *value_ptr = nullptr,
50 *traceback_ptr = nullptr;
51 // Fetch the exception info from the Python C API
52 PyErr_Fetch(&type_ptr, &value_ptr, &traceback_ptr);
53
54 // Fallback error
55 std::string ret("Unfetchable Python error");
56
57 // If the fetch got a type pointer, parse the type into the exception string
58 if (type_ptr != nullptr)
59 {
60 py::handle<> h_type(type_ptr);
61 py::str type_pstr(h_type);
62 // Extract the string from the boost::python object
63 py::extract<std::string> e_type_pstr(type_pstr);
64 // If a valid string extraction is available, use it; otherwise use
65 // fallback.
66 if (e_type_pstr.check())
67 {
68 ret = e_type_pstr();
69 }
70 else
71 {
72 ret = "Unknown exception type";
73 }
74 }
75
76 // Do the same for the exception value (the stringification of the
77 // exception)
78 if (value_ptr != nullptr)
79 {
80 py::handle<> h_val(value_ptr);
81 py::str a(h_val);
82 py::extract<std::string> returned(a);
83 if (returned.check())
84 {
85 ret += ": " + returned();
86 }
87 else
88 {
89 ret += std::string(": Unparseable Python error: ");
90 }
91 }
92
93 // Parse lines from the traceback using the Python traceback module
94 if (traceback_ptr != nullptr)
95 {
96 py::handle<> h_tb(traceback_ptr);
97
98 // Load the traceback module and the format_tb function
99 py::object tb(py::import("traceback"));
100 py::object fmt_tb(tb.attr("format_tb"));
101
102 // Call format_tb to get a list of traceback strings
103 py::object tb_list(fmt_tb(h_tb));
104
105 // Join the traceback strings into a single string
106 py::object tb_str(py::str("\n").join(tb_list));
107
108 // Extract the string, check the extraction, and fallback in necessary
109 py::extract<std::string> returned(tb_str);
110 if (returned.check())
111 {
112 ret += ": " + returned();
113 }
114 else
115 {
116 ret += std::string(": Unparseable Python traceback");
117 }
118 }
119 return ret;
120}

Referenced by Nektar::SolverUtils::FilterPython::FilterPython(), Nektar::SolverUtils::FilterPython::v_Finalise(), Nektar::SolverUtils::FilterPython::v_Initialise(), and Nektar::SolverUtils::FilterPython::v_Update().

◆ RollOver()

static void Nektar::SolverUtils::RollOver ( Array< OneD, Array< OneD, Array< OneD, NekDouble > > > &  data)
static

Definition at line 89 of file FilterLagrangianPoints.cpp.

90{
91 int n = data.size();
92 if (n <= 1)
93 {
94 return;
95 }
96 Array<OneD, Array<OneD, NekDouble>> res = data[n - 1];
97 for (int i = n - 1; i > 0; --i)
98 {
99 data[i] = data[i - 1];
100 }
101 data[0] = res;
102}

Referenced by Nektar::SolverUtils::StatLagrangianPoints::v_TimeAdvance().

◆ rotateFromNormalKernel()

template<class T , typename = typename std::enable_if< std::is_floating_point<T>::value || tinysimd::is_vector_floating_point<T>::value>::type>
void Nektar::SolverUtils::rotateFromNormalKernel ( T *  in,
T *  rotMat,
T *  out 
)
inline

Definition at line 227 of file RiemannSolver.h.

228{
229
230 // Apply rotation matrices.
231 out[0] = in[0] * rotMat[0] + in[1] * rotMat[3] + in[2] * rotMat[6];
232
233 out[1] = in[0] * rotMat[1] + in[1] * rotMat[4] + in[2] * rotMat[7];
234
235 out[2] = in[0] * rotMat[2] + in[1] * rotMat[5] + in[2] * rotMat[8];
236}

Referenced by Nektar::RoeSolverSIMD::v_Solve().

◆ rotateToNormalKernel()

template<class T , typename = typename std::enable_if< std::is_floating_point<T>::value || tinysimd::is_vector_floating_point<T>::value>::type>
void Nektar::SolverUtils::rotateToNormalKernel ( T *  in,
T *  rotMat,
T *  out 
)
inline

Definition at line 213 of file RiemannSolver.h.

214{
215
216 // Apply rotation matrices.
217 out[0] = in[0] * rotMat[0] + in[1] * rotMat[1] + in[2] * rotMat[2];
218
219 out[1] = in[0] * rotMat[3] + in[1] * rotMat[4] + in[2] * rotMat[5];
220
221 out[2] = in[0] * rotMat[6] + in[1] * rotMat[7] + in[2] * rotMat[8];
222}

Referenced by Nektar::RoeSolverSIMD::v_Solve().

Variable Documentation

◆ BoundaryCopyTypeMap

const char* const Nektar::SolverUtils::BoundaryCopyTypeMap[]
Initial value:
= {
"Dirichlet",
"Neumann",
"FwdEQBwd",
"FwdEQNegBwd",
}

Definition at line 67 of file MMFSystem.h.

◆ CouplingFactory

SOLVER_UTILS_EXPORT typedef LibUtilities::NekFactory< std::string, Coupling, MultiRegions::ExpListSharedPtr> Nektar::SolverUtils::CouplingFactory

Declaration of the Coupling factory.

Definition at line 50 of file Coupling.h.

Referenced by GetCouplingFactory().

◆ CouplingSharedPtr

SOLVER_UTILS_EXPORT typedef std::shared_ptr<Coupling> Nektar::SolverUtils::CouplingSharedPtr

◆ ForcingProgrammaticSharedPtr

SOLVER_UTILS_EXPORT typedef std::shared_ptr<ForcingProgrammatic> Nektar::SolverUtils::ForcingProgrammaticSharedPtr

A shared pointer to an EquationSystem object.

Definition at line 53 of file ForcingProgrammatic.h.

◆ ForcingSharedPtr

SOLVER_UTILS_EXPORT typedef std::shared_ptr<Forcing> Nektar::SolverUtils::ForcingSharedPtr

◆ IncTypeMap

const char* const Nektar::SolverUtils::IncTypeMap[]
Initial value:
= {
"PlaneWave",
"PlaneWaveImag",
"CylindricalWave",
}

Definition at line 136 of file MMFSystem.h.

Referenced by Nektar::MMFMaxwell::v_GenerateSummary(), and Nektar::MMFMaxwell::v_InitObject().

◆ NullSessionFunction

SessionFunctionSharedPtr Nektar::SolverUtils::NullSessionFunction
static

Definition at line 153 of file SessionFunction.h.

◆ PolTypeMap

const char* const Nektar::SolverUtils::PolTypeMap[]
Initial value:
= {
"TransMagnetic",
"TransElectric",
}

Definition at line 123 of file MMFSystem.h.

Referenced by Nektar::MMFMaxwell::v_GenerateSummary(), and Nektar::MMFMaxwell::v_InitObject().

◆ SendCallbackMap

std::map<std::string, SendCallbackType> Nektar::SolverUtils::SendCallbackMap
static

◆ SurfaceTypeMap

const char* const Nektar::SolverUtils::SurfaceTypeMap[]
Initial value:
= {
"Plane", "Sphere", "TRSphere", "Irregular", "Nonconvex", "Cube",
}

Definition at line 54 of file MMFSystem.h.

Referenced by Nektar::SolverUtils::MMFSystem::MMFInitObject(), and Nektar::SolverUtils::MMFSystem::v_GenerateSummary().

◆ TestMaxwellTypeMap

const char* const Nektar::SolverUtils::TestMaxwellTypeMap[]
Initial value:
= {
"Maxwell1D", "TestMaxwell2DPEC", "TestMaxwell2DPECAVGFLUX",
"TestMaxwell2DPMC", "Maxwell3D", "ScatField1D",
"ScatField2D", "ScatField3D", "TotField1D",
"TotField2D", "TotField3D", "MaxwellSphere",
"ELF2DSurface",
}

Definition at line 108 of file MMFSystem.h.

Referenced by Nektar::MMFMaxwell::v_GenerateSummary(), and Nektar::MMFMaxwell::v_InitObject().

◆ UpwindTypeMap

const char* const Nektar::SolverUtils::UpwindTypeMap[]
Initial value:
= {
"NoSet", "Average", "LaxFriedrich", "Upwind", "Rusanov", "HLL", "HLLC",
}

Definition at line 86 of file MMFSystem.h.

Referenced by Nektar::SolverUtils::MMFSystem::MMFInitObject().