Giter Club home page Giter Club logo

Flow123d ยท Jenkins release Jenkins debug Coveralls master Docker hub CI-HPC

Processes in Fractured Media

Flow123d is a simulator of underground water flow, transport, and mechanical processes in fractured porous media. Novelty of this software is support of computations on complex meshes consisting of simplicial elements of different dimensions. Therefore we can combine continuum models and discrete fracture network models. For more information see the project pages: flow123d.github.io.

Getting started

Please refer to a User Guide and Input Reference manual available at our official website where there is a entire section dedicated to this topic. You can find step-by-step tutorial explaining geometries, yaml input files and more. Below you can see a result from the tutorial problem.

Installation

You have several options when it comes to installation. You can use our prebuilt Docker images or build Flow123d from the source (requires a moderate experience with Linux OS).

For detailed instructions, see the installation guide.

Developers

Build

Two step build:

     host> bin/fterm     # start the docker developing container
container> make all      # produce "build_tree/bin/flow123d"
container> bin/flow123d  # lunch the simulator using a simple wrapper script

That would start the debug docker image and build the debug version of the simulator. For the release (optimized) version run:

bin/fterm rel
make all

For details see installation guide or the manual.

Troubleshooting

  • When problem occurs during the compilation process it may be due to a leftover files in a build folder. Cleaning this directory can solve this issue. You can either remove build-<branch> folder (the folder is located one level above repository root) via make clean-all, which removes build folders and also remove any symlinks.
    To clean all the build folders manually run rm -rf ../build-* while in a repository root.
    Running rm -rf can quite easily cause a lot of damage, double check that you're in a correct folder.

  • The build tools may fail if the root path contains folders with spaces.

  • During an installation under Windows, some scenarios can cause problems. Please refer to an installation guide for a Docker Toolbox. You can also check out Troubleshooting page where the most common error are described and solved.

Building the reference manual

The reference manual can be built by while in docker container

make ref-doc

To copy out reference manual from docker use command docker cp.

Singularity

Singularity is a container system targeting HPC applications. Singularity containers can be created from the docker images and in contrast to the docker one is not allowed to modify system of running containers.

For large images may be necessary set temp directory.

export SINGULARITY_TMPDIR="/some_absolute_path/tmp"

Run simulator in singularity container

singularity exec docker://flow123d/3.1.0 flow123d simulation.yaml

Parallel run, mpiexec out of the image

module add mpich-3.0.2-gcc
mpiexec -host host1,host2 -np 4 singularity exec docker://flow123d/3.1.0 flow123d simulation.yaml

Build

     host> git clone https://github.com/flow123d/flow123d.git # clone flow123d repository
     host> singularity shell -B flow123d/:/flow123d docker://flow123d/flow-dev-gnu-rel:3.1.0 # starts developing container
container> cd /flow123d
container> make all # produce "build_tree/bin/flow123d"
container> bin/flow123d  # lunch the simulator

Docker images

Hosted on dockerhub under organisation flow123d.

production images

tagged by the release version (e.g. 3.1.0)

  • flow123-gnu : based on gnu libraries and tools
  • flow123-intel : based on intel libraries (intelmpi, mkl, intel compilers)

alfa images

built by CI, tagged by {branch}-{commit}

flow123d's Projects

armadillo-code icon armadillo-code

source code repo for Armadillo C++ library - http://arma.sourceforge.net

bench_data icon bench_data

Sources for generating large data for Flow123d benchmarks.

bih icon bih

Bounded Interval Hierachy of Axes Aligned Bounding Boxes

bparser icon bparser

A C++ library for parsing expressions with Python syntax and using SIMD for repetitive evaluation. Amortization of the interpreter overhead leads to nearly peak CPU performance..

cuw icon cuw

Container Universal Wrapper

dealii icon dealii

The development repository for the deal.II finite element library.

docker-config icon docker-config

Docker files for various docker images used in Flow123d developement

exprtk icon exprtk

ExprTK - modification for efficient evaluation on vector datasets

flow123d icon flow123d

Main repository of the Flow123d project.

parser_comparison icon parser_comparison

Comparison of BParser with other state of the art parsers and agains direct C++ implementation.

pflotran icon pflotran

Manual pflotran fork from official BitBucket repository. Decovalex specific reaction sandbox.

surrdamh icon surrdamh

Bayes inversion using Metropolis-Hastings with delayed acceptance and parallel sampling chains.

svn-export icon svn-export

Repository that just follows SVN repository. NO COMMITS HERE!

swrap icon swrap

Complete MPI wrapping for HPC singularity applications.

upscale icon upscale

Stochastic homogenisation/upscaling of Discrete Fracture Networks.

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.