Coder Social home page Coder Social logo

dasshydro / dassflow2d Goto Github PK

View Code? Open in Web Editor NEW
5.0 0.0 1.0 234.61 MB

Data Assimilation for Free Surface Flows : Shallow-Water like systems for river networks and floodplains.

License: Other

Python 19.87% Fortran 11.54% Gnuplot 0.18% GLSL 61.98% Prolog 0.92% Shell 0.08% R 0.01% Jupyter Notebook 0.16% Makefile 0.14% MATLAB 0.01% NASL 0.01% C 4.38% HTML 0.08% Scilab 0.01% PLSQL 0.01% Perl 0.02% Roff 0.63% Batchfile 0.01% Lex 0.01% Yacc 0.01%

dassflow2d's Introduction

DassFlow2D-WRAP

This git repository contains the development version of DassFlow2D-Wrapped.

Table of Contents

  1. General Information.
  2. Repository organisation.
  3. Requirements.
  4. Install project.
  5. Compile and open documentation.
  6. First steps and more.

1. General information

WARNING: For the moment, dassflow2d and other versions work on Linux only.

You can clone this project to your own machine using the following command:

git clone http://github.com/DassHydro-dev/dassflow2d

Full and up-to-date documentation can be found in index.html. To open it, enter the following command in the terminal (in your repository directory):

open ./doc/SPHINX_DOCUMENTATION/build/html/index.html

2. Repository organisation

  • Tools: contains scripts for pre and post processing of dassflow 2d wrap.
  • cases: contains reference cases.
  • code: contains source code & the bin directory where the simulations happen.
  • doc: contains SPHINX documentation (See Compile and open documentation for more information).

3. Requirements

3.1 For dassflow2d installation

Note: some of the modules below might already be installed on your Linux machine.

3.1.1 For the Fortran code

  • python 3.8 or above (check your python version with python3 --version in the terminal)
  • an up-to-date Java Development Kit (JDK) (check your java version with java --version in the terminal or install it with sudo apt install default-jdk)
  • an MPI library : mpich
sudo apt install -y mpich
  • Follow the tutorial to download and install Tapenade and add the following lines to your ~/.bashrc to add tapenade to your PATH:
alias tapenade="tapenade_dir/bin/tapenade"
TAPENADE_HOME=tapenade_dir/bin
export PATH=$PATH:$TAPENADE_HOME
export PATH=$PATH:$"tapenade_dir"

Note: tapenade_dir is the absolute path to the directory containing the tapenade files you just downloaded.

3.1.2 For the Python wrapped code

  • pip3
  • f90wrap
  pip install f90wrap

Add f90wrap to your PATH in ~/.bashrc. For example:

F90WRAP_HOME=~/.local/bin
export PATH=$PATH:$F90WRAP_HOME

Note: don't forget to enter the command source ~/.bashrc to reload your .bashrc after modifying it.

3.2 For SPHINX documentation compilation

In your terminal, execute the following commands:

pip install -U Sphinx
pip install numpydoc
pip install pydata_sphinx_theme
pip install sphinx-panels
pip install IPython
pip install sphinxcontrib-bibtex
pip install jupyter_sphinx
python3 -m pip install sphinx-autosummary-accessors

4. Install project

  • Make sure all the requirements are met.
  • Execute the following commands in the terminal (in your repository directory):
cd ./code
make install

Note: project installation has default parameters that you can change in Makefile.inc before installation.

5. Compile and open documentation

  1. Make sure all the requirements are met.
  2. Make sure the project has correctly been installed (see Install Project).
  3. Execute the following commands in the terminal (in your repository directory):
cd ./doc/SPHINX_DOCUMENTATION/
make clean html

6. First steps and more

Please refer to the SPHINX documentation for more information, simple test cases and further details.

You can visit our website for more information on dassflow2d and other versions.

dassflow2d's People

Contributors

leobpujol avatar hiidrel avatar lilian-vi avatar

Stargazers

KmBase avatar  avatar Hugo Boulenc avatar  avatar BYY avatar

Forkers

bastiencyr

dassflow2d's Issues

Codes for Non-Newtonian Fluids are Absent?

Dear all,

Thanks for making the amazing Dassflow2d codes to the public. I am interested in your numerical model for non-Newtonian fluids (Herschel-Bulkley rheology). I roughly went through the codes, but I cannot find the related codes for non-Newtonian fluids. Are they absent in this git repository? Or if they are actually in the repository, please give me some hint of where they are.

Thanks in advance.

BYY

Installation process

Hello,

I have some remarks on the installation process:

PATH

export PATH=$PATH:$"tapenade_dir"

Setting tapenade directory in the path seems useless. Why do you set it ?

f90wrap

F90WRAP_HOME=~/.local/bin
export PATH=$PATH:$F90WRAP_HOME

This step is very specific. Depending on the user installation, the package could be install in a different location, for example in a python environment. In this case, you don't need to change the $PATH.

The .local/bin directory is supposed to be in the path. But a bug in debian distribution prevents from doing so: https://unix.stackexchange.com/questions/316765/which-distributions-have-home-local-bin-in-path . In the File hierarchy system :

~/.local/bin/

    Executables that shall appear in the user's $PATH search path.

Anyway, it is not a good practice to install package in the system. In fact, it will be impossible to do so starting from python 3.11 : https://stackoverflow.com/questions/75608323/how-do-i-solve-error-externally-managed-environment-everytime-i-use-pip3 , https://peps.python.org/pep-0668/ . I have this error on my Debian machine (Debian experimental).

Thus, I think that this section should be removed because it is confusing and incomplete. We can add a section with the name of the error when f90wrap is not found.

Big git repo

The git repo is pretty big. Maybe we can find a solution to store some data files in an external storage.

Compilation

I didn't see the code in detail but it seems that you use scotch and mumps. But sotch and mumps are in the debian package. So we could link this shared libraries at compile time to reduce the compilation time. Notice that the version in Debian stable is 5.5 (libmumps, so no break in the API with 5.1) and 7.0 (libscotch).

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.