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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1384 - (show annotations)
Fri Jan 11 02:29:38 2008 UTC (11 years, 3 months ago) by phornby
Original Path: temp_trunk_copy/finley/src/CPPAdapter/MeshAdapterFactory.h
File MIME type: text/plain
File size: 6726 byte(s)
Make a temp copy of the trunk before checking in the windows changes


1
2 /* $Id$ */
3
4 /*******************************************************
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 #if !defined finley_MeshAdapterFactory_20040526_H
17 #define finley_MeshAdapterFactory_20040526_H
18 #include "system_dep.h"
19
20 extern "C" {
21 #include "../Finley.h"
22 #include "../Mesh.h"
23 #include "../RectangularMesh.h"
24 }
25
26 #include "MeshAdapter.h"
27
28 #include "escript/AbstractContinuousDomain.h"
29
30 #include <boost/python/list.hpp>
31
32 #include <sstream>
33
34 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 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 Read a mesh from a file
53 \param fileName Input - The name of the file.
54 \param integrationOrder Input - order of the quadrature scheme.
55 If integrationOrder<0 the integration order is selected independently.
56 \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
57 If reducedIntegrationOrder<0 the integration order is selected independently.
58 \param optimize Input - switches on the optimization of node labels
59 */
60 FINLEY_DLL_API
61 escript::AbstractContinuousDomain* readMesh(const std::string& fileName,
62 int integrationOrder=-1,
63 int reducedIntegrationOrder=-1,
64 int optimize=0);
65 FINLEY_DLL_API
66 escript::AbstractContinuousDomain* readMeshMPI(const std::string& fileName,
67 int integrationOrder=-1,
68 int reducedIntegrationOrder=-1,
69 int optimize=0);
70 /**
71 \brief
72 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 \param optimize Input - switches on the optimization of node labels
80 */
81 FINLEY_DLL_API
82 escript::AbstractContinuousDomain* readGmsh(const std::string& fileName,
83 int numDim,
84 int integrationOrder=-1,
85 int reducedIntegrationOrder=-1,
86 int optimize=0);
87 /**
88 \brief
89 Creates a rectangular mesh with n0 x n1 x n2 elements over the brick
90 [0,l0] x [0,l1] x [0,l2].
91
92 \param n0,n1,n2 Input - number of elements in each dimension
93 \param order Input - =1 or =2 gives the order of shape function
94 \param l0,l1,l2 Input - length of each side of brick
95 \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 \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 */
103 FINLEY_DLL_API
104 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 int periodic0=0,int periodic1=0,
107 int periodic2=0,
108 int integrationOrder=-1,
109 int reducedIntegrationOrder=-1,
110 int useElementsOnFace=0,
111 int useFullElementOrder=0,
112 int optimize=0);
113 /**
114 \brief
115 Creates a rectangular mesh with n0 x n1 elements over the brick
116 [0,l0] x [0,l1].
117
118 \param n0,n1 Input - number of elements in each dimension
119 \param order Input - =1 or =2 gives the order of shape function
120 \param l0,l1 Input - length of each side of brick
121 \param integrationOrder Input - order of the quadrature scheme.
122 If integrationOrder<0 the integration order is selected
123 independently.
124 \param reducedIntegrationOrder Input - order of the reduced quadrature scheme.
125 If reducedIntegrationOrder<0 the integration order is selected independently.
126 \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 */
130 FINLEY_DLL_API
131 escript::AbstractContinuousDomain* rectangle(int n0=1,int n1=1,int order=1,
132 double l0=1.0, double l1=1.0,
133 int periodic0=false,int periodic1=false,
134 int integrationOrder=-1,
135 int reducedIntegrationOrder=-1,
136 int useElementsOnFace=0,
137 int useFullElementOrder=0,
138 int optimize=0);
139 /**
140 \brief
141 Merges a list of meshes into one list.
142 \param meshList Input - The list of meshes.
143 */
144 FINLEY_DLL_API
145 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 \param safetyFactor Input - ??
152 \param tolerance Input - ??
153 \param optimize Input - switches on the optimization of node labels
154 */
155 FINLEY_DLL_API
156 escript::AbstractContinuousDomain* glueFaces(const boost::python::list& meshList,
157 double safetyFactor=0.2,
158 double tolerance=1.e-8,
159 int optimize=0);
160 /**
161 \brief
162 Detects matching faces in the mesh and replaces them by joint elements.
163 \param meshList Input - The list of meshes.
164 \param safetyFactor Input - ??
165 \param tolerance Input - ??
166 \param optimize Input - switches on the optimization of node labels
167 */
168 FINLEY_DLL_API
169 escript::AbstractContinuousDomain* joinFaces(const boost::python::list& meshList,
170 double safetyFactor=0.2,
171 double tolerance=1.e-8,
172 int optimize=0);
173
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