Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Attributes | List of all members
Nektar::LibUtilities::TimeIntegrationSchemeOperators Class Reference

#include <TimeIntegrationScheme.h>

Public Types

typedef const Array< OneD,
const Array< OneD, NekDouble > > 
InArrayType
typedef Array< OneD, Array
< OneD, NekDouble > > 
OutArrayType
typedef boost::function< void(InArrayType
&, OutArrayType &, const
NekDouble) > 
FunctorType1
typedef boost::function< void(InArrayType
&, OutArrayType &, const
NekDouble, const NekDouble) > 
FunctorType2
typedef const FunctorType1ConstFunctorType1Ref
typedef const FunctorType2ConstFunctorType2Ref
typedef Array< OneD, FunctorType1FunctorType1Array
typedef Array< OneD, FunctorType2FunctorType2Array

Public Member Functions

 TimeIntegrationSchemeOperators (void)
template<typename FuncPointerT , typename ObjectPointerT >
void DefineOdeRhs (FuncPointerT func, ObjectPointerT obj)
template<typename FuncPointerT , typename ObjectPointerT >
void DefineOdeExplicitRhs (FuncPointerT func, ObjectPointerT obj)
template<typename FuncPointerT , typename ObjectPointerT >
void DefineOdeImplicitRhs (FuncPointerT func, ObjectPointerT obj)
template<typename FuncPointerT , typename ObjectPointerT >
void DefineProjection (FuncPointerT func, ObjectPointerT obj)
template<typename FuncPointerT , typename ObjectPointerT >
void DefineImplicitSolve (FuncPointerT func, ObjectPointerT obj)
void DoOdeRhs (InArrayType &inarray, OutArrayType &outarray, const NekDouble time) const
void DoOdeExplicitRhs (InArrayType &inarray, OutArrayType &outarray, const NekDouble time) const
void DoOdeImplicitRhs (InArrayType &inarray, OutArrayType &outarray, const NekDouble time) const
void DoProjection (InArrayType &inarray, OutArrayType &outarray, const NekDouble time) const
void DoImplicitSolve (InArrayType &inarray, OutArrayType &outarray, const NekDouble time, const NekDouble lambda) const

Protected Attributes

FunctorType1Array m_functors1
FunctorType2Array m_functors2

Detailed Description

Definition at line 156 of file TimeIntegrationScheme.h.

Member Typedef Documentation

Definition at line 165 of file TimeIntegrationScheme.h.

Definition at line 166 of file TimeIntegrationScheme.h.

Definition at line 162 of file TimeIntegrationScheme.h.

Definition at line 168 of file TimeIntegrationScheme.h.

Definition at line 163 of file TimeIntegrationScheme.h.

Definition at line 169 of file TimeIntegrationScheme.h.

Definition at line 159 of file TimeIntegrationScheme.h.

Definition at line 160 of file TimeIntegrationScheme.h.

Constructor & Destructor Documentation

Nektar::LibUtilities::TimeIntegrationSchemeOperators::TimeIntegrationSchemeOperators ( void  )
inline

Definition at line 171 of file TimeIntegrationScheme.h.

:
{
}

Member Function Documentation

template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineImplicitSolve ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 202 of file TimeIntegrationScheme.h.

References m_functors2.

Referenced by Nektar::CoupledLinearNS::v_DoInitialise(), Nektar::VelocityCorrectionScheme::v_InitObject(), Nektar::Bidomain::v_InitObject(), Nektar::Monodomain::v_InitObject(), Nektar::UnsteadyDiffusion::v_InitObject(), and Nektar::UnsteadyAdvectionDiffusion::v_InitObject().

{
m_functors2[0] = boost::bind(func, obj, _1, _2, _3, _4);
}
template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineOdeExplicitRhs ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 184 of file TimeIntegrationScheme.h.

References m_functors1.

{
m_functors1[1] = boost::bind(func, obj, _1, _2, _3);
}
template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineOdeImplicitRhs ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 190 of file TimeIntegrationScheme.h.

References m_functors1.

{
m_functors1[2] = boost::bind(func, obj, _1, _2, _3);
}
template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineOdeRhs ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 178 of file TimeIntegrationScheme.h.

References m_functors1.

Referenced by Nektar::CoupledLinearNS::v_DoInitialise(), Nektar::VelocityCorrectionScheme::v_InitObject(), Nektar::LinearSWE::v_InitObject(), Nektar::NonlinearSWE::v_InitObject(), Nektar::Bidomain::v_InitObject(), Nektar::Monodomain::v_InitObject(), Nektar::UnsteadyDiffusion::v_InitObject(), Nektar::ImageWarpingSystem::v_InitObject(), Nektar::PulseWavePropagation::v_InitObject(), Nektar::APE::v_InitObject(), Nektar::NavierStokesCFE::v_InitObject(), Nektar::EulerCFE::v_InitObject(), Nektar::EulerADCFE::v_InitObject(), Nektar::UnsteadyInviscidBurger::v_InitObject(), Nektar::UnsteadyAdvection::v_InitObject(), Nektar::CFLtester::v_InitObject(), Nektar::UnsteadyAdvectionDiffusion::v_InitObject(), and Nektar::SubSteppingExtrapolate::v_SubSteppingTimeIntegration().

{
m_functors1[0] = boost::bind(func, obj, _1, _2, _3);
}
template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineProjection ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline

Definition at line 196 of file TimeIntegrationScheme.h.

References m_functors1.

Referenced by Nektar::LinearSWE::v_InitObject(), Nektar::NonlinearSWE::v_InitObject(), Nektar::UnsteadyDiffusion::v_InitObject(), Nektar::ImageWarpingSystem::v_InitObject(), Nektar::PulseWavePropagation::v_InitObject(), Nektar::APE::v_InitObject(), Nektar::EulerCFE::v_InitObject(), Nektar::NavierStokesCFE::v_InitObject(), Nektar::EulerADCFE::v_InitObject(), Nektar::UnsteadyInviscidBurger::v_InitObject(), Nektar::UnsteadyAdvection::v_InitObject(), Nektar::CFLtester::v_InitObject(), Nektar::UnsteadyAdvectionDiffusion::v_InitObject(), and Nektar::SubSteppingExtrapolate::v_SubSteppingTimeIntegration().

{
m_functors1[3] = boost::bind(func, obj, _1, _2, _3);
}
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoImplicitSolve ( InArrayType inarray,
OutArrayType outarray,
const NekDouble  time,
const NekDouble  lambda 
) const
inline

Definition at line 240 of file TimeIntegrationScheme.h.

References ASSERTL1, and m_functors2.

Referenced by Nektar::LibUtilities::TimeIntegrationScheme::TimeIntegrate().

{
ASSERTL1(!(m_functors2[0].empty()),"ImplicitSolve should be defined for this time integration scheme");
m_functors2[0](inarray,outarray,time,lambda);
}
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoOdeExplicitRhs ( InArrayType inarray,
OutArrayType outarray,
const NekDouble  time 
) const
inline

Definition at line 216 of file TimeIntegrationScheme.h.

References ASSERTL1, and m_functors1.

{
ASSERTL1(!(m_functors1[1].empty()),"OdeExplicitRhs should be defined for this time integration scheme");
m_functors1[1](inarray,outarray,time);
}
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoOdeImplicitRhs ( InArrayType inarray,
OutArrayType outarray,
const NekDouble  time 
) const
inline

Definition at line 224 of file TimeIntegrationScheme.h.

References ASSERTL1, and m_functors1.

{
ASSERTL1(!(m_functors1[2].empty()),"OdeImplictRhs should be defined for this time integration scheme");
m_functors1[2](inarray,outarray,time);
}
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoOdeRhs ( InArrayType inarray,
OutArrayType outarray,
const NekDouble  time 
) const
inline

Definition at line 208 of file TimeIntegrationScheme.h.

References ASSERTL1, and m_functors1.

Referenced by Nektar::LibUtilities::TimeIntegrationScheme::InitializeScheme(), and Nektar::LibUtilities::TimeIntegrationScheme::TimeIntegrate().

{
ASSERTL1(!(m_functors1[0].empty()),"OdeRhs should be defined for this time integration scheme");
m_functors1[0](inarray,outarray,time);
}
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoProjection ( InArrayType inarray,
OutArrayType outarray,
const NekDouble  time 
) const
inline

Definition at line 232 of file TimeIntegrationScheme.h.

References ASSERTL1, and m_functors1.

Referenced by Nektar::LibUtilities::TimeIntegrationScheme::TimeIntegrate().

{
ASSERTL1(!(m_functors1[3].empty()),"Projection operation should be defined for this time integration scheme");
m_functors1[3](inarray,outarray,time);
}

Member Data Documentation

FunctorType1Array Nektar::LibUtilities::TimeIntegrationSchemeOperators::m_functors1
protected

Definition at line 251 of file TimeIntegrationScheme.h.

Referenced by DefineOdeExplicitRhs(), DefineOdeImplicitRhs(), DefineOdeRhs(), DefineProjection(), DoOdeExplicitRhs(), DoOdeImplicitRhs(), DoOdeRhs(), and DoProjection().

FunctorType2Array Nektar::LibUtilities::TimeIntegrationSchemeOperators::m_functors2
protected

Definition at line 252 of file TimeIntegrationScheme.h.

Referenced by DefineImplicitSolve(), and DoImplicitSolve().