/[escript]/trunk/doc/user/pycad.tex
ViewVC logotype

Annotation of /trunk/doc/user/pycad.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1044 - (hide annotations)
Mon Mar 19 07:29:31 2007 UTC (14 years, 1 month ago) by gross
File MIME type: application/x-tex
File size: 8497 byte(s)
clear name tagging is supported now.
1 gross 993 \chapter{The module \pycad}
2     \label{PYCAD CHAP}
3    
4 gross 999
5    
6     \section{Introduction}
7    
8    
9     \section{\pycad Classes}
10     \declaremodule{extension}{esys.pycad}
11 gross 993 \modulesynopsis{Python geometry description and meshing interface}
12    
13 gross 999 \subsection{Primitives}
14 gross 993
15 gross 999 \begin{classdesc}{Point}{}
16    
17     \end{classdesc}
18    
19     \begin{classdesc}{Manifold1D}{}
20    
21     \end{classdesc}
22    
23     \begin{classdesc}{Manifold2D}{}
24    
25     \end{classdesc}
26    
27     \begin{classdesc}{Manifold3D}{}
28    
29     \end{classdesc}
30    
31     %============================================================================================================
32     \subsection{Transformations}
33    
34     Transformations are used to move geometrical objects in the 3-dimensional space:
35    
36     \begin{datadesc}{DEG}
37     The unit of degree. For instance use \code{90*DEG} for $90$ degrees.
38     \end{datadesc}
39    
40     \begin{datadesc}{RAD}
41     The unit of radiant. For instance use \code{math.pi*RAD} for $180$ degrees.
42     \end{datadesc}
43    
44     \begin{classdesc}{Translation}{\optional{b=[0,0,0]}}
45     defines a translation $x \to x+b$. \var{b} can be any object that can be converted
46     into a \numarray object of shape $(3,)$.
47     \end{classdesc}
48    
49     \begin{classdesc}{Rotatation}{\optional{axis=[1,1,1], \optional{ point = [0,0,0], \optional{angle=0*RAD} } } }
50     defines a rotation by \var{angle} around axis through point \var{point} and direction \var{axis}.
51     \var{axis} and \var{point} can be any object that can be converted
52     into a \numarray object of shape $(3,)$.
53     \var{axis} does not have to be normalized but must have positive length. The right hand rule~\cite{RIGHTHANDRULE}
54     applies.
55     \end{classdesc}
56    
57    
58     \begin{classdesc}{Dilation}{\optional{factor=1., \optional{center=[0,0,0]}}}
59     defines a dilation by the expansion/contraction \var{factor} with
60     \var{center} as the dilation center.
61     \var{center} can be any object that can be converted
62     into a \numarray object of shape $(3,)$.
63     \end{classdesc}
64    
65     \begin{classdesc}{Reflection}{\optional{normal=[1,1,1], \optional{offset=0}}}
66     defines a reflection on a plane defined in normal form $n^t x = d$
67     where $n$ is the surface normal \var{normal} and $d$ is the plane \var{offset}.
68     \var{normal} can be any object that can be converted
69     into a \numarray object of shape $(3,)$.
70     \var{normal} does not have to be normalized but must have positive length.
71     \end{classdesc}
72    
73     \subsection{Properties}
74    
75     Property sets are used to bundle a set of geometrical objects in a group. The group
76     is identified by a name. Typically a property set is used to mark
77     subregions with share the same material properties or to mark portions of the boundary.
78     For efficiency, the \Design class object assigns a integer to each of its property sets,
79     a so-called tag \index{tag}. The appropriate tag is attached to the elements at generation time.
80    
81 gross 1044
82 gross 999 \begin{classdesc}{PropertySet}{name,*items}
83     defines a group geometrical objects which can be accessed through a \var{name}
84     The objects in the tuple \var{items} mast all be \ManifoldOneD, \ManifoldTwoD or \ManifoldThreeD objects.
85     \end{classdesc}
86    
87    
88     \begin{methoddesc}[PropertySet]{getManifoldClass}{}
89     returns the manifold class \ManifoldOneD, \ManifoldTwoD or \ManifoldThreeD expected from the items
90     in the property set.
91     \end{methoddesc}
92    
93     \begin{methoddesc}[PropertySet]{getDim}{}
94     returns the spatial dimension of the items
95     in the property set.
96     \end{methoddesc}
97    
98     \begin{methoddesc}[PropertySet]{getName}{}
99     returns the name of the set
100     \end{methoddesc}
101    
102     \begin{methoddesc}[PropertySet]{setName}{name}
103     sets the name. This name should be unique within a \Design.
104     \end{methoddesc}
105    
106     \begin{methoddesc}[PropertySet]{addItem}{*items}
107     adds a tuple of items. They need to be objects of class \ManifoldOneD, \ManifoldTwoD or \ManifoldThreeD.
108     \end{methoddesc}
109    
110     \begin{methoddesc}[PropertySet]{getItems}{}
111     returns the list of items
112     \end{methoddesc}
113    
114     \begin{methoddesc}[PropertySet]{clearItems}{}
115     clears the list of items
116     \end{methoddesc}
117    
118     \begin{methoddesc}[PropertySet]{getTag}{}
119     returns the tag used for this property set
120     \end{methoddesc}
121    
122     \section{Interface to \gmshextern}
123     \declaremodule{extension}{esys.pycad.gmsh}
124     \modulesynopsis{Python geometry description and meshing interface}
125    
126     \begin{classdesc}{Design}{
127     \optional{dim=3, \optional{element_size=1., \optional{order=1, \optional{keep_files=False}}}}}
128     The \class{Design} describes the geometry defined by primitives to be meshed.
129     The \var{dim} specifies the spatial dimension. The argument \var{element_size} defines the global
130     element size which is multiplied by the local scale to set the element size at each \Point.
131     The argument \var{order} defines the element order to be used. If \var{keep_files} is set to
132     \True temporary files a kept otherwise they are removed when the instance of the class is deleted.
133     \end{classdesc}
134    
135    
136     \begin{methoddesc}[Design]{setDim}{\optional{dim=3}}
137     sets the spatial dimension which needs to be $1$, $2$ or $3$.
138     \end{methoddesc}
139    
140     \begin{methoddesc}[Design]{getDim}{}
141     returns the spatial dimension.
142     \end{methoddesc}
143    
144     \begin{methoddesc}[Design]{setElementOrder}{\optional{order=1}}
145     sets the element order which needs to be $1$ or $2$.
146     \end{methoddesc}
147    
148     \begin{methoddesc}[Design]{getElementOrder}{}
149     returns the element order.
150     \end{methoddesc}
151    
152    
153     \begin{methoddesc}[Design]{setElementSize}{\optional{element_size=1}}
154     set the global element size. The local element size at a point is defined as
155     the global element size multipied by the local scale. The element size must be positive.
156     \end{methoddesc}
157    
158    
159     \begin{methoddesc}[Design]{getElementSize}{}
160     returns the global element size.
161     \end{methoddesc}
162    
163     \begin{memberdesc}[Design]{DELAUNAY}
164     the \gmshextern Delauny triangulator.
165     \end{memberdesc}
166    
167     \begin{memberdesc}[Design]{TETGEN}
168     the TetGen~\cite{TETGEN} triangulator.
169     \end{memberdesc}
170    
171     \begin{memberdesc}[Design]{TETGEN}
172     the NETGEN~\cite{NETGEN} triangulator.
173     \end{memberdesc}
174    
175     \begin{methoddesc}[Design]{setKeepFilesOn}{}
176     work files are kept at the end of the generation.
177     \end{methoddesc}
178    
179     \begin{methoddesc}[Design]{setKeepFilesOff}{}
180     work files are deleted at the end of the generation.
181     \end{methoddesc}
182    
183     \begin{methoddesc}[Design]{keepFiles}{}
184     returns \True if work files are kept. Otherwise \False is returned.
185     \end{methoddesc}
186    
187     \begin{methoddesc}[Design]{setScriptFileName}{\optional{name=None}}
188     set the filename for the \gmshextern input script. if no name is given a name with extension "geo" is generated.
189     \end{methoddesc}
190    
191     \begin{methoddesc}[Design]{getScriptFileName}{}
192     returns the name of the file for the \gmshextern script.
193     \end{methoddesc}
194    
195    
196     \begin{methoddesc}[Design]{setMeshFileName}{\optional{name=None}}
197     sets the name for the \gmshextern mesh file. if no name is given a name with extension "msh" is generated.
198     \end{methoddesc}
199    
200     \begin{methoddesc}[Design]{getMeshFileName}{}
201     returns the name of the file for the gmsh msh
202     \end{methoddesc}
203    
204    
205     \begin{methoddesc}[Design]{addItems}{*items}
206     adds the tuple of var{items}. An item can be any primitive or a \class{PropertySet}.
207     \warning{If a \PropertySet is added as an item added object that are not
208     part of a \PropertySet are not considered in the messing.
209     }
210    
211     \end{methoddesc}
212    
213     \begin{methoddesc}[Design]{getItems}{}
214     returns a list of the items
215     \end{methoddesc}
216    
217     \begin{methoddesc}[Design]{clearItems}{}
218     resets the items in design
219     \end{methoddesc}
220    
221     \begin{methoddesc}[Design]{getMeshHandler}{}
222     returns a handle to the mesh. The call of this method generates the mesh from the geometry and
223     returns a mechnism to access the mesh data. In the current implementation this
224     is this method returns a file name for a \gmshextern file containing the mesh data but this may change in
225     later versions.
226     \end{methoddesc}
227    
228     \begin{methoddesc}[Design]{getScriptString}{}
229     returns the \gmshextern script to generate the mesh as string.
230     \end{methoddesc}
231    
232     \begin{methoddesc}[Design]{getCommandString}{}
233     returns the \gmshextern command used to generate the mesh as string..
234     \end{methoddesc}
235    
236     \begin{methoddesc}[Design]{setOptions}{\optional{algorithm=None, \optional{ optimize_quality=True,\optional{ smoothing=1}}}}
237     sets options for the mesh generator. \var{algorithm} sets the algorithm to be used.
238     The algorithm needs to be \var{Design.DELAUNAY}
239     \var{Design.TETGEN}
240     or \var{Design.NETGEN}. By default \var{Design.DELAUNAY} is used. \var{optimize_quality}=\True invokes an optimization of the mesh quality. \var{smoothing} sets the number of smoothing steps to be applied to the mesh.
241     \end{methoddesc}
242    
243     \begin{methoddesc}[Design]{getTagMap}{}
244     returns a \class{TagMap} to map the name \class{PropertySet} in the class to tag numbers generated by \gmshextern.
245     \end{methoddesc}

  ViewVC Help
Powered by ViewVC 1.1.26