Skip to content

Commit

Permalink
Work on documentation.
Browse files Browse the repository at this point in the history
  • Loading branch information
l-korous committed Aug 3, 2014
1 parent 2ba3961 commit 4f0fe17
Show file tree
Hide file tree
Showing 30 changed files with 154 additions and 94 deletions.
Binary file added doc/HermesPresentation.pdf
Binary file not shown.
4 changes: 2 additions & 2 deletions doc/conf.py
Expand Up @@ -207,9 +207,9 @@
# built documents.
#
# The short X.Y version.
version = '2.0'
version = '3.1'
# The full version, including alpha/beta/rc tags.
release = '2.0'
release = '3.1.0'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down
Binary file modified doc/exts/latexcode.pyc
Binary file not shown.
Binary file modified doc/exts/math_dollar.pyc
Binary file not shown.
Binary file modified doc/exts/popup.pyc
Binary file not shown.
Binary file modified doc/exts/sourcecode.pyc
Binary file not shown.
Binary file modified doc/exts/youtube.pyc
Binary file not shown.
10 changes: 4 additions & 6 deletions doc/src/about-hermes.rst
Expand Up @@ -3,16 +3,14 @@ About Hermes

Hermes is a free C++ library for rapid development of
adaptive *hp*-FEM and *hp*-DG solvers for partial differential equations (PDE)
and multiphysics PDE systems. The development team includes the
`hp-FEM group <http://hpfem.org/>`_ at the `University of Nevada, Reno <http://www.unr.edu>`_
and their `collaborators <http://git.hpfem.org/hermes.git/blob/HEAD:/AUTHORS>`_
from numerous places around the globe.
and multiphysics PDE systems. The development team now includes mostly the department of Theory of Electrical Engineering at the University of West Bohemia in Pilsen (contact: korous@rice.zcu.cz), in the past the main development was done by the `hp-FEM group <http://hpfem.org/hermes>`_ at the `University of Nevada, Reno <http://www.unr.edu>`_.
Information about further collaborators from numerous places around the globe can be found at `<http://www.hpfem.org/citing/>`_.

A standard way to use Hermes is to write short C++ user programs
that use the functionality provided by the library, but for
those who prefer to use a graphical interface, the group located at the
University of West Bohemia develops a graphical Engineering tool based on Hermes2D:
`Agros2D <http://hpfem.org/agros2d/>`_.
University of West Bohemia also develops a graphical Engineering tool based on Hermes2D:
`Agros2D <http://agros2d.org/>`_.

.. figure:: img/agros.png
:align: center
Expand Down
6 changes: 2 additions & 4 deletions doc/src/citing-hermes.rst
Expand Up @@ -346,10 +346,8 @@ If you use Hermes for your work, please be so kind to include some of the refere

.. only:: html

Other papers that may be still closer to what you need can be found in the `publications section <http://hpfem.org/people/>`_ of the hp-FEM group home page or on `Pavel Solin's home page <http://hpfem.org/~pavel>`_.
Other papers that may be still closer to what you need can be found in the `citing section <http://www.hpfem.org/citing/>`_ of the hp-FEM group home page.

.. only:: latex

Other papers that may be still closer to what you need can be found in the `publications section
<http://hpfem.org/people/>`_ of the hp-FEM group home page or on `Pavel Solin's home page
<http://hpfem.org/~pavel>`_.
Other papers that may be still closer to what you need can be found in the `citing section <http://www.hpfem.org/citing/>`_ of the hp-FEM group home page.
2 changes: 1 addition & 1 deletion doc/src/collaboration.rst
Expand Up @@ -250,7 +250,7 @@ Git and Github are very powerful tools and we covered just a tiny part
of the story. After you familiarize yourself with the contents of
this simple primer, read more in `Pro Git <http://progit.org/book/>`_.

Also watch this `YouTube video <http://www.youtube.com/watch?v=OFkgSjRnay4>`_
Also watch this `YouTube video <http://www.youtube.com/watch?v=OFkgSjRnay4>`_.
by Scott Chacon.

Good luck and let us know if you think that this document could be improved!
Expand Down
8 changes: 4 additions & 4 deletions doc/src/documentation.rst
Expand Up @@ -32,15 +32,15 @@ Developer Documentation (in Doxygen)
------------------------------------
The documentation is accessible online.

`Hermes - common code <http://hpfem.org/~hermes/hermes/hermes_common/doc/html/index.html>`_
`Hermes - common code <http://hpfem.org/~hermes/hermes/hermes_common/doc/html/index.html>`_.

`Hermes - 2D specific code <http://hpfem.org/~hermes/hermes/hermes2d/doc/html/index.html>`_
`Hermes - 2D specific code <http://hpfem.org/~hermes/hermes/hermes2d/doc/html/index.html>`_.


In order to build developers documentation, install Doxygen::

Linux: sudo apt-get install doxygen
Windows: http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.2-setup.exe
Windows: `<http://ftp.stack.nl/pub/users/dimitri/doxygen-1.8.2-setup.exe>`_.

There are separate Doxygen files for hermes-common (dimension-independent functionality
such as matrix solvers) and for Hermes2D. To build the former, go to the directory
Expand All @@ -58,7 +58,7 @@ Other Resources

See the section "Citing Hermes" in this document for a representative selection of
books and scientific papers about Hermes. A more complete overview of publications
about Hermes and adaptive *hp*-FEM can be found in the `publications section <http://hpfem.org/people/>`_
about Hermes and adaptive *hp*-FEM can be found in the `publications section <http://hpfem.org/people/>`_.
at hpfem.org. The most recent list is probably the one
on `Pavel Solin's publications page <http://hpfem.org/~pavel/public/papers.html>`_.

Expand Down
11 changes: 8 additions & 3 deletions doc/src/getting_started.rst
Expand Up @@ -21,18 +21,23 @@ If something is not clear enough from the comments in the code, please see the s

These examples (located in hermes2d/test_examples) are::

00-quickShow
01-poisson
02-poisson-newton
03-navier-stokes
04-complex-adapt
05-hcurl-adapt
06-system-adapt
07-newton-heat-rk
08-eigenvalue
08-nonlinearity
09-trilinos-nonlinear
10-linear-advection-dg-adapt
11-FCT
12-transient-adapt
11-transient-adapt
12-picard
13-FCT
14-error-calculation
15-adaptivity-matrix-reuse-simple
16-adaptivity-matrix-reuse-layer-interior
And these examples are well-documented showcase examples of how to use Hermes.

Expand Down
Binary file added doc/src/hermes2d/img/presentation.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added doc/src/hermes2d/img/redRow.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 4 additions & 0 deletions doc/src/hermesOO.rst
@@ -1,6 +1,10 @@
Hermes C++ object model - deriving your own specialized classes
---------------------------------------------------------------

.. admonition:: DOXYGEN documentation

Anything that is written here can be much faster and in much more complex way read and understood from the Doxygen documentation - please, please, use it - many an hour has been spent to make Doxygen documentation a useful resource for programmers.

There are several classes that represent some piece of the whole FEM discretization and calculation process that hold the custom informaion for a specific problem.

Be sure to have checked the section "Typical example" that will give you an idea of the basics. This section is more technically focused.
Expand Down
16 changes: 14 additions & 2 deletions doc/src/installation/linux.rst
Expand Up @@ -4,7 +4,19 @@ Linux
Download and compilation
~~~~~~~~~~~~~~~~~~~~~~~~

[NEW] You can download a package directly from **`Hermes launchpad repository<https://launchpad.net/~lukas-korous/+archive/ubuntu/hermes>`_**
.. figure:: ../hermes2d/img/redRow.jpg
:align: center
:scale: 100%
:figclass: align-center

.. admonition:: [NEW] - debian packages on Launchpad

You can download a package directly from `<https://launchpad.net/~lukas-korous/+archive/ubuntu/hermes>`_.

.. figure:: ../hermes2d/img/redRow.jpg
:align: center
:scale: 100%
:figclass: align-center

The rest of the instructions here are for building Hermes from source.

Expand All @@ -26,7 +38,7 @@ For thread caching memory allocator from Google, see

- TCMalloc

- Get TCMalloc from the SVN repository at http://code.google.com/p/gperftools/source/checkout
- Get TCMalloc from the SVN repository at `<http://code.google.com/p/gperftools/source/checkout>`_.
- Make & install

To obtain the source code, clone the Git repository from Github::
Expand Down
4 changes: 2 additions & 2 deletions doc/src/installation/mac.rst
Expand Up @@ -19,7 +19,7 @@ application which allows you to easily install and manage UNIX
libraries and applications on your Mac) by doing the following:

(a) Download and install MacPorts from
http://www.macports.org/install.php.
`<http://www.macports.org/install.php>`_.
(b) Do 'sudo port install suitesparse glew'.
(c) If you don't already have git installed, do
'sudo port install git'.
Expand All @@ -31,7 +31,7 @@ above. Change to the directory where you want
to download the Hermes source and clone the git repository either
from the hpfem.org server::

git clone http://git.hpfem.org/git/hermes.git
git clone `<http://git.hpfem.org/git/hermes.git>`_.

or from Github::

Expand Down
10 changes: 4 additions & 6 deletions doc/src/installation/matrix_solvers/mumps.rst
@@ -1,9 +1,7 @@
Mumps
-----

.. _MUMPS home page: http://graal.ens-lyon.fr/MUMPS/index.php
.. _solvers repository: https://github.com/hpfem/solvers
.. _manual: https://github.com/hpfem/solvers/raw/master/manuals/MUMPS_4.9.2.pdf
.. _MUMPS home page: `<http://graal.ens-lyon.fr/MUMPS/index.php>`_.

Linux
~~~~~
Expand Down Expand Up @@ -46,9 +44,9 @@ Installation of MUMPS using MSVC is rather easy:
- preparation

- download MUMPS from http://mumps.enseeiht.fr/MUMPS_4.10.0.tar.gz (if the link does not work, look for 4.10 version of MUMPS)
- download WinMUMPS utility from http://sourceforge.net/projects/winmumps/
- download a Fortran compiler (e.g. http://software.intel.com/en-us/intel-fortran-studio-xe-evaluation-options)
- download BLAS (Debug/Release, static/dynamic, 32-bit/64-bit as you like) from http://icl.cs.utk.edu/lapack-for-windows/lapack/index.html#libraries
- download WinMUMPS utility from `<http://sourceforge.net/projects/winmumps/>`_.
- download a Fortran compiler (e.g. `<http://software.intel.com/en-us/intel-fortran-studio-xe-evaluation-options)>`_.
- download BLAS (Debug/Release, static/dynamic, 32-bit/64-bit as you like) from `<http://icl.cs.utk.edu/lapack-for-windows/lapack/index.html#libraries>`_.
- you have to have Visual Studio version >= 2008
- you have to have Python 2.6 or 2.7 available

Expand Down
47 changes: 27 additions & 20 deletions doc/src/installation/matrix_solvers/paralution.rst
@@ -1,25 +1,32 @@
PARALUTION
-------
----------

.. _PARALUTION home page: http://www.paralution.com
1. Download PARALUTION from `<http://www.paralution.com/>`_.
2. Compile, build PARALUTION, and copy headers, and libraries so that Hermes's CMake system can find them (as with other dependencies)

1. On Linux, installing PARALUTION to default install directories is sufficient, on Windows some paths have to be set

3. In your CMake.vars file (or directly in CMakeLists.txt) in the root of Hermes (see step 0) add "set(WITH_PARALUTION YES)"

1. It is on by default, so by default one has to include PARALUTION to build Hermes

4. That is it, build Hermes, it will automatically link to PARALUTION, include headers and make it usable.

1) Download PARALUTION from http://www.paralution.com/
2) Compile, build PARALUTION, and copy headers, and libraries so that Hermes's CMake system can find them (as with other dependencies)
2.1) On Linux, installing PARALUTION to default install directories is sufficient, on Windows some paths have to be set
3) In your CMake.vars file (or directly in CMakeLists.txt) in the root of Hermes (see step 0) add "set(WITH_PARALUTION YES)"
3.1) It is on by default, so by default one has to include PARALUTION to build Hermes
4) That is it, build Hermes, it will automatically link to PARALUTION, include headers and make it usable.

How to use PARALUTION
--------------
5) Read the doxygen manual of the classes
5.1) Hermes::Algebra::ParalutionMatrix
5.2) Hermes::Algebra::ParalutionVector
5.3) Hermes::Preconditioners::ParalutionPrecond
5.4) Hermes::Solvers::IterativeParalutionLinearMatrixSolver
5.5) Hermes::Solvers::AMGParalutionLinearMatrixSolver
5.6) and all classes that these inherit from
6) If you want to see Hermes & PARALUTION readily work together, take any test example in the /hermes2d folder in the Hermes root and add one of these lines at the beginning of your main()
6.1) HermesCommonApi.set_integral_param_value(matrixSolverType, SOLVER_PARALUTION_ITERATIVE); // to use iterative solver
6.2) HermesCommonApi.set_integral_param_value(matrixSolverType, SOLVER_PARALUTION_AMG); // to use AMG solver
7) Solver classes of Hermes (NewtonSolver, PicardSolver, LinearSolver, ...) will then take this API setting into account and use PARALUTION as the matrix solver.
---------------------
5. Read the doxygen manual of the classes

1. Hermes::Algebra::ParalutionMatrix
2. Hermes::Algebra::ParalutionVector
3. Hermes::Preconditioners::ParalutionPrecond
4. Hermes::Solvers::IterativeParalutionLinearMatrixSolver
5. Hermes::Solvers::AMGParalutionLinearMatrixSolver
6. and all classes that these inherit from / use

6. If you want to see Hermes & PARALUTION readily work together, take any test example in the /hermes2d folder in the Hermes root and add one of these lines at the beginning of your main()

1. HermesCommonApi.set_integral_param_value(matrixSolverType, SOLVER_PARALUTION_ITERATIVE); // to use iterative solver
2. HermesCommonApi.set_integral_param_value(matrixSolverType, SOLVER_PARALUTION_AMG); // to use AMG solver

7. Solver classes of Hermes (NewtonSolver, PicardSolver, LinearSolver, ...) will then take this API setting into account and use PARALUTION as the matrix solver.
4 changes: 1 addition & 3 deletions doc/src/installation/matrix_solvers/petsc.rst
@@ -1,9 +1,7 @@
PETSc
-----

.. _PETSc home page: http://www.mcs.anl.gov/petsc/
.. _solvers repository: https://github.com/hpfem/solvers
.. _manual: https://github.com/hpfem/solvers/raw/master/manuals/petsc.pdf
.. _PETSc home page: `<http://www.mcs.anl.gov/petsc/>`_.

Linux
~~~~~
Expand Down
6 changes: 1 addition & 5 deletions doc/src/installation/matrix_solvers/superlu.rst
@@ -1,13 +1,9 @@
SuperLU
--------

.. _SuperLU home page: http://crd.lbl.gov/~xiaoye/SuperLU/
.. _solvers repository: https://github.com/hpfem/solvers
.. _manual: https://github.com/hpfem/solvers/raw/master/manuals/SuperLU.pdf

Hermes currently supports two versions of the SuperLU library - the sequential
one and the multithreaded one. Support for the MPI version will be added in the
future. Please visit the `SuperLU home page`_ for more information about the
future. Please visit `<http://crd.lbl.gov/~xiaoye/SuperLU/>`_ for more information about the
library.

Linux
Expand Down
7 changes: 3 additions & 4 deletions doc/src/installation/matrix_solvers/trilinos.rst
@@ -1,9 +1,7 @@
Trilinos
--------

.. _Trilinos home page: http://trilinos.sandia.gov/
.. _solvers repository: https://github.com/hpfem/solvers
.. _manual: https://github.com/hpfem/solvers/raw/master/manuals/Trilinos10.6Tutorial.pdf
.. _Trilinos home page: `<http://trilinos.sandia.gov/>`_.

Linux
~~~~~
Expand Down Expand Up @@ -38,8 +36,9 @@ First of all - to build Trilinos, one needs LAPACK (CLAPACK) (see the optional p
| Go to the Trilinos source directory.
|
| In the following, replace {TPL_LAPACK_LIBRARIES}, {TPL_BLAS_LIBRARIES} with the full path to your lapack.lib and blas.lib without any quotes.
| Also, replace {CMAKE_INSTALL_PREFIX} with either your dependency root, or any other folder where you want to install Trilinos packages.::
| Also, replace {CMAKE_INSTALL_PREFIX} with either your dependency root, or any other folder where you want to install Trilinos packages.
::

mkdir build_dir
cd build_dir
Expand Down
2 changes: 1 addition & 1 deletion doc/src/installation/matrix_solvers/umfpack.rst
@@ -1,7 +1,7 @@
UMFpack
-------

.. _UMFPack home page: http://www.cise.ufl.edu/research/sparse/umfpack/
.. _UMFPack home page: `<http://www.cise.ufl.edu/research/sparse/umfpack/>`_.

Linux
~~~~~
Expand Down

0 comments on commit 4f0fe17

Please sign in to comment.