Giter Club home page Giter Club logo

pore-aventura's Introduction

Pore Aventura

Description

Pore Aventura is a 3D velocity field explorer, designed for academic research purposes. It aims at visualizing and investigating the kinematic properties of a steady 3D velocity field, which can contain solid stationary boundaries, like for instance in a porous media.

Among its features, Pore Aventura allows :

  • 3D motion through the velocity field
  • Local injection of passive advective tracers which flow following their streamline
  • Upstream injection grid spawning advective tracers with a tunable grid resolution and spawn delay
  • Streamlines visualization
  • Roller-coaster mode, flowing the user following its local streamline (like a passive advective tracer)

Pore Aventura was initially developed to investigate dispersion and mixing in porous media, by providing a tool to explore the velocity intermittency, the streamlines tortuosity and the dispersion properties of an experimentally measured 3D velocity field obtained in a porous medium made out of a random stack of monodisperse rigid spherical beads.

Media

Images

Gifs

gif gif

gif gif

Video Teaser

Pore Aventura Teaser

Video Presentation

Pore Aventura Teaser

Installation

  1. Download the latest Pore Aventura release.
  2. Extract downloaded archive.
  3. Download the scientific data (data.h5) from the release page (or use a custom one).
  4. Copy the the data.h5 file in the StreamingAssets folder of the extracted folder.
  5. Enjoy !

Creating a custom compatible Data.h5 data set

User can provide his own custom dataset by creating a hdf5 format file. The dataset should be named Data.h5, and contains 2 variables :

  • SolidBoundaries => dimensions : N_s x 3, containing the position (x,y,z) of the centers of the N_s solid spheres forming the porous medium
  • VelocityField => dimensions : M x N x P x 3, containing for each voxel (M,N,P) the 3 velocity components. The voxels contained in a solid sphere should have their 3 velocity components to 0.

How to create a dataset using Matlab?

It is very easy to export data in .h5 using the following line command :

h5write('Data.h5', '/SolidBoundaries', SolidBoundaries)
h5create('Data.h5', '/VelocityField', size(VelocityField), 'Datatype','single')
h5write('Data.h5', '/VelocityField', VelocityField)

Important notes :

  • The data.h5 file should then be added to the StreamingAssets folder
  • In the previous example, datas are saved in single format
  • It has been reported that Matlab reverse the variable dimensions when using h5write; therefore, the variables dimensions in Matlab Workspace should be reversed before saving in h5 format (i.e. SolidBoundaries should be 3 x N_s, and VelocityField should be 3 x P x N x M)

Notes

Further releases should include the options for the N_s spheres to have different radii, a space_resolution parameter indicating the 3D velocity field spatial resolution, a Space_factor and a Time_factor parameters allowing to expand or compress the spatial and time dimension, and the option to take into account solid boundaries which are not resulting from a stack of spherical beads.

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.