Nektar++
Classes | Functions
TimeIntegrationSchemeOperators.cpp File Reference
#include <LibUtilities/Python/BasicUtils/SharedArray.hpp>
#include <LibUtilities/Python/NekPyConfig.hpp>
#include <LibUtilities/TimeIntegration/TimeIntegrationSchemeOperators.h>

Go to the source code of this file.

Classes

struct  CallbackHolderT1
 Helper class for holding a reference to a Python function to act as a wrapper for TimeIntegrationScheme::FunctorType1. More...
 
struct  CallbackHolderT2
 Helper class for holding a reference to a Python function to act as a wrapper for TimeIntegrationScheme::FunctorType1. More...
 

Functions

void TimeIntegrationSchemeOperators_DefineOdeRhs (TimeIntegrationSchemeOperatorsSharedPtr op, py::object callback)
 
void TimeIntegrationSchemeOperators_DefineProjection (TimeIntegrationSchemeOperatorsSharedPtr op, py::object callback)
 
void TimeIntegrationSchemeOperators_DefineImplicitSolve (TimeIntegrationSchemeOperatorsSharedPtr op, py::object callback)
 
void export_TimeIntegrationSchemeOperators (py::module &m)
 

Function Documentation

◆ export_TimeIntegrationSchemeOperators()

void export_TimeIntegrationSchemeOperators ( py::module &  m)

Definition at line 141 of file TimeIntegrationSchemeOperators.cpp.

142{
144 std::shared_ptr<TimeIntegrationSchemeOperators>>(
145 m, "TimeIntegrationSchemeOperators")
147 .def("DefineProjection",
149 .def("DefineImplicitSolve",
151}
void TimeIntegrationSchemeOperators_DefineOdeRhs(TimeIntegrationSchemeOperatorsSharedPtr op, py::object callback)
void TimeIntegrationSchemeOperators_DefineImplicitSolve(TimeIntegrationSchemeOperatorsSharedPtr op, py::object callback)
void TimeIntegrationSchemeOperators_DefineProjection(TimeIntegrationSchemeOperatorsSharedPtr op, py::object callback)
Binds a set of functions for use by time integration schemes.

References TimeIntegrationSchemeOperators_DefineImplicitSolve(), TimeIntegrationSchemeOperators_DefineOdeRhs(), and TimeIntegrationSchemeOperators_DefineProjection().

Referenced by PYBIND11_MODULE().

◆ TimeIntegrationSchemeOperators_DefineImplicitSolve()

void TimeIntegrationSchemeOperators_DefineImplicitSolve ( TimeIntegrationSchemeOperatorsSharedPtr  op,
py::object  callback 
)

Definition at line 133 of file TimeIntegrationSchemeOperators.cpp.

135{
136 CallbackHolderT2 *cb = new CallbackHolderT2(callback);
137
138 op->DefineImplicitSolve(&CallbackHolderT2::call, cb);
139}
Helper class for holding a reference to a Python function to act as a wrapper for TimeIntegrationSche...
void call(TimeIntegrationSchemeOperators::InArrayType &in, TimeIntegrationSchemeOperators::OutArrayType &out, const NekDouble time, const NekDouble lambda)
C++ callback function to invoke Python function stored in m_cb.

References CallbackHolderT2::call().

Referenced by export_TimeIntegrationSchemeOperators().

◆ TimeIntegrationSchemeOperators_DefineOdeRhs()

void TimeIntegrationSchemeOperators_DefineOdeRhs ( TimeIntegrationSchemeOperatorsSharedPtr  op,
py::object  callback 
)

Definition at line 117 of file TimeIntegrationSchemeOperators.cpp.

119{
120 CallbackHolderT1 *cb = new CallbackHolderT1(callback);
121
122 op->DefineOdeRhs(&CallbackHolderT1::call, cb);
123}
Helper class for holding a reference to a Python function to act as a wrapper for TimeIntegrationSche...
void call(TimeIntegrationSchemeOperators::InArrayType &in, TimeIntegrationSchemeOperators::OutArrayType &out, const NekDouble time)
C++ callback function to invoke Python function stored in m_cb.

References CallbackHolderT1::call().

Referenced by export_TimeIntegrationSchemeOperators().

◆ TimeIntegrationSchemeOperators_DefineProjection()

void TimeIntegrationSchemeOperators_DefineProjection ( TimeIntegrationSchemeOperatorsSharedPtr  op,
py::object  callback 
)

Definition at line 125 of file TimeIntegrationSchemeOperators.cpp.

127{
128 CallbackHolderT1 *cb = new CallbackHolderT1(callback);
129
130 op->DefineProjection(&CallbackHolderT1::call, cb);
131}

References CallbackHolderT1::call().

Referenced by export_TimeIntegrationSchemeOperators().