diff --git a/doc/theory_manual/Makefile b/doc/theory_manual/Makefile
index a1c9479474..f393f5a98c 100644
--- a/doc/theory_manual/Makefile
+++ b/doc/theory_manual/Makefile
@@ -1,6 +1,6 @@
SRCFILE = raven_theory_manual
LATEX_FLAGS=-shell-escape
-GUIDE_FILES = raven_theory_manual.tex statisticalAnalysis.tex forwardSampling.tex adaptiveSampling.tex dataMining.tex reducedOrderModeling.tex ravenStructure.tex introduction.tex ../version.tex
+GUIDE_FILES = raven_theory_manual.tex statisticalAnalysis.tex forwardSampling.tex adaptiveSampling.tex dataMining.tex reducedOrderModeling.tex ravenStructure.tex introduction.tex dssPostProcessor.tex ../version.tex
MAKE_DIR = $(shell pwd)
#all: raven_theory_manual.pdf
diff --git a/doc/theory_manual/dssPostProcessor.tex b/doc/theory_manual/dssPostProcessor.tex
new file mode 100644
index 0000000000..c55994f192
--- /dev/null
+++ b/doc/theory_manual/dssPostProcessor.tex
@@ -0,0 +1,113 @@
+\section{Dynamical System Scaling}
+\label{sec:dssdoc}
+
+The DSS approach to system scaling is based on transforming the typical view of processes to a special coordinate system in terms of the parameter of interest and its agents of change \cite{DSS2015}.
+By parameterizing using a time term that will be introduced later in this section, data reproduced can be converted to the special three coordinate system (also called the phase space)
+and form a geometry with curves along the surface containing invariant and intrinsic properties. The remainder of this section is a review of DSS theory introduced in publications
+by Reyes \cite{DSS2015,Reyes2015,Martin2019} and is used in this analysis for FR scaling. The parameter of interest is defined to be a conserved quantity within a control volume:
+\begin{equation}
+ \label{eq_1}
+ \beta(t)=\frac{1}{\Psi_{0}}\iiint_{V}{\psi\left(\vec{x},t\right)}dV
+\end{equation}
+$\beta$ is defined as the volume integral of the time and space dependent conserved quantity $\psi$ normalized by a time-independent value, $\Psi_{0}$, that characterizes the process. The agents of change are defined as the first derivative of the normalized parameter of interest:
+\begin{equation}
+ \label{eq_2}
+ \omega=\frac{1}{\Psi_{0}}\frac{d}{dt}\iiint_{V}{\psi\left(\vec{x},t\right)}dV=\iiint_{V}{\left(\phi_{v}+\phi_{f}\right)}dV+\iint_{A}{\left(\vec{j}\cdot\vec{n}\right)}dA-\iint_{A}{\psi\left(\vec{v}-\vec{v}_{s}\cdot\vec{n}dA\right)}dA
+\end{equation}
+The change is categorized into three components; volumetric, surface, and quantity transport. The agents of change is also the sum of the individual agent of change:
+\begin{equation}
+ \omega=\frac{1}{\Psi_{0}}\frac{d}{dt}\iiint_{V}{\psi\left(\vec{x},t\right)}dV=\sum^{n}_{i=1}{\omega_{i}}
+\end{equation}
+The relation of $\omega$ and $\beta$ is the following:
+\begin{equation}
+ \label{eq_3}
+ \omega(t)=\left.\frac{d\beta}{dt}\right|_{t}=\sum^{n}_{i=1}{\omega_{i}}
+\end{equation}
+Where $\omega$ is the first derivative of reference time. As defined in Einstein and Infeld, time is a value stepping in constant increments \cite{Einstein1966}. The process dependent term in DSS is called process time:
+\begin{equation}
+ \label{eq_4}
+ \tau(t)=\frac{\beta(t)}{\omega(t)}
+\end{equation}
+To measure the progression difference between reference time and process time in respect to reference time, the idea of temporal displacement rate (D) is adopted:
+\begin{equation}
+ \label{eq_5}
+ D=\frac{d\tau-dt}{dt}=-\frac{\beta}{\omega^{2}}\frac{d\omega}{dt}
+\end{equation}
+The interval of process time is:
+\begin{equation}
+ \label{eq_8}
+ d\tau=\tau_{s}=\left(1+D\right)dt
+\end{equation}
+Applying the process action to normalize the phase space coordinates gives the following normalized terms:
+\begin{equation}
+ \label{eq_10}
+ \tilde{\Omega}=\omega\tau_{s},\qquad \tilde{\beta}=\beta,\qquad \tilde{t}=\frac{t}{\tau_{s}},\qquad \tilde{\tau}=\frac{\tau}{\tau_{s}},\qquad
+ \tilde{D}=D
+\end{equation}
+The scaling relation between the prototype and model can be defined both for $\beta$ and $\omega$ and represents the scaling of the parameter of interest and the corresponding agents of change (or frequency given from the units of per time):
+\begin{equation}
+ \label{eq_11}
+ \lambda_{A}=\frac{\beta_{M}}{\beta_{P}},\qquad \lambda_{B}=\frac{\omega_{M}}{\omega_{P}}
+\end{equation}
+The subscripts $M$ and $P$ stand for the model and prototype. Applying these scaling ratios to equations (\ref{eq_4}), (\ref{eq_5}), and (\ref{eq_10}) provides the scaling ratios for other parameters as well:
+\begin{equation}
+ \label{eq_12}
+ \frac{t_{M}}{t_{P}}=\frac{\lambda_{A}}{\lambda_{B}},\qquad \frac{\tau_{M}}{\tau_{P}}=\frac{\lambda_{A}}{\lambda_{B}},\qquad \frac{\tilde{\beta}_{M}}{\tilde{\beta}_{P}}=\lambda_{A},\qquad \frac{\tilde{\Omega}_{M}}{\tilde{\Omega}_{P}}=\lambda_{A},\qquad \frac{\tilde{\tau}_{M}}{\tilde{\tau}_{P}}=1,\qquad \frac{D_{M}}{D_{P}}=1
+\end{equation}
+Normalized agents of change is the sum in the same respect:
+\begin{equation}
+ \label{eq_18}
+ \Omega=\sum^{k}_{i=1}{\Omega_{i}}
+\end{equation}
+The ratio of $\Omega$ is expressed in the following alternate form:
+\begin{equation}
+ \label{eq_19}
+ \Omega_{R}=\frac{\Omega_{M}}{\Omega_{P}}=\frac{\sum^{k}_{i=1}{\Omega_{M,i}}}{\sum^{k}_{i=1}{\Omega_{P,i}}}=\frac{\Omega_{M,1}+\Omega_{M,2}+...+\Omega_{M,k}}{\Omega_{P,1}+\Omega_{P,2}+...+\Omega_{P,k}}
+\end{equation}
+By the law of scaling ratios, The following must be true:
+\begin{equation}
+ \label{eq_13}
+ \lambda_{A}=\frac{\Omega_{M,1}}{\Omega_{P,1}},\lambda_{A}=\frac{\Omega_{M,2}}{\Omega_{P,2}},...,\lambda_{A}=\frac{\Omega_{M,k}}{\Omega_{P,k}}
+\end{equation}
+Depending on the scaling ratio values, From Reyes, the scaling methods and similarity criteria is subdivided into five categories; 2-2 affine, dilation, $\beta$-strain, $\omega$-strain, and identity \cite{DSS2015}.
+Table \ref{DSS:table_1} summarizes the similarity criteria. Despite the five categories, in essence, all are 2-2 affine with exceptions of partial scaling ratios values being 1.
+\begin{table}[H]
+\centering
+\begin{tabular}{c|c|c|c|c}
+\hline
+%\rowcolor{lightgray}
+\multicolumn{5}{c}{Basis for Process Space-time Coordinate Scaling}\\
+\hline
+Metric & \multirow{2}{*}{$d\tilde{\tau}_{P}=d\tilde{\tau}_{P}$} & \multirow{2}{*}{And} & Covariance & \multirow{2}{*}{$\frac{1}{\omega_{P}}\frac{d\beta_{P}}{dt_{P}}=\frac{1}{\omega_{M}}\frac{d\beta_{M}}{dt_{M}}$} \\
+Invariance & & & Principle & \\
+\hline
+\multicolumn{5}{c}{$\beta-\omega$ Coordinate Transformations}\\
+\hline
+2-2 Affine & Dilation & $\beta$-Strain & $\omega$-Strain & Identity \\
+$\beta_{R}=\lambda_{A}$ & $\beta_{R}=\lambda$ & $\beta_{R}=\lambda_{A}$ & $\beta_{R}=1=\lambda_{B}$ & $\beta_{R}=1$ \\
+$\omega_{R}=\lambda_{B}$ & $\omega_{R}=\lambda$ & $\omega_{R}=1$ & $\omega_{R}=\lambda_{B}$ & $\omega_{R}=1$ \\
+\hline
+\multicolumn{5}{c}{Similarity Criteria}\\
+\hline
+$\tilde{\Omega}_{R}=\lambda_{A}$ & $\tilde{\Omega}_{R}=\lambda$ & $\tilde{\Omega}_{R}=\lambda_{A}$ & $\tilde{\Omega}_{R}=1$ & $\tilde{\Omega}_{R}=1$ \\
+$\tau_{R}=t_{R}=\frac{\lambda_{A}}{\lambda_{B}}$ & $\tau_{R}=t_{R}=1$ & $\tau_{R}=t_{R}=\lambda_{A}$ & $\tau_{R}=t_{R}=\frac{1}{\lambda_{B}}$ & $\tau_{R}=t_{R}=1$ \\
+\hline
+\end{tabular}
+\caption{Scaling Methods and Similarity Criteria Resulting from Two-Parameter Transformations \cite{DSS2015}}\label{DSS:table_1}
+\end{table}
+The separation between both process curves along the constant normalized process time is the local distortion \cite{Martin2019}:
+\begin{equation}
+ \label{eq_15}
+ \tilde{\eta}_{k}=\beta_{P_{k}}\sqrt{\varepsilon D_{P_{k}}}\left[\frac{1}{\Omega_{P_{k}}}-\frac{\lambda_{A}}{\Omega_{M_{k}}}\right]
+\end{equation}
+Where $\epsilon$ is a sign adjuster ensuring positive values within the square root. The total distortion is:
+\begin{equation}
+ \label{eq_16}
+ \tilde{\eta}_{T}=\sum^{N}_{k=1}{\left|\tilde{\eta}_{k}\right|}
+\end{equation}
+And, the equivalent standard deviation is:
+\begin{equation}
+ \label{eq_17}
+ \sigma_{est}=\sqrt{\frac{1}{N}\sum^{N}_{k=1}{\tilde{\eta}^{2}_{k}}}
+\end{equation}
+
diff --git a/doc/theory_manual/raven_theory_manual.bib b/doc/theory_manual/raven_theory_manual.bib
index 5838b9914a..5808168e27 100644
--- a/doc/theory_manual/raven_theory_manual.bib
+++ b/doc/theory_manual/raven_theory_manual.bib
@@ -2,10 +2,35 @@
%% http://bibdesk.sourceforge.net/
-%% Created for Andrea Alfonsi at 2015-01-21 08:58:35 -0700
+%% Created for Andrea Alfonsi at 2015-01-21 08:58:35 -0700
-%% Saved with string encoding Unicode (UTF-8)
+%% Saved with string encoding Unicode (UTF-8)
+
+@book{Einstein1966,
+ author = {A. Einstein and L. Infeld},
+ title = {{The Evolution of Physics from early concepts to relativity and quanta}},
+ year = {1966},
+ publisher = {Simon and Schuster Publisher},
+ address = {New York, NY}}}
+
+@article{Reyes2015,
+ author = {J.N. Reyes and Cesear Frepoli and J.P. Yurko},
+ title = {{The Dynamical System Scaling Methodology: Comparing Dimensionless Governing Equations with the H2TS and FSA Methodologies}},
+ journal = {The 16th International Topical Meeting on Nuclear Thermal Hydraulics (NURETH-16)},
+ year = {2015}}
+
+@book{Martin2019,
+ author = {R.P. Martin and C. Frepoli},
+ title = {{Design-Basis Accident Analysis Methods for Light-Water Nuclear Power Plants}},
+ year = {2019},
+ publisher = {World Scientific}}
+
+@article{DSS2015,
+ author = {J.N. Reyes},
+ title = {{T}he {D}ynamical {S}ystem {S}caling {M}ethodology},
+ journal = {The 16th International Topical Meeting on Nuclear Thermal Hydraulics (NURETH-16)},
+ year = {2015}}
@Book{StochasticMethods,
author = {C. Gardiner},
@@ -216,53 +241,53 @@ @article{benchmark
year={1968}
}
-@article{SCLagrange,
-auTHor = "Babuska and Nobile and Tempone",
-Title = "{A stochastic collocation method for elliptic partial differential equations with random input data}",
+@article{SCLagrange,
+auTHor = "Babuska and Nobile and Tempone",
+Title = "{A stochastic collocation method for elliptic partial differential equations with random input data}",
journal = "SIAM Journal on Numerical Analysis",
volume = 45,
-YEAR = 2007,
-}
+YEAR = 2007,
+}
-@article{hdmr,
-auTHor = "Li and Rosenthal and Rabitz",
-Title = "{High dimensional model representations}",
+@article{hdmr,
+auTHor = "Li and Rosenthal and Rabitz",
+Title = "{High dimensional model representations}",
journal = "J. Phys. Chem. A",
volume = 105,
-YEAR = 2001,
-}
+YEAR = 2001,
+}
-@article{hdmr_neutron,
-auTHor = "Hu and Smith and Willert and Kelley",
-Title = "{High dimensional model representations for the neutron transport equation}",
+@article{hdmr_neutron,
+auTHor = "Hu and Smith and Willert and Kelley",
+Title = "{High dimensional model representations for the neutron transport equation}",
journal = "NS\&E",
volume = 177,
-YEAR = 2014,
-}
+YEAR = 2014,
+}
#no TD or HC, just SC
-@article{sparseSC,
-auTHor = "Nobile and Tempone and Webster",
-Title = "{A sparse grid stochastic collocation method for partial differential equations with random input data}",
+@article{sparseSC,
+auTHor = "Nobile and Tempone and Webster",
+Title = "{A sparse grid stochastic collocation method for partial differential equations with random input data}",
journal = "SIAM Journal on Numerical Analysis",
volume = 46,
-YEAR = 2008,
-}
+YEAR = 2008,
+}
-@article{sparse1,
-auTHor = "Barthelmann and Novak and Ritter",
-Title = "{High dimensional polynomial interpolation on sparse grids}",
+@article{sparse1,
+auTHor = "Barthelmann and Novak and Ritter",
+Title = "{High dimensional polynomial interpolation on sparse grids}",
journal = "Advances in Computational Mathematics",
volume = 12,
-YEAR = 2000,
-}
+YEAR = 2000,
+}
-@article{sparse2,
-auTHor = "Bungartz and Griebel",
-Title = "{Sparse grids}",
+@article{sparse2,
+auTHor = "Bungartz and Griebel",
+Title = "{Sparse grids}",
journal = "Acta Numerica",
volume = 13,
-YEAR = 2004,
+YEAR = 2004,
}
@book{textbook,
@@ -274,20 +299,20 @@ @book{textbook
Title = {Spectral methods for uncertainty quantification with applications to computational fluid dynamics},
Year = {2010}}
-@article{erin01,
-auTHor = "Fichtl and Prinja",
-Title = "{The stochastic collocation method for radiation transport in random media}",
+@article{erin01,
+auTHor = "Fichtl and Prinja",
+Title = "{The stochastic collocation method for radiation transport in random media}",
journal = "J. Quantitative Spectroscopy \& Radiative Transfer",
volume= 12,
-YEAR = 2011,
+YEAR = 2011,
}
-@article{mike01,
-auTHor = "Rising and Prinja and Talou",
-Title = "{Prompt fission neutron spectrum uncertainty propagation using polynomial chaos expansion}",
+@article{mike01,
+auTHor = "Rising and Prinja and Talou",
+Title = "{Prompt fission neutron spectrum uncertainty propagation using polynomial chaos expansion}",
journal = "Nucl. Sci. Eng.",
volume= 175,
-YEAR = 2013,
+YEAR = 2013,
}
@TechReport{RAVENuserManual,
@@ -497,11 +522,11 @@ @article{SVM_Burges
issn = {1384-5810},
pages = {121--167},
publisher = {Kluwer Academic Publishers},
-}
+}
@article{MD_spline,
title = {Multidimensional Spline Interpolation: Theory and Applications},
- author = {Habermann, Christian and Kindermann, Fabian},
+ author = {Habermann, Christian and Kindermann, Fabian},
year = {2007},
journal = {Computational Economics},
volume = {30},
@@ -537,7 +562,7 @@ @inproceedings{Shepard
pages = {517--524},
publisher = {ACM},
address = {New York, NY, USA}
-}
+}
@misc{PBS,
Date-Added = {2015-01-20 19:25:37 +0000},
@@ -772,7 +797,7 @@ @inproceedings{ANS2014alf
Date-Added = {2013-01-29 22:01:50 +0000},
Title = {Performing Probabilist Risk Assessment Through RAVEN},
Year = {2014}}
-
+
@inproceedings{ANS2014alfADET,
Author = {A. Alfonsi and C. Rabiti and D. Mandelli and J. Cogliati and B. Kinoshita},
Booktitle = {Proceedings American Nuclear Society 2014 Winter Meeting Nuclear-The Foundation of Clean Energy, Anaheim, CA, (2014)},
@@ -793,7 +818,7 @@ @TechReport{RELAP5userManual
OPTnote = {•},
annote = {rev.7}
}
-
+
@article{Bailey2018,
Author = {Paul Bailey and Ahmad Emad and Ting Zhang and Qingshu Xie and Emmanuel Sikali},
Date-Added = {2021-10-29 22:01:18 +0000},
diff --git a/doc/theory_manual/raven_theory_manual.tex b/doc/theory_manual/raven_theory_manual.tex
index a611e77b96..5eb138a645 100644
--- a/doc/theory_manual/raven_theory_manual.tex
+++ b/doc/theory_manual/raven_theory_manual.tex
@@ -37,6 +37,9 @@
\usepackage{lscape}
\usepackage[toc,page]{appendix}
\usepackage{RAVEN}
+\usepackage{tabls}
+\usepackage{multirow}
+\usepackage{float}
\newtheorem{mydef}{Definition}
\newcommand{\norm}[1]{\lVert#1\rVert}
@@ -404,6 +407,7 @@
\input{reducedOrderModeling.tex}
\input{statisticalAnalysis.tex}
\input{dataMining.tex}
+\input{dssPostProcessor.tex}
\clearpage
\begin{appendices}
\section{Document Version Information}
diff --git a/doc/user_manual/metrics.tex b/doc/user_manual/metrics.tex
index edf3c4082b..5df36ad6fa 100644
--- a/doc/user_manual/metrics.tex
+++ b/doc/user_manual/metrics.tex
@@ -70,8 +70,7 @@ \section{Metrics}
\item \textbf{Other metric}, such as \xmlString{DTW}.
\end{itemize}
-The valid \textbf{MetricID}s are: \xmlAttr{SKL}, \xmlAttr{ScipyMetric}, \xmlAttr{DTW}, \xmlAttr{CDFAreaDifference},
-and \xmlAttr{PDFCommonArea}. This XML node requires the following attributes:
+The valid \textbf{MetricID}s are: \xmlAttr{SKL}, \xmlAttr{ScipyMetric}, \xmlAttr{DTW}, \xmlAttr{CDFAreaDifference}, \xmlAttr{PDFCommonArea}, and \xmlAttr{DSS}. This XML node requires the following attributes:
\begin{itemize}
\item \xmlAttr{name}, \xmlDesc{required string attribute}, user-defined name of this metric. \nb As with other
objects, this name can be used to refer to this specific entity from other input blocks in the XML.
@@ -599,3 +598,25 @@ \subsubsection{Distance Based Metric}
In addition to this XML subnode, the users can also specify the corresponding parameters for each `metric' according to
previous sections.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\subsection{Dynamical System Scaling}
+\label{subsection:DSS}
+The Dynamical System Scaling (DSS) is a distance metrics that is used to measure the separation
+between two time-dependent data sets.
+
+The specifications of a DSS metric is defined within the \xmlNode{Metric} XML block. The XML node \xmlAttr{subType} must be \textbf{PPDSS} (see \ref{subsubsec:Validation}) in the \xmlNode{PostProcessor} for the outputs of the post-processor to be in the right format for DSS metric inputs.
+
+An example of DSS defined in RAVEN is provided below:
+\begin{lstlisting}[style=XML]
+
+ ...
+
+ ...
+
+
+ ...
+
+ ...
+
+\end{lstlisting}
diff --git a/doc/user_manual/postprocessor.tex b/doc/user_manual/postprocessor.tex
index 72a39131ae..8b6232af3f 100644
--- a/doc/user_manual/postprocessor.tex
+++ b/doc/user_manual/postprocessor.tex
@@ -1622,16 +1622,16 @@ \subsubsection{Validation}
dataset and/or models (e.g. Distributions).
The post-processor is in charge of deploying a common infrastructure
for the user of \textbf{Validation} problems.
-Several algorithms are avaialable within this post-processor:
+Several algorithms are available within this post-processor:
\begin{itemize}
\item \textbf{Probabilistic}, for Static and Time-dependent data
- % \item \textbf{DSS}
+ \item \textbf{PPDSS}, for Time-dependent data
% \item \textbf{Representativity}
% \item \textbf{PCM}
\end{itemize}
%
-The \textbf{Validation} post-processor makes use of the \textbf{Metric} system (See Chapter \ref{sec:Metrics}) to, in conjucntion with the specific algorithm chosen from the list above,
+The \textbf{Validation} post-processor makes use of the \textbf{Metric} system (See Chapter \ref{sec:Metrics}) to, in conjunction with the specific algorithm chosen from the list above,
to report validation scores for both static and time-dependent data.
Indeed, Both \textbf{PointSet} and \textbf{HistorySet} can be accepted by this post-processor (depending on which algorithm is chosen).
If the name of given variable to be compared is unique, it can be used directly, otherwise the variable can be specified
@@ -1654,13 +1654,36 @@ \subsubsection{Validation}
The choice of the available metrics depends on the specific validation algorithm that is chosen (see table \ref{tab:ValidationAlgorithms})
\end{itemize}
-In addition to the nodes above, the user must choose a validation algorithm:
+In addition to the nodes above, the user must use the sub-nodes specific to the chosen validation algorithm:
\begin{itemize}
- \item \xmlNode{Probabilistic}, \xmlDesc{XML node, optional field}, specify that the validation needs to be performed
+ \item Probabilistic: specify that the validation needs to be performed
using the Probabilistic metrics: \textbf{CDFAreaDifference} (see \ref{subsubsec:metric_CDFAreaDifference}) or \textbf{PDFCommonArea} (see \ref{subsubsec:metric_PDFCommonArea})
- This xml-node accepts the following attribute:
+ This validation algorithm must have the following sub-nodes for HistorySet:
\begin{itemize}
- \item \xmlAttr{ name}, \xmlDesc{required string attribute}, the user defined name of the validation algorithm used as prefix for the output results.
+ \item \xmlNode{pivotParameter}, \xmlDesc{string, required field}, specifies the pivotParameter for a . The pivot parameter is the shared index of the output variables in the data object.
+ \end{itemize}
+ \item PPDSS: specify that the validation needs to be performed
+ using the PPDSS metrics: \textbf{DSS} (\ref{subsection:DSS})
+ This validation algorithm must have the following sub-nodes:
+ \begin{itemize}
+ \item \xmlNode{pivotParameterFeature}, \xmlDesc{string, required field}, specifies the pivotParameter for a feature . The feature pivot parameter is the shared index of the output variables in the data object.
+ \item \xmlNode{pivotParameterTarget}, \xmlDesc{string, required field}, specifies the pivotParameter for a target . The target pivot parameter is the shared index of the output variables in the data object.
+ \item \xmlNode{multiOutput}, \xmlDesc{string, required field}, to extract raw values for the HistorySet. The user must use ‘raw values’ for the full set of metrics’ calculations to be dumped.
+ \item \xmlNode{scale}, \xmlDesc{string, required field}, specifies the type of time scaling. The following are the options for scaling (specific definitions for each scaling type is provided in \ref{sec:dssdoc}):
+ \begin{itemize}
+ \item \textbf{DataSynthesis}, calculating the distortion for two data sets without applying other scaling ratios.
+ \item \textbf{2\_2\_affine}, calculating the distortion for two data sets with scaling ratios for parameter of interest and agent of changes.
+ \item \textbf{dilation}, calculating the distortion for two data sets with scaling ratios for parameter of interest and agent of changes.
+ \item \textbf{beta\_strain}, calculating the distortion for two data sets with scaling ratio for parameter of interest.
+ \item \textbf{omega\_strain}, calculating the distortion for two data sets with scaling ratios for agent of changes.
+ \item \textbf{identity}, calculating the distortion for two data sets with scaling ratios of 1.
+ \end{itemize}
+ \item \xmlNode{scaleBeta}, \xmlDesc{float or comma separated list of floats, required field}, specifies the parameter of interest scaling ratio between the feature and target.
+ To provide more than one scaling factor, separate by adding a comma in between each number. Providing more than one scaling factor presumes there are more than one parameter to be post-processed.
+ If so, \xmlNode{Features}, \xmlNode{Targets}, and \xmlNode{scaleOmega} must have the same number scaling factors.
+ \item \xmlNode{scaleOmega}, \xmlDesc{float or comma separated list of floats, required field}, specifies the agents of change scaling ratio between the feature and target.
+ To provide more than one scaling factor, separate by adding a comma in between each number. Providing more than one scaling factor presumes there are more than one parameter to be post-processed.
+ If so, \xmlNode{Features}, \xmlNode{Targets}, and \xmlNode{scaleBeta} must have the same number scaling factors.
\end{itemize}
%\item \xmlNode{DSS}, \xmlDesc{XML node, optional field}, specify that the validation needs to be performed via DSS.
%This xml-node accepts the following attribute:
@@ -1680,7 +1703,7 @@ \subsubsection{Validation}
\hline
\textbf{Validation Algorithm} & \textbf{DataObject} & \textbf{Available Metrics} \\ \hline
Probabilistic & \begin{tabular}[c]{@{}c@{}}PointSet \\ HistorySet\end{tabular} & \begin{tabular}[c]{@{}c@{}}CDFAreaDifference\\ \\ PDFCommonArea\end{tabular} \\ \hline
-DSS & HistorySet & Not Available Yet \\ \hline
+PPDSS & HistorySet & DSS \\ \hline
\end{tabular}
\end{table}
diff --git a/doc/user_manual/raven_user_manual.tex b/doc/user_manual/raven_user_manual.tex
index 4bf52be6b6..7286ec41d9 100644
--- a/doc/user_manual/raven_user_manual.tex
+++ b/doc/user_manual/raven_user_manual.tex
@@ -270,6 +270,7 @@
\\Matteo Donorio (new external code interface)
\\Fabio Giannetti (new external code interface)
\\Jia Zhou (conjugate gradient optimizer)
+\\Ramon K. Yoshiura (DSS validation code)
}
% \\James B. Tompkins} Just people who actually ``developed'' a significant capability in the code should be placed here. Andrea
%\author{\textbf{\textit{Main Developers:}} \\Andrea Alfonsi}
diff --git a/framework/MetricDistributor.py b/framework/MetricDistributor.py
index f6a0215f61..fff1a3463b 100644
--- a/framework/MetricDistributor.py
+++ b/framework/MetricDistributor.py
@@ -138,6 +138,16 @@ def evaluate(self,pairedData, weights = None, multiOutput='mean',**kwargs):
targIn = targVals[:,hist]
out = self.estimator.evaluate(featIn, targIn)
dynamicOutput.append(out)
+ elif self.estimator.isInstanceString(['DSS']):
+ featVals = np.asarray(feat)
+ targVals = np.asarray(targ)
+ assert(featVals.shape[0] == targVals.shape[0])
+ assert(featVals.shape[1] == targVals.shape[1])
+ assert(featVals.shape[2] == targVals.shape[2])
+ if self.canHandleDynamicData:
+ dynamicOutput = self.estimator.evaluate(featVals, targVals)
+ else:
+ self.raiseAnError(IOError, "Must Handle Dynamic Data!")
else:
self.raiseAMessage('Using non-PDF/CDF metrics ...')
featVals = np.asarray(feat[0])
diff --git a/framework/Metrics/metrics/DSS.py b/framework/Metrics/metrics/DSS.py
new file mode 100644
index 0000000000..a7d877a7e4
--- /dev/null
+++ b/framework/Metrics/metrics/DSS.py
@@ -0,0 +1,112 @@
+# Copyright 2017 Battelle Energy Alliance, LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""
+Created on December 20 2020
+
+@author: yoshrk
+"""
+#External Modules------------------------------------------------------------------------------------
+import numpy as np
+import copy
+#External Modules End--------------------------------------------------------------------------------
+
+#Internal Modules------------------------------------------------------------------------------------
+from .MetricInterface import MetricInterface
+from utils import InputData, InputTypes
+#Internal Modules End--------------------------------------------------------------------------------
+
+class DSS(MetricInterface):
+ """
+ Dynamical System Scaling Metric
+ Class for measuring the metric between two instantaneous data points at the same (or approximate) process time
+ @ Data Synthesis or Engineering Scaling.
+ @ Data Synthesis is the act to measure the metric between data sets that are presumed to be equivalent in phenomena,
+ in reference time, and initial/boundary conditions. Essentially, both data sets are expected to be equivalent.
+ For the sake of data comparison with no intentions to match data but only to measure the metric, this model may be
+ used as well.
+ @ For engineering scaling, although the phenomena are equivalent, the reference time and initial/boundary conditions
+ are different. Both sets are tied by process time only.
+ @ In either case, if the to be compared data sets are of little relevance, it is most likely DSS will fail to
+ measure the metric distance accurately.
+ """
+
+ @classmethod
+ def getInputSpecification(cls):
+ """
+ Method to get a reference to a class that specifies the input data for
+ class cls.
+ @ In, cls, the class for which we are retrieving the specification
+ @ Out, inputSpecification, InputData.ParameterInput, class to use for
+ specifying input of cls.
+ """
+ inputSpecification = super().getInputSpecification()
+ return inputSpecification
+
+ def __init__(self):
+ """
+ Constructor
+ @ In, None
+ @ Out, None
+ """
+ super().__init__()
+ # True indicates the metric needs to be able to handle dynamic data
+ self._dynamicHandling = True
+ # True indicates the metric needs to be able to handle pairwise data
+ self._pairwiseHandling = False
+
+ def run(self, x, y, weights=None, axis=0, **kwargs):
+ """
+ This method computes DSS distance between two inputs x and y based on given metric
+ @ In, x, numpy.ndarray, array containing data of x, 3D array provided.
+ Includes [scaled feature omega normalized,scaled normalized feature process time,feature beta] for
+ all samples and time-steps.
+ @ In, y, numpy.ndarray, array containing data of y, 3D array provided.
+ Includes [target omega normalized,target temporal displacement rate,target beta] for
+ all samples and time-steps.
+ @ In, weights, array_like (numpy.array or list), optional, weights associated
+ with input, shape (n_samples) if axis = 0, otherwise shape (n_time_steps)
+ @ In, axis, integer, optional, axis along which a metric is performed, default is 0,
+ i.e. the metric will performed along the first dimension (the "rows").
+ If metric postprocessor is used, the first dimension is the RAVEN_sample_ID,
+ and the second dimension is the pivotParameter if HistorySet is provided.
+ @ In, kwargs, dict, dictionary of parameters characteristic of each metric
+ @ Out, value, float, metric result
+ """
+ assert (isinstance(x, np.ndarray))
+ assert (isinstance(y, np.ndarray))
+ tempX = x
+ tempY = y
+ omegaNormTarget = tempX[0]
+ omegaNormScaledFeature = tempY[0]
+ pTime = tempX[1]
+ D = tempY[1]
+ betaFeature = tempX[2]
+ betaTarget = tempX[2]
+ distance = np.zeros((pTime.shape))
+ distanceSum = np.zeros((pTime.shape[0]))
+ sigma = np.zeros((pTime.shape[0]))
+ for cnt in range(len(pTime)):
+ distanceSquaredSum = 0
+ for cnt2 in range(len(pTime[cnt])):
+ if D[cnt][cnt2] == 0 or omegaNormTarget[cnt][cnt2] == 0 or omegaNormScaledFeature[cnt][cnt2] == 0:
+ distance[cnt][cnt2] = 0
+ else:
+ distance[cnt][cnt2] = betaTarget[cnt][cnt2]*abs(D[cnt][cnt2])**0.5*(1/omegaNormTarget[cnt][cnt2]-1/omegaNormScaledFeature[cnt][cnt2])
+ if np.isnan(distance[cnt][cnt2]) == True:
+ distance[cnt][cnt2] = 0
+ distanceSum[cnt] += abs(distance[cnt][cnt2])
+ distanceSquaredSum += distance[cnt][cnt2]**2
+ sigma[cnt] = (1/len(sigma)*distanceSquaredSum)**0.5
+ value = distance
+ return value
diff --git a/framework/Metrics/metrics/Factory.py b/framework/Metrics/metrics/Factory.py
index 2e705f735d..6c1b6a0984 100644
--- a/framework/Metrics/metrics/Factory.py
+++ b/framework/Metrics/metrics/Factory.py
@@ -25,6 +25,7 @@
from .CDFAreaDifference import CDFAreaDifference
from .PDFCommonArea import PDFCommonArea
from .ScipyMetric import ScipyMetric
+from .DSS import DSS
factory = EntityFactory('Metrics')
factory.registerAllSubtypes(MetricInterface)
diff --git a/framework/Models/PostProcessors/Factory.py b/framework/Models/PostProcessors/Factory.py
index 0c99ac797f..2e45d3640c 100644
--- a/framework/Models/PostProcessors/Factory.py
+++ b/framework/Models/PostProcessors/Factory.py
@@ -37,6 +37,7 @@
from .EconomicRatio import EconomicRatio
from .ValidationBase import ValidationBase
from .Validations import Probabilistic
+from .Validations import PPDSS
from .TSACharacterizer import TSACharacterizer
### PostProcessorFunctions (orig: InterfacedPostProcessor)
diff --git a/framework/Models/PostProcessors/Validations/PPDSS.py b/framework/Models/PostProcessors/Validations/PPDSS.py
new file mode 100644
index 0000000000..32d93200e5
--- /dev/null
+++ b/framework/Models/PostProcessors/Validations/PPDSS.py
@@ -0,0 +1,410 @@
+# Copyright 2017 Battelle Energy Alliance, LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""
+Created on January XX, 2021
+
+@author: yoshrk
+"""
+#External Modules------------------------------------------------------------------------------------
+import numpy as np
+from scipy.interpolate import interp1d
+from scipy.integrate import simps
+import xarray as xr
+import os
+from collections import OrderedDict
+import itertools
+import copy
+#External Modules End--------------------------------------------------------------------------------
+
+#Internal Modules------------------------------------------------------------------------------------
+from utils import utils
+from utils import InputData, InputTypes
+from utils import xmlUtils
+import Files
+import DataObjects
+from ..ValidationBase import ValidationBase
+#Internal Modules End--------------------------------------------------------------------------------
+
+class PPDSS(ValidationBase):
+ """
+ DSS Scaling class.
+ """
+ @classmethod
+ def getInputSpecification(cls):
+ """
+ Method to get a reference to a class that specifies the input data for
+ class cls.
+ @ In, cls, the class for which we are retrieving the specification
+ @ Out, inputSpecification, InputData.ParameterInput, class to use for
+ specifying input of cls.
+ """
+ inputSpecification = super(PPDSS, cls).getInputSpecification()
+ # Have added the new pivotParameters for feature and target. The original has been commented out.
+ pivotParameterFeatureInput = InputData.parameterInputFactory("pivotParameterFeature", contentType=InputTypes.StringType,
+ descr="""Pivot parameter for feature inputs""")
+ inputSpecification.addSub(pivotParameterFeatureInput)
+ pivotParameterTargetInput = InputData.parameterInputFactory("pivotParameterTarget", contentType=InputTypes.StringType,
+ descr="""Pivot parameter for target inputs""")
+ inputSpecification.addSub(pivotParameterTargetInput)
+ scaleTypeInput = InputData.parameterInputFactory("scale", contentType=InputTypes.makeEnumType("scale","scaleType",['DataSynthesis','2_2_affine','dilation','beta_strain','omega_strain','identity']),
+ descr="""Scaling type for the time transformation. Available types are DataSynthesis,
+ 2_2_affine, dilation, beta_strain, omega_strain, and identity""")
+ inputSpecification.addSub(scaleTypeInput)
+ scaleRatioBetaInput = InputData.parameterInputFactory("scaleBeta", contentType=InputTypes.FloatListType,
+ descr="""Scaling ratio for the parameter of interest""")
+ inputSpecification.addSub(scaleRatioBetaInput)
+ scaleRatioOmegaInput = InputData.parameterInputFactory("scaleOmega", contentType=InputTypes.FloatListType,
+ descr="""Scaling ratio for the agents of change""")
+ inputSpecification.addSub(scaleRatioOmegaInput)
+ return inputSpecification
+
+ def __init__(self):
+ """
+ Constructor
+ @ In, None
+ @ Out, None
+ """
+ super().__init__()
+ self.printTag = 'POSTPROCESSOR DSS Scaling and Metrics' # Naming
+ self.name = 'PPDSS' # Postprocessor name
+ self.dynamic = True # Must be time-dependent?
+ self.dynamicType = ['dynamic'] # Specification of dynamic type
+ self.features = None # list of feature variables
+ self.targets = None # list of target variables
+ self.multiOutput = 'raw_values' # defines aggregating of multiple outputs for HistorySet
+ # currently allow raw_values
+ self.pivotParameterFeature = None # Feature pivot parameter variable
+ self.pivotValuesFeature = [] # Feature pivot parameter values
+ self.pivotParameterTarget = None # Target pivot parameter variable
+ self.pivotValuesTarget = [] # Target pivot parameter values
+ self.scaleType = None # Scaling type
+ # assembler objects to be requested
+ self.scaleRatioBeta = [] # Scaling ratio for the parameter of interest
+ self.scaleRatioOmega = [] # Scaling ratio for the agents of change
+
+ def _handleInput(self, paramInput):
+ """
+ Function to handle the parsed paramInput for this class.
+ @ In, paramInput, ParameterInput, the already parsed input.
+ @ Out, None
+ """
+ super()._handleInput(paramInput)
+ for child in paramInput.subparts:
+ if child.getName() == 'Metric':
+ if 'type' not in child.parameterValues.keys() or 'class' not in child.parameterValues.keys():
+ self.raiseAnError(IOError, 'Tag Metric must have attributes "class" and "type"')
+ elif child.getName() == 'Features':
+ self.features = child.value
+ elif child.getName() == 'Targets':
+ self.targets = child.value
+ elif child.getName() == 'multiOutput':
+ self.multiOutput = child.value
+ elif child.getName() == 'pivotParameterFeature':
+ self.pivotParameterFeature = child.value
+ elif child.getName() == 'pivotParameterTarget':
+ self.pivotParameterTarget = child.value
+ elif child.getName() == 'scale':
+ self.scaleType = child.value
+ elif child.getName() == 'scaleBeta':
+ self.scaleRatioBeta = child.value
+ elif child.getName() == 'scaleOmega':
+ self.scaleRatioOmega = child.value
+ else:
+ self.raiseAnError(IOError, "Unknown xml node ", child.getName(), " is provided for metric system")
+
+ def run(self, inputIn):
+ """
+ This method executes the postprocessor action. In this case it loads the
+ results to specified dataObject
+ @ In, inputIn, list, dictionary of data to process
+ @ Out, outputDict, dict, dictionary containing the post-processed results
+ """
+ # assert
+ assert(isinstance(inputIn["Data"], list))
+ assert(isinstance(inputIn["Data"][0][-1], xr.Dataset) and isinstance(inputIn["Data"][1][-1], xr.Dataset))
+ # the input can be either be a list of dataobjects or a list of datasets (xarray)
+ datasets = [data for _, _, data in inputIn['Data']]
+ names = []
+ pivotParameterTarget = self.pivotParameterTarget
+ pivotParameterFeature = self.pivotParameterFeature
+ names = [self.getDataSetName(inp[-1]) for inp in inputIn['Data']]
+ if len(inputIn['Data'][0][-1].indexes) and (self.pivotParameterTarget is None or self.pivotParameterFeature is None):
+ if 'dynamic' not in self.dynamicType: #self.model.dataType:
+ self.raiseAnError(IOError, "The validation algorithm '{}' is not a dynamic model but time-dependent data has been inputted in object {}".format(self._type, inputIn['Data'][0][-1].name))
+ else:
+ pivotParameterTarget = inputIn['Data'][1][2]
+ pivotParameterFeature = inputIn['Data'][0][2]
+ # check if pivotParameter
+ evaluation = self._evaluate(datasets)
+ if not isinstance(evaluation, list):
+ self.raiseAnError(IOError,"The data type in evaluation is not list")
+ if pivotParameterFeature and pivotParameterTarget:
+ if len(datasets[0][pivotParameterFeature]) != len(list(evaluation[0].values())[0]) and len(datasets[1][pivotParameterTarget]) != len(list(evaluation[1].values())[0]):
+ self.raiseAnError(RuntimeError, "The pivotParameterFeature value '{}' has size '{}' and validation output has size '{}' The pivotParameterTarget value '{}' has size '{}' and validation output has size '{}'.".format( len(datasets[0][self.pivotParameterFeature]), len(evaluation.values()[0])))
+ if pivotParameterFeature not in evaluation and pivotParameterTarget not in evaluation:
+ for i in range(len(evaluation)):
+ if len(datasets[0][pivotParameterFeature]) < len(datasets[1][pivotParameterTarget]):
+ evaluation[i]['pivot_parameter'] = datasets[0][pivotParameterFeature]
+ else:
+ evaluation[i]['pivot_parameter'] = datasets[1][pivotParameterTarget]
+ return evaluation
+
+ def _evaluate(self, datasets, **kwargs):
+ """
+ Main method to "do what you do".
+ @ In, datasets, list, list of datasets (data1,data2,etc.) to used.
+ @ In, kwargs, dict, keyword arguments
+ @ Out, outputDict, dict, dictionary containing the results {"feat"_"target"_"metric_name":value}
+ """
+ realizations = []
+ realizationArray = []
+ for feat, targ, scaleRatioBeta, scaleRatioOmega in zip(self.features, self.targets, self.scaleRatioBeta, self.scaleRatioOmega):
+ nameFeat = feat.split("|")
+ nameTarg = targ.split("|")
+ names = [nameFeat[0],nameTarg[0]]
+ featData = self._getDataFromDatasets(datasets, feat, names)[0]
+ targData = self._getDataFromDatasets(datasets, targ, names)[0]
+ if (isinstance(scaleRatioBeta,int) or isinstance(scaleRatioBeta,float)) and (isinstance(scaleRatioOmega,int) or isinstance(scaleRatioOmega,float)) is True:
+ if self.scaleType == 'DataSynthesis':
+ timeScalingRatio = 1
+ if abs(1-scaleRatioBeta) > 10**(-4) or abs(1-scaleRatioOmega) > 10**(-4):
+ self.raiseAnError(IOError, "Either beta or omega scaling ratio are not 1. Both must be 1")
+ elif self.scaleType == '2_2_affine':
+ timeScalingRatio = scaleRatioBeta/scaleRatioOmega
+ elif self.scaleType == 'dilation':
+ timeScalingRatio = 1
+ if abs(1-scaleRatioBeta/scaleRatioOmega) > 10**(-4):
+ self.raiseAnError(IOError, "Beta scaling ratio:",scaleRatioBeta,"and Omega scaling ratio:",scaleRatioOmega,"are not nearly equivalent")
+ elif self.scaleType == 'beta_strain':
+ timeScalingRatio = scaleRatioBeta
+ if abs(1-scaleRatioOmega) > 10**(-4):
+ self.raiseAnError(IOError, "Omega scaling ratio:",scaleRatioOmega,"must be 1")
+ elif self.scaleType == 'omega_strain':
+ timeScalingRatio = 1/scaleRatioOmega
+ if abs(1-scaleRatioBeta) > 10**(-4):
+ self.raiseAnError(IOError, "Beta scaling ratio:",scaleRatioBeta,"must be 1")
+ elif self.scaleType == 'identity':
+ timeScalingRatio = 1
+ if abs(1-scaleRatioBeta) > 10**(-4) or abs(1-scaleRatioOmega) > 10**(-4):
+ self.raiseAnError(IOError, "Either beta or omega scaling ratio are not 1. Both must be 1")
+ else:
+ self.raiseAnError(IOError, "Scaling Type",self.scaleType, "is not provided")
+ else:
+ self.raiseAnError(IOError, scaleRatioBeta,"or",scaleRatioOmega,"is not a numerical number")
+
+ pivotFeature = self._getDataFromDatasets(datasets, names[0]+"|"+self.pivotParameterFeature, names)[0]
+ pivotFeature = np.transpose(pivotFeature)[0]
+ pivotTarget = self._getDataFromDatasets(datasets, names[1]+"|"+self.pivotParameterTarget, names)[0]
+ pivotTarget = np.transpose(pivotTarget)[0]
+ pivotFeatureSize = pivotFeature.shape[0]
+ pivotTargetSize = pivotTarget.shape[0]
+ if pivotFeatureSize >= pivotTargetSize:
+ pivotSize = pivotTargetSize
+ else:
+ pivotSize = pivotFeatureSize
+
+ if pivotFeatureSize == pivotSize:
+ yCount = featData.shape[0]
+ zCount = featData.shape[1]
+ else:
+ yCount = targData.shape[0]
+ zCount = targData.shape[1]
+ featureD = np.zeros((yCount,zCount))
+ featureProcessTimeNorm = np.zeros((yCount,zCount))
+ featureOmegaNorm = np.zeros((yCount,zCount))
+ featureBeta = np.zeros((yCount,zCount))
+ naNCount = np.zeros((yCount,zCount))
+ #
+ feature = nameFeat[1]
+ for cnt2 in range(yCount):
+ if pivotFeatureSize == pivotSize:
+ featureBeta[cnt2] = featData[cnt2]
+ interpGrid = pivotFeature
+ else:
+ interpFunction = interp1d(pivotFeature,featData[cnt2],kind='linear',fill_value='extrapolate')
+ interpGrid = timeScalingRatio*pivotTarget
+ featureBeta[cnt2] = interpFunction(interpGrid)
+ featureOmega = np.gradient(featureBeta[cnt2],interpGrid)
+ featureProcessTime = featureBeta[cnt2]/featureOmega
+ featureDiffOmega = np.gradient(featureOmega,interpGrid)
+ featureD[cnt2] = -featureBeta[cnt2]/featureOmega**2*featureDiffOmega
+ for cnt3 in range(zCount):
+ if np.isnan(featureD[cnt2][cnt3]) == True:
+ naNCount[cnt2][cnt3] = 1
+ elif np.isinf(featureD[cnt2][cnt3]) == True:
+ naNCount[cnt2][cnt3] = 1
+ featureInt = featureD[cnt2]+1
+ # Excluding NaN type data and exclude corresponding time in grid in
+ # preperation for numpy simpson integration
+ count=0
+ for i in range(len(featureD[cnt2])):
+ if np.isnan(featureD[cnt2][i])==False and np.isinf(featureD[cnt2][i])==False:
+ count += 1
+ if count > 0:
+ featureIntNew = np.zeros(count)
+ interpGridNew = np.zeros(count)
+ trackCount = 0
+ for i in range(len(featureD[cnt2])):
+ if np.isnan(featureD[cnt2][i])==False and np.isinf(featureD[cnt2][i])==False:
+ interpGridNew[trackCount] = interpGrid[i]
+ featureIntNew[trackCount] = featureInt[i]
+ trackCount += 1
+ else:
+ featureD[cnt2][i] = 0
+ #
+ featureProcessAction = simps(featureIntNew, interpGridNew)
+ featureProcessTimeNorm[cnt2] = featureProcessTime/featureProcessAction
+ featureOmegaNorm[cnt2] = featureProcessAction*featureOmega
+ #
+ targetD = np.zeros((yCount,zCount))
+ targetProcessTimeNorm = np.zeros((yCount,zCount))
+ targetOmegaNorm = np.zeros((yCount,zCount))
+ targetBeta = np.zeros((yCount,zCount))
+ target = nameTarg[1]
+ for cnt2 in range(yCount):
+ if pivotTargetSize == pivotSize:
+ targetBeta[cnt2] = targData[cnt2]
+ interpGrid = pivotTarget
+ else:
+ interpFunction = interp1d(pivotTarget,targData[cnt2],kind='linear',fill_value='extrapolate')
+ interpGrid = 1/timeScalingRatio*pivotFeature
+ targetBeta[cnt2] = interpFunction(interpGrid)
+ targetOmega = np.gradient(targetBeta[cnt2],interpGrid)
+ #print("targetOmega:",targetOmega)
+ targetProcessTime = targetBeta[cnt2]/targetOmega
+ targetDiffOmega = np.gradient(targetOmega,interpGrid)
+ targetD[cnt2] = -targetBeta[cnt2]/targetOmega**2*targetDiffOmega
+ for cnt3 in range(zCount):
+ if np.isnan(targetD[cnt2][cnt3]) == True:
+ naNCount[cnt2][cnt3] = 1
+ elif np.isinf(targetD[cnt2][cnt3]) == True:
+ naNCount[cnt2][cnt3] = 1
+ targetInt = targetD[cnt2]+1
+ # Excluding NaN type data and exclude corresponding time in grid in
+ # preperation for numpy simpson integration
+ count=0
+ for i in range(len(targetD[cnt2])):
+ if np.isnan(targetD[cnt2][i])==False and np.isinf(targetD[cnt2][i])==False:
+ count += 1
+ if count > 0:
+ targetIntNew = np.zeros(count)
+ interpGridNew = np.zeros(count)
+ trackCount = 0
+ for i in range(len(targetD[cnt2])):
+ if np.isnan(targetD[cnt2][i])==False and np.isinf(targetD[cnt2][i])==False:
+ interpGridNew[trackCount] = interpGrid[i]
+ targetIntNew[trackCount] = targetInt[i]
+ trackCount += 1
+ else:
+ targetD[cnt2][i] = 0
+ #
+ targetProcessAction = simps(targetIntNew, interpGridNew)
+ targetProcessTimeNorm[cnt2] = targetProcessTime/targetProcessAction
+ targetOmegaNorm[cnt2] = targetProcessAction*targetOmega
+ #
+ featureProcessTimeNormScaled = np.zeros((yCount,zCount))
+ featureOmegaNormScaled = np.zeros((yCount,zCount))
+ for cnt3 in range(yCount):
+ featureProcessTimeNormScaled[cnt3] = featureProcessTimeNorm[cnt3]/timeScalingRatio
+ featureOmegaNormScaled[cnt3] = featureOmegaNorm[cnt3]/scaleRatioBeta
+ newfeatureData = np.asarray([featureOmegaNormScaled,featureProcessTimeNormScaled,featureBeta])
+ newtargetData = np.asarray([targetOmegaNorm,targetD,targetBeta])
+ #------------------------------------------------------------------------------------------
+ if pivotTargetSize == pivotSize:
+ timeParameter = pivotTarget
+ else:
+ timeParameter = pivotFeature
+ outputDict = {}
+ distanceTotal = np.zeros((yCount,zCount))
+ sigma = np.zeros((yCount,zCount))
+ for metric in self.metrics:
+ name = "{}_{}_{}".format(metric.estimator.name, targ.split("|")[-1], feat.split("|")[-1])
+ output = metric.evaluate((newfeatureData,newtargetData), multiOutput='raw_values')
+ for cnt2 in range(yCount):
+ distanceSum = abs(np.sum(output[cnt2]))
+ sigmaSum = 0
+ for cnt3 in range(zCount):
+ distanceTotal[cnt2][cnt3] = distanceSum
+ sigmaSum += output[cnt2][cnt3]**2
+ for cnt3 in range(zCount):
+ sigma[cnt2][cnt3] = (1/(zCount-np.sum(naNCount[cnt2]))*sigmaSum)**0.5
+ rlz = []
+ for cnt in range(yCount):
+ outputDict = {}
+ outputDict[name] = abs(np.atleast_1d(output[cnt]))
+ outputDict['pivot_parameter'] = timeParameter
+ outputDict['total_distance_'+nameTarg[1]+'_'+nameFeat[1]] = distanceTotal[cnt]
+ outputDict['feature_beta_'+nameTarg[1]+'_'+nameFeat[1]] = featureBeta[cnt]
+ outputDict['target_beta_'+nameTarg[1]+'_'+nameFeat[1]] = targetBeta[cnt]
+ outputDict['feature_omega_'+nameTarg[1]+'_'+nameFeat[1]] = featureOmegaNormScaled[cnt]
+ outputDict['target_omega_'+nameTarg[1]+'_'+nameFeat[1]] = targetOmegaNorm[cnt]
+ outputDict['feature_D_'+nameTarg[1]+'_'+nameFeat[1]] = featureD[cnt]
+ outputDict['target_D_'+nameTarg[1]+'_'+nameFeat[1]] = targetD[cnt]
+ outputDict['process_time_'+nameTarg[1]+'_'+nameFeat[1]] = newfeatureData[1][cnt]
+ outputDict['standard_deviation_'+nameTarg[1]+'_'+nameFeat[1]] = sigma[cnt]
+ rlz.append(outputDict)
+ realizationArray.append(rlz)
+ #---------------
+ for cnt in range(len(realizationArray[0])):
+ out = {}
+ for cnt2 in range(len(realizationArray)):
+ for key, val in realizationArray[cnt2][cnt].items():
+ out[key] = val
+ realizations.append(out)
+ return realizations
+
+ def _getDataFromDatasets(self, datasets, var, names=None):
+ """
+ Utility function to retrieve the data from dataDict
+ @ In, datasets, list, list of datasets (data1,data2,etc.) to search from.
+ @ In, names, list, optional, list of datasets names (data1,data2,etc.). If not present, the search will be done on the full list.
+ @ In, var, str, the variable to find (either in fromat dataobject|var or simply var)
+ @ Out, data, tuple(numpy.ndarray, xarray.DataArray or None), the retrived data (data, probability weights (None if not present))
+ """
+ data = None
+ pw = None
+ dat = None
+ if "|" in var and names is not None:
+ do, feat = var.split("|")
+ doindex = names.index(do)
+ dat = datasets[doindex][feat]
+ else:
+ for doindex, ds in enumerate(datasets):
+ if var in ds:
+ dat = ds[var]
+ break
+ if 'ProbabilityWeight-{}'.format(feat) in datasets[names.index(do)]:
+ pw = datasets[doindex]['ProbabilityWeight-{}'.format(feat)].values
+ elif 'ProbabilityWeight' in datasets[names.index(do)]:
+ pw = datasets[doindex]['ProbabilityWeight'].values
+ dim = len(dat.shape)
+ # (numRealizations, numHistorySteps) for MetricDistributor
+ dat = dat.values
+ if dim == 1:
+ # the following reshaping does not require a copy
+ dat.shape = (dat.shape[0], 1)
+ data = dat, pw
+ return data
+
+ def collectOutput(self, finishedJob, output):
+ """
+ Function to place all of the computed data into the output object
+ @ In, finishedJob, JobHandler External or Internal instance, A JobHandler object that is in charge of running this post-processor
+ @ In, output, DataObject.DataObject, The object where we want to place our computed results
+ @ Out, None
+ """
+ evaluation = finishedJob.getEvaluation()
+ realizations = evaluation[1]
+ for rlz in realizations:
+ output.addRealization(rlz)
diff --git a/framework/Models/PostProcessors/Validations/__init__.py b/framework/Models/PostProcessors/Validations/__init__.py
index 1a05f0befa..88d55b68bf 100644
--- a/framework/Models/PostProcessors/Validations/__init__.py
+++ b/framework/Models/PostProcessors/Validations/__init__.py
@@ -19,3 +19,4 @@
@author: wangc
"""
from .Probabilistic import Probabilistic
+from .PPDSS import PPDSS
diff --git a/tests/framework/PostProcessors/Validation/DSS/lorentzAttractor_timeScale_I.py b/tests/framework/PostProcessors/Validation/DSS/lorentzAttractor_timeScale_I.py
new file mode 100644
index 0000000000..c0ff5d0959
--- /dev/null
+++ b/tests/framework/PostProcessors/Validation/DSS/lorentzAttractor_timeScale_I.py
@@ -0,0 +1,65 @@
+# Copyright 2017 Battelle Energy Alliance, LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# from wikipedia: dx/dt = sigma*(y-x) ; dy/dt = x*(rho-z)-y dz/dt = x*y-beta*z
+
+import numpy as np
+
+def initialize(self,runInfoDict,inputFiles):
+ """
+ Constructor
+ @ In, runInfoDict, dict, dictionary of input file names, file location, and other parameters
+ RAVEN run.
+ @ In, inputFiles, list, data objects required for external model initialization.
+ @ Out, None
+ """
+ self.sigma = 10.0
+ self.rho = 28.0
+ self.beta = 8.0/3.0
+ return
+
+def run(self,Input):
+ """
+ Constructor
+ @ In, Input, dict, dictionary of input values for each feature.
+ @ Out, None
+ """
+ disc = 2.0
+ maxTime = 0.5
+ tStep = 0.005
+ self.sigma = 10.0
+ self.rho = 28.0
+ self.beta = 8.0/3.0
+
+ numberTimeSteps = int(maxTime/tStep)
+
+ self.x1 = np.zeros(numberTimeSteps)
+ self.y1 = np.zeros(numberTimeSteps)
+ self.z1 = np.zeros(numberTimeSteps)
+ self.time1 = np.zeros(numberTimeSteps)
+
+ self.x0 = Input['x0']
+ self.y0 = Input['y0']
+ self.z0 = Input['z0']
+
+ self.x1[0] = Input['x0']
+ self.y1[0] = Input['y0']
+ self.z1[0] = Input['z0']
+ self.time1[0]= 0.0
+
+ for t in range (numberTimeSteps-1):
+ self.time1[t+1] = self.time1[t] + tStep
+ self.x1[t+1] = self.x1[t] + disc*self.sigma*(self.y1[t]-self.x1[t]) * tStep
+ self.y1[t+1] = self.y1[t] + disc*(self.x1[t]*(self.rho-self.z1[t])-self.y1[t]) * tStep
+ self.z1[t+1] = self.z1[t] + disc*(self.x1[t]*self.y1[t]-self.beta*self.z1[t]) * tStep
diff --git a/tests/framework/PostProcessors/Validation/DSS/lorentzAttractor_timeScale_II.py b/tests/framework/PostProcessors/Validation/DSS/lorentzAttractor_timeScale_II.py
new file mode 100644
index 0000000000..592fda8977
--- /dev/null
+++ b/tests/framework/PostProcessors/Validation/DSS/lorentzAttractor_timeScale_II.py
@@ -0,0 +1,65 @@
+# Copyright 2017 Battelle Energy Alliance, LLC
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# from wikipedia: dx/dt = sigma*(y-x) ; dy/dt = x*(rho-z)-y dz/dt = x*y-beta*z
+
+import numpy as np
+
+def initialize(self,runInfoDict,inputFiles):
+ """
+ Constructor
+ @ In, runInfoDict, dict, dictionary of input file names, file location, and other parameters
+ RAVEN run.
+ @ In, inputFiles, list, data objects required for external model initialization.
+ @ Out, None
+ """
+ self.sigma = 10.0
+ self.rho = 28.0
+ self.beta = 8.0/3.0
+ return
+
+def run(self,Input):
+ """
+ Constructor
+ @ In, Input, dict, dictionary of input values for each feature.
+ @ Out, None
+ """
+ maxTime = 0.7
+ tStep = 0.005
+ disc = 1.0
+ self.sigma = 10.0
+ self.rho = -28.0
+ self.beta = 8.0/3.0
+
+ numberTimeSteps = int(maxTime/tStep)
+
+ self.x2 = np.zeros(numberTimeSteps)
+ self.y2 = np.zeros(numberTimeSteps)
+ self.z2 = np.zeros(numberTimeSteps)
+ self.time2 = np.zeros(numberTimeSteps)
+
+ self.x0 = Input['x0']
+ self.y0 = Input['y0']
+ self.z0 = Input['z0']
+
+ self.x2[0] = Input['x0']
+ self.y2[0] = Input['y0']
+ self.z2[0] = Input['z0']
+ self.time2[0]= 0.0
+
+ for t in range (numberTimeSteps-1):
+ self.time2[t+1] = self.time2[t] + tStep
+ self.x2[t+1] = self.x2[t] + disc*self.sigma*(self.y2[t]-self.x2[t]) * tStep
+ self.y2[t+1] = self.y2[t] + disc*(self.x2[t]*(self.rho-self.z2[t])-self.y2[t]) * tStep
+ self.z2[t+1] = self.z2[t] + disc*(self.x2[t]*self.y2[t]-self.beta*self.z2[t]) * tStep
diff --git a/tests/framework/PostProcessors/Validation/gold/DSS/pp2_print_0.csv b/tests/framework/PostProcessors/Validation/gold/DSS/pp2_print_0.csv
new file mode 100644
index 0000000000..f93b5c916f
--- /dev/null
+++ b/tests/framework/PostProcessors/Validation/gold/DSS/pp2_print_0.csv
@@ -0,0 +1,101 @@
+pivot_parameter,dss_x2_x1,total_distance_x2_x1,process_time_x2_x1,standard_deviation_x2_x1,dss_y2_y1,total_distance_y2_y1,process_time_y2_y1,standard_deviation_y2_y1
+0.0,0.0756901816043,24.887493332,-0.000351283270388,2.59700011532,0.0356012101676,53.1999350236,0.206070488345,4.78635605162
+0.005,0.0510745233206,24.887493332,-0.000385934668242,2.59700011532,0.0448169166406,53.1999350236,0.210768607572,4.78635605162
+0.01,0.0256194405153,24.887493332,-0.000406159113474,2.59700011532,0.052224344465,53.1999350236,0.204272609211,4.78635605162
+0.015,0.0150024229693,24.887493332,-0.000421393172979,2.59700011532,0.0516883771607,53.1999350236,0.20010519813,4.78635605162
+0.02,0.010257283552,24.887493332,-0.000432783299084,2.59700011532,0.0451798791812,53.1999350236,0.197573824791,4.78635605162
+0.025,0.00769231680981,24.887493332,-0.000441348962559,2.59700011532,0.0284060742231,53.1999350236,0.196261897457,4.78635605162
+0.030000000000000002,0.00612549904352,24.887493332,-0.000447943830224,2.59700011532,0.0336672365961,53.1999350236,0.195926608029,4.78635605162
+0.035,0.00507743437159,24.887493332,-0.000453262151306,2.59700011532,0.0629855379733,53.1999350236,0.196444243236,4.78635605162
+0.04,0.00431968056602,24.887493332,-0.000457866493304,2.59700011532,0.0894619720643,53.1999350236,0.19778161272,4.78635605162
+0.045,0.00372831979973,24.887493332,-0.000462222758356,2.59700011532,0.1172518338,53.1999350236,0.199984022056,4.78635605162
+0.049999999999999996,0.00322683934388,24.887493332,-0.000466735814408,2.59700011532,0.148479034567,53.1999350236,0.203176148606,4.78635605162
+0.05499999999999999,0.00275944130293,24.887493332,-0.000471783762648,2.59700011532,0.185378812568,53.1999350236,0.207576121419,4.78635605162
+0.05999999999999999,0.00227360608449,24.887493332,-0.00047775165284,2.59700011532,0.231060029877,53.1999350236,0.213527199795,4.78635605162
+0.06499999999999999,0.00169433633486,24.887493332,-0.000485067311788,2.59700011532,0.290431280096,53.1999350236,0.221557909815,4.78635605162
+0.06999999999999999,0.000772991562933,24.887493332,-0.000494243726694,2.59700011532,0.371943441596,53.1999350236,0.232494548059,4.78635605162
+0.075,0.00130283362855,24.887493332,-0.000505935007915,2.59700011532,0.491460016819,53.1999350236,0.24768026844,4.78635605162
+0.08,0.00199187521109,24.887493332,-0.000521017617242,2.59700011532,0.682094146904,53.1999350236,0.269434057245,4.78635605162
+0.085,0.00245409022898,24.887493332,-0.000540717719677,2.59700011532,1.02380596657,53.1999350236,0.302118525415,4.78635605162
+0.09000000000000001,0.00272598009733,24.887493332,-0.000566824621632,2.59700011532,1.75751674307,53.1999350236,0.355020324828,4.78635605162
+0.09500000000000001,0.00271172120559,24.887493332,-0.000602072646113,2.59700011532,3.96065102521,53.1999350236,0.452043262233,4.78635605162
+0.10000000000000002,0.0020653563727,24.887493332,-0.000650875572106,2.59700011532,22.063705504,53.1999350236,0.679238712152,4.78635605162
+0.10500000000000002,0.00211813443079,24.887493332,-0.000720868007637,2.59700011532,32.5016834277,53.1999350236,1.76335102388,4.78635605162
+0.11000000000000003,0.00483476705374,24.887493332,-0.000826525967792,2.59700011532,13.8684083592,53.1999350236,-1.84767843252,4.78635605162
+0.11500000000000003,0.00772383018827,24.887493332,-0.000999095540335,2.59700011532,2.46453702091,53.1999350236,-0.525372763748,4.78635605162
+0.12000000000000004,0.0111468044228,24.887493332,-0.00132091190976,2.59700011532,0.944134639777,53.1999350236,-0.278401055973,4.78635605162
+0.12500000000000003,0.0151108859396,24.887493332,-0.00210251007708,2.59700011532,0.459372384566,53.1999350236,-0.174801950313,4.78635605162
+0.13000000000000003,0.0171343953503,24.887493332,-0.00646411039937,2.59700011532,0.248870152479,53.1999350236,-0.117764017075,4.78635605162
+0.13500000000000004,0.0350652053287,24.887493332,0.00483896441515,2.59700011532,0.140697849216,53.1999350236,-0.0811959709455,4.78635605162
+0.14000000000000004,0.0423716405627,24.887493332,0.00164348920338,2.59700011532,0.0787121176144,53.1999350236,-0.054939356815,4.78635605162
+0.14500000000000005,0.0556065274189,24.887493332,0.000952164683723,2.59700011532,0.0402717597698,53.1999350236,-0.0339839519099,4.78635605162
+0.15000000000000005,0.0750741244315,24.887493332,0.000652717338428,2.59700011532,0.0148647829393,53.1999350236,-0.0152581605846,4.78635605162
+0.15500000000000005,0.105121364985,24.887493332,0.000486276138869,2.59700011532,0.00289817867961,53.1999350236,0.00366434837427,4.78635605162
+0.16000000000000006,0.156661888365,24.887493332,0.000380003627249,2.59700011532,0.0159186133438,53.1999350236,0.0253281189163,4.78635605162
+0.16500000000000006,0.262367592272,24.887493332,0.00030521417449,2.59700011532,0.025571042223,53.1999350236,0.0531682521213,4.78635605162
+0.17000000000000007,0.564364908709,24.887493332,0.000248127467158,2.59700011532,0.0315872784201,53.1999350236,0.0927821259941,4.78635605162
+0.17500000000000007,2.5959579167,24.887493332,0.000201130085144,2.59700011532,0.0292029206784,53.1999350236,0.154754141223,4.78635605162
+0.18000000000000008,16.475446849,24.887493332,0.000159525889875,2.59700011532,0.0358911787049,53.1999350236,0.262490035739,4.78635605162
+0.18500000000000008,0.511783036992,24.887493332,0.000120133768726,2.59700011532,0.110684484186,53.1999350236,0.480628409477,4.78635605162
+0.19000000000000009,0.10082323864,24.887493332,8.06091792099e-05,2.59700011532,0.287502181726,53.1999350236,1.07825811416,4.78635605162
+0.1950000000000001,0.0217616071722,24.887493332,3.90793631522e-05,2.59700011532,1.76278846025,53.1999350236,6.44341026385,4.78635605162
+0.2000000000000001,0.0018057589186,24.887493332,-6.0783411812e-06,2.59700011532,0.708546763109,53.1999350236,-2.77999234179,4.78635605162
+0.2050000000000001,0.00986119174713,24.887493332,-5.6395309412e-05,2.59700011532,0.288768517405,53.1999350236,-1.4250988599,4.78635605162
+0.2100000000000001,0.0123886048682,24.887493332,-0.000113451921497,2.59700011532,0.0453883904931,53.1999350236,-1.07480405018,4.78635605162
+0.2150000000000001,0.0126672479613,24.887493332,-0.000179031059276,2.59700011532,0.216098228243,53.1999350236,-0.918928673398,4.78635605162
+0.2200000000000001,0.0119639992296,24.887493332,-0.000255316700686,2.59700011532,0.303782296424,53.1999350236,-0.829882029715,4.78635605162
+0.22500000000000012,0.0108188848603,24.887493332,-0.000345181037066,2.59700011532,0.376540448411,53.1999350236,-0.768590246102,4.78635605162
+0.23000000000000012,0.00947298486221,24.887493332,-0.000452632098144,2.59700011532,0.444674685389,53.1999350236,-0.719533354007,4.78635605162
+0.23500000000000013,0.0080303460657,24.887493332,-0.000583556378394,2.59700011532,0.511709354218,53.1999350236,-0.676086138182,4.78635605162
+0.24000000000000013,0.00652220624591,24.887493332,-0.00074703080616,2.59700011532,0.580320553624,53.1999350236,-0.635687041334,4.78635605162
+0.24500000000000013,0.00492318860659,24.887493332,-0.000957812458771,2.59700011532,0.65402690633,53.1999350236,-0.597721930261,4.78635605162
+0.2500000000000001,0.00309611593474,24.887493332,-0.00124149111194,2.59700011532,0.738159324039,53.1999350236,-0.562420286285,4.78635605162
+0.2550000000000001,0.00120852123153,24.887493332,-0.00164639842495,2.59700011532,0.841123459156,53.1999350236,-0.530264983882,4.78635605162
+0.2600000000000001,0.00296770830518,24.887493332,-0.00227557552413,2.59700011532,0.976992971635,53.1999350236,-0.501711546802,4.78635605162
+0.2650000000000001,0.00346446876209,24.887493332,-0.00339370868859,2.59700011532,1.17176767092,53.1999350236,-0.477092298472,4.78635605162
+0.27000000000000013,0.00311165177851,24.887493332,-0.0059459529095,2.59700011532,1.48075094168,53.1999350236,-0.456618664681,4.78635605162
+0.27500000000000013,5.81181297004e-05,24.887493332,-0.017658799066,2.59700011532,2.04846257485,53.1999350236,-0.440426219434,4.78635605162
+0.28000000000000014,0.00944333510943,24.887493332,0.023614750085,2.59700011532,3.40557789309,53.1999350236,-0.428632720771,4.78635605162
+0.28500000000000014,0.00340829970713,24.887493332,0.00767066056605,2.59700011532,3.11284671985,53.1999350236,-0.421397253632,4.78635605162
+0.29000000000000015,0.00465662583969,24.887493332,0.00479547193423,2.59700011532,7.3226845792,53.1999350236,-0.418979551034,4.78635605162
+0.29500000000000015,0.00803485316173,24.887493332,0.00360288615197,2.59700011532,2.89900743487,53.1999350236,-0.421805251145,4.78635605162
+0.30000000000000016,0.011317208785,24.887493332,0.00295953304001,2.59700011532,1.81265725321,53.1999350236,-0.430548255252,4.78635605162
+0.30500000000000016,0.0150342971053,24.887493332,0.00256543644154,2.59700011532,1.33509443051,53.1999350236,-0.446248610867,4.78635605162
+0.31000000000000016,0.0195367803603,24.887493332,0.00230729950188,2.59700011532,1.07524607458,53.1999350236,-0.470497775671,4.78635605162
+0.31500000000000017,0.0252566844823,24.887493332,0.00213320374467,2.59700011532,0.919444803615,53.1999350236,-0.505751070035,4.78635605162
+0.3200000000000002,0.0328467262745,24.887493332,0.00201640022284,2.59700011532,0.823327239499,53.1999350236,-0.555889367891,4.78635605162
+0.3250000000000002,0.0433920010407,24.887493332,0.0019421605681,2.59700011532,0.767055057191,53.1999350236,-0.627301579015,4.78635605162
+0.3300000000000002,0.0588411035857,24.887493332,0.00190225207722,2.59700011532,0.742100920444,53.1999350236,-0.731155591538,4.78635605162
+0.3350000000000002,0.0830086530868,24.887493332,0.00189240571623,2.59700011532,0.747384467914,53.1999350236,-0.888719562089,4.78635605162
+0.3400000000000002,0.12423731265,24.887493332,0.00191114377949,2.59700011532,0.790619061756,53.1999350236,-1.14588760045,4.78635605162
+0.3450000000000002,0.203820698837,24.887493332,0.00195933974328,2.59700011532,0.899404931831,53.1999350236,-1.62299653837,4.78635605162
+0.3500000000000002,0.390562922342,24.887493332,0.00204028979904,2.59700011532,1.18152944757,53.1999350236,-2.76799848929,4.78635605162
+0.3550000000000002,1.02223133173,24.887493332,0.00216030007533,2.59700011532,2.64941999732,53.1999350236,-8.84234636717,4.78635605162
+0.3600000000000002,6.9577971122,24.887493332,0.00233000990751,2.59700011532,1.20022386476,53.1999350236,8.04846171823,4.78635605162
+0.3650000000000002,18.536899259,24.887493332,0.00256703619018,2.59700011532,0.458741195621,53.1999350236,2.87699372783,4.78635605162
+0.3700000000000002,1.39066604189,24.887493332,0.0029013579004,2.59700011532,0.428452490342,53.1999350236,1.80260103173,4.78635605162
+0.3750000000000002,0.461207455208,24.887493332,0.00338712026367,2.59700011532,0.362958187378,53.1999350236,1.34317089246,4.78635605162
+0.3800000000000002,0.223731187001,24.887493332,0.00413170682114,2.59700011532,0.301055452763,53.1999350236,1.09124468109,4.78635605162
+0.38500000000000023,0.128229841417,24.887493332,0.00538073173552,2.59700011532,0.240107113086,53.1999350236,0.93409620892,4.78635605162
+0.39000000000000024,0.0784920119467,24.887493332,0.00784320725238,2.59700011532,0.170645997776,53.1999350236,0.828064963517,4.78635605162
+0.39500000000000024,0.0431611488023,24.887493332,0.0147525608011,2.59700011532,0.0479569348817,53.1999350236,0.752702627484,4.78635605162
+0.40000000000000024,0.125171738448,24.887493332,0.133635902199,2.59700011532,0.157958083139,53.1999350236,0.697173708623,4.78635605162
+0.40500000000000025,0.0584942984204,24.887493332,-0.0189855321451,2.59700011532,0.233609668151,53.1999350236,0.655219001313,4.78635605162
+0.41000000000000025,0.037702725343,24.887493332,-0.00892863564252,2.59700011532,0.297743334418,53.1999350236,0.622989555054,4.78635605162
+0.41500000000000026,0.027827106942,24.887493332,-0.00588638133755,2.59700011532,0.360227788464,53.1999350236,0.598008455715,4.78635605162
+0.42000000000000026,0.0211987160476,24.887493332,-0.00442910916332,2.59700011532,0.42599152393,53.1999350236,0.57863048966,4.78635605162
+0.42500000000000027,0.0160802276811,24.887493332,-0.00358152181559,2.59700011532,0.499061371088,53.1999350236,0.563742368813,4.78635605162
+0.43000000000000027,0.0116739791922,24.887493332,-0.00303237055096,2.59700011532,0.583905567893,53.1999350236,0.552588046692,4.78635605162
+0.4350000000000003,0.00728500366889,24.887493332,-0.00265158641512,2.59700011532,0.686486121185,53.1999350236,0.544663350089,4.78635605162
+0.4400000000000003,0.00243291347265,24.887493332,-0.00237526997039,2.59700011532,0.815737263059,53.1999350236,0.539651413346,4.78635605162
+0.4450000000000003,0.00696198428924,24.887493332,-0.00216842991751,2.59700011532,0.986299442514,53.1999350236,0.537383772652,4.78635605162
+0.4500000000000003,0.00884851819847,24.887493332,-0.00201036354406,2.59700011532,1.22437969711,53.1999350236,0.537819018778,4.78635605162
+0.4550000000000003,0.00981004369416,24.887493332,-0.00188810713602,2.59700011532,1.58201216785,53.1999350236,0.541034965552,4.78635605162
+0.4600000000000003,0.0100218150295,24.887493332,-0.00179320090124,2.59700011532,2.17654305476,53.1999350236,0.547232998658,4.78635605162
+0.4650000000000003,0.00925982419887,24.887493332,-0.0017199680688,2.59700011532,3.29135191908,53.1999350236,0.556755557551,4.78635605162
+0.4700000000000003,0.00649167144982,24.887493332,-0.00166454644856,2.59700011532,0.343367636509,53.1999350236,0.570120302197,4.78635605162
+0.4750000000000003,0.00695375377574,24.887493332,-0.00162432127992,2.59700011532,18.3891004778,53.1999350236,0.588078304694,4.78635605162
+0.4800000000000003,0.0147497845514,24.887493332,-0.00159758644143,2.59700011532,5.42949840841,53.1999350236,0.611710070066,4.78635605162
+0.4850000000000003,0.0228537785489,24.887493332,-0.0015833449369,2.59700011532,3.20885144676,53.1999350236,0.642585338604,4.78635605162
+0.4900000000000003,0.0280619238181,24.887493332,-0.00158120223415,2.59700011532,2.04560508739,53.1999350236,0.683037188758,4.78635605162
+0.49500000000000033,0.0287684290134,24.887493332,-0.00160677194296,2.59700011532,1.49764431607,53.1999350236,0.715994577108,4.78635605162
diff --git a/tests/framework/PostProcessors/Validation/gold/DSS/pp2_print_1.csv b/tests/framework/PostProcessors/Validation/gold/DSS/pp2_print_1.csv
new file mode 100644
index 0000000000..a704d0ef68
--- /dev/null
+++ b/tests/framework/PostProcessors/Validation/gold/DSS/pp2_print_1.csv
@@ -0,0 +1,101 @@
+pivot_parameter,dss_x2_x1,total_distance_x2_x1,process_time_x2_x1,standard_deviation_x2_x1,dss_y2_y1,total_distance_y2_y1,process_time_y2_y1,standard_deviation_y2_y1
+0.0,0.774109933747,78.5323269828,-0.00111513031321,8.02406872151,0.00015699442728,21.1645936719,0.000388766220683,3.62270476039
+0.005,0.172934844167,78.5323269828,0.000312548594868,8.02406872151,0.000253790755873,21.1645936719,0.000478997467537,3.62270476039
+0.01,0.0434518775793,78.5323269828,9.33645706157e-05,8.02406872151,0.000389758416471,21.1645936719,0.00056805120926,3.62270476039
+0.015,0.019233004651,78.5323269828,5.94011493334e-05,8.02406872151,0.000486770043257,21.1645936719,0.000646124658721,3.62270476039
+0.02,0.0112138144262,78.5323269828,4.6202616342e-05,8.02406872151,0.000529134300053,21.1645936719,0.000713124729502,3.62270476039
+0.025,0.00757486755401,78.5323269828,3.95339280479e-05,8.02406872151,0.000474278984792,21.1645936719,0.000770415120738,3.62270476039
+0.030000000000000002,0.00559988445393,78.5323269828,3.57467616553e-05,8.02406872151,0.000152740369949,21.1645936719,0.000820287742045,3.62270476039
+0.035,0.004390795607,78.5323269828,3.34846745312e-05,8.02406872151,0.000797991250143,21.1645936719,0.000865542594222,3.62270476039
+0.04,0.00357888192657,78.5323269828,3.21335157958e-05,8.02406872151,0.00139258099056,21.1645936719,0.00090927581244,3.62270476039
+0.045,0.00298801637499,78.5323269828,3.13820403602e-05,8.02406872151,0.00213544322869,21.1645936719,0.000954896315223,3.62270476039
+0.049999999999999996,0.002522954625,78.5323269828,3.10643814811e-05,8.02406872151,0.00312433905151,21.1645936719,0.00100638290725,3.62270476039
+0.05499999999999999,0.00212519328404,78.5323269828,3.10947442252e-05,8.02406872151,0.00449128682363,21.1645936719,0.00106885498154,3.62270476039
+0.05999999999999999,0.00175195717774,78.5323269828,3.14383431158e-05,8.02406872151,0.00644420016217,21.1645936719,0.0011496907818,3.62270476039
+0.06499999999999999,0.00136101853355,78.5323269828,3.2099324124e-05,8.02406872151,0.00933486602648,21.1645936719,0.00126083041451,3.62270476039
+0.06999999999999999,0.000878087855177,78.5323269828,3.31188790748e-05,8.02406872151,0.0138014458706,21.1645936719,0.00142407700497,3.62270476039
+0.075,0.000466896928717,78.5323269828,3.45823471465e-05,8.02406872151,0.0211082874645,21.1645936719,0.00168536859298,3.62270476039
+0.08,0.00105539943751,78.5323269828,3.66384375052e-05,8.02406872151,0.0340932878574,21.1645936719,0.00216302079173,3.62270476039
+0.085,0.00136598259819,78.5323269828,3.95404879555e-05,8.02406872151,0.0605703170013,21.1645936719,0.00328710340681,3.62270476039
+0.09000000000000001,0.00153529464373,78.5323269828,4.37357620277e-05,8.02406872151,0.137405153594,21.1645936719,0.00883634014844,3.62270476039
+0.09500000000000001,0.00154146111344,78.5323269828,5.00760395577e-05,8.02406872151,0.212755471826,21.1645936719,-0.00846684654297,3.62270476039
+0.10000000000000002,0.00125478869626,78.5323269828,6.0390815383e-05,8.02406872151,1.5988061707,21.1645936719,-0.00250601690095,3.62270476039
+0.10500000000000002,0.000772175184071,78.5323269828,7.94364951969e-05,8.02406872151,7.48669871307,21.1645936719,-0.00134643522011,3.62270476039
+0.11000000000000003,0.00223574857561,78.5323269828,0.000124632059843,8.02406872151,0.413573575915,21.1645936719,-0.000855478667377,3.62270476039
+0.11500000000000003,0.00366331896809,78.5323269828,0.000352094517332,8.02406872151,0.121052016172,21.1645936719,-0.000584330264464,3.62270476039
+0.12000000000000004,0.00481738095475,78.5323269828,-0.000336680273934,8.02406872151,0.0503855034092,21.1645936719,-0.000410720594005,3.62270476039
+0.12500000000000003,0.00662913115137,78.5323269828,-0.000106374679546,8.02406872151,0.0234170232593,21.1645936719,-0.000286946114568,3.62270476039
+0.13000000000000003,0.00866007541832,78.5323269828,-6.08457355132e-05,8.02406872151,0.0107458842608,21.1645936719,-0.000189675836893,3.62270476039
+0.13500000000000004,0.0110758004082,78.5323269828,-4.15638099506e-05,8.02406872151,0.0041603475582,21.1645936719,-0.000105003718329,3.62270476039
+0.14000000000000004,0.0140284466065,78.5323269828,-3.09727411283e-05,8.02406872151,0.000617383138954,21.1645936719,-2.25654101801e-05,3.62270476039
+0.14500000000000005,0.0177699755735,78.5323269828,-2.42764214694e-05,8.02406872151,0.00124587128596,21.1645936719,6.76472198329e-05,3.62270476039
+0.15000000000000005,0.0227701859871,78.5323269828,-1.96176433169e-05,8.02406872151,0.00213169974396,21.1645936719,0.000178037706082,3.62270476039
+0.15500000000000005,0.0299926294325,78.5323269828,-1.61162762964e-05,8.02406872151,0.00244007370638,21.1645936719,0.000327303277569,3.62270476039
+0.16000000000000006,0.0416880551589,78.5323269828,-1.32927334511e-05,8.02406872151,0.00241168757692,21.1645936719,0.000548129320248,3.62270476039
+0.16500000000000006,0.0643186472701,78.5323269828,-1.08557501738e-05,8.02406872151,0.00218991014403,21.1645936719,0.000906013974106,3.62270476039
+0.17000000000000007,0.124719770968,78.5323269828,-8.61146363399e-06,8.02406872151,0.00184028567937,21.1645936719,0.00155620869662,3.62270476039
+0.17500000000000007,0.494938369974,78.5323269828,-6.41978064852e-06,8.02406872151,0.00126847297741,21.1645936719,0.00297767637778,3.62270476039
+0.18000000000000008,2.46641065603,78.5323269828,-4.17133774529e-06,8.02406872151,0.00173926936988,21.1645936719,0.00772575298958,3.62270476039
+0.18500000000000008,0.0414611869821,78.5323269828,-1.77413937144e-06,8.02406872151,0.025561946542,21.1645936719,-0.11539011265,3.62270476039
+0.19000000000000009,0.00569319620955,78.5323269828,8.55060129221e-07,8.02406872151,0.00146300939145,21.1645936719,-0.0100554509397,3.62270476039
+0.1950000000000001,0.011004902984,78.5323269828,3.79709063573e-06,8.02406872151,0.000475864139573,21.1645936719,-0.00635126793396,3.62270476039
+0.2000000000000001,0.0108503108153,78.5323269828,7.13581055212e-06,8.02406872151,0.000128654332099,21.1645936719,-0.00518006530933,3.62270476039
+0.2050000000000001,0.00969350347973,78.5323269828,1.09636231742e-05,8.02406872151,1.49277955888e-05,21.1645936719,-0.00467894362698,3.62270476039
+0.2100000000000001,0.00842420202358,78.5323269828,1.53879274562e-05,8.02406872151,4.02892302638e-05,21.1645936719,-0.0044476870953,3.62270476039
+0.2150000000000001,0.00724575947031,78.5323269828,2.05394988306e-05,8.02406872151,0.000191885884931,21.1645936719,-0.0043446838376,3.62270476039
+0.2200000000000001,0.00619304465914,78.5323269828,2.65841777047e-05,8.02406872151,0.000391175798864,21.1645936719,-0.0043045490451,3.62270476039
+0.22500000000000012,0.00525522371794,78.5323269828,3.37400009027e-05,8.02406872151,0.000673502363882,21.1645936719,-0.00429205403071,3.62270476039
+0.23000000000000012,0.00440922558223,78.5323269828,4.23033464715e-05,8.02406872151,0.00108776134503,21.1645936719,-0.00428710781864,3.62270476039
+0.23500000000000013,0.00362847465576,78.5323269828,5.26904309862e-05,8.02406872151,0.00170845633151,21.1645936719,-0.00427888014895,3.62270476039
+0.24000000000000013,0.00288251896262,78.5323269828,6.55060659113e-05,8.02406872151,0.00265234610929,21.1645936719,-0.004262899853,3.62270476039
+0.24500000000000013,0.002127734175,78.5323269828,8.16634197959e-05,8.02406872151,0.0041133507449,21.1645936719,-0.0042391343709,3.62270476039
+0.2500000000000001,0.001257759357,78.5323269828,0.000102605552429,8.02406872151,0.00643832583293,21.1645936719,-0.00421045589147,3.62270476039
+0.2550000000000001,0.000828378096761,78.5323269828,0.000130746825402,8.02406872151,0.010304266841,21.1645936719,-0.00418140075283,3.62270476039
+0.2600000000000001,0.00154019188196,78.5323269828,0.000170440017214,8.02406872151,0.0171821550257,21.1645936719,-0.00415725967944,3.62270476039
+0.2650000000000001,0.00187441428345,78.5323269828,0.000230381434784,8.02406872151,0.0307614176303,21.1645936719,-0.00414351845838,3.62270476039
+0.27000000000000013,0.00202193397403,78.5323269828,0.000330771307489,8.02406872151,0.0624826810512,21.1645936719,-0.00414561873163,3.62270476039
+0.27500000000000013,0.002001032412,78.5323269828,0.000531589183265,8.02406872151,0.163182566838,21.1645936719,-0.00416897908533,3.62270476039
+0.28000000000000014,0.00175329778763,78.5323269828,0.00112482219142,8.02406872151,0.841675558765,21.1645936719,-0.00421921817404,3.62270476039
+0.28500000000000014,0.00125269551862,78.5323269828,0.0359810627555,8.02406872151,30.1715064164,21.1645936719,-0.00430254667581,3.62270476039
+0.29000000000000015,0.00173690674608,78.5323269828,-0.00139473398204,8.02406872151,0.541470714699,21.1645936719,-0.0044263349351,3.62270476039
+0.29500000000000015,0.00310890477779,78.5323269828,-0.000737322863662,8.02406872151,0.166181672723,21.1645936719,-0.00459991742035,3.62270476039
+0.30000000000000016,0.00456146898278,78.5323269828,-0.00052674979752,8.02406872151,0.0829631693218,21.1645936719,-0.00483577503259,3.62270476039
+0.30500000000000016,0.00628601499582,78.5323269828,-0.000425524249225,8.02406872151,0.0512147337907,21.1645936719,-0.00515137300595,3.62270476039
+0.31000000000000016,0.00845797610112,78.5323269828,-0.000368150791594,8.02406872151,0.0356827739788,21.1645936719,-0.00557219787766,3.62270476039
+0.31500000000000017,0.0113216825999,78.5323269828,-0.0003331746523,8.02406872151,0.0269350413193,21.1645936719,-0.00613710629019,3.62270476039
+0.3200000000000002,0.015267935443,78.5323269828,-0.000311603763873,8.02406872151,0.0215737276619,21.1645936719,-0.00690843116545,3.62270476039
+0.3250000000000002,0.0209754548459,78.5323269828,-0.00029913248091,8.02406872151,0.0181422611288,21.1645936719,-0.00799273681681,3.62270476039
+0.3300000000000002,0.0297210356289,78.5323269828,-0.000293590171994,8.02406872151,0.0159619678347,21.1645936719,-0.00958820041251,3.62270476039
+0.3350000000000002,0.0441503928111,78.5323269828,-0.000293955979829,8.02406872151,0.0147516320894,21.1645936719,-0.0121094126143,3.62270476039
+0.3400000000000002,0.0705032247119,78.5323269828,-0.00029995850538,8.02406872151,0.0145712178054,21.1645936719,-0.0165925304479,3.62270476039
+0.3450000000000002,0.126536483196,78.5323269828,-0.000311949955848,8.02406872151,0.016262292345,21.1645936719,-0.0265554172213,3.62270476039
+0.3500000000000002,0.280803513005,78.5323269828,-0.000330964255244,8.02406872151,0.0265280222762,21.1645936719,-0.066497609455,3.62270476039
+0.3550000000000002,1.02324913362,78.5323269828,-0.000358979521713,8.02406872151,0.0298908562968,21.1645936719,0.136708832882,3.62270476039
+0.3600000000000002,80.1685866409,78.5323269828,-0.000399528825841,8.02406872151,0.00187240234695,21.1645936719,0.0343043054976,3.62270476039
+0.3650000000000002,1.79519173079,78.5323269828,-0.000459072822812,8.02406872151,0.0027974550452,21.1645936719,0.0199018342634,3.62270476039
+0.3700000000000002,0.396905209568,78.5323269828,-0.000550354811098,8.02406872151,0.00196447877021,21.1645936719,0.0142027898753,3.62270476039
+0.3750000000000002,0.172007319674,78.5323269828,-0.000701977803126,8.02406872151,0.00121110983051,21.1645936719,0.0111763984294,3.62270476039
+0.3800000000000002,0.0968649163453,78.5323269828,-0.00099349891318,8.02406872151,0.00061232574077,21.1645936719,0.00931878570727,3.62270476039
+0.38500000000000023,0.0636563968426,78.5323269828,-0.00175835669441,8.02406872151,0.000167538565504,21.1645936719,0.00807685474333,3.62270476039
+0.39000000000000024,0.0561966955212,78.5323269828,-0.00856322755607,8.02406872151,8.0456588826e-05,21.1645936719,0.00719971537706,3.62270476039
+0.39500000000000024,0.0260206570271,78.5323269828,0.00291043543761,8.02406872151,0.000288516079035,21.1645936719,0.00655732455789,3.62270476039
+0.40000000000000024,0.0213502799877,78.5323269828,0.00123939077254,8.02406872151,0.000876677291258,21.1645936719,0.00607577941537,3.62270476039
+0.40500000000000025,0.016899092494,78.5323269828,0.000788878127904,8.02406872151,0.0017178654172,21.1645936719,0.00571021259275,3.62270476039
+0.41000000000000025,0.0134051383915,78.5323269828,0.000581133294843,8.02406872151,0.00289031251364,21.1645936719,0.0054320610037,3.62270476039
+0.41500000000000026,0.0106196180657,78.5323269828,0.00046265549946,8.02406872151,0.00452348561758,21.1645936719,0.00522255321938,3.62270476039
+0.42000000000000026,0.00830333105079,78.5323269828,0.000386842345636,8.02406872151,0.00682983486137,21.1645936719,0.00506915740742,3.62270476039
+0.42500000000000027,0.0062597143635,78.5323269828,0.000334748408515,8.02406872151,0.0101640037956,21.1645936719,0.00496355398608,3.62270476039
+0.43000000000000027,0.00428053116836,78.5323269828,0.000297231742542,8.02406872151,0.0151430112141,21.1645936719,0.00490045113692,3.62270476039
+0.4350000000000003,0.00183094244122,78.5323269828,0.000269350407586,8.02406872151,0.0229061424782,21.1645936719,0.00487690217277,3.62270476039
+0.4400000000000003,0.00273321375559,78.5323269828,0.00024820979193,8.02406872151,0.0357308620284,21.1645936719,0.00489195140857,3.62270476039
+0.4450000000000003,0.00388360453739,78.5323269828,0.000232012825754,8.02406872151,0.0586844015204,21.1645936719,0.00494652670219,3.62270476039
+0.4500000000000003,0.00445348727543,78.5323269828,0.000219596381833,8.02406872151,0.104878587617,21.1645936719,0.00504355611419,3.62270476039
+0.4550000000000003,0.0046422237846,78.5323269828,0.000210187123956,8.02406872151,0.217029543586,21.1645936719,0.00518833724011,3.62270476039
+0.4600000000000003,0.00441220704131,78.5323269828,0.000203265440004,8.02406872151,0.603815420293,21.1645936719,0.00538925015073,3.62270476039
+0.4650000000000003,0.00346569189527,78.5323269828,0.000198486694994,8.02406872151,4.0640633147,21.1645936719,0.00565900476547,3.62270476039
+0.4700000000000003,0.00191015692685,78.5323269828,0.000195635089853,8.02406872151,17.9868344846,21.1645936719,0.00601680122675,3.62270476039
+0.4750000000000003,0.00569507867241,78.5323269828,0.000194597602017,8.02406872151,1.19241195807,21.1645936719,0.00649217227692,3.62270476039
+0.4800000000000003,0.00910691494635,78.5323269828,0.00019535171858,8.02406872151,0.416943814092,21.1645936719,0.00713216163498,3.62270476039
+0.4850000000000003,0.0130557612771,78.5323269828,0.000197964290948,8.02406872151,0.219083602994,21.1645936719,0.00801569461804,3.62270476039
+0.4900000000000003,0.0154658754364,78.5323269828,0.000202601458671,8.02406872151,0.122663915599,21.1645936719,0.00928513779775,3.62270476039
+0.49500000000000033,0.015404620316,78.5323269828,0.00020681289425,8.02406872151,0.0837281391226,21.1645936719,0.0101591584241,3.62270476039
diff --git a/tests/framework/PostProcessors/Validation/gold/DSS/pp2_print_2.csv b/tests/framework/PostProcessors/Validation/gold/DSS/pp2_print_2.csv
new file mode 100644
index 0000000000..c063dfa2e5
--- /dev/null
+++ b/tests/framework/PostProcessors/Validation/gold/DSS/pp2_print_2.csv
@@ -0,0 +1,101 @@
+pivot_parameter,dss_x2_x1,total_distance_x2_x1,process_time_x2_x1,standard_deviation_x2_x1,dss_y2_y1,total_distance_y2_y1,process_time_y2_y1,standard_deviation_y2_y1
+0.0,0.0499281922006,37.767391036,0.00214950159842,4.28650302037,1.48043773097e-06,153.440198563,-2.78869210709e-06,15.4153269263
+0.005,0.108821350709,37.767391036,0.00344512627925,4.28650302037,1.92343383019e-06,153.440198563,-3.78745340746e-06,15.4153269263
+0.01,2.80127775886,37.767391036,-0.0154495882567,4.28650302037,1.53098863678e-06,153.440198563,-4.83741886226e-06,15.4153269263
+0.015,0.666352304377,37.767391036,-0.00270493401925,4.28650302037,1.90085196915e-06,153.440198563,-5.79512180408e-06,15.4153269263
+0.02,0.105537707351,37.767391036,-0.00161203987177,4.28650302037,3.32599773558e-06,153.440198563,-6.63492581009e-06,15.4153269263
+0.025,0.0431344458161,37.767391036,-0.00122160618589,4.28650302037,4.40380458328e-06,153.440198563,-7.35165063744e-06,15.4153269263
+0.030000000000000002,0.0243318377974,37.767391036,-0.0010306546398,4.28650302037,5.17246201225e-06,153.440198563,-7.95660994721e-06,15.4153269263
+0.035,0.0161802116007,37.767391036,-0.000923652027417,4.28650302037,5.32498316785e-06,153.440198563,-8.47174651242e-06,15.4153269263
+0.04,0.0118771511525,37.767391036,-0.00085975689653,4.28650302037,3.63941540802e-06,153.440198563,-8.92454004322e-06,15.4153269263
+0.045,0.00929529622336,37.767391036,-0.000820975161398,4.28650302037,6.48621474724e-06,153.440198563,-9.3449510607e-06,15.4153269263
+0.049999999999999996,0.00759070348954,37.767391036,-0.000798295647998,4.28650302037,1.3658071887e-05,153.440198563,-9.76461077415e-06,15.4153269263
+0.05499999999999999,0.00636976921521,37.767391036,-0.000786888171608,4.28650302037,2.28305802338e-05,153.440198563,-1.02181231591e-05,15.4153269263
+0.05999999999999999,0.00542383077465,37.767391036,-0.000784147860477,4.28650302037,3.54369772377e-05,153.440198563,-1.07466180944e-05,15.4153269263
+0.06499999999999999,0.00462768310852,37.767391036,-0.000788818411715,4.28650302037,5.3214686841e-05,153.440198563,-1.14045547185e-05,15.4153269263
+0.06999999999999999,0.00389360580876,37.767391036,-0.00080059531129,4.28650302037,7.8766485877e-05,153.440198563,-1.22726906907e-05,15.4153269263
+0.075,0.00314310405167,37.767391036,-0.000819987724073,4.28650302037,0.000116258353714,153.440198563,-1.34849615832e-05,15.4153269263
+0.08,0.00226732731421,37.767391036,-0.000848368466594,4.28650302037,0.000172710528439,153.440198563,-1.52914860661e-05,15.4153269263
+0.085,0.000856688329193,37.767391036,-0.000888228880415,4.28650302037,0.000260628405531,153.440198563,-1.82327415937e-05,15.4153269263
+0.09000000000000001,0.00183568332738,37.767391036,-0.000943751981274,4.28650302037,0.000403597002242,153.440198563,-2.37528099707e-05,15.4153269263
+0.09500000000000001,0.00264621581141,37.767391036,-0.00102200341102,4.28650302037,0.000645816804441,153.440198563,-3.74874734818e-05,15.4153269263
+0.10000000000000002,0.00312285344438,37.767391036,-0.00113551387155,4.28650302037,0.000916181838688,153.440198563,-0.000125172028078,15.4153269263
+0.10500000000000002,0.00330033104617,37.767391036,-0.00130846731198,4.28650302037,0.0031709156581,153.440198563,6.80776138803e-05,15.4153269263
+0.11000000000000003,0.00305357249322,37.767391036,-0.00159401185415,4.28650302037,0.0092741572586,153.440198563,2.3630670193e-05,15.4153269263
+0.11500000000000003,0.00192066846575,37.767391036,-0.00213582689044,4.28650302037,0.184535236178,153.440198563,1.31146173897e-05,15.4153269263
+0.12000000000000004,0.00252956428232,37.767391036,-0.00350365660164,4.28650302037,0.0261601202469,153.440198563,8.43267598045e-06,15.4153269263
+0.12500000000000003,0.00197195699887,37.767391036,-0.0128058571372,4.28650302037,0.00407839423995,153.440198563,5.78128280747e-06,15.4153269263
+0.13000000000000003,0.0119156742882,37.767391036,0.0064905335384,4.28650302037,0.00136658922718,153.440198563,4.05421618831e-06,15.4153269263
+0.13500000000000004,0.013671245455,37.767391036,0.0024343989044,4.28650302037,0.000561531221493,153.440198563,2.8037103852e-06,15.4153269263
+0.14000000000000004,0.0169855507165,37.767391036,0.00144628153041,4.28650302037,0.000233033923817,153.440198563,1.80407295399e-06,15.4153269263
+0.14500000000000005,0.0210482642293,37.767391036,0.00100434732335,4.28650302037,7.82755721773e-05,153.440198563,9.15992711228e-07,15.4153269263
+0.15000000000000005,0.0258835576537,37.767391036,0.000755025231215,4.28650302037,1.7285453844e-06,153.440198563,3.07115919595e-08,15.4153269263
+0.15500000000000005,0.0317078406287,37.767391036,0.000594637268036,4.28650302037,3.48615386997e-05,153.440198563,-9.62513297606e-07,15.4153269263
+0.16000000000000006,0.03896086226,37.767391036,0.000481492502845,4.28650302037,4.95564952756e-05,153.440198563,-2.20761666073e-06,15.4153269263
+0.16500000000000006,0.0484979384313,37.767391036,0.000395330321375,4.28650302037,5.19049338564e-05,153.440198563,-3.9299302102e-06,15.4153269263
+0.17000000000000007,0.0620887853646,37.767391036,0.000324893762769,4.28650302037,4.72752726694e-05,153.440198563,-6.53687252305e-06,15.4153269263
+0.17500000000000007,0.0838925432036,37.767391036,0.000263230775606,4.28650302037,3.86756477784e-05,153.440198563,-1.08771768008e-05,15.4153269263
+0.18000000000000008,0.126109101157,37.767391036,0.000205642022718,4.28650302037,2.75555601199e-05,153.440198563,-1.90800002131e-05,15.4153269263
+0.18500000000000008,0.243272898987,37.767391036,0.000148680404437,4.28650302037,1.39478669348e-05,153.440198563,-3.84293742393e-05,15.4153269263
+0.19000000000000009,1.25320061527,37.767391036,8.96142018957e-05,4.28650302037,4.26359975484e-06,153.440198563,-0.000120753657011,15.4153269263
+0.1950000000000001,0.328279795372,37.767391036,2.61089979965e-05,4.28650302037,6.32719894207e-05,153.440198563,0.000281470696544,15.4153269263
+0.2000000000000001,0.0566244476106,37.767391036,-4.39845116188e-05,4.28650302037,4.27397326215e-05,153.440198563,8.84294864703e-05,15.4153269263
+0.2050000000000001,0.0514053505134,37.767391036,-0.000122794909578,4.28650302037,4.0516001398e-05,153.440198563,6.14787929997e-05,15.4153269263
+0.2100000000000001,0.0405028662944,37.767391036,-0.000212581686572,4.28650302037,3.81748740252e-05,153.440198563,5.17038603202e-05,15.4153269263
+0.2150000000000001,0.0321067659877,37.767391036,-0.000315900981059,4.28650302037,3.36695540624e-05,153.440198563,4.71889229888e-05,15.4153269263
+0.2200000000000001,0.0258403274918,37.767391036,-0.00043581283209,4.28650302037,2.4387399431e-05,153.440198563,4.4875060237e-05,15.4153269263
+0.22500000000000012,0.0210417485375,37.767391036,-0.000576165408484,4.28650302037,1.57630978935e-05,153.440198563,4.35861729715e-05,15.4153269263
+0.23000000000000012,0.0172488698855,37.767391036,-0.000742009822369,4.28650302037,3.90452419768e-05,153.440198563,4.27615567712e-05,15.4153269263
+0.23500000000000013,0.0141582984866,37.767391036,-0.000940234887552,4.28650302037,5.85822401439e-05,153.440198563,4.21069168398e-05,15.4153269263
+0.24000000000000013,0.0115667017187,37.767391036,-0.00118058169524,4.28650302037,7.93280986529e-05,153.440198563,4.14713402758e-05,15.4153269263
+0.24500000000000013,0.00933193577921,37.767391036,-0.00147734237755,4.28650302037,0.00010323904041,153.440198563,4.07922860834e-05,15.4153269263
+0.2500000000000001,0.00734854275724,37.767391036,-0.00185236098997,4.28650302037,0.000132353675386,153.440198563,4.00634095801e-05,15.4153269263
+0.2550000000000001,0.00553004791768,37.767391036,-0.00234068708837,4.28650302037,0.000169564909451,153.440198563,3.93118213766e-05,15.4153269263
+0.2600000000000001,0.00378746557468,37.767391036,-0.00300211254591,4.28650302037,0.000219516980964,153.440198563,3.85814626358e-05,15.4153269263
+0.2650000000000001,0.00194455333851,37.767391036,-0.00394726388461,4.28650302037,0.000290298928418,153.440198563,3.79219324726e-05,15.4153269263
+0.27000000000000013,0.00138630396449,37.767391036,-0.00540542120334,4.28650302037,0.000397224923975,153.440198563,3.73821990832e-05,15.4153269263
+0.27500000000000013,0.00175262947416,37.767391036,-0.00794025570953,4.28650302037,0.000572450985139,153.440198563,3.70082269142e-05,15.4153269263
+0.28000000000000014,0.000671392420297,37.767391036,-0.0134048916244,4.28650302037,0.000893718572204,153.440198563,3.68434041146e-05,15.4153269263
+0.28500000000000014,0.0046774271677,37.767391036,-0.0335288065715,4.28650302037,0.00159265948961,153.440198563,3.69308396882e-05,15.4153269263
+0.29000000000000015,0.0317778653141,37.767391036,0.108292813634,4.28650302037,0.00365085181784,153.440198563,3.73169772657e-05,15.4153269263
+0.29500000000000015,0.00818339475296,37.767391036,0.0231436754672,4.28650302037,0.0161638728405,153.440198563,3.80564183044e-05,15.4153269263
+0.30000000000000016,0.00111412560967,37.767391036,0.0137808997325,4.28650302037,0.884787886606,153.440198563,3.9218335031e-05,15.4153269263
+0.30500000000000016,0.00694290356226,37.767391036,0.0102407538624,4.28650302037,0.00939532288541,153.440198563,4.08954655535e-05,15.4153269263
+0.31000000000000016,0.010493995504,37.767391036,0.00842291698246,4.28650302037,0.00249837948379,153.440198563,4.32176408333e-05,15.4153269263
+0.31500000000000017,0.0141331036889,37.767391036,0.00735357855299,4.28650302037,0.00108921245228,153.440198563,4.6373574815e-05,15.4153269263
+0.3200000000000002,0.0183727680949,37.767391036,0.00668439911726,4.28650302037,0.000581338912779,153.440198563,5.06483583235e-05,15.4153269263
+0.3250000000000002,0.0236396025607,37.767391036,0.00626172773479,4.28650302037,0.000342494060474,153.440198563,5.64925313104e-05,15.4153269263
+0.3300000000000002,0.0304957537778,37.767391036,0.0060093926315,4.28650302037,0.000209953796173,153.440198563,6.46596457532e-05,15.4153269263
+0.3350000000000002,0.0398163176516,37.767391036,0.00588786205733,4.28650302037,0.000126330020937,153.440198563,7.65079974373e-05,15.4153269263
+0.3400000000000002,0.0530915153608,37.767391036,0.00587779409205,4.28650302037,6.63151602054e-05,153.440198563,9.47525643711e-05,15.4153269263
+0.3450000000000002,0.0730701399213,37.767391036,0.0059730818723,4.28650302037,1.51946100957e-05,153.440198563,0.000125710933657,15.4153269263
+0.3500000000000002,0.105319260008,37.767391036,0.00617843981787,4.28650302037,4.26696601349e-05,153.440198563,0.000188221448848,15.4153269263
+0.3550000000000002,0.162593654311,37.767391036,0.00650996412315,4.28650302037,0.000157569681522,153.440198563,0.000375039417191,15.4153269263
+0.3600000000000002,0.279772888882,37.767391036,0.00699877288072,4.28650302037,0.0098837259003,153.440198563,0.0196652331057,15.4153269263
+0.3650000000000002,0.583338306626,37.767391036,0.00769949424298,4.28650302037,0.000198084213264,153.440198563,-0.000399736267412,15.4153269263
+0.3700000000000002,1.86574241185,37.767391036,0.00870860844522,4.28650302037,8.02869790213e-05,153.440198563,-0.000201481595308,15.4153269263
+0.3750000000000002,42.3579811861,37.767391036,0.0102064301858,4.28650302037,1.3156166492e-05,153.440198563,-0.00013678925093,15.4153269263
+0.3800000000000002,5.26716178934,37.767391036,0.0125657200952,4.28650302037,4.4608825145e-05,153.440198563,-0.000104990825304,15.4153269263
+0.38500000000000023,0.889900805818,37.767391036,0.0166922695136,4.28650302037,5.34329932638e-05,153.440198563,-8.62734355043e-05,15.4153269263
+0.39000000000000024,0.304090368719,37.767391036,0.0254915046914,4.28650302037,5.57381594146e-05,153.440198563,-7.40790823169e-05,15.4153269263
+0.39500000000000024,0.0573578413862,37.767391036,0.0561239913279,4.28650302037,5.41865304024e-05,153.440198563,-6.56105929421e-05,15.4153269263
+0.40000000000000024,0.693730232489,37.767391036,-0.246683611764,4.28650302037,4.84623702636e-05,153.440198563,-5.94757357043e-05,15.4153269263
+0.40500000000000025,0.164279761324,37.767391036,-0.0382846008641,4.28650302037,3.50507135296e-05,153.440198563,-5.49054663602e-05,15.4153269263
+0.41000000000000025,0.0999385766782,37.767391036,-0.0207791318521,4.28650302037,2.59158836574e-05,153.440198563,-5.14422667378e-05,15.4153269263
+0.41500000000000026,0.0698826288974,37.767391036,-0.0143215945081,4.28650302037,6.1613094492e-05,153.440198563,-4.87989196164e-05,15.4153269263
+0.42000000000000026,0.0518196747833,37.767391036,-0.0109904218024,4.28650302037,9.44605561698e-05,153.440198563,-4.67881738629e-05,15.4153269263
+0.42500000000000027,0.0396054744386,37.767391036,-0.00897650633767,4.28650302037,0.000132038605754,153.440198563,-4.52851213661e-05,15.4153269263
+0.43000000000000027,0.030669772508,37.767391036,-0.00764130095923,4.28650302037,0.000178513875608,153.440198563,-4.42059756702e-05,15.4153269263
+0.4350000000000003,0.0236836984137,37.767391036,-0.00670217276586,4.28650302037,0.000238905931645,153.440198563,-4.34956821917e-05,15.4153269263
+0.4400000000000003,0.0178336157332,37.767391036,-0.00601499611813,4.28650302037,0.000320699620659,153.440198563,-4.31206222862e-05,15.4153269263
+0.4450000000000003,0.0124729552851,37.767391036,-0.00549878952213,4.28650302037,0.000436162799237,153.440198563,-4.30644970741e-05,15.4153269263
+0.4500000000000003,0.0065709238374,37.767391036,-0.00510476779296,4.28650302037,0.000606930495375,153.440198563,-4.33264233714e-05,15.4153269263
+0.4550000000000003,0.00599985403089,37.767391036,-0.00480201464787,4.28650302037,0.000874311714594,153.440198563,-4.39208298679e-05,15.4153269263
+0.4600000000000003,0.00954601659704,37.767391036,-0.0045702320651,4.28650302037,0.00132544503602,153.440198563,-4.48791454024e-05,15.4153269263
+0.4650000000000003,0.0112455781012,37.767391036,-0.00439581577765,4.28650302037,0.00217082289174,153.440198563,-4.62536743346e-05,15.4153269263
+0.4700000000000003,0.0119359941745,37.767391036,-0.00426962454311,4.28650302037,0.0040312798916,153.440198563,-4.81246088084e-05,15.4153269263
+0.4750000000000003,0.0116562165228,37.767391036,-0.00418567497193,4.28650302037,0.00945788743967,153.440198563,-5.06120757773e-05,15.4153269263
+0.4800000000000003,0.00993698502416,37.767391036,-0.00414037944419,4.28650302037,0.0396906266945,153.440198563,-5.38969552789e-05,15.4153269263
+0.4850000000000003,0.00404605115942,37.767391036,-0.00413213174602,4.28650302037,154.150605696,153.440198563,-5.82581034752e-05,15.4153269263
+0.4900000000000003,0.00998731207677,37.767391036,-0.00416114504231,4.28650302037,0.034118947356,153.440198563,-6.41425967643e-05,15.4153269263
+0.49500000000000033,0.0128971436753,37.767391036,-0.00421966639005,4.28650302037,0.0125953353559,153.440198563,-6.81736548532e-05,15.4153269263
diff --git a/tests/framework/PostProcessors/Validation/gold/DSS/pp2_print_3.csv b/tests/framework/PostProcessors/Validation/gold/DSS/pp2_print_3.csv
new file mode 100644
index 0000000000..9e2bd88dd9
--- /dev/null
+++ b/tests/framework/PostProcessors/Validation/gold/DSS/pp2_print_3.csv
@@ -0,0 +1,101 @@
+pivot_parameter,dss_x2_x1,total_distance_x2_x1,process_time_x2_x1,standard_deviation_x2_x1,dss_y2_y1,total_distance_y2_y1,process_time_y2_y1,standard_deviation_y2_y1
+0.0,0.697504916097,44.0357167442,0.000187067290355,4.26023895104,2.11276592754e-05,89.5779339625,-0.000285845842716,6.37493074725
+0.005,0.0937961442649,44.0357167442,-0.0107945042615,4.26023895104,3.92865465678e-05,89.5779339625,-0.000364488540017,6.37493074725
+0.01,0.0146841058889,44.0357167442,-9.71177503994e-05,4.26023895104,6.67856771506e-05,89.5779339625,-0.000443156077267,6.37493074725
+0.015,0.00506653565941,44.0357167442,-5.33732447477e-05,4.26023895104,8.62016576422e-05,89.5779339625,-0.000512069162707,6.37493074725
+0.02,0.00264912003481,44.0357167442,-3.93028795981e-05,4.26023895104,9.26173409153e-05,89.5779339625,-0.000570402317613,6.37493074725
+0.025,0.00168680153944,44.0357167442,-3.26829677854e-05,4.26023895104,8.30889723401e-05,89.5779339625,-0.000618795490168,6.37493074725
+0.030000000000000002,0.00120431279303,44.0357167442,-2.90367763534e-05,4.26023895104,4.79002520117e-05,89.5779339625,-0.000658842799678,6.37493074725
+0.035,0.000924973573352,44.0357167442,-2.68683093569e-05,4.26023895104,6.63160867215e-05,89.5779339625,-0.000692611654596,6.37493074725
+0.04,0.00074556549366,44.0357167442,-2.55379784572e-05,4.26023895104,0.000106803672211,89.5779339625,-0.00072232082436,6.37493074725
+0.045,0.000620054135386,44.0357167442,-2.47300438834e-05,4.26023895104,0.000127260851072,89.5779339625,-0.000750198057986,6.37493074725
+0.049999999999999996,0.000524915785644,44.0357167442,-2.42749694187e-05,4.26023895104,0.000126106445899,89.5779339625,-0.000778489952812,6.37493074725
+0.05499999999999999,0.000446506998059,44.0357167442,-2.40785835079e-05,4.26023895104,9.45463572758e-05,89.5779339625,-0.000809598180607,6.37493074725
+0.05999999999999999,0.000375594130202,44.0357167442,-2.40903563519e-05,4.26023895104,1.65922809e-05,89.5779339625,-0.000846347883827,6.37493074725
+0.06499999999999999,0.000304218800638,44.0357167442,-2.42883489049e-05,4.26023895104,0.000135747532565,89.5779339625,-0.000892453698131,6.37493074725
+0.06999999999999999,0.000221835612996,44.0357167442,-2.4672418092e-05,4.26023895104,0.000413231845106,89.5779339625,-0.000953366778074,6.37493074725
+0.075,9.2770565207e-05,44.0357167442,-2.52624422277e-05,4.26023895104,0.00091376853062,89.5779339625,-0.001037969938,6.37493074725
+0.08,0.000173172894743,44.0357167442,-2.61007254317e-05,4.26023895104,0.00184345477911,89.5779339625,-0.00116240376062,6.37493074725
+0.085,0.000255676889715,44.0357167442,-2.72594468592e-05,4.26023895104,0.00369298428297,89.5779339625,-0.00136012060659,6.37493074725
+0.09000000000000001,0.000305994644935,44.0357167442,-2.88562660331e-05,4.26023895104,0.00786265864931,89.5779339625,-0.00171461681719,6.37493074725
+0.09500000000000001,0.000326642852658,44.0357167442,-3.10857518336e-05,4.26023895104,0.0196849658811,89.5779339625,-0.00251090325498,6.37493074725
+0.10000000000000002,0.000299811467444,44.0357167442,-3.42857835574e-05,4.26023895104,0.072195401223,89.5779339625,-0.00577866461621,6.37493074725
+0.10500000000000002,0.000134961152106,44.0357167442,-3.90918580476e-05,4.26023895104,59.6980859328,89.5779339625,0.00984455394909,6.37493074725
+0.11000000000000003,0.000386021399898,44.0357167442,-4.68508068181e-05,4.26023895104,0.14193230949,89.5779339625,0.00228496629479,6.37493074725
+0.11500000000000003,0.000689017368324,44.0357167442,-6.09976586018e-05,4.26023895104,0.0323262493585,89.5779339625,0.00117371403423,6.37493074725
+0.12000000000000004,0.00102175449744,44.0357167442,-9.36654095125e-05,4.26023895104,0.0132653728221,89.5779339625,0.000729645787486,6.37493074725
+0.12500000000000003,0.0013483939446,44.0357167442,-0.000240809435488,4.26023895104,0.00662492545004,89.5779339625,0.000490726533187,6.37493074725
+0.13000000000000003,0.00225972652341,44.0357167442,0.000312906657587,4.26023895104,0.00353345960159,89.5779339625,0.00033995371488,6.37493074725
+0.13500000000000004,0.00276334008842,44.0357167442,8.79609596538e-05,4.26023895104,0.00186443481341,89.5779339625,0.000233288254922,6.37493074725
+0.14000000000000004,0.00357504670606,44.0357167442,4.91331111265e-05,4.26023895104,0.000897577524816,89.5779339625,0.000149619168864,6.37493074725
+0.14500000000000005,0.00465976804457,44.0357167442,3.31771549351e-05,4.26023895104,0.000330318804864,89.5779339625,7.64550608065e-05,6.37493074725
+0.15000000000000005,0.00614778533549,44.0357167442,2.45300381279e-05,4.26023895104,1.29353018048e-05,89.5779339625,4.40631399263e-06,6.37493074725
+0.15500000000000005,0.00831850845749,44.0357167442,1.90996554934e-05,4.26023895104,0.000139727800254,89.5779339625,-7.58221086535e-05,6.37493074725
+0.16000000000000006,0.0118115724806,44.0357167442,1.53305942382e-05,4.26023895104,0.000181860188277,89.5779339625,-0.000176144980024,6.37493074725
+0.16500000000000006,0.018375321213,44.0357167442,1.24932460113e-05,4.26023895104,0.000150837393926,89.5779339625,-0.000315173730856,6.37493074725
+0.17000000000000007,0.0345105680007,44.0357167442,1.01920437362e-05,4.26023895104,7.50239026571e-05,89.5779339625,-0.000526715755,6.37493074725
+0.17500000000000007,0.106536282721,44.0357167442,8.18702485921e-06,4.26023895104,1.45928717769e-05,89.5779339625,-0.000881888450068,6.37493074725
+0.18000000000000008,42.5050393615,44.0357167442,6.31817273867e-06,4.26023895104,6.56593858581e-05,89.5779339625,-0.00156222652767,6.37493074725
+0.18500000000000008,0.0649333036591,44.0357167442,4.46936234261e-06,4.26023895104,0.000496398707045,89.5779339625,-0.00321143489458,6.37493074725
+0.19000000000000009,0.00826148646792,44.0357167442,2.54933415573e-06,4.26023895104,0.00261240983115,89.5779339625,-0.0109964997649,6.37493074725
+0.1950000000000001,0.000626779082105,44.0357167442,4.80492674955e-07,4.26023895104,0.0050883390726,89.5779339625,0.0177953503839,6.37493074725
+0.2000000000000001,0.00119382519224,44.0357167442,-1.80867751303e-06,4.26023895104,0.00192045995026,89.5779339625,0.00651698961225,6.37493074725
+0.2050000000000001,0.00165109291848,44.0357167442,-4.38977505641e-06,4.26023895104,0.00116369666109,89.5779339625,0.00460286823153,6.37493074725
+0.2100000000000001,0.00168763904999,44.0357167442,-7.34063222456e-06,4.26023895104,0.000334337764555,89.5779339625,0.00385576098808,6.37493074725
+0.2150000000000001,0.0015783384851,44.0357167442,-1.07526691661e-05,4.26023895104,0.00103512244089,89.5779339625,0.00347146350879,6.37493074725
+0.2200000000000001,0.001418432001,44.0357167442,-1.47408934766e-05,4.26023895104,0.00157196745902,89.5779339625,0.0032342436858,6.37493074725
+0.22500000000000012,0.00124384440593,44.0357167442,-1.94586942711e-05,4.26023895104,0.00206145450576,89.5779339625,0.00306143899918,6.37493074725
+0.23000000000000012,0.00106802325323,44.0357167442,-2.51211187804e-05,4.26023895104,0.00256464516031,89.5779339625,0.00291624283213,6.37493074725
+0.23500000000000013,0.000894848382723,44.0357167442,-3.20435749503e-05,4.26023895104,0.00311554115278,89.5779339625,0.00278230231857,6.37493074725
+0.24000000000000013,0.000723278600185,44.0357167442,-4.07100742261e-05,4.26023895104,0.00375191397058,89.5779339625,0.00265371902434,6.37493074725
+0.24500000000000013,0.00054800403086,44.0357167442,-5.19020566123e-05,4.26023895104,0.00452998537195,89.5779339625,0.00252998198122,6.37493074725
+0.2500000000000001,0.0003537970648,44.0357167442,-6.69627130596e-05,4.26023895104,0.0055431846461,89.5779339625,0.00241301574614,6.37493074725
+0.2550000000000001,8.68407622395e-05,44.0357167442,-8.840025254e-05,4.26023895104,0.00695954936342,89.5779339625,0.00230547016147,6.37493074725
+0.2600000000000001,0.000316952656444,44.0357167442,-0.000121477670975,4.26023895104,0.00911184615088,89.5779339625,0.00220985266387,6.37493074725
+0.2650000000000001,0.000390433716055,44.0357167442,-0.000179380133502,4.26023895104,0.0127519961552,89.5779339625,0.00212821322694,6.37493074725
+0.27000000000000013,0.000393465128533,44.0357167442,-0.000306996636892,4.26023895104,0.0199385942529,89.5779339625,0.00206215097769,6.37493074725
+0.27500000000000013,0.000259823603625,44.0357167442,-0.00081908905086,4.26023895104,0.0383712317313,89.5779339625,0.00201298017563,6.37493074725
+0.28000000000000014,0.000775077762552,44.0357167442,0.00173456837424,4.26023895104,0.122616509773,89.5779339625,0.00198196146425,6.37493074725
+0.28500000000000014,0.00023764621841,44.0357167442,0.000462059034537,4.26023895104,19.700138365,89.5779339625,0.00197055879032,6.37493074725
+0.29000000000000015,0.000493550598071,44.0357167442,0.00028067956066,4.26023895104,0.112162774452,89.5779339625,0.00198072105478,6.37493074725
+0.29500000000000015,0.000822464916217,44.0357167442,0.000208933559662,4.26023895104,0.0192211930105,89.5779339625,0.00201521644409,6.37493074725
+0.30000000000000016,0.00116169892401,44.0357167442,0.000171118821449,4.26023895104,0.0053257961665,89.5779339625,0.00207807654646,6.37493074725
+0.30500000000000016,0.00155629676066,44.0357167442,0.000148324911653,4.26023895104,0.00117886244913,89.5779339625,0.00217525091048,6.37493074725
+0.31000000000000016,0.0020436250356,44.0357167442,0.000133611868893,4.26023895104,0.000489612659742,89.5779339625,0.00231565489266,6.37493074725
+0.31500000000000017,0.00267369945956,44.0357167442,0.000123857659431,4.26023895104,0.00130280875937,89.5779339625,0.00251296636026,6.37493074725
+0.3200000000000002,0.00352482565735,44.0357167442,0.000117477508466,4.26023895104,0.00177496195624,89.5779339625,0.00278891875703,6.37493074725
+0.3250000000000002,0.00473050748682,44.0357167442,0.000113612883448,4.26023895104,0.0021113675454,89.5779339625,0.00317980679092,6.37493074725
+0.3300000000000002,0.00653681064575,44.0357167442,0.000111796354109,4.26023895104,0.00241562198867,89.5779339625,0.00375058898393,6.37493074725
+0.3350000000000002,0.00944099419118,44.0357167442,0.000111800971938,4.26023895104,0.00276359005011,89.5779339625,0.00462944472829,6.37493074725
+0.3400000000000002,0.0145776170637,44.0357167442,0.000113573416926,4.26023895104,0.00325296345912,89.5779339625,0.00610842452499,6.37493074725
+0.3450000000000002,0.0250252601294,44.0357167442,0.000117213412398,4.26023895104,0.00410752911143,89.5779339625,0.00902663680069,6.37493074725
+0.3500000000000002,0.0517716847166,44.0357167442,0.000122987924362,4.26023895104,0.00626092857003,89.5779339625,0.0171745788181,6.37493074725
+0.3550000000000002,0.160901321584,44.0357167442,0.000131384453022,4.26023895104,0.0367857434348,89.5779339625,0.144573548471,6.37493074725
+0.3600000000000002,2.71000601085,44.0357167442,0.000143225879407,4.26023895104,0.00166587610837,89.5779339625,-0.0235836339062,6.37493074725
+0.3650000000000002,0.621168188205,44.0357167442,0.000159904569424,4.26023895104,0.00236685788718,89.5779339625,-0.0112173400401,6.37493074725
+0.3700000000000002,0.101184406539,44.0357167442,0.00018388215854,4.26023895104,0.0021544142614,89.5779339625,-0.00752485588267,6.37493074725
+0.3750000000000002,0.0395445157335,44.0357167442,0.000219865709778,4.26023895104,0.00187023013084,89.5779339625,-0.00576836367287,6.37493074725
+0.3800000000000002,0.020731027085,44.0357167442,0.000278016443716,4.26023895104,0.00158224125788,89.5779339625,-0.00475289220685,6.37493074725
+0.38500000000000023,0.0124940531692,44.0357167442,0.000384919001233,4.26023895104,0.00125940365609,89.5779339625,-0.0040989157843,6.37493074725
+0.39000000000000024,0.00792622026028,44.0357167442,0.000638946067439,4.26023895104,0.000805222891586,89.5779339625,-0.00364823941549,6.37493074725
+0.39500000000000024,0.00367028294534,44.0357167442,0.00195379613823,4.26023895104,0.000642488192155,89.5779339625,-0.00332327129511,6.37493074725
+0.40000000000000024,0.00713198135694,44.0357167442,-0.00182237742406,4.26023895104,0.00131297211674,89.5779339625,-0.0030815746583,6.37493074725
+0.40500000000000025,0.00442217183681,44.0357167442,-0.000623365837177,4.26023895104,0.00186121660434,89.5779339625,-0.00289807337854,6.37493074725
+0.41000000000000025,0.00329145086517,44.0357167442,-0.000378356824786,4.26023895104,0.00243197347686,89.5779339625,-0.00275709110425,6.37493074725
+0.41500000000000026,0.0025350029359,44.0357167442,-0.000273627629424,4.26023895104,0.00309011646196,89.5779339625,-0.00264842209179,6.37493074725
+0.42000000000000026,0.00195762487678,44.0357167442,-0.000216008032518,4.26023895104,0.00390088290922,89.5779339625,-0.0025652410408,6.37493074725
+0.42500000000000027,0.00147553942647,44.0357167442,-0.000179884151406,4.26023895104,0.00495392742002,89.5779339625,-0.00250292540711,6.37493074725
+0.43000000000000027,0.00102970485609,44.0357167442,-0.000155370097544,4.26023895104,0.00639142693966,89.5779339625,-0.00245836338218,6.37493074725
+0.4350000000000003,0.000524377325876,44.0357167442,-0.000137847260035,4.26023895104,0.00846098113898,89.5779339625,-0.00242953730591,6.37493074725
+0.4400000000000003,0.000538920206172,44.0357167442,-0.000124872895722,4.26023895104,0.0116341321439,89.5779339625,-0.00241527384152,6.37493074725
+0.4450000000000003,0.00083332836303,44.0357167442,-0.000115037905335,4.26023895104,0.0169104377955,89.5779339625,-0.00241510351775,6.37493074725
+0.4500000000000003,0.000979990307551,44.0357167442,-0.000107476524761,4.26023895104,0.0267384670864,89.5779339625,-0.00242920045163,6.37493074725
+0.4550000000000003,0.00104034092623,44.0357167442,-0.000101631778891,4.26023895104,0.0485577816502,89.5779339625,-0.00245839075619,6.37493074725
+0.4600000000000003,0.00101105932075,44.0357167442,-9.7133762618e-05,4.26023895104,0.115008653783,89.5779339625,-0.00250423197698,6.37493074725
+0.4650000000000003,0.000835758543549,44.0357167442,-9.37324469875e-05,4.26023895104,0.558814625608,89.5779339625,-0.00256918057227,6.37493074725
+0.4700000000000003,0.000197511945031,44.0357167442,-9.12588907404e-05,4.26023895104,10.5622659818,89.5779339625,-0.0026568850777,6.37493074725
+0.4750000000000003,0.00120658782902,44.0357167442,-8.96022798672e-05,4.26023895104,0.248409416677,89.5779339625,-0.00277267748798,6.37493074725
+0.4800000000000003,0.00200560785636,44.0357167442,-8.86964203642e-05,4.26023895104,0.0696616165828,89.5779339625,-0.00292440131514,6.37493074725
+0.4850000000000003,0.00293042744372,44.0357167442,-8.85123865531e-05,4.26023895104,0.030694566771,89.5779339625,-0.00312384969114,6.37493074725
+0.4900000000000003,0.00351792539219,44.0357167442,-8.90557076899e-05,4.26023895104,0.0142117199018,89.5779339625,-0.00338938462777,6.37493074725
+0.49500000000000033,0.00355039112854,44.0357167442,-9.06229094189e-05,4.26023895104,0.00873543121424,89.5779339625,-0.00358403899994,6.37493074725
diff --git a/tests/framework/PostProcessors/Validation/test_validation_dss.xml b/tests/framework/PostProcessors/Validation/test_validation_dss.xml
new file mode 100644
index 0000000000..10f1440a35
--- /dev/null
+++ b/tests/framework/PostProcessors/Validation/test_validation_dss.xml
@@ -0,0 +1,139 @@
+
+
+
+ framework/PostProcessors/Validation/test_validation_dss
+ yoshrk
+ 2021-03-16
+ PostProcessors.Validation
+
+ This test checks the DSS PostProcessor with DSS metric
+
+
+ no writing directly to files from postprocessors
+
+
+
+
+ DSS
+ mcRun1, mcRun2, PP2
+ 1
+
+
+
+
+ sigma,rho,beta,x1,y1,z1,time1,x0,y0,z0
+
+
+ sigma,rho,beta,x2,y2,z2,time2,x0,y0,z0
+
+
+ outMC1|x1,outMC1|y1
+ outMC2|x2,outMC2|y2
+ dss
+ time1
+ time2
+ DataSynthesis
+ 1,1
+ 1,1
+
+
+
+
+
+
+
+
+
+
+ x0,y0,z0
+
+
+
+
+
+ pivot_parameter
+
+
+
+ x0,y0,z0
+
+
+ time1
+
+
+
+ x0,y0,z0
+
+
+ time2
+
+
+
+
+
+
+ csv
+
+
+
+
+
+
+
+ 4
+ 1
+
+
+ 4
+ 1
+
+
+ 4
+ 1
+
+
+
+
+
+
+ 10
+ 1
+
+
+ x0_distrib
+
+
+ y0_distrib
+
+
+ z0_distrib
+
+
+
+
+
+
+ inputPlaceHolder
+ PythonModule1
+ MC_external
+
+
+
+ inputPlaceHolder
+ PythonModule2
+ MC_external
+
+
+
+ outMC1
+ outMC2
+ pp2
+
+
+
+
+
+
diff --git a/tests/framework/PostProcessors/Validation/tests b/tests/framework/PostProcessors/Validation/tests
index 42e5079e63..0420a95157 100644
--- a/tests/framework/PostProcessors/Validation/tests
+++ b/tests/framework/PostProcessors/Validation/tests
@@ -13,4 +13,11 @@
rel_err = 0.00001
zero_threshold = 1e-9
[../]
+ [./test_validation_dss]
+ type = 'RavenFramework'
+ input = 'test_validation_dss.xml'
+ csv = 'DSS/pp2_print_0.csv DSS/pp2_print_1.csv DSS/pp2_print_2.csv DSS/pp2_print_3.csv'
+ rel_err = 0.00001
+ zero_threshold = 1e-9
+ [../]
[]