Nektar++
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes | Static Protected Attributes | List of all members
Nektar::LibUtilities::NoSchemeTimeIntegrationScheme Class Reference

Base class for No time integration schemes. More...

#include <NoSchemeTimeIntegrationScheme.h>

Inheritance diagram for Nektar::LibUtilities::NoSchemeTimeIntegrationScheme:
[legend]

Public Member Functions

LUE NoSchemeTimeIntegrationScheme (std::string variant, unsigned int order, std::vector< NekDouble > freeParams)
 
 ~NoSchemeTimeIntegrationScheme () override
 
LUE std::string v_GetName () const override
 
LUE std::string v_GetVariant () const override
 
LUE size_t v_GetOrder () const override
 
LUE std::vector< NekDoublev_GetFreeParams () const override
 
LUE NekDouble v_GetTimeStability () const override
 
LUE TimeIntegrationSchemeType v_GetIntegrationSchemeType () const override
 
LUE size_t v_GetNumIntegrationPhases () const override
 
const TripleArrayv_GetSolutionVector () const override
 
void v_SetSolutionVector (const size_t Offset, const DoubleArray &y) override
 
LUE void v_InitializeScheme (const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op) override
 Worker method to initialize the integration scheme. More...
 
LUE ConstDoubleArrayv_TimeIntegrate (const size_t timestep, const NekDouble delta_t) override
 Worker method that actually does the time integration. More...
 
LUE void v_print (std::ostream &os) const override
 Worker method to print details on the integration scheme. More...
 
LUE void v_printFull (std::ostream &os) const override
 
LUE TripleArrayv_UpdateSolutionVector () override
 
- Public Member Functions inherited from Nektar::LibUtilities::TimeIntegrationScheme
LUE std::string GetFullName () const
 
LUE std::string GetName () const
 
LUE std::string GetVariant () const
 
LUE size_t GetOrder () const
 
LUE std::vector< NekDoubleGetFreeParams ()
 
LUE TimeIntegrationSchemeType GetIntegrationSchemeType ()
 
LUE NekDouble GetTimeStability () const
 
LUE size_t GetNumIntegrationPhases ()
 
LUE const TripleArrayGetSolutionVector () const
 Gets the solution vector of the ODE. More...
 
LUE TripleArrayUpdateSolutionVector ()
 
LUE void SetSolutionVector (const size_t Offset, const DoubleArray &y)
 Sets the solution vector of the ODE. More...
 
LUE void InitializeScheme (const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op)
 Explicit integration of an ODE. More...
 
LUE ConstDoubleArrayTimeIntegrate (const size_t timestep, const NekDouble delta_t)
 
LUE void print (std::ostream &os) const
 
LUE void printFull (std::ostream &os) const
 

Static Public Member Functions

static NoTimeIntegrationSchemeSharedPtr create (std::string variant, unsigned int order, std::vector< NekDouble > freeParams)
 

Static Public Attributes

static std::string className
 

Protected Attributes

DoubleArray m_doubleArray
 

Static Protected Attributes

static std::string TimeIntegrationMethodLookupId
 

Additional Inherited Members

- Protected Member Functions inherited from Nektar::LibUtilities::TimeIntegrationScheme
virtual LUE std::string v_GetFullName () const
 
virtual LUE std::string v_GetName () const =0
 
virtual LUE std::string v_GetVariant () const =0
 
virtual LUE size_t v_GetOrder () const =0
 
virtual LUE std::vector< NekDoublev_GetFreeParams () const =0
 
virtual LUE TimeIntegrationSchemeType v_GetIntegrationSchemeType () const =0
 
virtual LUE NekDouble v_GetTimeStability () const =0
 
virtual LUE size_t v_GetNumIntegrationPhases () const =0
 
virtual LUE const TripleArrayv_GetSolutionVector () const =0
 
virtual LUE TripleArrayv_UpdateSolutionVector ()=0
 
virtual LUE void v_SetSolutionVector (const size_t Offset, const DoubleArray &y)=0
 
virtual LUE void v_InitializeScheme (const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op)=0
 
virtual LUE ConstDoubleArrayv_TimeIntegrate (const size_t timestep, const NekDouble delta_t)=0
 
virtual LUE void v_print (std::ostream &os) const =0
 
virtual LUE void v_printFull (std::ostream &os) const =0
 
LUE TimeIntegrationScheme (std::string variant, size_t order, std::vector< NekDouble > freeParams)
 
LUE TimeIntegrationScheme (const TimeIntegrationScheme &in)=delete
 
virtual ~TimeIntegrationScheme ()=default
 

Detailed Description

Base class for No time integration schemes.

Definition at line 49 of file NoSchemeTimeIntegrationScheme.h.

Constructor & Destructor Documentation

◆ NoSchemeTimeIntegrationScheme()

LUE Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::NoSchemeTimeIntegrationScheme ( std::string  variant,
unsigned int  order,
std::vector< NekDouble freeParams 
)
inline

Definition at line 52 of file NoSchemeTimeIntegrationScheme.h.

54 : TimeIntegrationScheme(variant, order, freeParams)
55 {
56 }
LUE TimeIntegrationScheme(std::string variant, size_t order, std::vector< NekDouble > freeParams)

◆ ~NoSchemeTimeIntegrationScheme()

Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::~NoSchemeTimeIntegrationScheme ( )
inlineoverride

Definition at line 57 of file NoSchemeTimeIntegrationScheme.h.

58 {
59 }

Member Function Documentation

◆ create()

static NoTimeIntegrationSchemeSharedPtr Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::create ( std::string  variant,
unsigned int  order,
std::vector< NekDouble freeParams 
)
inlinestatic

Definition at line 61 of file NoSchemeTimeIntegrationScheme.h.

64 {
67 variant, order, freeParams);
68 return p;
69 }
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
std::shared_ptr< NoSchemeTimeIntegrationScheme > NoTimeIntegrationSchemeSharedPtr

References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.

◆ v_GetFreeParams()

std::vector< NekDouble > Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_GetFreeParams ( ) const
overridevirtual

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 59 of file NoSchemeTimeIntegrationScheme.cpp.

60{
61 return std::vector<NekDouble>(0);
62}

◆ v_GetIntegrationSchemeType()

TimeIntegrationSchemeType Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_GetIntegrationSchemeType ( ) const
overridevirtual

◆ v_GetName()

std::string Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_GetName ( ) const
overridevirtual

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 44 of file NoSchemeTimeIntegrationScheme.cpp.

45{
46 return std::string("NoIntegration");
47}

◆ v_GetNumIntegrationPhases()

size_t Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_GetNumIntegrationPhases ( ) const
overridevirtual

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 75 of file NoSchemeTimeIntegrationScheme.cpp.

76{
77 return 0;
78}

◆ v_GetOrder()

size_t Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_GetOrder ( ) const
overridevirtual

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 54 of file NoSchemeTimeIntegrationScheme.cpp.

55{
56 return 0;
57}

◆ v_GetSolutionVector()

const TripleArray & Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_GetSolutionVector ( ) const
inlineoverridevirtual

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 85 of file NoSchemeTimeIntegrationScheme.h.

86 {
88 }
static Array< OneD, Array< OneD, Array< OneD, NekDouble > > > NullNekDoubleTensorOfArray3D

References Nektar::NullNekDoubleTensorOfArray3D.

◆ v_GetTimeStability()

NekDouble Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_GetTimeStability ( ) const
overridevirtual

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 64 of file NoSchemeTimeIntegrationScheme.cpp.

65{
66 return 0.;
67}

◆ v_GetVariant()

std::string Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_GetVariant ( ) const
overridevirtual

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 49 of file NoSchemeTimeIntegrationScheme.cpp.

50{
51 return std::string("");
52}

◆ v_InitializeScheme()

void Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_InitializeScheme ( const NekDouble  deltaT,
ConstDoubleArray y_0,
const NekDouble  time,
const TimeIntegrationSchemeOperators op 
)
overridevirtual

Worker method to initialize the integration scheme.

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 83 of file NoSchemeTimeIntegrationScheme.cpp.

References m_doubleArray.

◆ v_print()

void Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_print ( std::ostream &  os) const
overridevirtual

Worker method to print details on the integration scheme.

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 109 of file NoSchemeTimeIntegrationScheme.cpp.

110{
111 os << "Time Integration Scheme: " << GetFullName() << std::endl;
112}

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

◆ v_printFull()

void Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_printFull ( std::ostream &  os) const
overridevirtual

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 114 of file NoSchemeTimeIntegrationScheme.cpp.

115{
116 os << "Time Integration Scheme: " << GetFullName() << std::endl;
117}

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

◆ v_SetSolutionVector()

void Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_SetSolutionVector ( const size_t  Offset,
const DoubleArray y 
)
inlineoverridevirtual

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 91 of file NoSchemeTimeIntegrationScheme.h.

94 {
95 }

◆ v_TimeIntegrate()

ConstDoubleArray & Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_TimeIntegrate ( const size_t  timestep,
const NekDouble  delta_t 
)
overridevirtual

Worker method that actually does the time integration.

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 94 of file NoSchemeTimeIntegrationScheme.cpp.

97{
98 return m_doubleArray;
99}

References m_doubleArray.

◆ v_UpdateSolutionVector()

TripleArray & Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::v_UpdateSolutionVector ( )
overridevirtual

Member Data Documentation

◆ className

std::string Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::className
static

Definition at line 109 of file NoSchemeTimeIntegrationScheme.h.

◆ m_doubleArray

DoubleArray Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::m_doubleArray
protected

Definition at line 112 of file NoSchemeTimeIntegrationScheme.h.

Referenced by v_InitializeScheme(), and v_TimeIntegrate().

◆ TimeIntegrationMethodLookupId

std::string Nektar::LibUtilities::NoSchemeTimeIntegrationScheme::TimeIntegrationMethodLookupId
staticprotected

Definition at line 114 of file NoSchemeTimeIntegrationScheme.h.