Difference between revisions of "GetDDM"
(Created page with "GetDDM (a ''General environment for the treatment of Domain Decomposition Methods'') combines GetDP and Gmsh to solve large scale finite element problems using optimiz...") |
|||
Line 1: | Line 1: | ||
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. | 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) | Non-overlapping DDM for time-harmonic waves (Helmholtz and Maxwell) | ||
Overlapping DDM for elastodynamics (soon) | 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. | ||
+ | |||
+ | * Download PETSc from http://www.mcs.anl.gov/petsc/petsc-as/download/. PETSc 3.4 and 3.5 have both been tested. | ||
+ | |||
+ | * Uncompress the PETSc archive (in this example, using PETSc 3.4.4): | ||
+ | <blockquote> | ||
+ | tar zxvf petsc-3.4.4.tar.gz | ||
+ | </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: | ||
+ | <blockquote> | ||
+ | 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 .. | ||
+ | </blockquote> | ||
+ | Remove the <code>--with-scalar-type=complex</code> to build in real arithmetic. For additional configuration options, run <code>./configure --help</code>. | ||
+ | |||
+ | * Download the Gmsh and the GetDP source code (username: getdp, password: getdp): | ||
+ | <blockquote> | ||
+ | svn co https://geuz.org/svn/gmsh/trunk gmsh | ||
+ | svn co https://geuz.org/svn/getdp/trunk getdp | ||
+ | </blockquote> | ||
+ | |||
+ | * Configure, compile and install a minimal Gmsh library (it will be used by GetDP): | ||
+ | <blockquote> | ||
+ | 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 ../.. | ||
+ | </blockquote> | ||
+ | |||
+ | * Configure and compile the MPI version of GetDP (change CC, CXX and FC depending on your MPI installation): | ||
+ | <blockquote> | ||
+ | cd getdp | ||
+ | mkdir bin | ||
+ | cd bin | ||
+ | cmake -DENABLE_MPI=1 .. | ||
+ | make | ||
+ | cd ../.. | ||
+ | </blockquote> | ||
+ | |||
+ | * Configure and compile the MPI version of Gmsh (need to disable Metis due to version clash with PETSc): | ||
+ | <blockquote> | ||
+ | cd gmsh | ||
+ | mkdir bin | ||
+ | cd bin | ||
+ | cmake -DENABLE_MPI=1 -DENABLE_METIS=0 .. | ||
+ | make | ||
+ | </blockquote> | ||
+ | |||
+ | == References == | ||
+ | |||
+ | papier IEEE et Comm Comput Phys. |
Revision as of 13:48, 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.
- Download PETSc from http://www.mcs.anl.gov/petsc/petsc-as/download/. PETSc 3.4 and 3.5 have both been tested.
- Uncompress the PETSc archive (in this example, using PETSc 3.4.4):
tar zxvf petsc-3.4.4.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 setup. Make sure that mpicc, mpicxx and mpif90 are in your path. Then run:
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 ..
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):
svn co https://geuz.org/svn/gmsh/trunk gmsh svn co https://geuz.org/svn/getdp/trunk getdp
- Configure, compile and install a minimal Gmsh library (it will be used by GetDP):
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 ../..
- Configure and compile the MPI version of GetDP (change CC, CXX and FC depending on your MPI installation):
cd getdp mkdir bin cd bin cmake -DENABLE_MPI=1 .. make cd ../..
- Configure and compile the MPI version of Gmsh (need to disable Metis due to version clash with PETSc):
cd gmsh mkdir bin cd bin cmake -DENABLE_MPI=1 -DENABLE_METIS=0 .. make
References
papier IEEE et Comm Comput Phys.