00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
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
00049 escript::Domain_ptr loadMesh(const std::string& fileName);
00060 FINLEY_DLL_API
00061
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
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
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
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
00176 escript::Domain_ptr meshMerge(const boost::python::list& meshList);
00186 FINLEY_DLL_API
00187
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
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 }
00208 #endif