/[escript]/trunk/dudley/src/CPPAdapter/MeshAdapterFactory.h
ViewVC logotype

Annotation of /trunk/dudley/src/CPPAdapter/MeshAdapterFactory.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2895 - (hide annotations)
Fri Jan 29 04:58:16 2010 UTC (9 years, 2 months ago) by caltinay
Original Path: trunk/finley/src/CPPAdapter/MeshAdapterFactory.h
File MIME type: text/plain
File size: 7337 byte(s)
Moved finley's system_dep.h file up to the C level to be able to export two
functions that are used by the dataexporter. Changed include paths and C++
style comments accordingly.

1 ksteube 1312
2     /*******************************************************
3 ksteube 1811 *
4 jfenwick 2881 * Copyright (c) 2003-2010 by University of Queensland
5 ksteube 1811 * Earth Systems Science Computational Center (ESSCC)
6     * http://www.uq.edu.au/esscc
7     *
8     * Primary Business: Queensland, Australia
9     * Licensed under the Open Software License version 3.0
10     * http://www.opensource.org/licenses/osl-3.0.php
11     *
12     *******************************************************/
13 ksteube 1312
14 ksteube 1811
15 jgs 82 #if !defined finley_MeshAdapterFactory_20040526_H
16     #define finley_MeshAdapterFactory_20040526_H
17 caltinay 2895 #include "finley/system_dep.h"
18 jgs 82
19 jgs 472 extern "C" {
20 caltinay 2895 #include "finley/Finley.h"
21     #include "finley/Mesh.h"
22     #include "finley/RectangularMesh.h"
23 jgs 472 }
24    
25 jgs 203 #include "MeshAdapter.h"
26 jgs 82
27 robwdcock 682 #include "escript/AbstractContinuousDomain.h"
28 jgs 82
29     #include <boost/python/list.hpp>
30    
31 jgs 472 #include <sstream>
32    
33 jgs 82 namespace finley {
34     /**
35     \brief
36     A suite of factory methods for creating various MeshAdapters.
37    
38     Description:
39     A suite of factory methods for creating various MeshAdapters.
40     */
41    
42     /**
43     \brief
44 ksteube 1312 recovers mesg from a dump file
45     \param fileName Input - The name of the file.
46     */
47     FINLEY_DLL_API
48 jfenwick 1872 /* escript::AbstractContinuousDomain* loadMesh(const std::string& fileName);*/
49     escript::Domain_ptr loadMesh(const std::string& fileName);
50 ksteube 1312 /**
51     \brief
52 ksteube 1807 Read a mesh from a file. For MPI parallel runs fan out the mesh to multiple processes.
53 jgs 82 \param fileName Input - The name of the file.
54 jgs 121 \param integrationOrder Input - order of the quadrature scheme.
55     If integrationOrder<0 the integration order is selected independently.
56 gross 1059 \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
57     If reducedIntegrationOrder<0 the integration order is selected independently.
58 ksteube 1312 \param optimize Input - switches on the optimization of node labels
59 jgs 82 */
60 woo409 757 FINLEY_DLL_API
61 jfenwick 1872 // escript::AbstractContinuousDomain* readMesh(const std::string& fileName,
62     escript::Domain_ptr readMesh(const std::string& fileName,
63 gross 1059 int integrationOrder=-1,
64     int reducedIntegrationOrder=-1,
65 ksteube 1312 int optimize=0);
66 jgs 82 /**
67     \brief
68 gross 934 Read a gmsh mesh file
69     \param fileName Input - The name of the file.
70     \param numDim Input - spatial dimension
71     \param integrationOrder Input - order of the quadrature scheme.
72     If integrationOrder<0 the integration order is selected independently.
73     \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
74     If reducedIntegrationOrder<0 the integration order is selected independently.
75 ksteube 1312 \param optimize Input - switches on the optimization of node labels
76 gross 934 */
77     FINLEY_DLL_API
78 jfenwick 1872 // escript::AbstractContinuousDomain* readGmsh(const std::string& fileName,
79     escript::Domain_ptr readGmsh(const std::string& fileName,
80 gross 934 int numDim,
81     int integrationOrder=-1,
82     int reducedIntegrationOrder=-1,
83 gross 2722 int optimize=0,
84     int useMacroElements=0);
85 gross 934 /**
86     \brief
87 jgs 123 Creates a rectangular mesh with n0 x n1 x n2 elements over the brick
88     [0,l0] x [0,l1] x [0,l2].
89 jgs 82
90 jgs 123 \param n0,n1,n2 Input - number of elements in each dimension
91 gross 2722 \param order Input - =1, =-1 or =2 gives the order of shape function (-1= macro elements of order 1)
92 jgs 123 \param l0,l1,l2 Input - length of each side of brick
93 gross 1059 \param integrationOrder Input - order of the quadrature scheme.
94     If integrationOrder<0 the integration order is selected independently.
95     \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
96     If reducedIntegrationOrder<0 the integration order is selected independently.
97 jgs 121 \param useElementsOnFace Input - whether or not to use elements on face
98     \param periodic0, periodic1, periodic2 Input - whether or not boundary
99     conditions of the dimension are periodic
100 jfenwick 2519 \param useFullElementOrder
101 gross 2722 \param useMacroElements
102 jfenwick 2519 \param optimize
103 jgs 82 */
104 woo409 757 FINLEY_DLL_API
105 jfenwick 1872 // escript::AbstractContinuousDomain* brick(int n0=1,int n1=1,int n2=1,int order=1,
106     escript::Domain_ptr brick(int n0=1,int n1=1,int n2=1,int order=1,
107 jgs 123 double l0=1.0,double l1=1.0,double l2=1.0,
108 jgs 82 int periodic0=0,int periodic1=0,
109     int periodic2=0,
110     int integrationOrder=-1,
111 gross 1059 int reducedIntegrationOrder=-1,
112 ksteube 1312 int useElementsOnFace=0,
113     int useFullElementOrder=0,
114     int optimize=0);
115 jgs 82 /**
116 jgs 121 \brief
117 jgs 123 Creates a rectangular mesh with n0 x n1 elements over the brick
118     [0,l0] x [0,l1].
119 jgs 82
120 jgs 123 \param n0,n1 Input - number of elements in each dimension
121 gross 2722 \param order Input - =1, =-1 or =2 gives the order of shape function (-1= macro elements of order 1)
122 jgs 123 \param l0,l1 Input - length of each side of brick
123 jgs 82 \param integrationOrder Input - order of the quadrature scheme.
124     If integrationOrder<0 the integration order is selected
125     independently.
126 gross 1059 \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
127     If reducedIntegrationOrder<0 the integration order is selected independently.
128 jgs 121 \param periodic0, periodic1 Input - whether or not the boundary
129     conditions of the dimension are periodic
130     \param useElementsOnFace Input - whether or not to use elements on face
131 jfenwick 2519 \param useFullElementOrder
132     \param optimize
133 jgs 82 */
134 woo409 757 FINLEY_DLL_API
135 jfenwick 1872 // escript::AbstractContinuousDomain* rectangle(int n0=1,int n1=1,int order=1,
136     escript::Domain_ptr rectangle(int n0=1,int n1=1,int order=1,
137 jgs 123 double l0=1.0, double l1=1.0,
138 jgs 82 int periodic0=false,int periodic1=false,
139     int integrationOrder=-1,
140 gross 1059 int reducedIntegrationOrder=-1,
141 ksteube 1312 int useElementsOnFace=0,
142     int useFullElementOrder=0,
143     int optimize=0);
144 jgs 82 /**
145     \brief
146     Merges a list of meshes into one list.
147     \param meshList Input - The list of meshes.
148     */
149 woo409 757 FINLEY_DLL_API
150 jfenwick 1872 // escript::AbstractContinuousDomain* meshMerge(const boost::python::list& meshList);
151     escript::Domain_ptr meshMerge(const boost::python::list& meshList);
152 jgs 82 /**
153     \brief
154     Detects matching faces in the mesh, removes them from the mesh
155     and joins the elements touched by the face elements.
156     \param meshList Input - The list of meshes.
157 jgs 121 \param safetyFactor Input - ??
158 jgs 82 \param tolerance Input - ??
159 ksteube 1312 \param optimize Input - switches on the optimization of node labels
160 jgs 82 */
161 woo409 757 FINLEY_DLL_API
162 jfenwick 1872 // escript::AbstractContinuousDomain* glueFaces(const boost::python::list& meshList,
163     escript::Domain_ptr glueFaces(const boost::python::list& meshList,
164 jgs 82 double safetyFactor=0.2,
165 gross 1059 double tolerance=1.e-8,
166 ksteube 1312 int optimize=0);
167 jgs 82 /**
168     \brief
169     Detects matching faces in the mesh and replaces them by joint elements.
170     \param meshList Input - The list of meshes.
171 jgs 121 \param safetyFactor Input - ??
172 jgs 82 \param tolerance Input - ??
173 ksteube 1312 \param optimize Input - switches on the optimization of node labels
174 jgs 82 */
175 woo409 757 FINLEY_DLL_API
176 jfenwick 1872 // escript::AbstractContinuousDomain* joinFaces(const boost::python::list& meshList,
177     escript::Domain_ptr joinFaces(const boost::python::list& meshList,
178 jgs 121 double safetyFactor=0.2,
179 gross 1059 double tolerance=1.e-8,
180 ksteube 1312 int optimize=0);
181 jgs 82
182     } // end of namespace
183     #endif

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26