Skip to content

bkm82/flowVC

 
 

Repository files navigation

flowVC

../../workflows/CI/badge.svg ../../workflows/CD/badge.svg ../../workflows/Docs/badge.svg https://codecov.io/gh/bkm82/flowVC/graph/badge.svg?token=1U1152BG8T

Flow Visualization Code forked from FlowPhysics/flowVC

Tip

Check out the Docs

Copyright 2013 Shadden Research Group. All rights reserved.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Capabilities

flowVC is capable of reading in 2D or 3D velocity data and

  • Computing Finite Time Lyoponove Exponent (FTLE) fields
  • Computing tracer/partile tragectories
  • Interpolating the velocity onto another mesh

Note

You cannot compute FTLE and particle trajectories at the same time. The feature to interpolate velocity data onto another mesh is mainly useful to check if the program is reading in and interpolating your velocity data correctly. The velocity data must be defined on a Cartesian OR tetrahedral (3D) / triangular (2D) mesh.

Usage

Quick Start

Download or Build the Latest Verison of flowVC

Note

Grab a pre-compiled binary for Windows Linux or macOS here Alternatly build it from source as shown below

Create the input data files

Note

For the Input Data Files Format reference the Docs

Tip

For 3d Tetrahedral Data, the vtu_2bin in flowVC-utils might be helpful!

Create a settings.in file.

Run the code from the command line

./flowvc.out settings_file.in

Report any Issues

Issues

Installation

Build From Source

If you want to edit / modify the code, there are various ways to compile the code from source.

Ceedling

Note

Ceedling is a test-centered build system for C. It is how we test and build the release versions. It bundles some tools (Unity, CMock) together and provides a testing interface.

Dependencies

Ruby > v 3.0: A programing language used for Ceedling

Ceedling: Ceedling is a Test-Centered Build System for C. It utilizes a collection of tools for testing (Unity) and mocking (CMock)

Instalation
Install Ruby by refering to the ruby documentation for your operating system.
Install Ceedling gem from the RubyGems repository
gem install ceedling
Clone the repository
git clone <repo-url>
cd flowVC
To compile and run all of the tests, run
ceedling test:all
To build the relese run
ceedling release

this will create the executable in the ./build/release/flowVC.out path.

Docker

Alternatly, there is a docker image has the tooling installed.

Warning

The method shown here should work, but i havent tested it extensivly.

Install Docker
Clone the repository
git clone <repo-url>
cd flowVC
Pull the docker image from docker hub madsciencelab
docker pull throwtheswitch/madsciencelab:latest
Run the tests: if you are in the flowVC directory
docker run -it --rm -v <local project path>:/home/dev/project throwtheswitch/madsciencelab:latest
ceedling test:all

Note

If you are in the flowVC directory, you can replace the <local project path> with a “.” (without the quotes)

Build the executable
docker run -it --rm -v <local project path>:/home/dev/project throwtheswitch/madsciencelab:latest
ceedling release     
This will create the ./build/release/flowVC.out executable.
docker run -it --rm -v .:/home/dev/project throwtheswitch/madsciencelab:latest
.build/release/flowVC.out <input file>  

Make

The third option is to compile the source code using the provided Make file, however this file is not currently part of the CI/CD. Issues or contributions are welcome!

Contributing

Contributions or fixes to issues are welcome.

Semantic Versioning:

This project intends to use a Trunk-Based Release with semantic versioning. Commit messages should follow conventional commits

<type>[optional scope]: <description>

Where the type determines the version updates.

Valid types are fix, feat, BREAKING CHANGE, build, chore, ci, docs, style, refactor, perf, test

Planned Updates

About

Flow Visualization Code

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 99.6%
  • Makefile 0.4%