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

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26