%******************************************** % FEMTEC 2009 - Software Workshop * % Wednesday January 7, 2009 * % * %******************************************** Wednesday's afternoon will be devoted to a hands-on software workshop. The workshop will feature four selected open-source projects, and its goal is to facilitate a discussion on algorithmic and programming aspects of FEM -- subjects that are extremely important from the practical point of view but rarely discussed in standard FEM conference talks. In order to participate in the workshop, you need to bring your own laptop with the software packages already installed. There will not be time to deal with installation issues during the conference. For each project, a brief description along with the list of required libraries and installation instructions are listed below. Always, there also is a support e-mail address -- please do not hesitate to use it to get help with installation issues. The list of projects follows: FEATFLOW * Description: FeatFlow is an open-source software toolbox for numerical solution of PDEs by the finite element method. The available models include the Poisson equation, scalar conservation laws, as well as the Euler and Navier-Stokes equations of fluid dynamics. In contrast to the previous release FeatFlow 1.3 (http://www.featflow.de), the new version FeatFlow 2 is written in Fortran 90 making use of modern data structures and high-performance computing techniques. A modular design approach simplifies software development and enables users to concentrate on their applications. In this workshop, we will show how to generate a computational mesh and set up a simple benchmark run. Some advanced features, such as dynamic mesh adaptation, will also be presented. * Download and installation: Download the Featflow2 tar file from http://www.featflow.de/download/Featflow2_2.0ALPHA.tar.gz into your home directory, $ wget http://www.featflow.de/download/Featflow2_2.0ALPHA.tar.gz unpack it $ tar xvzf Featflow2_2.0ALPHA.tar.gz Change into the desired application folder, e.g., for Poisson's equation $ cd Featflow/applications/poisson and type $ make (if you use g95 Fortran and GNU gcc compiler) or $ make ALT=ifc (if you use Intel's Fortran and C/C++ Compiler) * Platform: Linux/Unix, Windows, Windows X64 Mac OS X (untested) * Packages required: Fortran 95 and C compiler. The software compiles well with: - g95 (version 0.91 last stable release) and gcc - Intel's Compiler Suite (ifc + icc 9.1, 10.0, 10.1) - Microsoft VisualStudio 2003/2005 with Intel Fortran Compiler Plugin (project files supplied) * Optional packages: - pre-processing tool Grid3 (Java2 required) available at: http://www.feast.tu-dortmund.de/grid-3.0.21.zip Unzip the archive file and run $ java -Xmx512M -jar grid3d.jar - post-processing tool GMV available at: http://www-xdiv.lanl.gov/XCM/gmv/GMVHome.html * Support: matthias.moeller@math.uni-dortmund.de % ----------------------------------------------------------------------- HERMES * Description: Hermes (Higher-order modular finite element system) is a C++/Python library for rapid prototyping of space- and space-time adaptive hp-FEM solvers. Novel PDE-independent adaptivity algorithms allow the user to analyze a large variety of PDE problems ranging from stationary linear equations to complex time-dependent nonlinear multiphysics PDE systems. In the first part of this presentation we will go through a step-by-step tutorial where the participants will learn how to load a mesh, set up finite element spaces, enter variational formulations, solve discrete problems, visualize results, and use automatic h- and hp-adaptivity. In the second part we will demonstrate more advanced features such as the using multiple element types in one computations or space-time adaptive multimesh hp-FEM for transient multiphysics problems. * Download and installation: Download the Hermes tar file from http://spilka.math.unr.edu/projects/hermes2d/ into your home directory, unpack it with the command tar xjvf hermes2d.tar.bz2. Follow these installation instructions: http://spilka.math.unr.edu/projects/hermes2d/wiki/Installation. * Platform: Linux * Packages required: UMFPACK, freeglut, Judy * Support: Jakub Cerveny (jakub.cerveny@gmail.com) % ----------------------------------------------------------------------- PLTMG * Description: PLTMG 10.0 is a package for solving elliptic partial differential equations in general regions of the plane. It is based on continuous piecewise polynomial triangular finite elements (linear, quadratic or cubic), and features adaptive local mesh refinement, multigraph iteration, and pseudo-arclength continuation options for parameter dependencies. It also provides options for solving several classes of optimal control and obstacle problems. The package includes an initial mesh generator and several graphics packages. Support for the Bank-Holst parallel adaptive meshing strategy is also provided. PLTMG is provided as Fortran (and a little C) source code, in both single and double precision versions. The code has interfaces to X-Windows, MPI, and Michael Holst's OpenGL image viewer SG. The X-Windows, MPI, and SG interfaces require libraries that are NOT provided as part of the PLTMG package. * Download and installation: pltmg10.0 is available at netlib and the author's homepage: http://ccom.ucsd.edu/~reb/software.html * Platform: requires Fortran and C compilers * Packages required: (X-Windows/Motif, OpenGL/SG and MPI interfaces are optional) The SG (socket graphics) OpenGL display tool is available from Michael Holst. http://ccom.ucsd.edu/~mholst/codes/index.html MPICH is available from the MPI homepage. http://www.mcs.anl.gov/research/projects/mpich2/ OpenMotif is available from the MotifZone homepage. http://www.motifzone.net/ * Support: Randolph Bank (rbank@ucsd.edu) % ----------------------------------------------------------------------- SYMPY * Description: SymPy (http://sympy.org) is an opensource Python library for symbolic mathematics. It aims to become a full-featured computer algebra system (CAS) while keeping the code as simple as possible in order to be comprehensible and easily extensible. SymPy is written entirely in Python and does not require any external libraries. During the presentation, we'll show a tutorial how to work with SymPy and how to apply it to various problems in scientific computing in general and FEM in particular --- symbolic integration, solvers for systems of linear and nonlinear symbolic equations, factorization, matrices (symbolic LU decomposition, eigenvalues), numerical integration of symbolic integrals, numerical summation, generating C code for symbolic expressions and more, depending on wishes of the audience. * Download and installation: Download the latest release from: http://code.google.com/p/sympy/ unpack: $ tar xzf http://sympy.googlecode.com/files/sympy-0.6.2.tar.gz $ cd sympy and use it from Python: $ python >>> from sympy import Symbol, cos >>> x = Symbol('x') >>> e = 1/cos(x) >>> print e.series(x, 0, 10) 1 + (1/2)*x**2 + (5/24)*x**4 + (61/720)*x**6 + (277/8064)*x**8 + O(x**10) * Platform: Linux, Windows, Mac OS X * Packages required: Python 2.4 or later (no other package is required) * Support: Ondrej Certik (ondrej@certik.cz) % -----------------------------------------------------------------------