.. pyOptFEM documentation master file, created by
sphinx-quickstart on Sun Sep 15 03:44:36 2013.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
Welcome to pyOptFEM's documentation!
====================================
**pyOptFEM** is a Python module which aims at measuring and comparing
the performance of three programming techniques for **assembling finite element matrices in 2D and 3D**.
For each of the matrices studied, three assembly versions are available: ``base``, ``OptV1`` and ``OptV2``
Three matrices are currently implemented (more details are given in :ref:`FEM2D-label` and :ref:`FEM3D-label`) :
- **Mass matrix** :
.. math::
\mathbb{M}_{i,j}=\int_{\Omega_h} \varphi_j(q)\ \varphi_i(q)dq,\ \ \forall (i,j) \in \{1,...,\nq\}^2.
- **Stiffness matrix** :
.. math::
\mathbb{S}_{i,j}=\int_{\Omega_h} \nabla\varphi_j(q).\nabla \varphi_i(q)dq,\ \ \forall (i,j) \in \{1,...,\nq\}^2.
- **Elastic stiffness matrix** :
.. math::
\mathbb{K}_{m,l}=\int_{\Omega_h} \underline{\pmb{\epsilon}}^t(\psi_l(q))
\underline{\pmb{\sigma}}(\psi_m(q))dq,
\ \ \forall (m,l) \in \{1,...,d\nq\}^2.
where :math:`d` is the space dimension.
Contents:
.. toctree::
:maxdepth: 2
presentation
benchmarks2D
benchmarks3D
FEM2D
FEM3D
valid2D
valid3D
Quick testing
=============
To test the **pyOptFEM** library, you can run validation tests ``runValids()`` or some benchmarks (see ``runBenchs()``)
Testing and Working
===================
- Ubuntu 12.04 LTS (x86_64) with
- python3.3
- python3.2
- Works on Windows 7 64 bits (???)
Requirements
=============
**pyOptFEM** works with python3.3.
How to install python3.3.2?
A description of how to compile/install python3.3 under Ubuntu 12.04 LTS (x86_64) is given on `François Cuvelier's website `_, (section Python in the left menu) and repeated here.
.. note::
How to install python3.3.2 ::
wget http://www.python.org/ftp/python/3.3.2/Python-3.3.2.tar.bz2
tar jxvf ./Python-3.3.2.tar.bz2
cd Python-3.3.2
./configure --prefix=/opt/python3.3.2
make
sudo make install
As a result, python is installed in ``/opt/python3.3.2`` directory.
For **pyOptFEM**, you need some python modules. To install them you need easy_install which can be installed like this.
.. note::
How to install setuptools module ::
wget --check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-1.1.4.tar.gz
tar zxvf setuptools-1.1.4.tar.gz
cd setuptools-1.1.4
sudo /opt/python3.3.2/bin/python3 setup.py install
For **pyOptFEM**, you need numpy, scipy, sympy and matplotlib. (For matplotlib, the package libfreetype6-dev may be necessary!)
.. note::
How to install scientific computation modules : numpy, scipy, sympy, matplotlib ::
sudo /opt/python3.3.2/bin/easy_install numpy
sudo /opt/python3.3.2/bin/easy_install scipy
sudo /opt/python3.3.2/bin/easy_install sympy
sudo /opt/python3.3.2/bin/easy_install matplotlib
Installation
============
.. note::
To install **pyOptFEM** as root, you should run the following command: ::
/opt/python3.3.2/bin/python3 setup.py install
.. note::
To install **pyOptFEM** as a single user, you should run the following command: ::
/opt/python3.3.2/bin/python3 setup.py install --user
License issues
==============
**pyOptFEM** is published under the terms of the `GNU General Public License `_.
**pyOptFEM** is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
**pyOptFEM** is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
Software using source files of this project or significant parts of it, should include the following attribution notice:
``--------------------------------------------------------------------``
ATTRIBUTION NOTICE:
This product includes software developed for the **pyOptFEM** project at
(C) University Paris XIII, Galilee Institute, LAGA, France.
**pyOptFEM** is a python software package for `P_1`-Lagrange Finite Element Methods in 3D.
The project is maintained by
F. Cuvelier, C. Japhet and G. Scarella.
For Online Documentation and Download we refer to
http://www.math.univ-paris13.fr/~cuvelier
``--------------------------------------------------------------------``
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`