Commit bbf15c7a authored by Dave Moxey's avatar Dave Moxey
Browse files

Added time integration classes from UnsteadySystem

parent b52f6d46
......@@ -148,5 +148,276 @@ namespace LibUtilities {
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// IMEXdirk_1_1_1
// --------------
string TimeIntegrationIMEXdirk_1_1_1::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("IMEXdirk_1_1_1", TimeIntegrationIMEXdirk_1_1_1::create);
void TimeIntegrationIMEXdirk_1_1_1::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eIMEXdirk_1_1_1);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// IMEXdirk_1_2_1
// --------------
string TimeIntegrationIMEXdirk_1_2_1::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("IMEXdirk_1_2_1", TimeIntegrationIMEXdirk_1_2_1::create);
void TimeIntegrationIMEXdirk_1_2_1::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eIMEXdirk_1_2_1);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// IMEXdirk_1_2_2
// --------------
string TimeIntegrationIMEXdirk_1_2_2::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("IMEXdirk_1_2_2", TimeIntegrationIMEXdirk_1_2_2::create);
void TimeIntegrationIMEXdirk_1_2_2::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eIMEXdirk_1_2_2);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// IMEXdirk_4_4_3
// --------------
string TimeIntegrationIMEXdirk_4_4_3::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("IMEXdirk_4_4_3", TimeIntegrationIMEXdirk_4_4_3::create);
void TimeIntegrationIMEXdirk_4_4_3::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eIMEXdirk_4_4_3);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// IMEXdirk_2_2_2
// --------------
string TimeIntegrationIMEXdirk_2_2_2::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("IMEXdirk_2_2_2", TimeIntegrationIMEXdirk_2_2_2::create);
void TimeIntegrationIMEXdirk_2_2_2::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eIMEXdirk_2_2_2);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// IMEXdirk_2_3_3
// --------------
string TimeIntegrationIMEXdirk_2_3_3::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("IMEXdirk_2_3_3", TimeIntegrationIMEXdirk_2_3_3::create);
void TimeIntegrationIMEXdirk_2_3_3::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eIMEXdirk_2_3_3);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// IMEXdirk_2_3_2
// --------------
string TimeIntegrationIMEXdirk_2_3_2::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("IMEXdirk_2_3_2", TimeIntegrationIMEXdirk_2_3_2::create);
void TimeIntegrationIMEXdirk_2_3_2::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eIMEXdirk_2_3_2);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// IMEXdirk_3_4_3
// --------------
string TimeIntegrationIMEXdirk_3_4_3::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("IMEXdirk_3_4_3", TimeIntegrationIMEXdirk_3_4_3::create);
void TimeIntegrationIMEXdirk_3_4_3::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eIMEXdirk_3_4_3);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// DIRKOrder2
// --------------
string TimeIntegrationDIRKOrder2::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("DIRKOrder2", TimeIntegrationDIRKOrder2::create);
void TimeIntegrationDIRKOrder2::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eDIRKOrder2);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// DIRKOrder3
// --------------
string TimeIntegrationDIRKOrder3::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("DIRKOrder3", TimeIntegrationDIRKOrder3::create);
void TimeIntegrationDIRKOrder3::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eDIRKOrder3);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// ClassicalRungeKutta4
// --------------
string TimeIntegrationClassicalRungeKutta4::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("ClassicalRungeKutta4", TimeIntegrationClassicalRungeKutta4::create);
void TimeIntegrationClassicalRungeKutta4::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eClassicalRungeKutta4);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// Midpoint
// --------------
string TimeIntegrationMidpoint::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("Midpoint", TimeIntegrationMidpoint::create);
void TimeIntegrationMidpoint::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eMidpoint);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// RungeKutta2_ModifiedEuler
// --------------
string TimeIntegrationRungeKutta2_ModifiedEuler::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("RungeKutta2_ModifiedEuler", TimeIntegrationRungeKutta2_ModifiedEuler::create);
void TimeIntegrationRungeKutta2_ModifiedEuler::v_InitObject()
{
m_intSteps = 1;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eRungeKutta2_ModifiedEuler);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
}
// --------------
// AdamsBashforthOrder2
// --------------
string TimeIntegrationAdamsBashforthOrder2::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("AdamsBashforthOrder2", TimeIntegrationAdamsBashforthOrder2::create);
void TimeIntegrationAdamsBashforthOrder2::v_InitObject()
{
m_intSteps = 2;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eForwardEuler);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
TimeIntegrationSchemeKey IntKey1(eAdamsBashforthOrder2);
m_integrationScheme[1] = TimeIntegrationSchemeManager()[IntKey1];
}
// --------------
// AdamsBashforthOrder3
// --------------
string TimeIntegrationAdamsBashforthOrder3::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("AdamsBashforthOrder3", TimeIntegrationAdamsBashforthOrder3::create);
void TimeIntegrationAdamsBashforthOrder3::v_InitObject()
{
m_intSteps = 2;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eForwardEuler);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
TimeIntegrationSchemeKey IntKey1(eAdamsBashforthOrder3);
m_integrationScheme[1] = TimeIntegrationSchemeManager()[IntKey1];
}
// --------------
// AdamsMoultonOrder2
// --------------
string TimeIntegrationAdamsMoultonOrder2::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("AdamsMoultonOrder2", TimeIntegrationAdamsMoultonOrder2::create);
void TimeIntegrationAdamsMoultonOrder2::v_InitObject()
{
m_intSteps = 2;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eIMEXOrder1);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
TimeIntegrationSchemeKey IntKey1(eAdamsMoultonOrder2);
m_integrationScheme[1] = TimeIntegrationSchemeManager()[IntKey1];
}
// --------------
// IMEXGear
// --------------
string TimeIntegrationIMEXGear::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("IMEXGear", TimeIntegrationIMEXGear::create);
void TimeIntegrationIMEXGear::v_InitObject()
{
m_intSteps = 2;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eIMEXdirk_2_2_2);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
TimeIntegrationSchemeKey IntKey1(eIMEXGear);
m_integrationScheme[1] = TimeIntegrationSchemeManager()[IntKey1];
}
// --------------
// CNAB
// --------------
string TimeIntegrationCNAB::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("CNAB", TimeIntegrationCNAB::create);
void TimeIntegrationCNAB::v_InitObject()
{
m_intSteps = 3;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eIMEXdirk_3_4_3);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
TimeIntegrationSchemeKey IntKey1(eIMEXdirk_3_4_3);
m_integrationScheme[1] = TimeIntegrationSchemeManager()[IntKey1];
TimeIntegrationSchemeKey IntKey2(eCNAB);
m_integrationScheme[2] = TimeIntegrationSchemeManager()[IntKey2];
}
// --------------
// MCNAB
// --------------
string TimeIntegrationMCNAB::className = GetTimeIntegrationWrapperFactory().RegisterCreatorFunction("MCNAB", TimeIntegrationMCNAB::create);
void TimeIntegrationMCNAB::v_InitObject()
{
m_intSteps = 3;
m_integrationScheme = std::vector<TimeIntegrationSchemeSharedPtr> (m_intSteps);
TimeIntegrationSchemeKey IntKey0(eIMEXdirk_3_4_3);
m_integrationScheme[0] = TimeIntegrationSchemeManager()[IntKey0];
TimeIntegrationSchemeKey IntKey1(eIMEXdirk_3_4_3);
m_integrationScheme[1] = TimeIntegrationSchemeManager()[IntKey1];
TimeIntegrationSchemeKey IntKey2(eMCNAB);
m_integrationScheme[2] = TimeIntegrationSchemeManager()[IntKey2];
}
}
}
......@@ -147,6 +147,180 @@ namespace Nektar {
};
class TimeIntegrationIMEXdirk_1_1_1 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationIMEXdirk_1_1_1>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationIMEXdirk_1_1_1>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationIMEXdirk_1_1_1() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationIMEXdirk_1_2_1 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationIMEXdirk_1_2_1>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationIMEXdirk_1_2_1>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationIMEXdirk_1_2_1() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationIMEXdirk_1_2_2 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationIMEXdirk_1_2_2>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationIMEXdirk_1_2_2>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationIMEXdirk_1_2_2() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationIMEXdirk_4_4_3 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationIMEXdirk_4_4_3>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationIMEXdirk_4_4_3>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationIMEXdirk_4_4_3() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationIMEXdirk_2_2_2 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationIMEXdirk_2_2_2>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationIMEXdirk_2_2_2>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationIMEXdirk_2_2_2() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationIMEXdirk_2_3_3 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationIMEXdirk_2_3_3>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationIMEXdirk_2_3_3>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationIMEXdirk_2_3_3() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationIMEXdirk_2_3_2 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationIMEXdirk_2_3_2>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationIMEXdirk_2_3_2>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationIMEXdirk_2_3_2() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationIMEXdirk_3_4_3 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationIMEXdirk_3_4_3>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationIMEXdirk_3_4_3>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationIMEXdirk_3_4_3() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationForwardEuler : public TimeIntegrationWrapper
{
......@@ -254,6 +428,235 @@ namespace Nektar {
protected:
virtual void v_InitObject();
};
class TimeIntegrationRungeKutta2_ModifiedEuler : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationRungeKutta2_ModifiedEuler>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationRungeKutta2_ModifiedEuler>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationRungeKutta2_ModifiedEuler() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationClassicalRungeKutta4 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationClassicalRungeKutta4>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationClassicalRungeKutta4>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationClassicalRungeKutta4() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationDIRKOrder2 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationDIRKOrder2>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationDIRKOrder2>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationDIRKOrder2() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationDIRKOrder3 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationDIRKOrder3>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationDIRKOrder3>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationDIRKOrder3() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationMidpoint : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationMidpoint>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationMidpoint>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationMidpoint() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationAdamsBashforthOrder2 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationAdamsBashforthOrder2>;
/// Creates an instance of this class
static TimeIntegrationWrapperSharedPtr create() {
TimeIntegrationWrapperSharedPtr p = MemoryManager<TimeIntegrationAdamsBashforthOrder2>::AllocateSharedPtr();
p->InitObject();
return p;
}
/// Name of class
static std::string className;
virtual ~TimeIntegrationAdamsBashforthOrder2() {}
protected:
virtual void v_InitObject();
};
class TimeIntegrationAdamsBashforthOrder3 : public TimeIntegrationWrapper
{
public:
friend class MemoryManager<TimeIntegrationAdamsBashforthOrder3>;