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

Contents of /trunk/esys2/finley/src/CPPAdapter/MeshAdapterFactory.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 123 - (show annotations)
Fri Jul 8 04:08:13 2005 UTC (17 years, 8 months ago) by jgs
File MIME type: text/plain
File size: 5347 byte(s)
Merge of development branch back to main trunk on 2005-07-08

1 /* $Id$ */
2 /*
3 ******************************************************************************
4 * *
5 * COPYRIGHT ACcESS 2004 - All Rights Reserved *
6 * *
7 * This software is the property of ACcESS. No part of this code *
8 * may be copied in any form or by any means without the expressed written *
9 * consent of ACcESS. Copying, use or modification of this software *
10 * by any unauthorised person is illegal unless that person has a software *
11 * license agreement with ACcESS. *
12 * *
13 ******************************************************************************
14 */
15
16 #if !defined finley_MeshAdapterFactory_20040526_H
17 #define finley_MeshAdapterFactory_20040526_H
18
19 #include "finley/CPPAdapter/MeshAdapter.h"
20
21 #include "escript/Data/AbstractContinuousDomain.h"
22
23 #include <boost/python/list.hpp>
24
25 namespace finley {
26 /**
27 \brief
28 A suite of factory methods for creating various MeshAdapters.
29
30 Description:
31 A suite of factory methods for creating various MeshAdapters.
32 */
33
34 /**
35 \brief
36 Read a mesh from a file
37 \param fileName Input - The name of the file.
38 \param integrationOrder Input - order of the quadrature scheme.
39 If integrationOrder<0 the integration order is selected independently.
40 */
41 escript::AbstractContinuousDomain* readMesh(const std::string& fileName,
42 int integrationOrder=-1);
43 /**
44 \brief
45 Creates a rectangular mesh with n0 x n1 x n2 elements over the brick
46 [0,l0] x [0,l1] x [0,l2].
47
48 \param n0,n1,n2 Input - number of elements in each dimension
49 \param order Input - =1 or =2 gives the order of shape function
50 \param l0,l1,l2 Input - length of each side of brick
51 \param integrationOrder Input - order of the quadrature scheme.
52 \param useElementsOnFace Input - whether or not to use elements on face
53 \param periodic0, periodic1, periodic2 Input - whether or not boundary
54 conditions of the dimension are periodic
55 */
56 escript::AbstractContinuousDomain* brick(int n0=1,int n1=1,int n2=1,int order=1,
57 double l0=1.0,double l1=1.0,double l2=1.0,
58 int periodic0=0,int periodic1=0,
59 int periodic2=0,
60 int integrationOrder=-1,
61 int useElementsOnFace=0);
62 /**
63 \brief
64 Creates a rectangular mesh with n0 x n1 elements over the brick
65 [0,l0] x [0,l1].
66
67 \param n0,n1 Input - number of elements in each dimension
68 \param order Input - =1 or =2 gives the order of shape function
69 \param l0,l1 Input - length of each side of brick
70 \param integrationOrder Input - order of the quadrature scheme.
71 If integrationOrder<0 the integration order is selected
72 independently.
73 \param periodic0, periodic1 Input - whether or not the boundary
74 conditions of the dimension are periodic
75 \param useElementsOnFace Input - whether or not to use elements on face
76 */
77 escript::AbstractContinuousDomain* rectangle(int n0=1,int n1=1,int order=1,
78 double l0=1.0, double l1=1.0,
79 int periodic0=false,int periodic1=false,
80 int integrationOrder=-1,
81 int useElementsOnFace=false);
82 /**
83 \brief
84 Creates an equidistant mesh with n elements over the interval [0,l].
85 \param n0 Input - number of elements
86 \param order Input - =1 or =2 gives the order of shape function.
87 \param l0 Input - length of the brick
88 \param integrationOrder Input - order of the quadrature scheme.
89 If integrationOrder<0 the integration order is selected
90 independently.
91 \param periodic0 Input - whether or not the boundary conditions are
92 periodic
93 \param useElementsOnFace Input - whether or not to use the elements
94 on the face
95 */
96 escript::AbstractContinuousDomain* interval(int n0=1,int order=1,double l0=1.0,
97 int periodic0=false,
98 int integrationOrder=-1,
99 int useElementsOnFace=false);
100 /**
101 \brief
102 Merges a list of meshes into one list.
103 \param meshList Input - The list of meshes.
104 */
105 escript::AbstractContinuousDomain* meshMerge(const boost::python::list& meshList);
106 /**
107 \brief
108 Detects matching faces in the mesh, removes them from the mesh
109 and joins the elements touched by the face elements.
110 \param meshList Input - The list of meshes.
111 \param safetyFactor Input - ??
112 \param tolerance Input - ??
113 */
114 escript::AbstractContinuousDomain* glueFaces(const boost::python::list& meshList,
115 double safetyFactor=0.2,
116 double tolerance=100.*std::numeric_limits<double>::epsilon());
117 /**
118 \brief
119 Detects matching faces in the mesh and replaces them by joint elements.
120 \param meshList Input - The list of meshes.
121 \param safetyFactor Input - ??
122 \param tolerance Input - ??
123 */
124 escript::AbstractContinuousDomain* joinFaces(const boost::python::list& meshList,
125 double safetyFactor=0.2,
126 double tolerance=100.*std::numeric_limits<double>::epsilon());
127
128 } // end of namespace
129 #endif

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26