vortexfinder2 provides tools to analyze and visualize vorticies in time-dependent Ginzburg-Landau (TDGL) superconductor simulation data. Output data from two simulation models are supported, namely GLGPU and Condor2. GLGPU and Condor2 are based on structured grid and unstructured grid, respectively.
The software is part of the OSCON (Optimizing Superconductor Transport Properties through Large-Scale Simulation) project for the Scientific Discovery through Advanced Computing Institutes.
A set of tools are provided:
- Standalone command-line tools for extracting and tracking vortices
- Standalone Qt and OpenGL based GUI for visualizing vortices
- ParaView plugins for analyzing and visualizing vorticies
The following tools/libraries are mandatory for all tools:
- CMake (mandatory, version >= 3.0.2)
- Protocol Buffers (mandatory, version >= 2.6.1), used for the serialization/unserialization of vortex objects
The following libraries are needed for analyzing Condor2 (unstructured mesh) data:
- libMesh (optional, preferable 0.9.4-rc1 built with PETSc), used for Condor2 data analysis
The following libraries are needed for buiding the GUI in the standalone tools:
The following libraries are needed for buiding ParaView plugins:
$ cd $VORTEX_FINDER2_SOURCE_DIR
$ mkdir build && cd build
$ cmake .. \
-DPROTOBUF_ROOT=$PROTOBUF_INSTALL_DIR
$ make
$ cd $VORTEX_FINDER2_SOURCE_DIR
$ mkdir build && cd build
$ cmake .. \
-DWITH_LIBMESH=ON \
-DPROTOBUF_ROOT=$PROTOBUF_INSTALL_DIR \
-DMPI_HOME=$MPI_INSTALL_DIR \
-DLIBMESH_DIR=$LIBMESH_INSTALL_DIR \
-DPETSC_DIR=$PETSC_INSTALL_DIR
$ make
$ cd $VORTEX_FINDER2_SOURCE_DIR
$ mkdir build && cd build
$ cmake .. \
-DWITH_QT=ON \
-DPROTOBUF_ROOT=$PROTOBUF_INSTALL_DIR \
-DQT_QMAKE_EXECUTABLE=$QT_INSTALL_DIR/bin/qmake
$ make
Build ParaView first
$ tar zxf ParaView-v4.3.1-source.tar.gz
$ cd ParaView-v4.3.1-source
$ export PARAVIEW_SOURCE_DIR=$PWD
$ mkdir build && cd build
$ export PARAVIEW_BUILD_DIR=$PWD
$ cmake ..
$ make
Build the plugins
$ cd $VORTEX_FINDER2_SOURCE_DIR
$ mkdir build && cd build
$ cmake .. \
-DWITH_PARAVIEW=ON \
-DParaView_DIR=$PARAVIEW_BUILD_DIR \
-DPROTOBUF_INCLUDE_DIR=$PARAVIEW_SOURCE_DIR/ThirdParty/protobuf/vtkprotobuf/src \
-DPROTOBUF_LIBRARY=$PARAVIEW_BUILD_DIR/lib/libprotobuf.dylib \
-DPROTOBUF_PROTOC_EXECUTABLE=$PARAVIEW_BUILD_DIR/bin/protoc
$ make
Then you get two binaries libBDATReader.dylib and libGLGPUVortexFilter.dylib in lib directory. Install the plugins by loading them in the plugin manager in ParaView.
Create a file (e.g. GL3D_CrBx004_full_long) which contains a list of GLGPU data file. The frame ID is indexed by the line numbers.
GL3D_CrBx004_full_long_0001_amph.dat
GL3D_CrBx004_full_long_0002_amph.dat
GL3D_CrBx004_full_long_0003_amph.dat
GL3D_CrBx004_full_long_0004_amph.dat
...
$ ../extractor_glgpu3D GL3D_CrBx004_full_long -t 0 -l 1000
The argument -t specifies the starting frame; -l specifies the number of frames. The tool then analyzes the data and store the results into a series of files. GL3D_CrBx004_full_long.pf.(i) are the punctured faces at frame i; GL3D_CrBx004_full_long.pe.(i).(i+1) are the intersected space-time edges for frame i and i+1; GL3D_CrBx004_full_long.vlines.(i) are the vortex lines at frame i; GL3D_CrBx004_full_long.match.(i).(i+1) are the correspondence of vortex IDs of frame i and i+1. This process may take a long time.
After the extraction and tracking, run the viewer for the 3D interactive visualization:
$ ../viewer1 GL3D_CrBx004_full_long -t 0 -l 1000
In the viewer, use left mouse button to rotate, and wheel to zoom in/out. Press left/right key to show the previous/next frame.
- Install the two plugins, BDATReader and GLGPUVortexFilter. BDATReader can open GLGPU output files in both BDAT format and the legacy "CA02" format.
- Open the .dat file with BDATReader
- Use GLGPUVortexFilter (Filters-->TDGL-->GLGPUVortexFilter in menu) to extract vortices
- Use Tube filter to make the vortex lines look better (optional)
- Interface for in-situ analysis
- More features in the GUI, e.g. super current streamlines, inclusions, etc.
- ParaView plugins for Condor2 datasets
H. Guo, T. Peterka, and A. Glatz. In Situ Magnetic Flux Vortex Visualization in Time-Dependent Ginzburg-Landau Superconductor Simulations. In Proc. IEEE Pacific Visualization Symposium (PacificVis '17), Seuol, Korea, pages 71-80, 2017.
H. Guo, C. L. Phillps, T. Peterka, D. Karpeyev, and A. Glatz. Extracting, Tracking and Visualizing Magnetic Flux Vortices in 3D Complex-Valued Superconductor Simulation Data. IEEE Trans. Vis. Comput. Graph. (SciVis '15), 22(1):827-836, 2016.
C. L. Phillps, H. Guo, T. Peterka, D. Karpeyev, and A. Glatz. Tracking Vortices in Superconductors: Extracting Singularities from a Discretized Complex Scalar Field Evolving in Time. Physical Reivew E, 93(023305), 2016.
C. L. Phillps, T. Peterka, D. Karpeyev, and A. Glatz. Detecting Vortices in Superconductors: Extracting One-Dimensional Topological Singularities from a Discretized Complex Scalar Field. Physical Review E, 91(023331), 2015.