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>

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 162 of file TimeIntegrationScheme.h.

Member Typedef Documentation

Definition at line 171 of file TimeIntegrationScheme.h.

Definition at line 172 of file TimeIntegrationScheme.h.

Definition at line 168 of file TimeIntegrationScheme.h.

Definition at line 174 of file TimeIntegrationScheme.h.

Definition at line 169 of file TimeIntegrationScheme.h.

Definition at line 175 of file TimeIntegrationScheme.h.

Definition at line 165 of file TimeIntegrationScheme.h.

Definition at line 166 of file TimeIntegrationScheme.h.

Constructor & Destructor Documentation

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

Definition at line 177 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 190 of file TimeIntegrationScheme.h.

References m_functors1.

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

Definition at line 196 of file TimeIntegrationScheme.h.

References m_functors1.

197  {
198  m_functors1[2] = boost::bind(func, obj, _1, _2, _3);
199  }
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 246 of file TimeIntegrationScheme.h.

References ASSERTL1, and m_functors2.

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

250  {
251  ASSERTL1(!(m_functors2[0].empty()),"ImplicitSolve should be defined for this time integration scheme");
252  m_functors2[0](inarray,outarray,time,lambda);
253  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoOdeExplicitRhs ( InArrayType inarray,
OutArrayType outarray,
const NekDouble  time 
) const
inline

Definition at line 222 of file TimeIntegrationScheme.h.

References ASSERTL1, and m_functors1.

225  {
226  ASSERTL1(!(m_functors1[1].empty()),"OdeExplicitRhs should be defined for this time integration scheme");
227  m_functors1[1](inarray,outarray,time);
228  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoOdeImplicitRhs ( InArrayType inarray,
OutArrayType outarray,
const NekDouble  time 
) const
inline

Definition at line 230 of file TimeIntegrationScheme.h.

References ASSERTL1, and m_functors1.

233  {
234  ASSERTL1(!(m_functors1[2].empty()),"OdeImplictRhs should be defined for this time integration scheme");
235  m_functors1[2](inarray,outarray,time);
236  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoOdeRhs ( InArrayType inarray,
OutArrayType outarray,
const NekDouble  time 
) const
inline

Definition at line 214 of file TimeIntegrationScheme.h.

References ASSERTL1, and m_functors1.

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

217  {
218  ASSERTL1(!(m_functors1[0].empty()),"OdeRhs should be defined for this time integration scheme");
219  m_functors1[0](inarray,outarray,time);
220  }
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode...
Definition: ErrorUtil.hpp:191
void Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoProjection ( InArrayType inarray,
OutArrayType outarray,
const NekDouble  time 
) const
inline

Definition at line 238 of file TimeIntegrationScheme.h.

References ASSERTL1, and m_functors1.

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

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

Member Data Documentation

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

Definition at line 258 of file TimeIntegrationScheme.h.

Referenced by DefineImplicitSolve(), and DoImplicitSolve().