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