BlobID v2.2.2
Loading...
Searching...
No Matches
Description

For 3D cartesian grids parallelized with MPI, BlobID determines unique labels for connected components (blobs) using connected component labeling (CCL) methods developed for identifying bubbles/drops in fluid simulations. For more details on the methods, see Methods. From these labels BlobID provides

  • A label field where each cell is assigned the label associated with the blob it is in (or 0 if not in a blob).
  • Text files recording the volume of every blob identified.

BlobID has been designed to operate in parallel using MPI.

Documentation

See blobid-docs.pages.dev.

Using the Library

The program is currently only designed to be called from FORTRAN. Three modules are needed:

use blobid__settings
use blobid__data
use blobid__solver

Before running the solver, one needs to setup a BLOBID_Settings object settings to hold the desired solver settings and a BLOBID_Data object data to hold data fields. The solver is then run by calling BLOBID_SolverRun():

call BLOBID_SolverRun(data,settings,time,label,t_num,pad,n,comm_F)

This will:

  • Populate label with the assigned labels
  • Output text files with blob volumes (see Output file)

The program will crash if the directory for the output files does not exist. Call BLOBID_SolverMakeDirs() to create the directory.

Building with the Library

Building this library is intended to be done using the make file in the parent directory. Building with CMake is primarily intended for debugging, and may have bugs.

Before building, one must specify the computer specific build commands. This is done by running ./configure. This program needs to be given the name of the system matching a supported configuration in platform/. There are three ways to do this.

  1. Create a file named [system name].MPLAT. The program will search for this file.
  2. When running ./configure, add the argument [system name].
  3. Specify MPLAT as an environmental variable

Currently, the following system names are supported:

  • neptune
  • WSL
  • gaffney
  • exalibur

There is one library files that are created in lib when the Makefile is run, -lblobid.

When building the program with a FORTRAN compiler, it will likely be necessary to include standard C++ libraries, with a flag like -lstdc++. Additionally, sometimes FORTRAN MPI libraries will not include all C++ MPI libraries, so a flag like -lmpi_cxx will be necessary.