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