v0.16.3
Loading...
Searching...
No Matches
AnalyticalExprPython.hpp
Go to the documentation of this file.
1/**
2 * \file AnalyticalExprPython.hpp
3 * \brief Analytical expression Python bridge
4 */
5
6#ifndef __ANALYTICAL_EXPR_PYTHON_HPP__
7#define __ANALYTICAL_EXPR_PYTHON_HPP__
8
9#ifdef ENABLE_PYTHON_BINDING
10 #include <boost/python.hpp>
11 #include <boost/python/def.hpp>
12 #include <boost/python/numpy.hpp>
13
14namespace bp = boost::python;
15namespace np = boost::python::numpy;
16
17namespace EshelbianPlasticity {
18
19struct AnalyticalExprPython {
20 AnalyticalExprPython() = default;
21 virtual ~AnalyticalExprPython() = default;
22
23 MoFEMErrorCode analyticalExprInit(const std::string py_file);
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,
27 np::ndarray nz,
28 const std::string &block_name,
29 np::ndarray &analytical_expr);
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,
33 np::ndarray nz,
34 const std::string &block_name,
35 np::ndarray &analytical_expr);
36
37 MoFEMErrorCode evalAnalyticalExternalStrain(double delta_t, double t,
38 np::ndarray x, np::ndarray y,
39 np::ndarray z,
40 const std::string &block_name,
41 np::ndarray &analytical_expr);
42
43 MoFEMErrorCode evalAnalyticalElastic(double delta_t, double t,
44 np::ndarray x, np::ndarray y,
45 np::ndarray z,
46 const std::string &block_name,
47 np::ndarray &analytical_expr);
48
49private:
50 bp::object mainNamespace;
51 bp::object analyticalDispFun;
52 bp::object analyticalTractionFun;
53 bp::object analyticalExternalStrainFun;
54 bp::object analyticalElasticFun;
55};
56
57extern boost::weak_ptr<AnalyticalExprPython> AnalyticalExprPythonWeakPtr;
58
59} // namespace EshelbianPlasticity
60#endif // ENABLE_PYTHON_BINDING
61
62#endif // __ANALYTICAL_EXPR_PYTHON_HPP__
PetscErrorCode MoFEMErrorCode
MoFEM/PETSc error code.
constexpr double t
plate stiffness
Definition plate.cpp:58