/[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 626 - (hide annotations)
Thu Mar 23 02:16:36 2006 UTC (13 years, 1 month ago) by elspeth
Original Path: trunk/finley/src/CPPAdapter/MeshAdapterFactory.h
File MIME type: text/plain
File size: 5022 byte(s)
Copyright information inserted

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    
17 jgs 472 extern "C" {
18     #include "Finley.h"
19     #include "Mesh.h"
20     #include "RectangularMesh.h"
21     }
22    
23 jgs 203 #include "MeshAdapter.h"
24 jgs 82
25 jgs 474 #include "AbstractContinuousDomain.h"
26 jgs 82
27     #include <boost/python/list.hpp>
28    
29 jgs 472 #include <sstream>
30    
31 jgs 82 namespace finley {
32     /**
33     \brief
34     A suite of factory methods for creating various MeshAdapters.
35    
36     Description:
37     A suite of factory methods for creating various MeshAdapters.
38     */
39    
40     /**
41     \brief
42     Read a mesh from a file
43     \param fileName Input - The name of the file.
44 jgs 121 \param integrationOrder Input - order of the quadrature scheme.
45     If integrationOrder<0 the integration order is selected independently.
46 jgs 82 */
47     escript::AbstractContinuousDomain* readMesh(const std::string& fileName,
48     int integrationOrder=-1);
49     /**
50     \brief
51 jgs 123 Creates a rectangular mesh with n0 x n1 x n2 elements over the brick
52     [0,l0] x [0,l1] x [0,l2].
53 jgs 82
54 jgs 123 \param n0,n1,n2 Input - number of elements in each dimension
55 jgs 82 \param order Input - =1 or =2 gives the order of shape function
56 jgs 123 \param l0,l1,l2 Input - length of each side of brick
57 jgs 82 \param integrationOrder Input - order of the quadrature scheme.
58 jgs 121 \param useElementsOnFace Input - whether or not to use elements on face
59     \param periodic0, periodic1, periodic2 Input - whether or not boundary
60     conditions of the dimension are periodic
61 jgs 82 */
62 jgs 123 escript::AbstractContinuousDomain* brick(int n0=1,int n1=1,int n2=1,int order=1,
63     double l0=1.0,double l1=1.0,double l2=1.0,
64 jgs 82 int periodic0=0,int periodic1=0,
65     int periodic2=0,
66     int integrationOrder=-1,
67     int useElementsOnFace=0);
68     /**
69 jgs 121 \brief
70 jgs 123 Creates a rectangular mesh with n0 x n1 elements over the brick
71     [0,l0] x [0,l1].
72 jgs 82
73 jgs 123 \param n0,n1 Input - number of elements in each dimension
74 jgs 82 \param order Input - =1 or =2 gives the order of shape function
75 jgs 123 \param l0,l1 Input - length of each side of brick
76 jgs 82 \param integrationOrder Input - order of the quadrature scheme.
77     If integrationOrder<0 the integration order is selected
78     independently.
79 jgs 121 \param periodic0, periodic1 Input - whether or not the boundary
80     conditions of the dimension are periodic
81     \param useElementsOnFace Input - whether or not to use elements on face
82 jgs 82 */
83 jgs 123 escript::AbstractContinuousDomain* rectangle(int n0=1,int n1=1,int order=1,
84     double l0=1.0, double l1=1.0,
85 jgs 82 int periodic0=false,int periodic1=false,
86     int integrationOrder=-1,
87     int useElementsOnFace=false);
88     /**
89     \brief
90     Creates an equidistant mesh with n elements over the interval [0,l].
91 jgs 123 \param n0 Input - number of elements
92 jgs 82 \param order Input - =1 or =2 gives the order of shape function.
93 jgs 123 \param l0 Input - length of the brick
94 jgs 82 \param integrationOrder Input - order of the quadrature scheme.
95     If integrationOrder<0 the integration order is selected
96     independently.
97 jgs 121 \param periodic0 Input - whether or not the boundary conditions are
98     periodic
99     \param useElementsOnFace Input - whether or not to use the elements
100     on the face
101 jgs 82 */
102 jgs 123 escript::AbstractContinuousDomain* interval(int n0=1,int order=1,double l0=1.0,
103 jgs 82 int periodic0=false,
104     int integrationOrder=-1,
105     int useElementsOnFace=false);
106     /**
107     \brief
108     Merges a list of meshes into one list.
109     \param meshList Input - The list of meshes.
110     */
111     escript::AbstractContinuousDomain* meshMerge(const boost::python::list& meshList);
112     /**
113     \brief
114     Detects matching faces in the mesh, removes them from the mesh
115     and joins the elements touched by the face elements.
116     \param meshList Input - The list of meshes.
117 jgs 121 \param safetyFactor Input - ??
118 jgs 82 \param tolerance Input - ??
119     */
120     escript::AbstractContinuousDomain* glueFaces(const boost::python::list& meshList,
121     double safetyFactor=0.2,
122 jgs 102 double tolerance=100.*std::numeric_limits<double>::epsilon());
123 jgs 82 /**
124     \brief
125     Detects matching faces in the mesh and replaces them by joint elements.
126     \param meshList Input - The list of meshes.
127 jgs 121 \param safetyFactor Input - ??
128 jgs 82 \param tolerance Input - ??
129     */
130     escript::AbstractContinuousDomain* joinFaces(const boost::python::list& meshList,
131 jgs 121 double safetyFactor=0.2,
132 jgs 102 double tolerance=100.*std::numeric_limits<double>::epsilon());
133 jgs 82
134     } // end of namespace
135     #endif

Properties

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

  ViewVC Help
Powered by ViewVC 1.1.26