1 /*!
2 * \file bindings/python/mfront/pymtest.cxx
3 * \brief
4 * \author Thomas Helfer
5 * \brief 10 avril 2014
6 * \copyright Copyright (C) 2006-2018 CEA/DEN, EDF R&D. All rights
7 * reserved.
8 * This project is publicly released under either the GNU GPL Licence
9 * or the CECILL-A licence. A copy of thoses licences are delivered
10 * with the sources of TFEL. CEA or EDF may also distribute this
11 * project under specific licensing conditions.
12 */
13
14 #include<boost/python.hpp>
15 #include"MTest/RoundingMode.hxx"
16 #include"MTest/SolverOptions.hxx"
17
18 void declareBehaviour();
19 void declareSchemeBase();
20 void declareSingleStructureScheme();
21 void declareConstraint();
22 void declareMTest();
23 void declareMTestParser();
24 void declarePipeMesh();
25 void declarePipeTest();
26 void declareCurrentState();
27 void declareStructureCurrentState();
28 void declareStudyCurrentState();
29 void declareSolverWorkSpace();
30 void declareMFrontLogStream();
31
BOOST_PYTHON_MODULE(_mtest)32 BOOST_PYTHON_MODULE(_mtest)
33 {
34
35 boost::python::enum_<mtest::StiffnessUpdatingPolicy>("StiffnessUpdatingPolicy")
36 .value("CONSTANTSTIFFNESS",
37 mtest::StiffnessUpdatingPolicy::CONSTANTSTIFFNESS)
38 .value("CONSTANTSTIFFNESSBYPERIOD",
39 mtest::StiffnessUpdatingPolicy::CONSTANTSTIFFNESSBYPERIOD)
40 .value("UPDATEDSTIFFNESSMATRIX",
41 mtest::StiffnessUpdatingPolicy::UPDATEDSTIFFNESSMATRIX)
42 ;
43
44 boost::python::enum_<mtest::PredictionPolicy>("PredictionPolicy")
45 .value("NOPREDICTION",mtest::PredictionPolicy::NOPREDICTION)
46 .value("LINEARPREDICTION",mtest::PredictionPolicy::LINEARPREDICTION)
47 .value("ELASTICPREDICTION",mtest::PredictionPolicy::ELASTICPREDICTION)
48 .value("SECANTOPERATORPREDICTION",
49 mtest::PredictionPolicy::SECANTOPERATORPREDICTION)
50 .value("TANGENTOPERATORPREDICTION",
51 mtest::PredictionPolicy::TANGENTOPERATORPREDICTION)
52 ;
53
54 boost::python::enum_<mtest::StiffnessMatrixType>("StiffnessMatrixType")
55 .value("NOSTIFFNESS",mtest::StiffnessMatrixType::NOSTIFFNESS)
56 .value("ELASTIC",mtest::StiffnessMatrixType::ELASTIC)
57 .value("SECANTOPERATOR",mtest::StiffnessMatrixType::SECANTOPERATOR)
58 .value("TANGENTOPERATOR",mtest::StiffnessMatrixType::TANGENTOPERATOR)
59 .value("CONSISTENTTANGENTOPERATOR",
60 mtest::StiffnessMatrixType::CONSISTENTTANGENTOPERATOR)
61 ;
62
63 declareBehaviour();
64 declareCurrentState();
65 declareStructureCurrentState();
66 declareStudyCurrentState();
67 declareSolverWorkSpace();
68 declareMTestParser();
69 declareSchemeBase();
70 declareSingleStructureScheme();
71 declareConstraint();
72 declareMTest();
73 declarePipeMesh();
74 declarePipeTest();
75 declareMFrontLogStream();
76
77 void (*ptr)(const std::string&) = mtest::setRoundingMode;
78 void (*ptr2)() = mtest::setRoundingMode;
79 boost::python::def("setRoundingMode",ptr);
80 boost::python::def("setRoundingMode",ptr2);
81 }
82