escript  Revision_
MeshAdapterFactory.h
Go to the documentation of this file.
00001 
00002 /*****************************************************************************
00003 *
00004 * Copyright (c) 2003-2014 by University of Queensland
00005 * http://www.uq.edu.au
00006 *
00007 * Primary Business: Queensland, Australia
00008 * Licensed under the Open Software License version 3.0
00009 * http://www.opensource.org/licenses/osl-3.0.php
00010 *
00011 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
00012 * Development 2012-2013 by School of Earth Sciences
00013 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
00014 *
00015 *****************************************************************************/
00016 
00017 
00018 #if !defined  finley_MeshAdapterFactory_20040526_H
00019 #define finley_MeshAdapterFactory_20040526_H
00020 #include "system_dep.h"
00021 
00022 #include "finley/Finley.h"
00023 #include "finley/Mesh.h"
00024 #include "finley/RectangularMesh.h"
00025 
00026 #include "MeshAdapter.h"
00027 
00028 #include "escript/AbstractContinuousDomain.h"
00029 
00030 #include <boost/python/list.hpp>
00031 
00032 #include <sstream>
00033 
00034 namespace finley {
00048   FINLEY_DLL_API
00049 /*  escript::AbstractContinuousDomain* loadMesh(const std::string& fileName);*/
00050   escript::Domain_ptr loadMesh(const std::string& fileName);
00061   FINLEY_DLL_API
00062 //   escript::AbstractContinuousDomain* readMesh(const std::string& fileName,
00063    escript::Domain_ptr readMesh(const std::string& fileName,
00064                                      int integrationOrder=-1,
00065                                      int reducedIntegrationOrder=-1,
00066                                      bool optimize=false);
00079   FINLEY_DLL_API
00080 //   escript::AbstractContinuousDomain* readGmsh(const std::string& fileName,
00081   escript::Domain_ptr readGmsh(const std::string& fileName,
00082                                int numDim, 
00083                                int integrationOrder=-1,
00084                                int reducedIntegrationOrder=-1, 
00085                                bool optimize=false,
00086                                bool useMacroElements=false);
00087 
00110 FINLEY_DLL_API
00111 escript::Domain_ptr brick(int n0=1, int n1=1, int n2=1, int order=1,
00112                     double l0=1.0, double l1=1.0, double l2=1.0,
00113                     bool periodic0=false, bool periodic1=false,
00114                     bool periodic2=false,
00115                     int integrationOrder=-1,
00116                     int reducedIntegrationOrder=-1,
00117                     bool useElementsOnFace=false,
00118                     bool useFullElementOrder=false,
00119                     bool optimize=false,
00120                     const std::vector<double>& points=std::vector<double>(),
00121                     const std::vector<int>& tags=std::vector<int>(),
00122                     const std::map<std::string, int>& tagnamestonums=std::map<std::string, int>()
00123                     );
00124                     
00129    FINLEY_DLL_API
00130    escript::Domain_ptr brick_driver(const boost::python::list& args);
00131 
00136    FINLEY_DLL_API
00137    escript::Domain_ptr rectangle_driver(const boost::python::list& args);   
00138    
00139    
00164 FINLEY_DLL_API
00165   escript::Domain_ptr rectangle(int n0=1, int n1=1, int order=1,
00166                                 double l0=1.0, double l1=1.0,
00167                                 bool periodic0=false, bool periodic1=false,
00168                                 int integrationOrder=-1,
00169                                 int reducedIntegrationOrder=-1, 
00170                                 bool useElementsOnFace=false,
00171                                 bool useFullElementOrder=false,
00172                                 bool optimize=false,
00173                                 const std::vector<double>& points=std::vector<double>(),
00174                                 const std::vector<int>& tags=std::vector<int>(),
00175                                 const std::map<std::string, int>& tagnamestonums=std::map<std::string, int>()
00176                         );
00182   FINLEY_DLL_API
00183 //   escript::AbstractContinuousDomain* meshMerge(const boost::python::list& meshList);
00184   escript::Domain_ptr meshMerge(const boost::python::list& meshList);
00194   FINLEY_DLL_API
00195 //   escript::AbstractContinuousDomain* glueFaces(const boost::python::list& meshList,
00196   escript::Domain_ptr glueFaces(const boost::python::list& meshList,
00197                            double safetyFactor=0.2, 
00198                            double tolerance=1.e-8,
00199                            bool optimize=false);
00208   FINLEY_DLL_API
00209 //   escript::AbstractContinuousDomain* joinFaces(const boost::python::list& meshList,
00210   escript::Domain_ptr joinFaces(const boost::python::list& meshList,
00211                         double safetyFactor=0.2, 
00212                         double tolerance=1.e-8,
00213                         bool optimize=false);
00214  
00215 } // end of namespace
00216 #endif