GithubHelp home page GithubHelp logo

arcadia197 / wabbit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from adaptive-cfd/wabbit

0.0 0.0 0.0 201.42 MB

Wavelet Adaptive Block-Based solver for Interactions with Turbulence

Home Page: https://www.cfd.tu-berlin.de/

License: GNU General Public License v3.0

Shell 0.14% Python 1.22% Fortran 97.78% Makefile 0.86%

wabbit's Introduction

WABBIT v2.0beta5 (newBiorthogonal)

(W)avelet (A)daptive (B)lock-(B)ased solver for (I)nteractions with (T)urbulence

❗ New in 05/2021: please see this video for an introduction to the code's datastructures: https://www.youtube.com/watch?v=qBBIW2-ktgo

With WABBIT it is possible to solve partial differential equations (PDE) on block-based adaptive grids. Simulations in 2D and 3D are possible and performed fully parallel on CPU. The set of PDE is encapsulated from the code handling the adaptive grid, and thus existing monobloc solvers can be adapted easily for this solver. WABBIT can handle PDEs of the following type:

$\partial_t \phi = N\left(\phi\right)$

and $N\left(\phi\right)$ can be defined. This implementation is handled by the "physics-modules". Note the current version of the code does not handle elliptic PDE, such as the Poisson equation that typically arises in incompressible fluid dynamics. Instead, we use a quasi-hyperbolic approximation in that case, the "artificial compressibility method".

Installation of WABBIT

How to get a copy of WABBIT and compile the code:

git clone https://github.com/adaptive-cfd/WABBIT.git

Unpack the file and run the compilation and tests with make, make sure that all necessary dependencies are loaded:

make all
make test

⚠️ since 15 Aug 2023, the unit testing framework has evolved. It now stores full HDF5 files in the TESTING directory, which makes it easier to visualize the reference data and current results, should they be different. We now calculate the L2 error of the field, if the grid is identical. This new framework requires the WABBIT Python Tools repository for comparing two WABBIT HDF5 files.

Dependencies

WABBIT needs several packages installed in order to compile and run, the main dependencies are:

Further information on the installation and compilation of all pre-requesites can be found in the wiki under Install-WABBIT-with-requirements.

A list of all environment variables to be set can be find in the wiki under Loading-prerequesites. Ensure that the WABBIT-specific variables for HDF5 are set in order for the compilation to finish successfully.

Running WABBIT

Customize the template .ini-file and rename file to [your_filename.ini], run WABBIT and pass it the .ini-file as well as the total amount of memory used:

mpirun -n 1 ./wabbit [your_filename.ini] --memory=2.0GB

alternatively, you can specify the amount of memory per core that the code may use:

mpirun -n 1 ./wabbit [your_filename.ini] --mem-per-core=2.0GB

where the --memory options allows you to control how much memory is globally allocated, i.e., on all CPUs. Note that WABBIT does not free memory during runtime. This is because the code is intented to run on clusters/supercomputers, where the available memory is reserved for the execution of the code alone. This is quite typical for supercomputing.

Additional Information

In case you have problems with the preparation to use WABBIT, have a look if you can find anything in the wiki

More information can also be found in the documentation build with doxygen. Therefore it is necessary to have Doxygen installed. Create the documentation with

doxygen doc/doc_configuration

and display doc/output/html/index.html with your browser. You can also locally display all files with

python3 -m http.server --directory doc/output/html

and then open in a browser localhost:8000

Publications

wabbit's People

Contributors

tommy-engels avatar philipp137 avatar mario-sroka avatar sophiemutzel avatar arcadia197 avatar dkolom avatar miriamtriebeck avatar maximilianschuster avatar segrovets avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.