Difference between revisions of "GetDDM"

From ONELAB
Jump to: navigation, search
(Parallel version build)
(Parallel version build)
Line 21: Line 21:
 
<blockquote><syntaxhighlight lang="bash">
 
<blockquote><syntaxhighlight lang="bash">
 
tar zxvf petsc-3.4.4.tar.gz
 
tar zxvf petsc-3.4.4.tar.gz
</blockquote>
+
</syntaxhighlight></blockquote>
  
 
* 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 setup. Make sure that '''mpicc''', '''mpicxx''' and '''mpif90''' are in your path. Then run:
 
* 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 setup. Make sure that '''mpicc''', '''mpicxx''' and '''mpif90''' are in your path. Then run:
Line 31: Line 31:
 
make
 
make
 
cd ..
 
cd ..
</blockquote>
+
</syntaxhighlight></blockquote>
 
Remove the <code>--with-scalar-type=complex</code> to build in real arithmetic. For additional configuration options, run <code>./configure --help</code>.
 
Remove the <code>--with-scalar-type=complex</code> to build in real arithmetic. For additional configuration options, run <code>./configure --help</code>.
  
Line 38: Line 38:
 
svn co https://geuz.org/svn/gmsh/trunk gmsh
 
svn co https://geuz.org/svn/gmsh/trunk gmsh
 
svn co https://geuz.org/svn/getdp/trunk getdp
 
svn co https://geuz.org/svn/getdp/trunk getdp
</blockquote>
+
</syntaxhighlight></blockquote>
  
 
* Configure, compile and install a minimal Gmsh library (it will be used by GetDP):
 
* Configure, compile and install a minimal Gmsh library (it will be used by GetDP):
Line 49: Line 49:
 
sudo make install/fast
 
sudo make install/fast
 
cd ../..
 
cd ../..
</blockquote>
+
</syntaxhighlight></blockquote>
  
 
* Configure and compile the MPI version of GetDP (change CC, CXX and FC depending on your MPI installation):
 
* Configure and compile the MPI version of GetDP (change CC, CXX and FC depending on your MPI installation):
Line 59: Line 59:
 
make
 
make
 
cd ../..
 
cd ../..
</blockquote>
+
</syntaxhighlight></blockquote>
  
 
* Configure and compile the MPI version of Gmsh (need to disable Metis due to version clash with PETSc):
 
* Configure and compile the MPI version of Gmsh (need to disable Metis due to version clash with PETSc):
Line 68: Line 68:
 
cmake -DENABLE_MPI=1 -DENABLE_METIS=0 ..
 
cmake -DENABLE_MPI=1 -DENABLE_METIS=0 ..
 
make
 
make
</blockquote>
+
</syntaxhighlight></blockquote>
  
 
== References ==
 
== References ==
  
 
papier IEEE et Comm Comput Phys.
 
papier IEEE et Comm Comput Phys.

Revision as of 14:50, 1 September 2014

GetDDM (a General environment for the treatment of Domain Decomposition Methods) combines GetDP and Gmsh to solve large scale finite element problems using optimized Schwarz domain decomposition methods.

Examples

Non-overlapping DDM for time-harmonic waves (Helmholtz and Maxwell) Overlapping DDM for elastodynamics (soon)

Precompiled binaries

For demonstration purposes, you can download the serial pre-compiled versions of GetDP and Gmsh bundled for ... The examples will run with these versions, but only in sequential mode. For parallel computations you need to recompile the codes from source.

Parallel version build

For parallel computations you need compile GetDP and Gmsh with MPI support.

  • Install MPI, CMake and Subversion.
  • Uncompress the PETSc archive (in this example, using PETSc 3.4.4):
<syntaxhighlight lang="bash">

tar zxvf petsc-3.4.4.tar.gz

</syntaxhighlight>
  • 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 setup. Make sure that mpicc, mpicxx and mpif90 are in your path. Then run:
<syntaxhighlight lang="bash">

cd petsc-3.4.4 export PETSC_DIR=$PWD export PETSC_ARCH=mpi_mumps_complex ./configure --with-debugging=0 --with-clanguage=cxx --with-shared-libraries=0 --with-x=0 --download-mumps=1 --download-metis=1 --download-parmetis=1 --download-scalapack=1 --download-blacs=1 --with-scalar-type=complex make cd ..

</syntaxhighlight>

Remove the --with-scalar-type=complex to build in real arithmetic. For additional configuration options, run ./configure --help.

  • Download the Gmsh and the GetDP source code (username: getdp, password: getdp):
<syntaxhighlight lang="bash">

svn co https://geuz.org/svn/gmsh/trunk gmsh svn co https://geuz.org/svn/getdp/trunk getdp

</syntaxhighlight>
  • Configure, compile and install a minimal Gmsh library (it will be used by GetDP):
<syntaxhighlight lang="bash">

cd gmsh mkdir lib cd lib cmake -DDEFAULT=0 -DENABLE_PARSER=1 -DENABLE_POST=1 -DENABLE_BUILD_LIB=1 .. make lib sudo make install/fast cd ../..

</syntaxhighlight>
  • Configure and compile the MPI version of GetDP (change CC, CXX and FC depending on your MPI installation):
<syntaxhighlight lang="bash">

cd getdp mkdir bin cd bin cmake -DENABLE_MPI=1 .. make cd ../..

</syntaxhighlight>
  • Configure and compile the MPI version of Gmsh (need to disable Metis due to version clash with PETSc):
<syntaxhighlight lang="bash">

cd gmsh mkdir bin cd bin cmake -DENABLE_MPI=1 -DENABLE_METIS=0 .. make

</syntaxhighlight>

References

papier IEEE et Comm Comput Phys.