/[escript]/trunk/doc/cookbook/escpybas.tex
ViewVC logotype

Annotation of /trunk/doc/cookbook/escpybas.tex

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2657 - (hide annotations)
Thu Sep 10 00:58:19 2009 UTC (11 years, 4 months ago) by jfenwick
File MIME type: application/x-tex
File size: 5324 byte(s)
Fixed some spelling errors.
Added text about parallel vis.

1 ahallam 2411
2     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
3     %
4     % Copyright (c) 2003-2009 by University of Queensland
5     % Earth Systems Science Computational Center (ESSCC)
6     % http://www.uq.edu.au/esscc
7     %
8     % Primary Business: Queensland, Australia
9     % Licensed under the Open Software License version 3.0
10     % http://www.opensource.org/licenses/osl-3.0.php
11     %
12     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
13    
14 ahallam 2494 \section{Escript and Python Basics} \label{sec:escpybas}
15 ahallam 2411
16 jfenwick 2657 The Python scripting language is a powerful and easy to learn environment with a wide variety of applications. \textit{Escript} has been developed as a packaged module for Python specifically to solve complex partial differential equations. As a result, all the conventions and programming syntax associated with Python are coherent with \ESCRIPT. If you are unfamiliar with Python, there are a large number of simple to advanced guides and tutorials availabe online. These texts should provide an introduction that is comprehensive enough for the use of \ESCRIPT. A handful of python tutorials have been listed below.
17 ahallam 2494 \begin{itemize}
18     \item This is a very crisp introduction \url{http://hetland.org/writing/instant-python.html}. It covers everthing you need to get started with \ESCRIPT.
19     \item A nice and easy to follow introduction: \url{http://www.sthurlow.com/python/}
20     \item Another crisp tutorial \url{http://www.zetcode.com/tutorials/pythontutorial/}.
21     \item A very comprehensive tutorial from the python authors: \url{http://www.python.org/doc/2.5.2/tut/tut.html}. It covers much more than what you will ever need for \ESCRIPT.
22     \item Another comprehensive tutorial: \url{http://www.tutorialspoint.com/python/index.htm}
23     \end{itemize}
24    
25 ahallam 2495 \subsection{The \modesys Library Tree}
26 ahallam 2645 The \verb esys library tree has \textbf{3} main modules, \verb escript , \verb finley and \verb pycad .
27 ahallam 2494 \begin{enumerate}
28 ahallam 2495 \item \modescript is the PDE solving module.
29 ahallam 2645 \item \modfinley is the discretisation tool and finite element package.
30     \item \modpycad is a special development for creating irregular domains and models. That are easily interpretable by \esc .
31 ahallam 2494 \end{enumerate}
32 ahallam 2645 Further explanations on each of these is available in the user guide or in the API documentation at \url{https://launchpad.net/escript-finley/+download}. \ESCRIPT is also dependent on a few other open-source packages which are not maintained by the \ESCRIPT development team. These are \modnumpy an array and matrix handling package, \modmpl a simple plotting and visualisation tool, \modvtk the advanced plotting and visualisation package and \verb gmsh which is required by \modpycad. These packages (\textbf{except} for \verb gmsh ) are included with the binary release but may not be the most recent and up to date.
33 ahallam 2494
34 jfenwick 2657 \subsection{File Commands and Operations in \ESCRIPT}
35     A number of common file operations and commands are used throughout this cookbook. It is often advantageous to implement these commands when large numbers of output files are generated or dependencies are located in other locations.
36 ahallam 2494
37     To develop an incrementing file name we can use the following convention. For this example we are going to use the \verb|os.path.join| command to join a subdirectory which already exists with the file name which we want to use for our output. The command is;
38     \begin{verbatim}
39 jfenwick 2657 os.path.join(save_path, "data%03d.xml"%i )
40 ahallam 2494 \end{verbatim}
41     There are two arguments to the \verb join command. The \verb save_path variable is a predefined string pointing to the directory we want to save our data in, for example a single subfolder called \verb data would be defined by;
42     \begin{verbatim}
43     save_path = "data"
44     \end{verbatim}
45     while a subfolder of \verb data called \verb ans_one would be defined by;
46     \begin{verbatim}
47     save_path = "data/ans_one"
48     \end{verbatim}
49 jfenwick 2657 The second argument of \verb join \xspace contains a string which is the filename. We can use the operator \verb|%| to increment our file names with the value \verb|i| our incrementing counter. The substring \verb %03d does this by defining the following parameters;
50 ahallam 2494 \begin{itemize}
51     \item \verb 0 becomes the padding number;
52     \item \verb 3 tells us the amount of padding numbers that are required; and
53     \item \verb d indicates the end of the \verb % operator.
54     \end{itemize}
55 jfenwick 2657 To increment the file name a \verb %i is required directly after the operation the string is involved in. When correctly implemented the output files from this command would be place in the directory defined by \verb save_path as;
56 ahallam 2494 \begin{verbatim}
57     data001.xml
58     data002.xml
59     data003.xml
60     ...
61     \end{verbatim}
62     and so on.
63    
64 ahallam 2634 \subsection{Visualisation and Plotting}
65 jfenwick 2657 \ESCRIPT does not include its own plotting capabilities however it works with a number of free visualisation systems.
66     We will dicsuss two types of systems in this document: \mpl\footnote{\url{http://matplotlib.sourceforge.net/}} and \verb VTK \footnote{\url{http://www.vtk.org/}} visualisation.
67     The \mpl package is based on the \numpy array package and is good for basic graphs and plots. The \verb VTK toolkit allows the \esc data to be exported in a standardised format with powerful visualisation capabilities. This format can be interpreted by many programs. In this cookbook \mayavi \footnote{\url{http://code.enthought.com/projects/mayavi/}} will be used to visualise \verb VTK files.

  ViewVC Help
Powered by ViewVC 1.1.26