/[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 1807 - (hide annotations)
Thu Sep 25 01:04:51 2008 UTC (10 years, 7 months ago) by ksteube
Original Path: trunk/finley/src/CPPAdapter/MeshAdapterFactory.h
File MIME type: text/plain
File size: 6537 byte(s)
The new MPI parallel ReadMesh is now the default after having passed
all tests both with and without MPI.
If you have been using ReadMesh you should notice no difference.
If you were using ReadMeshMPI then change to ReadMesh.

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 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 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 jgs 82 /**
66     \brief
67 gross 934 Read a gmsh mesh file
68     \param fileName Input - The name of the file.
69     \param numDim Input - spatial dimension
70     \param integrationOrder Input - order of the quadrature scheme.
71     If integrationOrder<0 the integration order is selected independently.
72     \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
73     If reducedIntegrationOrder<0 the integration order is selected independently.
74 ksteube 1312 \param optimize Input - switches on the optimization of node labels
75 gross 934 */
76     FINLEY_DLL_API
77     escript::AbstractContinuousDomain* readGmsh(const std::string& fileName,
78     int numDim,
79     int integrationOrder=-1,
80     int reducedIntegrationOrder=-1,
81 ksteube 1312 int optimize=0);
82 gross 934 /**
83     \brief
84 jgs 123 Creates a rectangular mesh with n0 x n1 x n2 elements over the brick
85     [0,l0] x [0,l1] x [0,l2].
86 jgs 82
87 jgs 123 \param n0,n1,n2 Input - number of elements in each dimension
88 jgs 82 \param order Input - =1 or =2 gives the order of shape function
89 jgs 123 \param l0,l1,l2 Input - length of each side of brick
90 gross 1059 \param integrationOrder Input - order of the quadrature scheme.
91     If integrationOrder<0 the integration order is selected independently.
92     \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
93     If reducedIntegrationOrder<0 the integration order is selected independently.
94 jgs 121 \param useElementsOnFace Input - whether or not to use elements on face
95     \param periodic0, periodic1, periodic2 Input - whether or not boundary
96     conditions of the dimension are periodic
97 jgs 82 */
98 woo409 757 FINLEY_DLL_API
99 jgs 123 escript::AbstractContinuousDomain* brick(int n0=1,int n1=1,int n2=1,int order=1,
100     double l0=1.0,double l1=1.0,double l2=1.0,
101 jgs 82 int periodic0=0,int periodic1=0,
102     int periodic2=0,
103     int integrationOrder=-1,
104 gross 1059 int reducedIntegrationOrder=-1,
105 ksteube 1312 int useElementsOnFace=0,
106     int useFullElementOrder=0,
107     int optimize=0);
108 jgs 82 /**
109 jgs 121 \brief
110 jgs 123 Creates a rectangular mesh with n0 x n1 elements over the brick
111     [0,l0] x [0,l1].
112 jgs 82
113 jgs 123 \param n0,n1 Input - number of elements in each dimension
114 jgs 82 \param order Input - =1 or =2 gives the order of shape function
115 jgs 123 \param l0,l1 Input - length of each side of brick
116 jgs 82 \param integrationOrder Input - order of the quadrature scheme.
117     If integrationOrder<0 the integration order is selected
118     independently.
119 gross 1059 \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
120     If reducedIntegrationOrder<0 the integration order is selected independently.
121 jgs 121 \param periodic0, periodic1 Input - whether or not the boundary
122     conditions of the dimension are periodic
123     \param useElementsOnFace Input - whether or not to use elements on face
124 jgs 82 */
125 woo409 757 FINLEY_DLL_API
126 jgs 123 escript::AbstractContinuousDomain* rectangle(int n0=1,int n1=1,int order=1,
127     double l0=1.0, double l1=1.0,
128 jgs 82 int periodic0=false,int periodic1=false,
129     int integrationOrder=-1,
130 gross 1059 int reducedIntegrationOrder=-1,
131 ksteube 1312 int useElementsOnFace=0,
132     int useFullElementOrder=0,
133     int optimize=0);
134 jgs 82 /**
135     \brief
136     Merges a list of meshes into one list.
137     \param meshList Input - The list of meshes.
138     */
139 woo409 757 FINLEY_DLL_API
140 jgs 82 escript::AbstractContinuousDomain* meshMerge(const boost::python::list& meshList);
141     /**
142     \brief
143     Detects matching faces in the mesh, removes them from the mesh
144     and joins the elements touched by the face elements.
145     \param meshList Input - The list of meshes.
146 jgs 121 \param safetyFactor Input - ??
147 jgs 82 \param tolerance Input - ??
148 ksteube 1312 \param optimize Input - switches on the optimization of node labels
149 jgs 82 */
150 woo409 757 FINLEY_DLL_API
151 jgs 82 escript::AbstractContinuousDomain* glueFaces(const boost::python::list& meshList,
152     double safetyFactor=0.2,
153 gross 1059 double tolerance=1.e-8,
154 ksteube 1312 int optimize=0);
155 jgs 82 /**
156     \brief
157     Detects matching faces in the mesh and replaces them by joint elements.
158     \param meshList Input - The list of meshes.
159 jgs 121 \param safetyFactor Input - ??
160 jgs 82 \param tolerance Input - ??
161 ksteube 1312 \param optimize Input - switches on the optimization of node labels
162 jgs 82 */
163 woo409 757 FINLEY_DLL_API
164 jgs 82 escript::AbstractContinuousDomain* joinFaces(const boost::python::list& meshList,
165 jgs 121 double safetyFactor=0.2,
166 gross 1059 double tolerance=1.e-8,
167 ksteube 1312 int optimize=0);
168 jgs 82
169     } // end of namespace
170     #endif

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26