ESYS13  Revision_
MeshAdapterFactory.h
Go to the documentation of this file.
00001 
00002 /*******************************************************
00003 *
00004 * Copyright (c) 2003-2012 by University of Queensland
00005 * Earth Systems Science Computational Center (ESSCC)
00006 * http://www.uq.edu.au/esscc
00007 *
00008 * Primary Business: Queensland, Australia
00009 * Licensed under the Open Software License version 3.0
00010 * http://www.opensource.org/licenses/osl-3.0.php
00011 *
00012 *******************************************************/
00013 
00014 
00015 #if !defined  finley_MeshAdapterFactory_20040526_H
00016 #define finley_MeshAdapterFactory_20040526_H
00017 #include "system_dep.h"
00018 
00019 extern "C" {
00020 #include "finley/Finley.h"
00021 #include "finley/Mesh.h"
00022 #include "finley/RectangularMesh.h"
00023 }
00024 
00025 #include "MeshAdapter.h"
00026 
00027 #include "escript/AbstractContinuousDomain.h"
00028 
00029 #include <boost/python/list.hpp>
00030 
00031 #include <sstream>
00032 
00033 namespace finley {
00047   FINLEY_DLL_API
00048 /*  escript::AbstractContinuousDomain* loadMesh(const std::string& fileName);*/
00049   escript::Domain_ptr loadMesh(const std::string& fileName);
00060   FINLEY_DLL_API
00061 //   escript::AbstractContinuousDomain* readMesh(const std::string& fileName,
00062    escript::Domain_ptr readMesh(const std::string& fileName,
00063                      int integrationOrder=-1,
00064                      int reducedIntegrationOrder=-1,
00065                                      int optimize=0);
00078   FINLEY_DLL_API
00079 //   escript::AbstractContinuousDomain* readGmsh(const std::string& fileName,
00080   escript::Domain_ptr readGmsh(const std::string& fileName,
00081                      int numDim, 
00082                      int integrationOrder=-1,
00083                      int reducedIntegrationOrder=-1, 
00084                      int optimize=0,
00085                                      int useMacroElements=0);
00086 
00105 //   escript::AbstractContinuousDomain* brick(int n0=1,int n1=1,int n2=1,int order=1,
00106 FINLEY_DLL_API
00107   escript::Domain_ptr brick(int n0=1,int n1=1,int n2=1,int order=1,
00108             double l0=1.0,double l1=1.0,double l2=1.0,
00109             int periodic0=0,int periodic1=0,
00110             int periodic2=0,
00111             int integrationOrder=-1,
00112             int reducedIntegrationOrder=-1,
00113             int useElementsOnFace=0,
00114                     int useFullElementOrder=0,
00115                     int optimize=0, 
00116             const std::vector<double>& points=std::vector<double>(),
00117             const std::vector<int>& tags=std::vector<int>(),
00118             const std::map<std::string, int>& tagnamestonums=std::map<std::string, int>()
00119             );
00120             
00125    FINLEY_DLL_API
00126    escript::Domain_ptr brick_driver(const boost::python::list& args);
00127 
00132    FINLEY_DLL_API
00133    escript::Domain_ptr rectangle_driver(const boost::python::list& args);   
00134    
00135    
00155 //   escript::AbstractContinuousDomain* rectangle(int n0=1,int n1=1,int order=1,
00156 FINLEY_DLL_API
00157   escript::Domain_ptr rectangle(int n0=1,int n1=1,int order=1,
00158                       double l0=1.0, double l1=1.0,
00159                       int periodic0=false,int periodic1=false,
00160                       int integrationOrder=-1,
00161                                       int reducedIntegrationOrder=-1, 
00162                       int useElementsOnFace=0,
00163                                       int useFullElementOrder=0,
00164                                       int optimize=0,
00165                       const std::vector<double>& points=std::vector<double>(),
00166                       const std::vector<int>& tags=std::vector<int>(),
00167                       const std::map<std::string, int>& tagnamestonums=std::map<std::string, int>()
00168                       );
00174   FINLEY_DLL_API
00175 //   escript::AbstractContinuousDomain* meshMerge(const boost::python::list& meshList);
00176   escript::Domain_ptr meshMerge(const boost::python::list& meshList);
00186   FINLEY_DLL_API
00187 //   escript::AbstractContinuousDomain* glueFaces(const boost::python::list& meshList,
00188   escript::Domain_ptr glueFaces(const boost::python::list& meshList,
00189                double safetyFactor=0.2, 
00190                double tolerance=1.e-8,
00191                            int optimize=0);
00200   FINLEY_DLL_API
00201 //   escript::AbstractContinuousDomain* joinFaces(const boost::python::list& meshList,
00202   escript::Domain_ptr joinFaces(const boost::python::list& meshList,
00203             double safetyFactor=0.2, 
00204             double tolerance=1.e-8,
00205                         int optimize=0);
00206  
00207 } // end of namespace
00208 #endif