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.
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.
Note
Grab a pre-compiled binary for Windows Linux or macOS here Alternatly build it from source as shown below
Note
For the Input Data Files Format reference the Docs
Tip
For 3d Tetrahedral Data, the vtu_2bin in flowVC-utils might be helpful!
./flowvc.out settings_file.inIf you want to edit / modify the code, there are various ways to compile the code from source.
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.
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)
Install Ruby by refering to the ruby documentation for your operating system.
gem install ceedlinggit clone <repo-url>
cd flowVCceedling test:allceedling releasethis will create the executable in the ./build/release/flowVC.out path.
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
git clone <repo-url>
cd flowVCPull the docker image from docker hub madsciencelab
docker pull throwtheswitch/madsciencelab:latestdocker run -it --rm -v <local project path>:/home/dev/project throwtheswitch/madsciencelab:latest
ceedling test:allNote
If you are in the flowVC directory, you can replace the <local project path> with a “.” (without the quotes)
docker run -it --rm -v <local project path>:/home/dev/project throwtheswitch/madsciencelab:latest
ceedling release docker run -it --rm -v .:/home/dev/project throwtheswitch/madsciencelab:latest
.build/release/flowVC.out <input file> 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!
Contributions or fixes to issues are welcome.
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