Commit 0b518d92 authored by Andrew Bauer's avatar Andrew Bauer

General improvements to the Catalyst UG.

Adding in new examples, SOA data array information. etc.
parent 5f90c370
Pipeline #28691 failed with stage
......@@ -4,7 +4,7 @@ The ParaView Catalyst User’s Guide is available under a
\href{http://creativecommons.org/licenses/by/3.0/}{Creative Commons Attribution license} (CC by 3.0).
\copyright 2015, Kitware Inc.\\
\indent \url{www.kitware.com}\\[.4cm]
Cover image generated from a Helios simulation of compressible flow past a sphere. Helios is
Cover image generated from a CREATE-AV\textsuperscript{TM} Helios simulation of compressible flow past a sphere. Helios is
developed by the U.S. Army's Aeroflightdynamics Directorate.\\[.7cm]
\noindent
We would like to acknowledge the support from:
......@@ -15,15 +15,15 @@ We would like to acknowledge the support from:
\begin{table}[ht]
\begin{tabular}[t]{cl}
\includegraphics[width=1in]{Images/Sandia_Logo.jpg} & \begin{minipage}[b]{5in}Ken Moreland
is the project lead for Sandia. Sandia has contributed
is the project lead for Sandia National Laboratories. Sandia has contributed
significantly to the project both in development and vision. Sandia
developers included Nathan Fabian, Jeffrey Mauldin and Ken Moreland.\end{minipage} \\[.3cm]
\includegraphics[width=1in]{Images/lanl.jpg} & \begin{minipage}[b]{5in}Jim Ahrens is the project lead at LANL.
\includegraphics[width=1in]{Images/lanl.jpg} & \begin{minipage}[b]{5in}Jim Ahrens is the project lead at Los Alamos National Laboratory.
The LANL team has been integrating Catalyst with various LANL
simulation codes and has contributed to the development of the
library.\end{minipage} \\[.3cm]
library and Cinema.\end{minipage} \\[.3cm]
\includegraphics[width=1in]{Images/armysbir2.jpg} & \begin{minipage}[b]{5in}Mark Potsdam, from Aeroflightdynamics Directorate,
was the main technical point of contact for Army SBIRs and has
was the main technical point of contact for Army SBIRs and alongside Andrew Wissink has
contributed significantly to the vision of Catalyst.\end{minipage} \\
\end{tabular}
\label{table:acknowledgements}
......
......@@ -32,7 +32,8 @@ can be treated as pointers.
\subsection{ParaView Catalyst Python Script for Outputting the Full Dataset}\label{appendix:gridwriterscript}
The script below will write out the full dataset every time step for the ``input'' grid provided by
the adaptor to Catalyst. Change ``input'' on lines 7 and 40 to the appropriate identifier
for adaptors that provide multiple grids. Note that this file is available at \url{https://github.com/Kitware/ParaViewCatalystExampleCode/blob/master/SampleScripts/gridwriter.py}.
for adaptors that provide multiple grids. Note that this file is available in the ParaView code
at Examples/Catalyst/SampleScripts/gridwriter.py.
\begin{minted}{python}
from paraview.simple import *
......@@ -99,6 +100,42 @@ def DoCoProcessing(datadescription):
coprocessor.WriteData(datadescription)
\end{minted}
\subsection{Reusing Simulation Memory for Structure-of-Arrays Memory Layouts}\label{appendix:soamemorylayout}
As of ParaView 5.1, there exists support for both the original \textit{array-of-structures} (AOS)
memory layout and the new \textit{structure-of-arrays} (SOA) memory layout shown in Figure~\ref{fig:gridrepresentation}.
The class to be used for the SOA layout is the vtkSOADataArrayTemplate class. The method of interest for
reusing simulation memory is:
\begin{itemize}
\item void SetArray(int comp, ValueType *array, vtkIdType size, bool updateMaxId=false, bool save=false, int deleteMethod=VTK\_DATA\_ARRAY\_FREE)
\end{itemize}
The parameters for this method are:
\begin{itemize}
\item comp -- the tuple component that is being set.
\item array -- the pointer to the array of memory to use. ValueType is the templated data type.
\item size -- the number of values in \textit{array}.
\item updateMaxId -- whether or not to update the MaxId if the array length is changed.
\item save -- set to \textit{true} to specify that the memory should not be reallocated when the length is changed or deleted with the VTK object is deleted.
\item deleteMethod -- if \textit{save} is \textit{false} then this specifies how to delete the memory.
\end{itemize}
A code snippet from the CxxSOADataArrayExample shows how this is done:
\begin{minted}{c++}
// grid is a vtkDataSet and values is the array of doubles to be used
vtkSOADataArrayTemplate<double>* velocity = vtkSOADataArrayTemplate<double>::New();
velocity->SetNumberOfComponents(3);
velocity->SetNumberOfTuples(grid->GetNumberOfPoints());
velocity->SetName("velocity");
velocity->SetArray(0, values, grid->GetNumberOfPoints(), false, true);
velocity->SetArray(1, values+grid->GetNumberOfPoints(),
grid->GetNumberOfPoints(), false, true);
velocity->SetArray(2, values+2*grid->GetNumberOfPoints(),
grid->GetNumberOfPoints(), false, true);
grid->GetPointData()->AddArray(velocity);
velocity->Delete();
\end{minted}
\subsection{Reusing Simulation Memory for Non-VTK Compliant Memory Layouts}\label{appendix:alternatememorylayout}
Recent work in VTK has added the ability to reuse the simulation's memory and data structures
in the co-processing pipeline.
......
......@@ -12,9 +12,10 @@ add_latex_document(
DeveloperSection.tex
BuildSection.tex
Examples.tex
References.tex
#References.tex
Appendix.tex
multicols.sty
BIBFILES References.bib
IMAGE_DIRS Images
# USE_INDEX
)
......
This diff is collapsed.
\section{Examples}
There are a wide variety of VTK examples at \url{www.vtk.org/Wiki/VTK/Examples}. This site
includes C, \Cplusplus, Fortran and Python examples but is targeted for general VTK development.
Examples specific to ParaView Catalyst can be found at
\url{www.github.com/Kitware/ParaViewCatalystExampleCode}.
Descriptionts of the examples are listed below.
Examples specific to ParaView Catalyst can be found at directly in the ParaView source code
under the Examples/Catalyst subdirectories. Descriptionts of the examples are listed below.
\begin{description}
\item[FortranPoissonSolver] \hfill \\
An example of a parallel, finite difference discretization of the Poisson equation
......@@ -56,10 +55,19 @@ Descriptionts of the examples are listed below.
\item[CxxMappedDataArrayExample] \hfill \\
An example of an adaptor where we use VTK mapped
arrays to map simulation data structures to
VTK data arrays to save on memory use by Catalyst.
VTK data arrays to save on memory use by Catalyst. This example
has been deprecated as of ParaView 5.1. The CxxSOADataArrayExample
is the more performant way of reusing simulation memory
directly in Catalyst.
\item[MPISubCommunicatorExample] \hfill \\
An example where only a subset of the MPI
processes are used for the simulation and Catalyst.
\item[CxxParticlePathExample] \hfill \\
An example for computing particle paths \textit{in situ}.
\item[CxxSOADataArrayExample] \hfill \\
An example of an adaptor where we use VTK's newer structure-of-arrays (SOA)
classes to map simulation data structures to
VTK data arrays to save on memory use by Catalyst. Note that this example
has been added to the ParaView source code after the ParaView 5.1 release
but works properly with the ParaView 5.1.
\end{description}
#FIG 3.2 Produced by xfig version 3.2.5c
Landscape
Center
Metric
A4
100.00
Single
-2
1200 2
6 -1665 9090 9765 9630
6 -1665 9090 9765 9630
6 -1665 9090 2205 9630
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-1620 9135 -990 9135 -990 9585 -1620 9585 -1620 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-990 9135 -360 9135 -360 9585 -990 9585 -990 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-360 9135 270 9135 270 9585 -360 9585 -360 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
270 9135 900 9135 900 9585 270 9585 270 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
900 9135 1530 9135 1530 9585 900 9585 900 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
1530 9135 2160 9135 2160 9585 1530 9585 1530 9135
-6
6 2115 9090 5985 9630
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2160 9135 2790 9135 2790 9585 2160 9585 2160 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2790 9135 3420 9135 3420 9585 2790 9585 2790 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
3420 9135 4050 9135 4050 9585 3420 9585 3420 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
4050 9135 4680 9135 4680 9585 4050 9585 4050 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
4680 9135 5310 9135 5310 9585 4680 9585 4680 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
5310 9135 5940 9135 5940 9585 5310 9585 5310 9135
-6
6 5895 9090 9765 9630
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
5940 9135 6570 9135 6570 9585 5940 9585 5940 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
6570 9135 7200 9135 7200 9585 6570 9585 6570 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
7200 9135 7830 9135 7830 9585 7200 9585 7200 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
7830 9135 8460 9135 8460 9585 7830 9585 7830 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
8460 9135 9090 9135 9090 9585 8460 9585 8460 9135
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
9090 9135 9720 9135 9720 9585 9090 9585 9090 9135
-6
-6
4 0 1 50 -1 0 24 0.0000 4 270 120 -1395 9495 0\001
4 0 1 50 -1 0 24 0.0000 4 270 120 -765 9495 1\001
4 0 1 50 -1 0 24 0.0000 4 270 120 -135 9495 2\001
4 0 1 50 -1 0 24 0.0000 4 270 120 495 9495 3\001
4 0 1 50 -1 0 24 0.0000 4 270 120 1125 9495 4\001
4 0 1 50 -1 0 24 0.0000 4 285 120 1755 9495 5\001
4 0 1 50 -1 0 24 0.0000 4 270 120 2385 9495 6\001
4 0 1 50 -1 0 24 0.0000 4 270 120 3015 9495 7\001
4 0 1 50 -1 0 24 0.0000 4 270 120 3645 9495 8\001
4 0 1 50 -1 0 24 0.0000 4 285 120 4275 9495 9\001
4 0 1 50 -1 0 24 0.0000 4 270 240 4815 9495 10\001
4 0 1 50 -1 0 24 0.0000 4 270 240 5445 9495 11\001
4 0 1 50 -1 0 24 0.0000 4 270 240 6075 9495 12\001
4 0 1 50 -1 0 24 0.0000 4 270 240 6705 9495 13\001
4 0 1 50 -1 0 24 0.0000 4 270 240 7380 9495 14\001
4 0 1 50 -1 0 24 0.0000 4 285 240 7965 9495 15\001
4 0 1 50 -1 0 24 0.0000 4 270 240 8595 9495 16\001
4 0 1 50 -1 0 24 0.0000 4 270 240 9225 9495 17\001
-6
6 -1665 10170 2205 10710
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-1620 10215 -990 10215 -990 10665 -1620 10665 -1620 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-990 10215 -360 10215 -360 10665 -990 10665 -990 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
-360 10215 270 10215 270 10665 -360 10665 -360 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
270 10215 900 10215 900 10665 270 10665 270 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
900 10215 1530 10215 1530 10665 900 10665 900 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
1530 10215 2160 10215 2160 10665 1530 10665 1530 10215
-6
6 2115 10170 5985 10710
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2160 10215 2790 10215 2790 10665 2160 10665 2160 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
2790 10215 3420 10215 3420 10665 2790 10665 2790 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
3420 10215 4050 10215 4050 10665 3420 10665 3420 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
4050 10215 4680 10215 4680 10665 4050 10665 4050 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
4680 10215 5310 10215 5310 10665 4680 10665 4680 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
5310 10215 5940 10215 5940 10665 5310 10665 5310 10215
-6
2 1 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 2
4050 4905 4050 7290
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
1395 4905 6345 4905 6345 7290 1395 7290 1395 4905
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
5940 10215 6570 10215 6570 10665 5940 10665 5940 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
6570 10215 7200 10215 7200 10665 6570 10665 6570 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
7200 10215 7830 10215 7830 10665 7200 10665 7200 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
7830 10215 8460 10215 8460 10665 7830 10665 7830 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
8460 10215 9090 10215 9090 10665 8460 10665 8460 10215
2 2 0 3 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
9090 10215 9720 10215 9720 10665 9090 10665 9090 10215
4 0 4 50 -1 0 24 0.0000 4 270 120 1305 7650 0\001
4 0 4 50 -1 0 24 0.0000 4 270 120 3960 7650 1\001
4 0 4 50 -1 0 24 0.0000 4 270 120 6255 7650 2\001
4 0 4 50 -1 0 24 0.0000 4 270 120 1305 4815 3\001
4 0 4 50 -1 0 24 0.0000 4 270 120 3960 4815 4\001
4 0 4 50 -1 0 24 0.0000 4 285 120 6255 4815 5\001
4 0 1 50 -1 0 24 0.0000 4 360 1080 5490 4455 {15,16,17}\001
4 0 1 50 -1 0 24 0.0000 4 345 720 5760 8010 {6,7,8}\001
4 0 1 50 -1 0 24 0.0000 4 360 720 3465 8010 {3,4,5}\001
4 0 1 50 -1 0 24 0.0000 4 345 720 855 7965 {0,1,2}\001
4 0 1 50 -1 0 24 0.0000 4 345 960 765 4455 {9,10,11}\001
4 0 1 50 -1 0 24 0.0000 4 345 1080 3240 4455 {12,13,14}\001
4 0 0 50 -1 0 24 0.0000 4 360 1860 2970 8640 Grid representation\001
4 0 0 50 -1 0 24 0.0000 4 360 3330 1890 9990 Array-of-structures memory layout\001
4 0 0 50 -1 0 24 0.0000 4 360 3300 1890 11115 Structure-of-arrays memory layout\001
4 0 1 50 -1 0 24 0.0000 4 270 120 -1395 10575 0\001
4 0 1 50 -1 0 24 0.0000 4 270 120 -765 10575 3\001
4 0 1 50 -1 0 24 0.0000 4 270 120 -135 10575 6\001
4 0 1 50 -1 0 24 0.0000 4 285 120 495 10575 9\001
4 0 1 50 -1 0 24 0.0000 4 270 120 2385 10575 1\001
4 0 1 50 -1 0 24 0.0000 4 270 120 3015 10575 4\001
4 0 1 50 -1 0 24 0.0000 4 270 120 3645 10575 7\001
4 0 1 50 -1 0 24 0.0000 4 270 240 9225 10575 17\001
4 0 1 50 -1 0 24 0.0000 4 270 240 8595 10575 14\001
4 0 1 50 -1 0 24 0.0000 4 270 120 7425 10575 8\001
4 0 1 50 -1 0 24 0.0000 4 270 120 6165 10575 2\001
4 0 1 50 -1 0 24 0.0000 4 270 240 5445 10575 16\001
4 0 1 50 -1 0 24 0.0000 4 270 240 4815 10575 13\001
4 0 1 50 -1 0 24 0.0000 4 285 240 1665 10575 15\001
4 0 1 50 -1 0 24 0.0000 4 270 240 1035 10575 12\001
4 0 1 50 -1 0 24 0.0000 4 270 240 4140 10575 10\001
4 0 1 50 -1 0 24 0.0000 4 285 120 6795 10575 5\001
4 0 1 50 -1 0 24 0.0000 4 270 240 7965 10575 11\001
......@@ -10,10 +10,10 @@ Committee (ASCAC) Subcommittee,”
Fall 2010), it's imperative to address these issues.
The ParaView Catalyst library is a system that addresses such challenges. It is designed to be easily
integrated directly into large-scale numerical codes. Built on and designed to interoperate with
the standard visualization toolkit VTK and and scalable ParaView application, it enables
the standard visualization toolkit VTK and scalable ParaView application, it enables
simulations to intelligently perform analysis, generate relevant output data, and visualize results
concurrent with a running simulation. This ability to concurrently visualize and analyze data from simulations
is referred to synonymously as \textit{in situ} processing, co-processing, co-analysis,
is referred to synonymously as \textit{in situ} processing, co-processing, co-analysis, concurrent visualization,
and co-visualization. Thus ParaView Catalyst is often referred to as a co-processing, or
\textit{in situ}, library for high-performance computing (HPC).
In the remainder of this Introduction section, we will motivate the use of Catalyst, and describe
......@@ -177,7 +177,7 @@ data.
Catalyst has been used by a variety of simulation codes.
An arbitrary list of these codes includes PHASTA from UC Boulder, Hydra-TH, MPAS-O,
XRAGE, NPIC and VPIC from LANL, Helios from the Army's Aeroflightdynamics Directorate, and CTH,
XRAGE, NPIC and VPIC from LANL, CREATE-AV\textsuperscript{TM} Helios from the Army's Aeroflightdynamics Directorate, and CTH,
Albany and the Sierra simulation framework from Sandia, H3D from UCSD, and Code Saturne from EDF
have all been instrumented to use Catalyst. Some example outputs are shown in
Figure~\ref{fig:catalystexampleoutput}.
......@@ -185,7 +185,7 @@ Figure~\ref{fig:catalystexampleoutput}.
\begin{figure}[htb]
\begin{center}
\subfloat[PHASTA]{\includegraphics[width=3in]{Images/phasta.png}}\,
\subfloat[Helios]{\includegraphics[width=3in]{Images/helios.png}\label{fig:helios}} \\
\subfloat[CREATE-AV\textsuperscript{TM}Helios]{\includegraphics[width=3in]{Images/helios.png}\label{fig:helios}} \\
\subfloat[Code Saturne]{\includegraphics[width=3in]{Images/codesaturne.png}}\,
\subfloat[CTH]{\includegraphics[width=3in]{Images/cth.png}\label{fig:cth}}
\caption{Various results from simulation codes linked with ParaView Catalyst. Note that post-processing with different packages was performed with \protect\subref{fig:helios} and \protect\subref{fig:cth}.}
......@@ -225,11 +225,12 @@ The following are various links of interest related to Catalyst:
etc.
\item \url{www.paraview.org/download} The main ParaView download
page. Useful for installing ParaView on local machines for creating Catalyst scripts and
viewing Catalyst output.
viewing Catalyst output. The source code is also available which contains Catalyst
specific example code useful for developers.
\item \url{www.paraview.org/in-situ} The main page for ParaView Catalyst.
\item \url{paraview@paraview.org} The mailing list for general ParaView and Catalyst support.
\item \url{www.github.com/Kitware/ParaViewCatalystExampleCode} Example code for integrating a
simulation code with Catalyst as well as creating a variety of VTK data structures.
\item \url{www.cinemascience.org} The main page for information on Cinema, an image-based method for doing
\textit{in situ} analysis and visualization.
\end{itemize}
The remainder of this guide is broken up into three main sections. Section~\ref{chapter:UserSection} addresses users
......
......@@ -166,14 +166,19 @@
\label{chapter:Examples}
\input{Examples}
\chapter{References}
\label{chapter:References}
\input{References}
\chapter{Appendix}
\label{chapter:Appendix}
\input{Appendix}
\nocite{paraview, VTKBook, fabian2011, ahrens2014a, moreland13}
\addcontentsline{toc}{chapter}{Bibliography}
\bibliographystyle{abbrv}
{\small
\bibliography{References}
}
%------------------------------------------------------------------------------
......
@misc{ParaViewDoxygen,
title={{ParaView API documentation}},
author={{Kitware, Inc.}},
howpublished={\url{http://www.paraview.org/paraview/help/api-documentation.html}}
}
@misc{VTKDoxygen,
title={{VTK API documentation}},
author={{Kitware, Inc.}},
howpublished={\url{http://www.vtk.org/doc/nightly/html/}}
}
@misc{VTKWebsite,
title={{VTK}},
author={{Kitware, Inc.}},
howpublished={\url{http://www.vtk.org}}
}
@TECHREPORT{moreland13,
TITLE={Data Co-Processing for Extreme Scale Analysis Level II ASC Milestone (4745)},
AUTHOR={Rogers, David and Moreland, Kenneth and Oldfied, Ron and Fabian, Nathan},
YEAR={2013},
INSTITUTION={Technical report, Sandia National Laboratories} }
@inproceedings{ahrens2014a,
author = {Ahrens, James and Jourdain, S{\'e}bastien and O'Leary, Patrick and Patchett, John and Rogers, David H. and Petersen, Mark},
title = {An Image-based Approach to Extreme Scale in Situ Visualization and Analysis},
booktitle = {Proceedings of the International Conference for High Performance Computing, Networking, Storage and Analysis},
series = {SC '14},
year = {2014},
isbn = {978-1-4799-5500-8},
location = {New Orleans, Louisana},
pages = {424--434},
numpages = {11},
url = {http://dx.doi.org/10.1109/SC.2014.40},
doi = {10.1109/SC.2014.40},
acmid = {2683640},
publisher = {IEEE Press},
address = {Piscataway, NJ, USA},
}
@inproceedings{fabian2011,
Author={Nathan Fabian and Kenneth Moreland and David Thompson and Andrew C. Bauer and Pat Marion and Berk Geveci and Michel Rasquin and Kenneth E. Jansen},
Title={The ParaView Coprocessing Library: A Scalable, General Purpose In Situ Visualization Library},
Booktitle={IEEE Symposium on Large-Scale Data Analysis and Visualization (LDAV) 2011},
Pages={89--96},
Month={October},
Year={2011},
Organization={Institute of Electrical and Electronics Engineers}}
@book(VTKBook,
author = "Will Schroeder and Ken Martin and Bill Lorensen",
title = {{The Visualization Toolkit: An Object Oriented Approach to 3D Graphics}},
edition = "Fourth",
publisher = {{Kitware, Inc.}},
note = "ISBN 1-930934-19-X",
year = "2004"
)
@book(paraview,
author = "Utkarsh Ayachit",
title = {{The ParaView Guide}},
edition = "Fourth",
publisher = {{Kitware, Inc.}},
note = "ISBN 978-1-930934-30-6",
year = "2015"
)
......@@ -14,3 +14,5 @@ Schroeder, Ken Martin, and Bill Lorensen. Kitware Inc., fourth edition, 2004. IS
\item ``The ParaView Guide: A Parallel Visualization Application''. Utkarsh Ayachit et al.
Kitware Inc., 4th edition, 2012. ISBN 978-1-930934-24-5.
\end{itemize}
......@@ -33,7 +33,7 @@ the user does not need to be familiar with ParaView to use this functionality.
Configuration of the pre-processing
step can be based on generic information to produce desired
outputs (e.g. an iso-surface value and the variable to iso-surface) and the output can be written in either image
file or other formats with which the user has experience.
files or other formats with which the user has experience.
There are two major ways in which the user can utilize Catalyst for
\textit{in situ} analysis and visualization. The first is
......@@ -86,7 +86,7 @@ of actually writing the desired output to a file we need to specify when and whe
files will be created when running the simulation. For data extracts we specify at this
point that information by choosing an appropriate writer under the \menu{Writers} menu. The
user should specify a descriptive file name as well as a write frequency in the Properties
panel as shown in the image below. The file name must contain a \%t in it as this gets
panel as shown in Figure~\ref{fig:pipeline}. The file name must contain a \%t in it as this gets
replaced by the time step when creating the file. Note that the step to specify screenshot
outputs for Catalyst is done later.
\begin{figure}[htb]
......@@ -119,7 +119,7 @@ have been selected, click on Next.
\end{center}
\end{figure}
\item The next step is labeling the inputs. The most common case is a single input in which
case we use the convention that it should be named “input”, the default value. For
case we use the convention that it should be named ``input'', the default value. For
situations where the adaptor can provide multiple sources (e.g. fluid-structure interaction
codes where a separate input exists for the fluid domain and the solid domain), the user
will need to label which input corresponds to which label. This is shown in Figure~\ref{fig:sourcelabelling}.
......@@ -132,12 +132,13 @@ After this is done, click Next.
\end{center}
\end{figure}
\item The next page in the wizard gives the user the option to allow Catalyst to check for a
Live Visualization connection and to output screenshots from different views. Check the
box next to Live Visualization to enable it. For screenshots, there are a variety of
Live Visualization connection, to output screenshots from different views and Cinema output.
ParaView Live and Cinema are discussed in more detail in Sections~\ref{sec:paraviewlive} and \ref{sec:cinema},
respectively. For screenshots, there are a variety of
options. The first is a global option which will rescale the lookup table for pseudo-coloring
to the current data range for all views. The other options are per view and are:
\begin{itemize}
\item Image type -- choice of image format to output the screenshot in.
\item Image Type -- choice of image format to output the screenshot in.
\item File Name -- the name of the file to create. It must contain a \%t in it so that the
actual simulation time step value will replace it.
\item Write Frequency -- how often the screenshot should be created.
......@@ -153,7 +154,7 @@ and Previous View buttons in the window. After everything has been set, click on
Finish button to create the Python script.
\begin{figure}[htb]
\begin{center}
\includegraphics[width=4in]{Images/imageoutput.png}
\includegraphics[width=4in,height=3.8in]{Images/imageoutput.png}
\caption{Setting the parameters for outputting screenshots.}
\label{fig:imageoutput}
\end{center}
......@@ -192,6 +193,7 @@ menu.
\end{itemize}
\section{ParaView Live}
\label{sec:paraviewlive}
In addition to being able to set up pipelines \textit{a priori}, through
ParaView Live's capabilities the analyst can connect to the running simulation
through the ParaView GUI in order to modify existing pipelines.
......@@ -234,6 +236,35 @@ this are:
\end{itemize}
A demonstration of this functionality is at \url{www.kitware.com/blog/home/post/722}.
\section{Cinema}
\label{sec:cinema}
Cinema is an image-based approach to \textit{in situ} analysis and visualization.
The concept is that by saving an organized set of images into a Cinema database,
an analyst can perform \textit{post hoc} analysis and visualization directly from the
generated images. ParaView Catalyst can be used to create a Cinema database
and the specification of the Cinema output can be done through the ParaView GUI's
Catalyst Script Generator plugin. Figure~\ref{fig:cinemaexport} shows the
expanded options when Output to Cinema is enabled. These options are:
\begin{itemize}
\item Export Type -- This option specifies how the view's camera should be manipulated
when generating the images. Current options include None, Static and Spherical. None indicates
that no Cinema output is requested for this view and Static indicates that the camera need not
be moved. Spherical will rotate the camera around the view's center at the given Phi and Theta angles.
\item Cinema Track Selection -- This option allows changing filter parameters and what field data to
pseudo-color with. By selecting the pipeline object in the left pane, users can specify the arrays
to pseudo-color by in the right pane's Arrays tab or the filter's parameters in the right pane's
Filter Values tab. Note that currently only Slice, Contour and Cut filters have been enabled
for modifying filter values.
\end{itemize}
See \url{www.cinemascience.org} or Ahrens, et. al.~\cite{ahrens2014a} for detailed information on Cinema.
\begin{figure}[htb]
\begin{center}
\includegraphics[width=4in,height=5.8in]{Images/cinemaexport.png}
\caption{ParaView Catalyst export options for Cinema output.}
\label{fig:cinemaexport}
\end{center}
\end{figure}
\section{Avoiding Data Explosion}\label{section:avoidingdataexplosion}
A key point to keep in mind when creating Catalyst pipelines is that the choice and order of
......@@ -264,6 +295,7 @@ filter's output. The filters in this category are:
\item Normal Glyphs
\item Outline
\item Outline Corners
\item Pass Arrays
\item Plot Over Line
\item Probe Location
\end{itemize}
......@@ -316,5 +348,7 @@ Additionally, reduction is preferred over extraction (e.g. the Slice filter is p
filter). Extracting should only be done when reducing by an order of magnitude or more. When
outputting data extracts, subsampling (e.g. the Extract Subset filter or the Decimate filter) can
be used to reduce file size but caution should be used to make sure that the data reduction
doesn't hide any fine features.
doesn't hide any fine features. Additionally, the Pass Arrays filter can be used
to reduce the number of arrays that are passed through the
pipeline and potentially written to disk.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment