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

#include <TimeIntegrationScheme.h>

Collaboration diagram for Nektar::LibUtilities::TimeIntegrationSchemeOperators:
Collaboration graph
[legend]

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
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.

185  {
186  m_functors1[1] = boost::bind(func, obj, _1, _2, _3);
187  }
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.

191  {
192  m_functors1[2] = boost::bind(func, obj, _1, _2, _3);
193  }
template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineOdeRhs ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline
template<typename FuncPointerT , typename ObjectPointerT >
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DefineProjection ( FuncPointerT  func,
ObjectPointerT  obj 
)
inline
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().

244  {
245  ASSERTL1(!(m_functors2[0].empty()),"ImplicitSolve should be defined for this time integration scheme");
246  m_functors2[0](inarray,outarray,time,lambda);
247  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:165
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.

219  {
220  ASSERTL1(!(m_functors1[1].empty()),"OdeExplicitRhs should be defined for this time integration scheme");
221  m_functors1[1](inarray,outarray,time);
222  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:165
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.

227  {
228  ASSERTL1(!(m_functors1[2].empty()),"OdeImplictRhs should be defined for this time integration scheme");
229  m_functors1[2](inarray,outarray,time);
230  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:165
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().

211  {
212  ASSERTL1(!(m_functors1[0].empty()),"OdeRhs should be defined for this time integration scheme");
213  m_functors1[0](inarray,outarray,time);
214  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:165
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().

235  {
236  ASSERTL1(!(m_functors1[3].empty()),"Projection operation should be defined for this time integration scheme");
237  m_functors1[3](inarray,outarray,time);
238  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:165

Member Data Documentation

FunctorType1Array Nektar::LibUtilities::TimeIntegrationSchemeOperators::m_functors1
protected
FunctorType2Array Nektar::LibUtilities::TimeIntegrationSchemeOperators::m_functors2
protected

Definition at line 252 of file TimeIntegrationScheme.h.

Referenced by DefineImplicitSolve(), and DoImplicitSolve().