FortranVortexIdentify

November 10, 2023 ยท View on GitHub

This Package aims to identify discrete vortexs from the velocity field data, which is the result of DaVis PIV process.

Quick Start

Run these in terminal. Set INPUTDIR, OUTPUTDIR and CORE_NUM for your data.

#!/bin/bash
#Set INPUTDIR and will create new directory in OUTPUTDIR to save result
INPUTDIR=~/Data/beta_2023_pivdata/cone25_4K/230527_0.4Hz_4K_4s
OUTPUTDIR=.
#Paralleled Thread Number CORE_NUM
CORE_NUM=90
make clean
make DATADIR=$INPUTDIR
mpirun -np $CORE_NUM ./vortex_mpi_cmd $INPUTDIR $OUTPUTDIR

Usage

To compute all vortexs, there are three steps. First, you have to set parameters in parameters.F90. Second, you have to compile the program. And the third is to processing the program.

Since for different original PIV data, different NX_DEF, NY_DEF ( point number in x, y direction) should be set before compiling. The batch processing method is also provided in order to set NX_DEF and NY_DEF automatically, using shell script setnxny.sh .

Set Parameters

  • X_MIN_DEF, X_MAX_DEF, Y_MIN_DEF, Y_MAX_DEF

These 4 parameters determine the range of field, a square area. The Unit is meter. For example, X_MIN_DEF -0.1

  • INTERPOLATIONPOINTS_DEF

The points number between X_MIN_DEF and X_MAX_DEF, and also between Y_MIN_DEF and Y_MAX_DEF. The larger INTERPOLATIONPOINTS_DEF, the more accurate for vortexs position. For example, INTERPOLATIONPOINTS_DEF 2000

  • NX_DEF, NY_DEF

The points number in x and y direction of the original PIV data. The shell script *setnxny.sh can read NX_DEF and NY_DEF from the first line of data, and write into parameters.F90. You can also set by yourself.

  • EFF_RADIUS_DEF

The vortexs out of these range will be deleted. e.g. EFF_RADIUS_DEF 0.1

  • FLITER_BETA_DEF

Delete a ratio of vortexs. Larger to have fewer vortewx. e.g. FLITER_BETA_DEF 1

Compile Program

The program uses Makefile to compile.

To compile using parameters in parameters.F90, run

make clean
make

in terminal.

To set NX_DEF and NY_DEF for specified data, run

make clean
make DATADIR=/directory

in terminal, which can set NX_DEF and NY_DEF in parameters.F90 first and then compiling.

To run single processor version program using main_findvortex.f90, run

make clean
make single_processor

in terminal.

To test program using main_test.f90, run

make clean
make test

in terminal.

Batch Processing

The example is shown in ./batch_processing_example.sh.

#!/bin/bash
#Set INPUTDIR and will create new directory in OUTPUTDIR to save result
INPUTDIR=~/Data/beta_2023_pivdata/cone25_4K/230527_0.4Hz_4K_4s
OUTPUTDIR=.
#Paralleled Thread Number CORE_NUM
CORE_NUM=90
make clean
make DATADIR=$INPUTDIR
mpirun -np $CORE_NUM ./vortex_mpi_cmd $INPUTDIR $OUTPUTDIR

run in terminal.