Nektar++
Functions
Python/BasicUtils/Equation.cpp File Reference
#include <LibUtilities/BasicUtils/Equation.h>
#include <LibUtilities/Interpreter/Interpreter.h>
#include <LibUtilities/Python/NekPyConfig.hpp>
#include <LibUtilities/Python/BasicUtils/SharedArray.hpp>
#include <LibUtilities/BasicConst/NektarUnivTypeDefs.hpp>

Go to the source code of this file.

Functions

void Equation_SetConstants (std::shared_ptr< Equation > equation, py::args args, const py::kwargs &kwargs)
 Wrapper for Equation::SetConstants. More...
 
std::shared_ptr< EquationConstructEquation (std::shared_ptr< Interpreter > interp, std::string expr, std::string vlist)
 Construct an equation object from an expression string expr and a list of variables vlist. More...
 
NekDouble Equation_Evaluate1 (std::shared_ptr< Equation > equation)
 Wrapper for Equation::Evaluate (overloaded for no parameters). More...
 
NekDouble Equation_Evaluate2 (std::shared_ptr< Equation > equation, const NekDouble x, const NekDouble y=0, const NekDouble z=0, const NekDouble t=0)
 Wrapper for Equation::Evaluate (overloaded for constant parameters). More...
 
Array< OneD, NekDoubleEquation_Evaluate3 (std::shared_ptr< Equation > equation, const Array< OneD, const NekDouble > &x, const Array< OneD, const NekDouble > &y, const Array< OneD, const NekDouble > &z)
 Wrapper for Equation::Evaluate (overloaded for Array parameters). More...
 
Array< OneD, NekDoubleEquation_Evaluate4 (std::shared_ptr< Equation > equation, const Array< OneD, const NekDouble > &x, const Array< OneD, const NekDouble > &y, const Array< OneD, const NekDouble > &z, const NekDouble t)
 Wrapper for Equation::Evaluate (overloaded for Array parameters + constant time). More...
 
Array< OneD, NekDoubleEquation_Evaluate5 (std::shared_ptr< Equation > equation, const Array< OneD, const NekDouble > &x, const Array< OneD, const NekDouble > &y, const Array< OneD, const NekDouble > &z, const Array< OneD, const NekDouble > &t)
 Wrapper for Equation::Evaluate (overloaded for Array parameters + Array time). More...
 
void export_Equation (py::module &m)
 

Function Documentation

◆ ConstructEquation()

std::shared_ptr< Equation > ConstructEquation ( std::shared_ptr< Interpreter interp,
std::string  expr,
std::string  vlist 
)

Construct an equation object from an expression string expr and a list of variables vlist.

Parameters
evaluatorInterpreter object
exprString contaning the expression
vlistString contining the list of variables in expr.
Returns
An #Equation object.

Definition at line 84 of file Python/BasicUtils/Equation.cpp.

86{
87 return std::make_shared<Equation>(interp, expr, vlist);
88}

Referenced by export_Equation().

◆ Equation_Evaluate1()

NekDouble Equation_Evaluate1 ( std::shared_ptr< Equation equation)

Wrapper for Equation::Evaluate (overloaded for no parameters).

Parameters
equationEquation object
Returns
Value of equation.

Definition at line 97 of file Python/BasicUtils/Equation.cpp.

98{
99 return equation->Evaluate();
100}

Referenced by export_Equation().

◆ Equation_Evaluate2()

NekDouble Equation_Evaluate2 ( std::shared_ptr< Equation equation,
const NekDouble  x,
const NekDouble  y = 0,
const NekDouble  z = 0,
const NekDouble  t = 0 
)

Wrapper for Equation::Evaluate (overloaded for constant parameters).

Parameters
equationEquation object from Python
xx-coordinate within the expression
yy-coordinate within the expression
zz-coordinate within the expression
tvalue of time within the expression
Returns
Value of evaluated expression.

Definition at line 113 of file Python/BasicUtils/Equation.cpp.

116{
117 return equation->Evaluate(x, y, z, t);
118}
std::vector< double > z(NPUPPER)

References Nektar::UnitTests::z().

Referenced by export_Equation().

◆ Equation_Evaluate3()

Array< OneD, NekDouble > Equation_Evaluate3 ( std::shared_ptr< Equation equation,
const Array< OneD, const NekDouble > &  x,
const Array< OneD, const NekDouble > &  y,
const Array< OneD, const NekDouble > &  z 
)

Wrapper for Equation::Evaluate (overloaded for Array parameters).

Parameters
equationEquation object from Python
xx-coordinates within the expression
yy-coordinates within the expression
zz-coordinates within the expression
Returns
Array containing values of evaluated expression.

Definition at line 130 of file Python/BasicUtils/Equation.cpp.

134{
135 Array<OneD, NekDouble> tmp(x.size());
136 equation->Evaluate(x, y, z, tmp);
137 return tmp;
138}

References Nektar::UnitTests::z().

Referenced by export_Equation().

◆ Equation_Evaluate4()

Array< OneD, NekDouble > Equation_Evaluate4 ( std::shared_ptr< Equation equation,
const Array< OneD, const NekDouble > &  x,
const Array< OneD, const NekDouble > &  y,
const Array< OneD, const NekDouble > &  z,
const NekDouble  t 
)

Wrapper for Equation::Evaluate (overloaded for Array parameters + constant time).

Parameters
equationEquation object from Python
xx-coordinates within the expression
yy-coordinates within the expression
zz-coordinates within the expression
tValue of time
Returns
Array containing values of evaluated expression.

Definition at line 152 of file Python/BasicUtils/Equation.cpp.

157{
158 Array<OneD, NekDouble> tmp(x.size());
159 equation->Evaluate(x, y, z, t, tmp);
160 return tmp;
161}

References Nektar::UnitTests::z().

Referenced by export_Equation().

◆ Equation_Evaluate5()

Array< OneD, NekDouble > Equation_Evaluate5 ( std::shared_ptr< Equation equation,
const Array< OneD, const NekDouble > &  x,
const Array< OneD, const NekDouble > &  y,
const Array< OneD, const NekDouble > &  z,
const Array< OneD, const NekDouble > &  t 
)

Wrapper for Equation::Evaluate (overloaded for Array parameters + Array time).

Parameters
equationEquation object from Python
xx-coordinates within the expression
yy-coordinates within the expression
zz-coordinates within the expression
tTime values within the expression.
Returns
Array containing values of evaluated expression.

Definition at line 175 of file Python/BasicUtils/Equation.cpp.

180{
181 Array<OneD, NekDouble> tmp(x.size());
182 equation->Evaluate(x, y, z, t, tmp);
183 return tmp;
184}

References Nektar::UnitTests::z().

Referenced by export_Equation().

◆ Equation_SetConstants()

void Equation_SetConstants ( std::shared_ptr< Equation equation,
py::args  args,
const py::kwargs &  kwargs 
)

Wrapper for Equation::SetConstants.

boost.python does not know how (by default) to convert from any Python datatype to a C++ map, so we add a pythonic way to set parameters through keyword arguments.

Parameters
argsPython function positional arguments.
kwargsPython function keyword arguments.
Returns
None (null py::object).

Definition at line 58 of file Python/BasicUtils/Equation.cpp.

60{
61 // Map that will be passed to C++.
62 std::map<std::string, NekDouble> constants;
63
64 for (auto &it : kwargs)
65 {
66 const std::string &key = py::cast<const std::string>(it.first);
67 const NekDouble &val = py::cast<const NekDouble>(it.second);
68 constants[key] = val;
69 }
70
71 equation->SetConstants(constants);
72}
double NekDouble

Referenced by export_Equation().

◆ export_Equation()

void export_Equation ( py::module &  m)

Definition at line 186 of file Python/BasicUtils/Equation.cpp.

187{
188 py::class_<Equation, std::shared_ptr<Equation>>(m, "Equation")
189
190 .def(py::init(&ConstructEquation))
191
192 .def("Evaluate", Equation_Evaluate1)
193 .def("Evaluate", Equation_Evaluate2)
194 .def("Evaluate", Equation_Evaluate3)
195 .def("Evaluate", Equation_Evaluate4)
196 .def("Evaluate", Equation_Evaluate5)
197
198 .def("SetParameter", &Equation::SetParameter)
199 .def("SetConstants", &Equation_SetConstants)
200 .def("GetExpression", &Equation::GetExpression)
201 .def("GetVlist", &Equation::GetVlist)
202
203 .def("GetTime", &Equation::GetTime);
204}
void Equation_SetConstants(std::shared_ptr< Equation > equation, py::args args, const py::kwargs &kwargs)
Wrapper for Equation::SetConstants.
Array< OneD, NekDouble > Equation_Evaluate5(std::shared_ptr< Equation > equation, const Array< OneD, const NekDouble > &x, const Array< OneD, const NekDouble > &y, const Array< OneD, const NekDouble > &z, const Array< OneD, const NekDouble > &t)
Wrapper for Equation::Evaluate (overloaded for Array parameters + Array time).
NekDouble Equation_Evaluate2(std::shared_ptr< Equation > equation, const NekDouble x, const NekDouble y=0, const NekDouble z=0, const NekDouble t=0)
Wrapper for Equation::Evaluate (overloaded for constant parameters).
NekDouble Equation_Evaluate1(std::shared_ptr< Equation > equation)
Wrapper for Equation::Evaluate (overloaded for no parameters).
std::shared_ptr< Equation > ConstructEquation(std::shared_ptr< Interpreter > interp, std::string expr, std::string vlist)
Construct an equation object from an expression string expr and a list of variables vlist.
Array< OneD, NekDouble > Equation_Evaluate4(std::shared_ptr< Equation > equation, const Array< OneD, const NekDouble > &x, const Array< OneD, const NekDouble > &y, const Array< OneD, const NekDouble > &z, const NekDouble t)
Wrapper for Equation::Evaluate (overloaded for Array parameters + constant time).
Array< OneD, NekDouble > Equation_Evaluate3(std::shared_ptr< Equation > equation, const Array< OneD, const NekDouble > &x, const Array< OneD, const NekDouble > &y, const Array< OneD, const NekDouble > &z)
Wrapper for Equation::Evaluate (overloaded for Array parameters).

References ConstructEquation(), Equation_Evaluate1(), Equation_Evaluate2(), Equation_Evaluate3(), Equation_Evaluate4(), Equation_Evaluate5(), and Equation_SetConstants().

Referenced by PYBIND11_MODULE().