/[escript]/branches/diaplayground/finley/src/CPPAdapter/MeshAdapter.cpp
ViewVC logotype

Diff of /branches/diaplayground/finley/src/CPPAdapter/MeshAdapter.cpp

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

revision 5135 by caltinay, Thu Aug 21 04:32:39 2014 UTC revision 5136 by caltinay, Tue Sep 9 07:13:55 2014 UTC
# Line 29  Line 29 
29    
30  using namespace std;  using namespace std;
31  using namespace paso;  using namespace paso;
32    namespace bp = boost::python;
33    
34  namespace finley {  namespace finley {
35    
# Line 1833  bool MeshAdapter::operator!=(const escri Line 1834  bool MeshAdapter::operator!=(const escri
1834      return !(operator==(other));      return !(operator==(other));
1835  }  }
1836    
1837  int MeshAdapter::getSystemMatrixTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const  int MeshAdapter::getSystemMatrixTypeId(const bp::object& options) const
1838  {  {
1839      Mesh* mesh=m_finleyMesh.get();      const escript::SolverBuddy& sb = bp::extract<escript::SolverBuddy>(options);
1840      return SystemMatrixAdapter::getSystemMatrixTypeId(solver, preconditioner,  
1841                 package, symmetry, mesh->MPIInfo);      return SystemMatrixAdapter::getSystemMatrixTypeId(sb.getSolverMethod(),
1842                    sb.getPreconditioner(), sb.getPackage(), sb.isSymmetric(),
1843                    m_finleyMesh->MPIInfo);
1844  }  }
1845    
1846  int MeshAdapter::getTransportTypeId(const int solver, const int preconditioner, const int package, const bool symmetry) const  int MeshAdapter::getTransportTypeId(int solver, int preconditioner, int package, bool symmetry) const
1847  {  {
1848      Mesh* mesh=m_finleyMesh.get();      Mesh* mesh=m_finleyMesh.get();
1849      return TransportProblemAdapter::getTransportTypeId(solver, preconditioner,      return TransportProblemAdapter::getTransportTypeId(solver, preconditioner,
# Line 2154  bool MeshAdapter::supportsContactElement Line 2157  bool MeshAdapter::supportsContactElement
2157  }  }
2158    
2159  escript::Data MeshAdapter::randomFill(const escript::DataTypes::ShapeType& shape,  escript::Data MeshAdapter::randomFill(const escript::DataTypes::ShapeType& shape,
2160         const escript::FunctionSpace& what, long seed, const boost::python::tuple& filter) const         const escript::FunctionSpace& what, long seed, const bp::tuple& filter) const
2161  {  {
2162      escript::Data towipe(0, shape, what, true);      escript::Data towipe(0, shape, what, true);
2163      // since we just made this object, no sharing is possible and we don't need to check for      // since we just made this object, no sharing is possible and we don't need to check for
# Line 2190  void MeshAdapter::addDiracPoints(const v Line 2193  void MeshAdapter::addDiracPoints(const v
2193      }      }
2194  }  }
2195    
2196  // void MeshAdapter::addDiracPoints(const boost::python::list& points, const boost::python::list& tags) const  // void MeshAdapter::addDiracPoints(const bp::list& points, const bp::list& tags) const
2197  // {  // {
2198  //       const int dim = getDim();  //       const int dim = getDim();
2199  //       int numPoints=boost::python::extract<int>(points.attr("__len__")());  //       int numPoints=bp::extract<int>(points.attr("__len__")());
2200  //       int numTags=boost::python::extract<int>(tags.attr("__len__")());  //       int numTags=bp::extract<int>(tags.attr("__len__")());
2201  //       Mesh* mesh=m_finleyMesh.get();  //       Mesh* mesh=m_finleyMesh.get();
2202  //  //
2203  //       if  ( (numTags > 0) && ( numPoints !=  numTags ) )  //       if  ( (numTags > 0) && ( numPoints !=  numTags ) )
# Line 2205  void MeshAdapter::addDiracPoints(const v Line 2208  void MeshAdapter::addDiracPoints(const v
2208  //  //
2209  //       for (int i=0;i<numPoints;++i) {  //       for (int i=0;i<numPoints;++i) {
2210  //         int tag_id=-1;  //         int tag_id=-1;
2211  //         int numComps=boost::python::extract<int>(points[i].attr("__len__")());  //         int numComps=bp::extract<int>(points[i].attr("__len__")());
2212  //         if  ( numComps !=   dim ) {  //         if  ( numComps !=   dim ) {
2213  //                stringstream temp;  //                stringstream temp;
2214  //                temp << "Error - illegal number of components " << numComps << " for point " << i;  //                temp << "Error - illegal number of components " << numComps << " for point " << i;
2215  //                throw FinleyAdapterException(temp.str());  //                throw FinleyAdapterException(temp.str());
2216  //         }  //         }
2217  //         points_ptr[ i * dim     ] = boost::python::extract<double>(points[i][0]);  //         points_ptr[ i * dim     ] = bp::extract<double>(points[i][0]);
2218  //         if ( dim > 1 ) points_ptr[ i * dim + 1 ] = boost::python::extract<double>(points[i][1]);  //         if ( dim > 1 ) points_ptr[ i * dim + 1 ] = bp::extract<double>(points[i][1]);
2219  //         if ( dim > 2 ) points_ptr[ i * dim + 2 ] = boost::python::extract<double>(points[i][2]);  //         if ( dim > 2 ) points_ptr[ i * dim + 2 ] = bp::extract<double>(points[i][2]);
2220  //  //
2221  //         if ( numTags > 0) {  //         if ( numTags > 0) {
2222  //                boost::python::extract<string> ex_str(tags[i]);  //                bp::extract<string> ex_str(tags[i]);
2223  //                if  ( ex_str.check() ) {  //                if  ( ex_str.check() ) {
2224  //                    tag_id=getTag( ex_str());  //                    tag_id=getTag( ex_str());
2225  //                } else {  //                } else {
2226  //                     boost::python::extract<int> ex_int(tags[i]);  //                     bp::extract<int> ex_int(tags[i]);
2227  //                     if ( ex_int.check() ) {  //                     if ( ex_int.check() ) {
2228  //                         tag_id=ex_int();  //                         tag_id=ex_int();
2229  //                     } else {  //                     } else {
# Line 2241  void MeshAdapter::addDiracPoints(const v Line 2244  void MeshAdapter::addDiracPoints(const v
2244  // }  // }
2245    
2246  /*  /*
2247  void MeshAdapter:: addDiracPoint( const boost::python::list& point, const int tag) const  void MeshAdapter:: addDiracPoint( const bp::list& point, const int tag) const
2248  {  {
2249      boost::python::list points =  boost::python::list();      bp::list points =  bp::list();
2250      boost::python::list tags =  boost::python::list();      bp::list tags =  bp::list();
2251      points.append(point);      points.append(point);
2252      tags.append(tag);      tags.append(tag);
2253      addDiracPoints(points, tags);      addDiracPoints(points, tags);
# Line 2252  void MeshAdapter:: addDiracPoint( const Line 2255  void MeshAdapter:: addDiracPoint( const
2255  */  */
2256    
2257  /*  /*
2258  void MeshAdapter:: addDiracPointWithTagName( const boost::python::list& point, const string& tag) const  void MeshAdapter:: addDiracPointWithTagName( const bp::list& point, const string& tag) const
2259  {  {
2260      boost::python::list points =   boost::python::list();      bp::list points =   bp::list();
2261      boost::python::list tags =   boost::python::list();      bp::list tags =   bp::list();
2262      points.append(point);      points.append(point);
2263      tags.append(tag);      tags.append(tag);
2264      addDiracPoints(points, tags);      addDiracPoints(points, tags);

Legend:
Removed from v.5135  
changed lines
  Added in v.5136

  ViewVC Help
Powered by ViewVC 1.1.26