/[escript]/branches/diaplayground/dudley/src/CPPAdapter/dudleycpp.cpp
ViewVC logotype

Diff of /branches/diaplayground/dudley/src/CPPAdapter/dudleycpp.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3892 by jfenwick, Tue Apr 10 08:57:23 2012 UTC revision 4934 by jfenwick, Tue May 13 00:28:11 2014 UTC
# Line 1  Line 1 
1    
2  /*******************************************************  /*****************************************************************************
3  *  *
4  * Copyright (c) 2003-2010 by University of Queensland  * Copyright (c) 2003-2014 by University of Queensland
5  * Earth Systems Science Computational Center (ESSCC)  * http://www.uq.edu.au
 * http://www.uq.edu.au/esscc  
6  *  *
7  * Primary Business: Queensland, Australia  * Primary Business: Queensland, Australia
8  * Licensed under the Open Software License version 3.0  * Licensed under the Open Software License version 3.0
9  * http://www.opensource.org/licenses/osl-3.0.php  * http://www.opensource.org/licenses/osl-3.0.php
10  *  *
11  *******************************************************/  * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12    * Development 2012-2013 by School of Earth Sciences
13    * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14    *
15    *****************************************************************************/
16    
17    
18  #ifdef ESYS_MPI  #ifdef ESYS_MPI
19  #include "esysUtils/Esys_MPI.h"  #include "esysUtils/Esys_MPI.h"
20  #endif  #endif
 extern "C" {  
21  #include "../Dudley.h"  #include "../Dudley.h"
 }  
22    
23  #include <pasowrap/SystemMatrixAdapter.h>  #include <pasowrap/SystemMatrixAdapter.h>
24  #include <pasowrap/TransportProblemAdapter.h>  #include <pasowrap/TransportProblemAdapter.h>
# Line 39  extern "C" { Line 40  extern "C" {
40    
41  using namespace boost::python;  using namespace boost::python;
42    
 /**  
    \page dudley Dudley  
    Dudley is the python module name that contains the interfaces  
    to the C++ wrapper to dudley.  
   
    \version 1.0.0  
   
    \section class_desc Class Description:  
    Data  
   
    \section class_limits Class Limitations:  
    None  
   
    \section class_conds Class Conditions of Use:  
    None  
   
    \section throws Throws:  
    None  
   
 */  
   
43  BOOST_PYTHON_MODULE(dudleycpp)  BOOST_PYTHON_MODULE(dudleycpp)
44  {  {
45  // This feature was added in boost v1.34  // This feature was added in boost v1.34
# Line 68  BOOST_PYTHON_MODULE(dudleycpp) Line 48  BOOST_PYTHON_MODULE(dudleycpp)
48    docstring_options docopt(true, true, false);    docstring_options docopt(true, true, false);
49  #endif  #endif
50    
51      scope().attr("__doc__") = "To use this module, please import esys.dudley";  
52      
53      
54    //    //
55    // NOTE: The return_value_policy is necessary for functions that    // NOTE: The return_value_policy is necessary for functions that
56    // return pointers.    // return pointers.
57    //    //
58    register_exception_translator<dudley::DudleyAdapterException>(&(esysUtils::esysExceptionTranslator));    register_exception_translator<dudley::DudleyAdapterException>(&(esysUtils::RuntimeErrorTranslator));
59    
60    def("LoadMesh",dudley::loadMesh,    def("LoadMesh",dudley::loadMesh,
61        (arg("fileName")="file.nc"),":rtype: `Domain`"        (arg("fileName")="file.nc"),":rtype: `Domain`"
# Line 106  BOOST_PYTHON_MODULE(dudleycpp) Line 89  BOOST_PYTHON_MODULE(dudleycpp)
89  ":param useMacroElements: Enable the usage of macro elements instead of second order elements.\n:type useMacroElements: ``bool``"  ":param useMacroElements: Enable the usage of macro elements instead of second order elements.\n:type useMacroElements: ``bool``"
90  );  );
91    
92    def ("Brick",dudley::brick,    def ("__Brick_driver",dudley::brick_driver,
93          arg("args"),
94    /*      
95        (arg("n0")=1,arg("n1")=1,arg("n2")=1,        (arg("n0")=1,arg("n1")=1,arg("n2")=1,
96        arg("order")=1,        arg("order")=1,
97        arg("l0")=1.0,arg("l1")=1.0,arg("l2")=1.0,        arg("l0")=1.0,arg("l1")=1.0,arg("l2")=1.0,
# Line 115  BOOST_PYTHON_MODULE(dudleycpp) Line 100  BOOST_PYTHON_MODULE(dudleycpp)
100        arg("useElementsOnFace")=false,        arg("useElementsOnFace")=false,
101        arg("useFullElementOrder")=false,        arg("useFullElementOrder")=false,
102        arg("optimize")=false)        arg("optimize")=false)
103  ,"Creates a tetrahedral mesh by subdividing n0 x n1 x n2 rectangular elements over the brick [0,l0] x [0,l1] x [0,l2]."  */      
104    "Creates a tetrahedral mesh by subdividing n0 x n1 x n2 rectangular elements over the brick [0,l0] x [0,l1] x [0,l2]."
105  "We accept floating point values for n0, n1 only to ease transition of scripts to python3 when the time comes."  "We accept floating point values for n0, n1 only to ease transition of scripts to python3 when the time comes."
106  "\n\n:param n0:\n:type n0:\n:param n1:\n:type n1:\n:param n2:\n:type n2:\n"  "\n\n:param n0:\n:type n0:\n:param n1:\n:type n1:\n:param n2:\n:type n2:\n"
107  ":param order: =1, =-1 or =2 gives the order of shape function. If -1 macro elements of order 1 are used.\n"  ":param order: =1, =-1 or =2 gives the order of shape function. If -1 macro elements of order 1 are used.\n"
# Line 130  BOOST_PYTHON_MODULE(dudleycpp) Line 116  BOOST_PYTHON_MODULE(dudleycpp)
116  ":param optimize: Enable optimisation of node labels\n:type optimize: ``bool``"  ":param optimize: Enable optimisation of node labels\n:type optimize: ``bool``"
117  );  );
118    
119    def ("Rectangle",dudley::rectangle,    def ("__Rectangle_driver",dudley::rectangle_driver,
120          arg("args"),
121    /*      
122        (arg("n0")=1,arg("n1")=1,arg("order")=1,        (arg("n0")=1,arg("n1")=1,arg("order")=1,
123        arg("l0")=1.0,arg("l1")=1.0,        arg("l0")=1.0,arg("l1")=1.0,
124        arg("periodic0")=false,arg("periodic1")=false,        arg("periodic0")=false,arg("periodic1")=false,
# Line 138  BOOST_PYTHON_MODULE(dudleycpp) Line 126  BOOST_PYTHON_MODULE(dudleycpp)
126        arg("useElementsOnFace")=false,        arg("useElementsOnFace")=false,
127        arg("useFullElementOrder")=false,        arg("useFullElementOrder")=false,
128        arg("optimize")=false)        arg("optimize")=false)
129  ,"Creates a triangular mesh by subdividing n0 x n1 rectangular elements over the brick [0,l0] x [0,l1]."  */      
130    "Creates a triangular mesh by subdividing n0 x n1 rectangular elements over the brick [0,l0] x [0,l1]."
131  "We accept floating point values for n0, n1 only to ease transition of scripts to python3 when the time comes."  "We accept floating point values for n0, n1 only to ease transition of scripts to python3 when the time comes."
132  "\n\n:param n0:\n:type n0:\n:param n1:\n:type n1:\n"  "\n\n:param n0:\n:type n0:\n:param n1:\n:type n1:\n"
133  ":param order: =1, =-1 or =2 gives the order of shape function. If -1 macro elements of order 1 are used.\n"  ":param order: =1, =-1 or =2 gives the order of shape function. If -1 macro elements of order 1 are used.\n"
# Line 237  args("theta", "blocksize", "functionspac Line 226  args("theta", "blocksize", "functionspac
226  )  )
227        .def("getSystemMatrixTypeId",&dudley::MeshAdapter::getSystemMatrixTypeId,        .def("getSystemMatrixTypeId",&dudley::MeshAdapter::getSystemMatrixTypeId,
228  args("solver", "preconditioner", "package", "symmetry"),  args("solver", "preconditioner", "package", "symmetry"),
229  ":return: the identifier of the matrix type to be used for the global stiffness matrix when a particular solver, package, perconditioner, and symmetric matrix is used.\n"  ":return: the identifier of the matrix type to be used for the global stiffness matrix when a particular solver, package, preconditioner, and symmetric matrix is used.\n"
230  ":rtype: ``int``\n"  ":rtype: ``int``\n"
231  ":param solver:\n:type solver: ``int``\n"  ":param solver:\n:type solver: ``int``\n"
232  ":param preconditioner:\n:type preconditioner: ``int``\n"  ":param preconditioner:\n:type preconditioner: ``int``\n"
# Line 246  args("solver", "preconditioner", "packag Line 235  args("solver", "preconditioner", "packag
235  )  )
236        .def("getTransportTypeId",&dudley::MeshAdapter::getTransportTypeId,        .def("getTransportTypeId",&dudley::MeshAdapter::getTransportTypeId,
237  args("solver", "preconditioner", "package", "symmetry"),  args("solver", "preconditioner", "package", "symmetry"),
238  ":return: the identifier of the transport problem type to be used when a particular solver, perconditioner, package and symmetric matrix is used.\n"  ":return: the identifier of the transport problem type to be used when a particular solver, preconditioner, package and symmetric matrix is used.\n"
239  ":rtype: ``int``\n"  ":rtype: ``int``\n"
240  ":param solver:\n:type solver: ``int``\n"  ":param solver:\n:type solver: ``int``\n"
241  ":param preconditioner:\n:type preconditioner: ``int``\n"  ":param preconditioner:\n:type preconditioner: ``int``\n"
# Line 262  args("arg"), "assigns new location to th Line 251  args("arg"), "assigns new location to th
251  ":rtype: `Data`")  ":rtype: `Data`")
252        .def("getSize",&dudley::MeshAdapter::getSize,":return: the element size\n"        .def("getSize",&dudley::MeshAdapter::getSize,":return: the element size\n"
253  ":rtype: `Data`")  ":rtype: `Data`")
       .def("saveDX",&dudley::MeshAdapter::saveDX,args("filename" ,"arg"),  
 "Saves a dictonary of Data objects to an OpenDX input file. The keywords are used as identifier"  
 "\n\n:param filename: \n:type filename: ``string``\n"  
 "\n:param arg: \n:type arg: ``dict``\n")  
       .def("saveVTK",&dudley::MeshAdapter::saveVTK,  
 args("filename" ,"arg",  "metadata", "metadata_schema"),  
 "Saves a dictonary of Data objects to an VTK XML input file. The keywords are used as identifier"  
 "\n\n:param filename:\n:type filename: ``string``\n"  
 ":param arg:\n:type arg: ``dict``\n"  
 ":param metadata:\n:type metadata: ``string``\n"  
 ":param metadata_schema:\n:type metadata_schema: ``string``\n"  
 )  
254        .def("setTagMap",&dudley::MeshAdapter::setTagMap,args("name","tag"),        .def("setTagMap",&dudley::MeshAdapter::setTagMap,args("name","tag"),
255  "Give a tag number a name.\n\n:param name: Name for the tag\n:type name: ``string``\n"  "Give a tag number a name.\n\n:param name: Name for the tag\n:type name: ``string``\n"
256  ":param tag: numeric id\n:type tag: ``int``\n:note: Tag names must be unique within a domain")  ":param tag: numeric id\n:type tag: ``int``\n:note: Tag names must be unique within a domain")

Legend:
Removed from v.3892  
changed lines
  Added in v.4934

  ViewVC Help
Powered by ViewVC 1.1.26