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
 
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  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  FilterMaxMinFields
 
class  FilterMean
 
class  FilterModalEnergy
 
class  FilterMovingAverage
 
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  ForcingMovingReferenceFrame
 
class  ForcingNoise
 
class  ForcingProgrammatic
 
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  RiemannSolver
 The RiemannSolver class provides an abstract interface under which solvers for various Riemann problems can be implemented. More...
 
class  SessionFunction
 
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::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 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< FilterFilterSharedPtr
 A shared pointer to a Driver object. More...
 
typedef LibUtilities::NekFactory< std::string, Filter, const LibUtilities::SessionReaderSharedPtr &, const std::weak_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...
 

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 ()
 
void InterpExp1ToExp2 (const Array< OneD, MultiRegions::ExpListSharedPtr > exp1, Array< OneD, MultiRegions::ExpListSharedPtr > &exp2)
 Interpolate from an expansion to an expansion. More...
 
EquationSystemFactoryGetEquationSystemFactory ()
 
FilterFactoryGetFilterFactory ()
 
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 61 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 72 of file Advection.h.

◆ AdvectionSharedPtr

A shared pointer to an Advection object.

Definition at line 56 of file Advection.h.

◆ AdvectionSystemSharedPtr

Shared pointer to an AdvectionSystem class.

Definition at line 96 of file AdvectionSystem.h.

◆ DiffusionFactory

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

Definition at line 63 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 113 of file Diffusion.h.

◆ DiffusionFluxPenaltyNS

Definition at line 79 of file Diffusion.h.

◆ DiffusionFluxVecCB

Definition at line 69 of file Diffusion.h.

◆ DiffusionFluxVecCBNS

Definition at line 74 of file Diffusion.h.

◆ DiffusionLFRNSSharedPtr

Definition at line 190 of file DiffusionLFRNS.h.

◆ DiffusionSharedPtr

A shared pointer to an EquationSystem object.

Definition at line 58 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 130 of file Diffusion.h.

◆ DriverFactory

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

Definition at line 61 of file Driver.h.

◆ DriverSharedPtr

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

A shared pointer to a Driver object.

Definition at line 54 of file Driver.h.

◆ EquationSystemFactory

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

Definition at line 72 of file EquationSystem.h.

◆ EquationSystemSharedPtr

A shared pointer to an EquationSystem object.

Definition at line 66 of file EquationSystem.h.

◆ FilterAeroForcesSharedPtr

Definition at line 153 of file FilterAeroForces.h.

◆ FilterFactory

typedef LibUtilities::NekFactory<std::string, Filter, const LibUtilities::SessionReaderSharedPtr &, const std::weak_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 61 of file Filter.h.

◆ FilterSharedPtr

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

A shared pointer to a Driver object.

Definition at line 53 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 63 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 96 of file Diffusion.h.

◆ MMFSystemSharedPtr

Definition at line 383 of file MMFSystem.h.

◆ RiemannSolverFactory

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

Definition at line 200 of file RiemannSolver.h.

◆ RiemannSolverSharedPtr

A shared pointer to an EquationSystem object.

Definition at line 195 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.

◆ SendCallbackType

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

Definition at line 182 of file CouplingCwipi.h.

◆ SessionFunctionSharedPtr

Definition at line 153 of file SessionFunction.h.

◆ SpecialBndTreat

Parameter list meaning: 1rd: trace conservative variables

Definition at line 137 of file Diffusion.h.

◆ SummaryList

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

Definition at line 48 of file Misc.h.

Enumeration Type Documentation

◆ BoundaryCopyType

Enumerator
eDirichlet 
eNeumann 
eFwdEQBwd 
eFwdEQNegBwd 
SIZE_BoundaryCopyType 

Length of enum list.

Definition at line 60 of file MMFSystem.h.

61{
66 SIZE_BoundaryCopyType ///< Length of enum list
67};
@ SIZE_BoundaryCopyType
Length of enum list.
Definition: MMFSystem.h:66

◆ EvolutionOperatorType

Enumerator
eNonlinear 
eDirect 
eAdjoint 
eTransientGrowth 
eSkewSymmetric 
eAdaptiveSFD 

Definition at line 39 of file SolverUtils.hpp.

◆ IncType

Enumerator
ePlaneWave 
ePlaneWaveImag 
eCylindricalWave 
SIZE_IncType 

Definition at line 130 of file MMFSystem.h.

◆ PolType

Enumerator
eTransMagnetic 
eTransElectric 
SIZE_PolType 

Definition at line 118 of file MMFSystem.h.

◆ ProblemType

Enumerator
eCompressible 
eIncompressible 
eOthers 

Definition at line 45 of file FilterMaxMinFields.h.

◆ SurfaceType

Enumerator
ePlane 
eSphere 
eTRSphere 
eIrregular 
eNonconvex 
eCube 
SIZE_SurfaceType 

Definition at line 45 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 92 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 76 of file MMFSystem.h.

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

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 56 of file Misc.cpp.

57{
58 l.push_back(std::make_pair(name, boost::lexical_cast<std::string>(value)));
59}

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 62 of file Misc.cpp.

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

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

51{
52 l.push_back(std::make_pair(name, value));
53}

References CellMLToNektar.pycml::name.

Referenced by Nektar::SolverUtils::EquationSystem::SessionSummary(), Nektar::Laplace::v_GenerateSummary(), Nektar::MMFAdvection::v_GenerateSummary(), Nektar::Poisson::v_GenerateSummary(), Nektar::Projection::v_GenerateSummary(), Nektar::SteadyAdvectionDiffusion::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::NonlinearPeregrine::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().

◆ 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 44 of file Coupling.cpp.

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

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 67 of file Driver.cpp.

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

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 ( )

Definition at line 41 of file Filter.cpp.

42{
43 static FilterFactory instance;
44 return instance;
45}

Referenced by Nektar::SolverUtils::UnsteadySystem::v_InitObject().

◆ GetForcingFactory()

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

Declaration of the forcing factory singleton.

Definition at line 44 of file Forcing.cpp.

45{
46 static ForcingFactory instance;
47 return instance;
48}

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

◆ GetRiemannSolverFactory()

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

◆ InterpExp1ToExp2()

void Nektar::SolverUtils::InterpExp1ToExp2 ( const Array< OneD, MultiRegions::ExpListSharedPtr exp1,
Array< OneD, MultiRegions::ExpListSharedPtr > &  exp2 
)

Interpolate from an expansion to an expansion.

Definition at line 904 of file DriverParallelInTime.cpp.

906{
907
908 // Interpolation from exp1 -> exp2 assuming that exp1 and exp2 are the
909 // same explists, but at potentially different polynomial orders.
910 if (exp1.size() != exp2.size())
911 {
912 NEKERROR(ErrorUtil::efatal, "not the same mesh")
913 }
914
915 for (int n = 0; n < exp1.size(); ++n)
916 {
917 // Interpolation from exp1 -> exp2 assuming that exp1 and exp2 are the
918 // same explists, but at potentially different polynomial orders.
919 if (exp1[n]->GetExpSize() != exp2[n]->GetExpSize())
920 {
921 NEKERROR(ErrorUtil::efatal, "not the same mesh")
922 }
923
924 // If same polynomial orders, simply copy solution
925 if (exp1[n]->GetTotPoints() == exp2[n]->GetTotPoints())
926 {
927 Vmath::Vcopy(exp1[n]->GetTotPoints(), exp1[n]->GetPhys(), 1,
928 exp2[n]->UpdatePhys(), 1);
929 }
930 // If different polynomial orders, interpolate solution
931 else
932 {
933 // Transform solution from physical to coefficient space
934 exp1[n]->FwdTrans(exp1[n]->GetPhys(), exp1[n]->UpdateCoeffs());
935
936 for (int i = 0; i < exp1[n]->GetExpSize(); ++i)
937 {
938 // Get the elements
939 LocalRegions::ExpansionSharedPtr elmt1 = exp1[n]->GetExp(i),
940 elmt2 = exp2[n]->GetExp(i);
941
942 // Get the offset of elements in the storage arrays.
943 int offset1 = exp1[n]->GetCoeff_Offset(i);
944 int offset2 = exp2[n]->GetCoeff_Offset(i);
945
946 // Get number of modes
947 Array<OneD, LibUtilities::BasisSharedPtr> base1 =
948 elmt1->GetBase();
949 std::vector<unsigned int> nummodes1(base1.size());
950 std::vector<LibUtilities::BasisType> btype1(base1.size());
951 for (int j = 0; j < nummodes1.size(); ++j)
952 {
953 nummodes1[j] = base1[j]->GetNumModes();
954 btype1[j] = base1[j]->GetBasisType();
955 }
956
957 // Extract data from exp1 -> exp2.
958 elmt2->ExtractDataToCoeffs(
959 &exp1[n]->GetCoeffs()[offset1], nummodes1, 0,
960 &exp2[n]->UpdateCoeffs()[offset2], btype1);
961 }
962
963 // Transform solution back to physical space
964 exp2[n]->BwdTrans(exp2[n]->GetCoeffs(), exp2[n]->UpdatePhys());
965 }
966 }
967}
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
Definition: ErrorUtil.hpp:209
std::shared_ptr< Expansion > ExpansionSharedPtr
Definition: Expansion.h:68
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.cpp:1191

References Nektar::ErrorUtil::efatal, NEKERROR, and Vmath::Vcopy().

Referenced by Nektar::SolverUtils::DriverParallelInTime::Interpolator().

◆ 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 220 of file RiemannSolver.h.

221{
222
223 // Apply rotation matrices.
224 out[0] = in[0] * rotMat[0] + in[1] * rotMat[3] + in[2] * rotMat[6];
225
226 out[1] = in[0] * rotMat[1] + in[1] * rotMat[4] + in[2] * rotMat[7];
227
228 out[2] = in[0] * rotMat[2] + in[1] * rotMat[5] + in[2] * rotMat[8];
229}

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 206 of file RiemannSolver.h.

207{
208
209 // Apply rotation matrices.
210 out[0] = in[0] * rotMat[0] + in[1] * rotMat[1] + in[2] * rotMat[2];
211
212 out[1] = in[0] * rotMat[3] + in[1] * rotMat[4] + in[2] * rotMat[5];
213
214 out[2] = in[0] * rotMat[6] + in[1] * rotMat[7] + in[2] * rotMat[8];
215}

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

Variable Documentation

◆ BoundaryCopyTypeMap

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

Definition at line 69 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 52 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 55 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 138 of file MMFSystem.h.

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

◆ NullSessionFunction

SessionFunctionSharedPtr Nektar::SolverUtils::NullSessionFunction
static

Definition at line 154 of file SessionFunction.h.

◆ PolTypeMap

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

Definition at line 125 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 56 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 110 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 88 of file MMFSystem.h.

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