Skip to content
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
102 lines (71 sloc) 4.95 KB
Metadata-Version: 1.1
Name: petgem
Version: 0.30.48
Summary: Parallel python code for electromagnetic modeling in geophysics
Author: Octavio Castillo Reyes
License: GPLv3.0
Description-Content-Type: UNKNOWN
Description: petgem
petgem is a parallel python code for 3D Controlled-Source
Electromagnetic Method (3D CSEM) in geophysics using edge finite
elements (Nedelec finite elements).
PETGEM is known to run on various flavors of Linux clusters. Its requirements are:
* `PETSc <>`__ (builded version for **COMPLEX-VALUED NUMBERS**) for the use of direct/iterative parallel solvers
* `Python 3 <>`__ (versions 3.5.2 and 3.6.3 have been tested)
* `Numpy <>`__ for arrays manipulation
* `Scipy <>`__ for numerical operations
* `Blessings <>`_ for terminal styling and positioning
* `Sphinx <>`__ and `LaTeX <>`__ (textlive) to generate documentation
* `Petsc4py <>`__ for parallel computations on distributed-memory platforms. It allows the use of parallel direct/iterative solvers from `PETSc <>`_
On Linux, consult the package manager of your preference. PETGEM can be
used without any installation by running the kernel from the top-level
directory of the distribution.
* Following commands may require root privileges
* Download `PETSc <>`__ (PETSc 3.7 and 3.8 have been tested)
* Uncompress the PETSc archive (in this example, using PETSc 3.8.3)::
$ tar zxvf petsc-3.8.3.tar.gz
* Configure and build PETSc. The configuration options depend on the calculations you want to perform (complex- or real-valued) as well as your compiler/MPI/Blas/Lapack setup. For PETGEM executions, **PETSC MUST BE BUILD FOR COMPLEX-VALUED NUMBERS**. In order to avoid incompatibilities between PETSC, petsc4py and PETGEM, we highly recommend the following configuration lines. Please, visit PETSc website for advanced configuration options. If you have a clean environment (not working MPI/Blas/Lapack), then run::
$ cd petsc-3.8.3
$ export PETSC_DIR=$PWD
$ export PETSC_ARCH=arch-linux2-c-debug
* If you do not want support for MUMPS, run following configure line::
$ ./configure --with-cc=gcc --with-cxx=g++ --with-fc=gfortran --download-mpich --download-fblaslapack --with-scalar-type=complex
* If you want support for MUMPS, please add following options to previous configure line::
$ --download-mumps --download-scalapack --download-parmetis --download-metis --download-ptscotch --download-cmake
* Then, build and install PETSc::
$ make $PETSC_DIR $PETSC_ARCH test
$ make $PETSC_DIR $PETSC_ARCH streams
* Ensure your ``mpicc`` compiler wrapper is on your search path::
$ export PATH="${PETSC_DIR}/${PETSC_ARCH}/bin:${PATH}"
* Ensure you have a Numpy installed::
$ pip3 install numpy
* And finally, install PETGEM with its dependencies (`Scipy <>`_ , `Blessings <>`__, `Sphinx <>`__, `Petsc4py <>`__) by typing::
$ pip3 install petgem
If petgem been significant to a project that leads to an academic
publication, please acknowledge that fact by citing the project:
* Castillo-Reyes, O., de la Puente, J., Cela, J.M. (2017).
*Three-Dimensional CSEM Modelling on Unstructured Tetrahedral Meshes
Using Edge Finite Elements*, Communications in Computer and
Information Science, vol 697: 247-256. ISBN 978-3-319-57971-9
Springer, Cham.
Keywords: 3D CSEM, edge finite elements, HPC, petsc, petsc4py.
Platform: Linux
Classifier: Development Status :: 3 - Alpha
Classifier: License :: Free for non-commercial use
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Software Development :: Libraries
Classifier: Operating System :: POSIX :: Linux
You can’t perform that action at this time.