/[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 3114 - (hide annotations)
Fri Aug 27 05:26:25 2010 UTC (8 years, 8 months ago) by jfenwick
Original Path: branches/domexper/dudley/src/CPPAdapter/MeshAdapterFactory.h
File MIME type: text/plain
File size: 7245 byte(s)
It doesn't pass all tests but this is major progress

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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26