/[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 1059 - (hide annotations)
Fri Mar 23 11:01:53 2007 UTC (12 years, 1 month ago) by gross
Original Path: trunk/finley/src/CPPAdapter/MeshAdapterFactory.h
File MIME type: text/plain
File size: 7309 byte(s)
first steps toward reduced element integration order. The escript bit is done but the finley part still needs work.
1 jgs 121 /* $Id$ */
2 jgs 82 /*
3 elspeth 626 ************************************************************
4     * Copyright 2006 by ACcESS MNRF *
5     * *
6     * http://www.access.edu.au *
7     * Primary Business: Queensland, Australia *
8     * Licensed under the Open Software License version 3.0 *
9     * http://www.opensource.org/licenses/osl-3.0.php *
10     * *
11     ************************************************************
12 jgs 82 */
13 jgs 472
14 jgs 82 #if !defined finley_MeshAdapterFactory_20040526_H
15     #define finley_MeshAdapterFactory_20040526_H
16 woo409 757 #include "system_dep.h"
17 jgs 82
18 jgs 472 extern "C" {
19 robwdcock 682 #include "../Finley.h"
20     #include "../Mesh.h"
21     #include "../RectangularMesh.h"
22 jgs 472 }
23    
24 jgs 203 #include "MeshAdapter.h"
25 jgs 82
26 robwdcock 682 #include "escript/AbstractContinuousDomain.h"
27 jgs 82
28     #include <boost/python/list.hpp>
29    
30 jgs 472 #include <sstream>
31    
32 jgs 82 namespace finley {
33     /**
34     \brief
35     A suite of factory methods for creating various MeshAdapters.
36    
37     Description:
38     A suite of factory methods for creating various MeshAdapters.
39     */
40    
41     /**
42     \brief
43     Read a mesh from a file
44     \param fileName Input - The name of the file.
45 jgs 121 \param integrationOrder Input - order of the quadrature scheme.
46     If integrationOrder<0 the integration order is selected independently.
47 gross 1059 \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
48     If reducedIntegrationOrder<0 the integration order is selected independently.
49     \param optimizeLabeling Input - switches on the optimization of node labels
50 jgs 82 */
51 woo409 757 FINLEY_DLL_API
52 jgs 82 escript::AbstractContinuousDomain* readMesh(const std::string& fileName,
53 gross 1059 int integrationOrder=-1,
54     int reducedIntegrationOrder=-1,
55     bool optimizeLabeling=true);
56 jgs 82 /**
57     \brief
58 gross 934 Read a gmsh mesh file
59     \param fileName Input - The name of the file.
60     \param numDim Input - spatial dimension
61     \param integrationOrder Input - order of the quadrature scheme.
62     If integrationOrder<0 the integration order is selected independently.
63     \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
64     If reducedIntegrationOrder<0 the integration order is selected independently.
65     \param optimizeLabeling Input - switches on the optimization of node labels
66     */
67     FINLEY_DLL_API
68     escript::AbstractContinuousDomain* readGmsh(const std::string& fileName,
69     int numDim,
70     int integrationOrder=-1,
71     int reducedIntegrationOrder=-1,
72     bool optimizeLabeling=true);
73     /**
74     \brief
75 jgs 123 Creates a rectangular mesh with n0 x n1 x n2 elements over the brick
76     [0,l0] x [0,l1] x [0,l2].
77 jgs 82
78 jgs 123 \param n0,n1,n2 Input - number of elements in each dimension
79 jgs 82 \param order Input - =1 or =2 gives the order of shape function
80 jgs 123 \param l0,l1,l2 Input - length of each side of brick
81 gross 1059 \param integrationOrder Input - order of the quadrature scheme.
82     If integrationOrder<0 the integration order is selected independently.
83     \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
84     If reducedIntegrationOrder<0 the integration order is selected independently.
85 jgs 121 \param useElementsOnFace Input - whether or not to use elements on face
86     \param periodic0, periodic1, periodic2 Input - whether or not boundary
87     conditions of the dimension are periodic
88 jgs 82 */
89 woo409 757 FINLEY_DLL_API
90 jgs 123 escript::AbstractContinuousDomain* brick(int n0=1,int n1=1,int n2=1,int order=1,
91     double l0=1.0,double l1=1.0,double l2=1.0,
92 jgs 82 int periodic0=0,int periodic1=0,
93     int periodic2=0,
94     int integrationOrder=-1,
95 gross 1059 int reducedIntegrationOrder=-1,
96 jgs 82 int useElementsOnFace=0);
97     /**
98 jgs 121 \brief
99 jgs 123 Creates a rectangular mesh with n0 x n1 elements over the brick
100     [0,l0] x [0,l1].
101 jgs 82
102 jgs 123 \param n0,n1 Input - number of elements in each dimension
103 jgs 82 \param order Input - =1 or =2 gives the order of shape function
104 jgs 123 \param l0,l1 Input - length of each side of brick
105 jgs 82 \param integrationOrder Input - order of the quadrature scheme.
106     If integrationOrder<0 the integration order is selected
107     independently.
108 gross 1059 \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
109     If reducedIntegrationOrder<0 the integration order is selected independently.
110 jgs 121 \param periodic0, periodic1 Input - whether or not the boundary
111     conditions of the dimension are periodic
112     \param useElementsOnFace Input - whether or not to use elements on face
113 jgs 82 */
114 woo409 757 FINLEY_DLL_API
115 jgs 123 escript::AbstractContinuousDomain* rectangle(int n0=1,int n1=1,int order=1,
116     double l0=1.0, double l1=1.0,
117 jgs 82 int periodic0=false,int periodic1=false,
118     int integrationOrder=-1,
119 gross 1059 int reducedIntegrationOrder=-1,
120 jgs 82 int useElementsOnFace=false);
121     /**
122     \brief
123     Creates an equidistant mesh with n elements over the interval [0,l].
124 jgs 123 \param n0 Input - number of elements
125 jgs 82 \param order Input - =1 or =2 gives the order of shape function.
126 jgs 123 \param l0 Input - length of the brick
127 jgs 82 \param integrationOrder Input - order of the quadrature scheme.
128     If integrationOrder<0 the integration order is selected
129     independently.
130 gross 1059 \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
131     If reducedIntegrationOrder<0 the integration order is selected independently.
132 jgs 121 \param periodic0 Input - whether or not the boundary conditions are
133     periodic
134     \param useElementsOnFace Input - whether or not to use the elements
135     on the face
136 jgs 82 */
137 woo409 757 FINLEY_DLL_API
138 jgs 123 escript::AbstractContinuousDomain* interval(int n0=1,int order=1,double l0=1.0,
139 jgs 82 int periodic0=false,
140     int integrationOrder=-1,
141 gross 1059 int reducedIntegrationOrder=-1,
142 jgs 82 int useElementsOnFace=false);
143     /**
144     \brief
145     Merges a list of meshes into one list.
146     \param meshList Input - The list of meshes.
147     */
148 woo409 757 FINLEY_DLL_API
149 jgs 82 escript::AbstractContinuousDomain* meshMerge(const boost::python::list& meshList);
150     /**
151     \brief
152     Detects matching faces in the mesh, removes them from the mesh
153     and joins the elements touched by the face elements.
154     \param meshList Input - The list of meshes.
155 jgs 121 \param safetyFactor Input - ??
156 jgs 82 \param tolerance Input - ??
157 gross 1059 \param optimizeLabeling Input - switches on the optimization of node labels
158 jgs 82 */
159 woo409 757 FINLEY_DLL_API
160 jgs 82 escript::AbstractContinuousDomain* glueFaces(const boost::python::list& meshList,
161     double safetyFactor=0.2,
162 gross 1059 double tolerance=1.e-8,
163     bool optimizeLabeling=true);
164 jgs 82 /**
165     \brief
166     Detects matching faces in the mesh and replaces them by joint elements.
167     \param meshList Input - The list of meshes.
168 jgs 121 \param safetyFactor Input - ??
169 jgs 82 \param tolerance Input - ??
170 gross 1059 \param optimizeLabeling Input - switches on the optimization of node labels
171 jgs 82 */
172 woo409 757 FINLEY_DLL_API
173 jgs 82 escript::AbstractContinuousDomain* joinFaces(const boost::python::list& meshList,
174 jgs 121 double safetyFactor=0.2,
175 gross 1059 double tolerance=1.e-8,
176     bool optimizeLabeling=true);
177 jgs 82
178     } // end of namespace
179     #endif

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26