Skip to content
Snippets Groups Projects

waves

Common numerical framework

Apache License Version 2.0

Run Status

Features

Set of python/C++ modules:

  • fwk: general utilities (timers, ...)
  • tbox: general finite element utilities (mesh handler, nodes/elements handler, ...)
  • tboxVtk: VTK extensions for tbox
  • waves: 3D(Hex8) transient wave equation solver (FEM)
  • fdtd: 2D Maxwell equations (FD)
  • flow: 2D(Tri3) and 3D(Tetra4) steady full potential equation solver (FEM)
  • heat: 2D(Tri3) steady nonlinear heat equation solver (multiscale FE²M)
  • mirrors: 3D(Hex8 and Tetra4) linear thermomechanical equations (FEM)
  • mrstlnos: 3D(Hex8 and Tetra4) linear thermomechanical equations with contact (FEM)
  • params: parametric study with Metafor
  • tlnos: basic Trilinos examples
  • sph: incompressible fluid equations (SPH)

Additional features:

  • gmsh support for mesh and post-processing
  • vtk/PyQt support for post processing and basic GUI
  • OpenBLAS or Intel MKL support
  • gmm++ support for linear algebra operation
  • TBB support for multithreading
  • mpi4py support for parallelization
  • Trilinos support (for some modules)

Compilation

Linux / gcc (with OpenBLAS)

Required packages

sudo apt-get install cmake
sudo apt-get install libgmm++-dev libeigen3-dev
sudo apt-get install libtbb-dev
sudo apt-get install libmumps-seq-dev libopenblas-dev
sudo apt-get install gmsh
sudo apt-get install python-dev python-mpi4py
sudo apt-get install swig
sudo apt-get install libvtk6.3 libvtk6-dev libvtk6-qt-dev python-vtk6 python-pyqt5
sudo apt-get install python-numpy python-scipy python-matplotlib

Optional packages

sudo apt-get install doxygen
sudo apt-get install grpahviz

Compilation

mkdir build && cd build
cmake ..
make [-j4]
[make dox]

Test

cd build
ctest [-E exclude_pattern] [-R include_appetern] [-j4]

Example

./run.py modulename/tests/testname.py

Windows / Visual Studio (with Intel MKL)

  • Compile/install all the required libraries from the links above.
  • Open a command line (see provided myenv.bat)
  • Then in wavesB (with Microsoft compiler)
cmake -G "NMake Makefiles" ..\waves
nmake

or (with Microsoft compiler and jom)

cmake -G "NMake Makefiles JOM" ..\waves
jom

or (with Visual Studio and CMake/msbuild)

cmake -G "Visual Studio 11 Win64" ..\waves
cmake --build . --config Release --target ALL_BUILD
cmake --build . --config Debug --target ALL_BUILD

or (with Incredibuild)

cmake -G "Visual Studio 11 Win64" ..\waves
buildconsole Waves.sln /rebuild /cfg="Release|x64"

Windows / MinGW (with OpenBLAS)

cmake -DBLA_VENDOR=OpenBlas -G "MinGW Makefiles" ..\waves
jom