|
|
To compile a full-featured version of GetDP, you will need the Gmsh (http://gmsh.info) library as well as PETSc (from http://www.mcs.anl.gov/petsc/petsc-as/download/). You should also have (preferably optimized) versions of the BLAS and LAPACK libraries on your system (e.g. OpenBLAS, ATLAS or the MKL).
|
|
|
|
|
|
The following instructions assume that
|
|
|
* the GetDP source code is located in the ```getdp``` directory
|
|
|
* the Gmsh source code is located in the ```gmsh``` directory
|
|
|
* the PETSc source code is located in the ```petsc-3.7.4``` directory
|
|
|
* the GetDP source code is located in the `getdp` directory
|
|
|
* the Gmsh source code is located in the `gmsh` directory
|
|
|
* the PETSc source code is located in the `petsc-3.7.4` directory
|
|
|
|
|
|
A source code bundle for GetDP and Gmsh is available [here](http://onelab.info/files/gmsh-getdp-source.zip). You can of course also download the codes separately.
|
|
|
|
|
|
## Compile a minimal Gmsh library
|
|
|
|
|
|
The Gmsh library is used in GetDP to perform efficient field interpolation on general meshes (mesh to mesh interpolation), through the ```ScalarField```, ```VectorField``` and ```TensorField``` family of functions, in conjunction with the ```GmshRead``` operation.
|
|
|
The Gmsh library is used in GetDP to perform efficient field interpolation on general meshes (mesh to mesh interpolation), through the `ScalarField`, `VectorField` and `TensorField` family of functions, in conjunction with the `GmshRead` operation.
|
|
|
|
|
|
* Configure, compile and install a minimal (static) Gmsh library:
|
|
|
|
... | ... | @@ -27,19 +27,20 @@ If you prefer to build a dynamic Gmsh library, replace ```-DENABLE_BUILD_LIB=1`` |
|
|
## Compile a sequential (non-MPI) GetDP version in real arithmetic
|
|
|
|
|
|
* Configure and build PETSc without MPI:
|
|
|
```
|
|
|
|
|
|
```bash
|
|
|
cd petsc-3.7.4
|
|
|
export PETSC_DIR=$PWD
|
|
|
export PETSC_ARCH=real_mumps_seq
|
|
|
./configure --with-clanguage=cxx --with-debugging=0 --with-mpi=0 --with-mpiuni-fortran-binding=0 --download-mumps=yes --with-mumps-serial --with-shared-libraries=0 --with-x=0 --with-ssl=0 --with-scalar-type=real
|
|
|
make
|
|
|
cd ..
|
|
|
```
|
|
|
|
|
|
If your BLAS/LAPACK libraries are not installed in standard locations, you will have to specify their location by hand, e.g. by adding ```--with-blas-lib=/path/to/libblas --with-lapack-lib=/path/to/liblapack```.
|
|
|
|
|
|
* Configure and compile GetDP:
|
|
|
```
|
|
|
|
|
|
```bash
|
|
|
cd getdp
|
|
|
mkdir bin
|
|
|
cd bin
|
... | ... | @@ -47,11 +48,11 @@ cmake -DENABLE_BLAS_LAPACK=0 .. |
|
|
make
|
|
|
```
|
|
|
|
|
|
Setting ```-DENABLE_BLAS_LAPACK=0``` will force GetDP to use the same BLAS/LAPACK libraries as the ones used by PETSc.
|
|
|
Setting `-DENABLE_BLAS_LAPACK=0` will force GetDP to use the same BLAS/LAPACK libraries as the ones used by PETSc.
|
|
|
|
|
|
## Compile a sequential (non-MPI) GetDP version in complex arithmetic
|
|
|
|
|
|
Follow the same steps as above, but change ```--with-scalar-type=real``` with ```--with-scalar-type=complex``` when configuring PETSc.
|
|
|
Follow the same steps as above, but change `--with-scalar-type=real` with `--with-scalar-type=complex` when configuring PETSc.
|
|
|
|
|
|
## Compile an MPI GetDP version in complex arithmetic
|
|
|
|
... | ... | |