waves
Common numerical framework
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
- MUMPS support
- 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