Difference between revisions of "GetDP"
(166 intermediate revisions by 6 users not shown) | |||
Line 1: | Line 1: | ||
− | [http://geuz.org/getdp GetDP] is | + | [http://geuz.org/getdp GetDP] is an open source finite element solver using mixed elements to discretize de Rham-type complexes in one, two and three dimensions. GetDP is developed by the [http://ace.montefiore.ulg.ac.be ACE] group from the [http://www.montefiore.ulg.ac.be Montefiore Institute] at the [http://www.ulg.ac.be University of Liège], and is released under the GNU GPL. |
− | = Getting started = | + | == Getting started == |
ONELAB allows to use GetDP as a black-box solver: you don't need to know anything about finite elements or de Rham complexes in order to run your first simulations: | ONELAB allows to use GetDP as a black-box solver: you don't need to know anything about finite elements or de Rham complexes in order to run your first simulations: | ||
− | + | <ol> | |
− | + | <li>Download the ONELAB bundle: | |
− | + | <ul> | |
− | + | <li>Desktop version for [http://onelab.info/files/onelab-Windows64.zip Windows] ([http://onelab.info/files/onelab-Windows32.zip 32 bit]), [http://onelab.info/files/onelab-Linux64.zip Linux] ([http://onelab.info/files/onelab-Linux32.zip 32 bit]) and [http://onelab.info/files/onelab-MacOSX.dmg MacOS] | |
− | + | <li>Mobile version for [https://play.google.com/store/apps/details?id=org.geuz.onelab Android] and [https://itunes.apple.com/us/app/onelab/id845930897 iOS] | |
− | + | <li>[http://onelab.info/files/onelab-source.zip Source code] | |
− | + | </ul> | |
− | + | <li>Launch the app <img src="http://geuz.org/gmsh/gallery/icon.png" height=20px> | |
+ | <li>Open a GetDP model: | ||
+ | <ul> | ||
+ | <li>Desktop version: go to the '''File/Open''' menu and select a GetDP '''.pro''' file, e.g. '''models/magnetometer/magnetometer.pro''' | ||
+ | <li>Mobile version: select one of the preloaded models | ||
+ | </ul> | ||
+ | <li>Press '''Run'''. | ||
+ | </ol> | ||
− | + | <!-- Note that on Windows, depending on your computer security settings, you might have to explicitly allow the GetDP executable to be launched by Gmsh. Manually launch GetDP once by double-clicking on '''getdp.exe''' to allow this. --> | |
− | |||
− | |||
− | |||
− | |||
− | = Electromagnetics = | + | == GetDP models == |
+ | |||
+ | === Basic templates === | ||
+ | |||
+ | These are basic physical templates, that can either be used interactively to define new problems from scratch, or be included in other problem definition files. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | | | ||
+ | * [[Electrostatics template|Electrostatics]] | ||
+ | * [[Magnetostatics template|Magnetostatics]] | ||
+ | |} | ||
+ | |||
+ | === Featured physical models === | ||
+ | |||
+ | These are complete, parametric application examples, ready to be solved and modified. | ||
+ | |||
+ | {| class="wikitable" | ||
+ | ! Acoustics | ||
+ | ! Electromagnetism | ||
+ | ! Heat transfer | ||
+ | ! Multi-physics | ||
+ | |- | ||
+ | | | ||
+ | * [[Acoustic scattering|Multiple scattering]] | ||
+ | * [[Time reversal|Time reversal]] | ||
+ | | | ||
+ | * [[Inductor|Simple inductor/core system]] | ||
+ | * [[Magnets|Forces on magnets]] | ||
+ | * [[Electric machines|Rotating electric machines]] | ||
+ | * [[Antennas]] | ||
+ | * [[Waveguides]] | ||
+ | * [[Shielding effectiveness]] | ||
+ | * [[Bloch modes in periodic waveguides]] | ||
+ | * [[Superconducting wire]] | ||
+ | * [[Diffraction grating]] | ||
+ | | | ||
+ | * [[Thermal conduction]] | ||
+ | | | ||
+ | * [[Electromechanical relay]] | ||
+ | * [[Magnetodynamics with cohomology conditions|Induction heating (electro-thermal)]] | ||
+ | * [[Magnetometer|Magnetometer (electromechanical, thermal)]] | ||
+ | * [[Magnetostriction|Magnetostriction (magnetic, mechanical)]] | ||
+ | |} | ||
+ | |||
+ | === Advanced numerical techniques === | ||
+ | |||
+ | {| class="wikitable" | ||
+ | |- | ||
+ | | | ||
+ | * [[Domain decomposition methods for waves]] | ||
+ | |} | ||
+ | |||
+ | <!-- | ||
+ | === Featured tutorials === | ||
+ | * [[Numerical schemes: Laplace's equation|Laplace's equation]] | ||
+ | * [[Numerical schemes: Heat equation|Heat equation]] | ||
+ | * [[Electrostatics]] | ||
+ | * [[Numerical_schemes:_Wave_propagation|Wave propagation]] | ||
+ | * [[Laplace equation with Neumann boundary condition]] | ||
+ | * [[Laplace equation with Dirichlet boundary condition]] | ||
+ | * [[Heat equation with Dirichlet boundary control]] | ||
+ | * [[Coupled problems]] | ||
+ | * Eigenvalues problems | ||
+ | --> | ||
+ | |||
+ | === All models === | ||
+ | |||
+ | [[:Category:GetDP|All GetDP models]] | ||
+ | |||
+ | == How does it work? == | ||
+ | |||
+ | GetDP input files ('''.pro''' files) can be instrumented to share parameters with the ONELAB server, [[ONELAB syntax for Gmsh and GetDP|through the same syntax as the one used in Gmsh]]. | ||
+ | |||
+ | <!-- | ||
+ | == Electromagnetics examples == | ||
* [[Electrostatics]] | * [[Electrostatics]] | ||
** Capacitor, microstrip line, high-voltage isolator | ** Capacitor, microstrip line, high-voltage isolator | ||
− | * | + | * Electrokinetics |
** Steady currents in conductors | ** Steady currents in conductors | ||
− | * | + | * Magnetostatics |
** Linear C-shaped magnetic core, Non-linear core | ** Linear C-shaped magnetic core, Non-linear core | ||
− | * | + | * Magnetodynamics |
− | ** Eddy currents in a plate, switched reluctance motor, synchronous and asynchronous machine | + | ** Eddy currents in a plate, switched reluctance motor, synchronous and asynchronous machine, [[Magnetodynamics with cohomology conditions|induction heating]] |
− | * | + | * Wave propagation |
− | ** Waveguide, parabolic reflector, dipole antenna, microstrip antenna | + | ** Waveguide, parabolic reflector, dipole antenna, microstrip antenna, optical fiber, invisibility cloak, plasmonics |
− | |||
− | |||
− | = Acoustics = | + | == Acoustics examples == |
* Time-harmonic scattering (Helmholtz equation) | * Time-harmonic scattering (Helmholtz equation) | ||
** Multiple scattering with [[Multiple scattering with Sommerfeld absorbing condition|Sommerfeld ABC]] and with [[Multiple scattering with a Perfectly Matched Layer (PML)|Perfectly Matched Layer (PML)]] | ** Multiple scattering with [[Multiple scattering with Sommerfeld absorbing condition|Sommerfeld ABC]] and with [[Multiple scattering with a Perfectly Matched Layer (PML)|Perfectly Matched Layer (PML)]] | ||
+ | ** Time reversal in the [[Time reversal in the free space|free space]] | ||
− | = Heat transfer = | + | == Heat transfer examples == |
* [[Heat transfer]] | * [[Heat transfer]] | ||
− | = Generic | + | == Generic PDE examples == |
+ | |||
+ | * Elliptic equations | ||
+ | ** [[Laplace equation with Neumann boundary condition]] | ||
+ | ** [[Laplace equation with Dirichlet boundary condition]] | ||
+ | ** [[Coupled problems]] | ||
+ | * Parabolic equations | ||
+ | ** [[Heat equation with Dirichlet boundary control]] | ||
+ | * Hyperbolic equations | ||
+ | ** [[Wave equation with Dirichlet boundary control]] | ||
+ | --> | ||
+ | |||
+ | == Building GetDP from the source code == | ||
+ | |||
+ | If you want to recompile GetDP directly from the source code, you should | ||
+ | |||
+ | * Download PETSc from http://www.mcs.anl.gov/petsc/petsc-as/download/ and uncompress the archive (in this example, using PETSc 3.7.4): | ||
+ | <source> | ||
+ | tar zxvf petsc-3.7.4.tar.gz | ||
+ | </source> | ||
+ | |||
+ | * Configure and build PETSc. The configuration options depend on the calculations you want to perform (complex- or real-valued), as well as your compiler setup. For a sequential build (without MPI), run (remove <code>--with-scalar-type=complex</code> to build in real arithmetic): | ||
+ | <source> | ||
+ | cd petsc-3.7.4 | ||
+ | export PETSC_DIR=$PWD | ||
+ | export PETSC_ARCH=complex_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=complex | ||
+ | make | ||
+ | cd .. | ||
+ | </source> | ||
+ | |||
+ | * Download and unzip the Gmsh and the GetDP source code from the ONELAB bundle http://onelab.info/files/gmsh-getdp-source.zip (or download the latest source code from http://getdp.info and http://gmsh.info, respectively) | ||
− | + | * Configure, compile and install a minimal Gmsh library (it will be used by GetDP): | |
+ | <source> | ||
+ | cd gmsh-xxx | ||
+ | mkdir lib | ||
+ | cd lib | ||
+ | cmake -DDEFAULT=0 -DENABLE_PARSER=1 -DENABLE_POST=1 -DENABLE_BUILD_LIB=1 .. | ||
+ | make lib | ||
+ | sudo make install/fast | ||
+ | cd ../.. | ||
+ | </source> | ||
− | * | + | * Configure and compile GetDP: |
− | + | <source> | |
− | + | cd getdp-xxx | |
+ | mkdir bin | ||
+ | cd bin | ||
+ | cmake .. | ||
+ | make | ||
+ | cd ../.. | ||
+ | </source> | ||
+ | |||
+ | Instructions for building the parallel (MPI) version of GetDP are available [[GetDDM|here]] |
Latest revision as of 18:07, 25 November 2017
GetDP is an open source finite element solver using mixed elements to discretize de Rham-type complexes in one, two and three dimensions. GetDP is developed by the ACE group from the Montefiore Institute at the University of Liège, and is released under the GNU GPL.
Contents
Getting started
ONELAB allows to use GetDP as a black-box solver: you don't need to know anything about finite elements or de Rham complexes in order to run your first simulations:
- Download the ONELAB bundle:
- Launch the app
- Open a GetDP model:
- Desktop version: go to the File/Open menu and select a GetDP .pro file, e.g. models/magnetometer/magnetometer.pro
- Mobile version: select one of the preloaded models
- Press Run.
GetDP models
Basic templates
These are basic physical templates, that can either be used interactively to define new problems from scratch, or be included in other problem definition files.
Featured physical models
These are complete, parametric application examples, ready to be solved and modified.
Acoustics | Electromagnetism | Heat transfer | Multi-physics |
---|---|---|---|
Advanced numerical techniques
All models
How does it work?
GetDP input files (.pro files) can be instrumented to share parameters with the ONELAB server, through the same syntax as the one used in Gmsh.
Building GetDP from the source code
If you want to recompile GetDP directly from the source code, you should
- Download PETSc from http://www.mcs.anl.gov/petsc/petsc-as/download/ and uncompress the archive (in this example, using PETSc 3.7.4):
tar zxvf petsc-3.7.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 setup. For a sequential build (without MPI), run (remove
--with-scalar-type=complex
to build in real arithmetic):
cd petsc-3.7.4 export PETSC_DIR=$PWD export PETSC_ARCH=complex_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=complex make cd ..
- Download and unzip the Gmsh and the GetDP source code from the ONELAB bundle http://onelab.info/files/gmsh-getdp-source.zip (or download the latest source code from http://getdp.info and http://gmsh.info, respectively)
- Configure, compile and install a minimal Gmsh library (it will be used by GetDP):
cd gmsh-xxx 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 GetDP:
cd getdp-xxx mkdir bin cd bin cmake .. make cd ../..
Instructions for building the parallel (MPI) version of GetDP are available here