ESYS13
Revision_
|
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