6#ifndef __ANALYTICAL_EXPR_PYTHON_HPP__
7#define __ANALYTICAL_EXPR_PYTHON_HPP__
9#ifdef ENABLE_PYTHON_BINDING
10 #include <boost/python.hpp>
11 #include <boost/python/def.hpp>
12 #include <boost/python/numpy.hpp>
14namespace bp = boost::python;
15namespace np = boost::python::numpy;
19struct AnalyticalExprPython {
20 AnalyticalExprPython() =
default;
21 virtual ~AnalyticalExprPython() =
default;
24 MoFEMErrorCode evalAnalyticalDisp(
double delta_t,
double t, np::ndarray x,
25 np::ndarray y, np::ndarray z,
26 np::ndarray nx, np::ndarray ny,
28 const std::string &block_name,
30 MoFEMErrorCode evalAnalyticalTraction(
double delta_t,
double t, np::ndarray x,
31 np::ndarray y, np::ndarray z,
32 np::ndarray nx, np::ndarray ny,
34 const std::string &block_name,
38 np::ndarray x, np::ndarray y,
40 const std::string &block_name,
44 np::ndarray x, np::ndarray y,
46 const std::string &block_name,
51 py_list_to_std_vector(
const boost::python::object &iterable) {
52 return std::vector<T>(boost::python::stl_input_iterator<T>(iterable),
53 boost::python::stl_input_iterator<T>());
57 bp::object mainNamespace;
58 bp::object analyticalDispFun;
59 bp::object analyticalTractionFun;
60 bp::object analyticalExternalStrainFun;
61 bp::object analyticalElasticFun;
64extern boost::weak_ptr<AnalyticalExprPython> AnalyticalExprPythonWeakPtr;
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
constexpr double t
plate stiffness