From 63025150aead3d363046ea2b0136d756e2f7b7f6 Mon Sep 17 00:00:00 2001 From: Andrea Alfonsi - NuCube Date: Fri, 3 May 2024 15:02:08 -0600 Subject: [PATCH] Specialized Plot sub-directory ignoring (Fix) (#2314) * functions in samplers can be now used pointing to the same module * updated doc * test same file * added input file * added test * trailing spaces * sampler * sampler fix * sampler fix * few fixes in ensemble model * serpent * fixed serpent * fixed EOL in case of multiple crossings * fixed directory for custom plots * set overwrite to True in tests * sub dir in specialized plots * Apply suggestions from code review removed jobhandler modification * removed redondant lines of code * test subdir for one specialized plot * fixed typo from function call * removed trailing spaces * modified tests with overwrite flag * externalized counter progression in plots * fixed filename for general plot * updated all tests that had conflicting overwrite statements * fixed final plot --- doc/workshop/optimizer/Inputs/1_grad_desc.xml | 2 +- .../SERPENT/SerpentInterface.py | 2 +- .../SERPENT/serpentOutputParser.py | 28 +++++++++++++--- ravenframework/Models/EnsembleModel.py | 9 +++-- .../OutStreams/OutStreamInterface.py | 2 +- ravenframework/OutStreams/PlotEntity.py | 1 + .../OutStreams/PlotInterfaces/GeneralPlot.py | 21 +++--------- .../PlotInterfaces/OptParallelCoordinate.py | 15 ++++----- .../OutStreams/PlotInterfaces/OptPath.py | 7 +++- .../PlotInterfaces/PlotInterface.py | 31 +++++++++++++++++- .../PlotInterfaces/PopulationPlot.py | 8 ++--- .../OutStreams/PlotInterfaces/SamplePlot.py | 7 ++-- .../PlotInterfaces/SyntheticCloud.py | 16 +++++++-- .../OutStreams/PrintInterfaces/FilePrint.py | 2 +- .../discrete/unconstrained/testGAMaxwRep.xml | 2 +- .../Optimizers/GradientDescent/basic.xml | 2 +- .../test_simulatedAnnealing_OptPath.xml | 2 +- .../OutStreams/ga_population_plot.xml | 2 +- .../{ => OptimizationPlots}/plotter.png | Bin .../OutStreams/invalidInterpolation.xml | 10 +++--- .../OutStreams/parallel_coordinate_plot.xml | 2 +- tests/framework/OutStreams/sample_plot.xml | 2 +- tests/framework/OutStreams/tests | 2 +- .../test_dataMiningAffinityPropogation.xml | 2 +- .../test_dataMiningAgglomerative.xml | 2 +- .../Clustering/test_dataMiningDBSCAN.xml | 2 +- .../test_dataMiningGaussianMixture.xml | 2 +- .../Clustering/test_dataMiningKMeans.xml | 2 +- .../Clustering/test_dataMiningKMeansPCA.xml | 2 +- .../Clustering/test_dataMiningMeanShift.xml | 2 +- .../test_dataMiningMiniBatchKMeans.xml | 6 ++-- .../test_dataMiningSpectralClustering.xml | 2 +- .../test_dataMiningVariationalGMM.xml | 2 +- .../test_dataMiningExactPCA_MLE.xml | 2 +- tests/framework/ROM/TimeSeries/ARMA/varma.xml | 4 +-- .../ROM/TimeSeries/ARMA/varma_heavy.xml | 4 +-- tests/framework/test_output.xml | 2 +- 37 files changed, 134 insertions(+), 77 deletions(-) rename tests/framework/OutStreams/gold/GApopulation/{ => OptimizationPlots}/plotter.png (100%) diff --git a/doc/workshop/optimizer/Inputs/1_grad_desc.xml b/doc/workshop/optimizer/Inputs/1_grad_desc.xml index 979000072e..887a17828e 100755 --- a/doc/workshop/optimizer/Inputs/1_grad_desc.xml +++ b/doc/workshop/optimizer/Inputs/1_grad_desc.xml @@ -101,7 +101,7 @@ search_path trajID - + search_path v0,angle,ymax,r diff --git a/ravenframework/CodeInterfaceClasses/SERPENT/SerpentInterface.py b/ravenframework/CodeInterfaceClasses/SERPENT/SerpentInterface.py index 39d1d7f79e..067ad86776 100644 --- a/ravenframework/CodeInterfaceClasses/SERPENT/SerpentInterface.py +++ b/ravenframework/CodeInterfaceClasses/SERPENT/SerpentInterface.py @@ -50,7 +50,7 @@ def __init__(self): self._fileTypesToRead = ['ResultsReader'] # container of file types to read # in case of burnup calc, the interface can compute the time at which FOMs (e.g. keff) crosses # a target. For example (default), we can compute the time (burnDays) at which absKeff crosses 1.0 - self.eolTarget = {'absKeff':1.0} + self.eolTarget = {} def _findInputFile(self, inputFiles): """ diff --git a/ravenframework/CodeInterfaceClasses/SERPENT/serpentOutputParser.py b/ravenframework/CodeInterfaceClasses/SERPENT/serpentOutputParser.py index 7dade51550..f83b66bd44 100644 --- a/ravenframework/CodeInterfaceClasses/SERPENT/serpentOutputParser.py +++ b/ravenframework/CodeInterfaceClasses/SERPENT/serpentOutputParser.py @@ -185,10 +185,30 @@ def _resultsReader(self): if target not in res.resdata: raise ValueError(f"Target {target} for EOL calcs is not in result data") targetValues = res.resdata[target][:,0] - sorting = np.argsort(targetValues) - endOfLife = np.interp(value,targetValues[sorting],res.resdata['burnDays'][:,0][sorting],left=min(res.resdata['burnDays'][:,0]),right=max(res.resdata['burnDays'][:,0])) - resultsResults[f'EOL_{target}'] = np.asarray([endOfLife]*targetValues.size) - + minTarget, maxTarget = np.min(targetValues), np.max(targetValues) + if value >= minTarget and value <= maxTarget: + endOfLifes = [] + timeIntervals = [] + for idx in range(targetValues.size-1): + if value >= targetValues[idx] and value <= targetValues[idx+1] or value >= targetValues[idx+1] and value <= targetValues[idx]: + sorting = np.argsort(targetValues[idx:idx+2]) + endOfLifes.append(np.interp(value,targetValues[idx:idx+2][sorting],res.resdata['burnDays'][:,0][idx:idx+2][sorting])) + timeIntervals.append(res.resdata['burnDays'][:,0][idx:idx+2].tolist()) + endOfLife = np.max(endOfLifes) + if len(endOfLifes) > 1: + # the target has been crossed multiple times + msg = f"The target ({target}) value ({value}) has been crossed multiple times in burnup calculation. " + ti = ", ".join([f'{t[0]}|{t[1]}' for t in timeIntervals]) + msg += f"The computed EOL_{target}(s) are: {', '.join([str(eol) for eol in endOfLifes])}. The value crossing happens at the following time (days) intervals: {ti}. " + msg += f"The maximum EOL_{target} ({endOfLife}) will be stored in the results' container." + print(f"SERPENT Interface: {msg}") + resultsResults[f'EOL_{target}'] = np.asarray([endOfLife]*targetValues.size) + else: + if value >= maxTarget: + # if value is > maximum, the EOL_target == res.resdata['burnDays'][:,0] + resultsResults[f'EOL_{target}'] = np.asarray([min(res.resdata['burnDays'][:,0])]*targetValues.size) + elif value <= minTarget: + resultsResults[f'EOL_{target}'] = np.asarray([max(res.resdata['burnDays'][:,0])]*targetValues.size) return resultsResults, nSteps def _detectorReader(self, buSteps): diff --git a/ravenframework/Models/EnsembleModel.py b/ravenframework/Models/EnsembleModel.py index 4f70e96291..235134dc57 100644 --- a/ravenframework/Models/EnsembleModel.py +++ b/ravenframework/Models/EnsembleModel.py @@ -742,7 +742,7 @@ def __advanceModel(self, identifier, modelToExecute, origInputList, inputKwargs, # we evaluate the model directly try: evaluation = modelToExecute['Instance'].evaluateSample.original_function(modelToExecute['Instance'], origInputList, samplerType, inputKwargs) - except Exception as e: + except Exception: excType, excValue, excTrace = sys.exc_info() evaluation = None else: @@ -759,9 +759,12 @@ def __advanceModel(self, identifier, modelToExecute, origInputList, inputKwargs, finishedRun = jobHandler.getFinished(jobIdentifier = localIdentifier, uniqueHandler=self.name+identifier) evaluation = finishedRun[0].getEvaluation() if isinstance(evaluation, rerror): + if finishedRun[0].exceptionTrace is not None: + excType, excValue, excTrace = finishedRun[0].exceptionTrace + else: + # the failure happened at the input creation stage + excType, excValue, excTrace = IOError, IOError("Failure happened at the input creation stage. See trace above"), None evaluation = None - excType, excValue, excTrace = finishedRun[0].exceptionTrace - e = rerror # the model failed for modelToRemove in list(set(self.orderList) - set([modelToExecute['Instance'].name])): jobHandler.getFinished(jobIdentifier = modelToRemove + utils.returnIdSeparator() + identifier, uniqueHandler = self.name + identifier) diff --git a/ravenframework/OutStreams/OutStreamInterface.py b/ravenframework/OutStreams/OutStreamInterface.py index a6294d3fd9..44c8847e76 100644 --- a/ravenframework/OutStreams/OutStreamInterface.py +++ b/ravenframework/OutStreams/OutStreamInterface.py @@ -54,7 +54,7 @@ def __init__(self): self.printTag = 'OutStreamInterface' self.overwrite = True # overwrite existing creations? self.subDirectory = None # directory to save generated files to - self.filename = '' # target file name + self.filename = None # target file name self.numberAggregatedOS = 1 # number of aggregated outstreams # no addl info from original OutStream def handleInput(self, spec): diff --git a/ravenframework/OutStreams/PlotEntity.py b/ravenframework/OutStreams/PlotEntity.py index 1b57dc0a58..b24372fe24 100644 --- a/ravenframework/OutStreams/PlotEntity.py +++ b/ravenframework/OutStreams/PlotEntity.py @@ -99,6 +99,7 @@ def addOutput(self): @ In, None @ Out, None """ + self._plotter.increaseCounter() self._plotter.run() ################ diff --git a/ravenframework/OutStreams/PlotInterfaces/GeneralPlot.py b/ravenframework/OutStreams/PlotInterfaces/GeneralPlot.py index e97640d400..87b33a554e 100644 --- a/ravenframework/OutStreams/PlotInterfaces/GeneralPlot.py +++ b/ravenframework/OutStreams/PlotInterfaces/GeneralPlot.py @@ -99,7 +99,6 @@ def __init__(self): # general attributes self.printTag = 'OUTSTREAM PLOT' self.options = {} # outstreaming options # no addl info from original developer - self.counter = 0 # keeps track of how many times the same plot has been plotted self.dim = None # default plot is 2D self.sourceName = [] # list of source names self.sourceData = None # source of data @@ -1085,8 +1084,6 @@ def run(self): if not self.__fillCoordinatesFromSource(): self.raiseAWarning('Nothing to Plot Yet. Returning.') return - - self.counter += 1 if self.counter > 1: self.actcm = None clusterDict = deepcopy(self.outStreamTypes) @@ -2237,20 +2234,10 @@ def handle_close(event): if fileType == 'screen': continue - if not self.overwrite: - prefix = str(self.counter) + '-' - else: - prefix = '' - - if len(self.filename) > 0: - name = self.filename - else: - name = prefix + self.name + '_' + str(self.outStreamTypes).replace("'", "").replace("[", "").replace("]", "").replace(",", "-").replace(" ", "") - - if self.subDirectory is not None: - name = os.path.join(self.subDirectory,name) - - self.fig.savefig(name + '.' + fileType, format=fileType) + defaultName = self.name + '_' + str(self.outStreamTypes).replace("'", "").replace("[", "").replace("]", "").replace(",", "-").replace(" ", "") + filename = self._createFilename(defaultName=f'{defaultName}.{fileType}') + filename = filename if filename.endswith(fileType) else f'{filename}.{fileType}' + self.fig.savefig(filename, format=fileType) if 'screen' not in self.destinations: plt.close(fig=self.fig) diff --git a/ravenframework/OutStreams/PlotInterfaces/OptParallelCoordinate.py b/ravenframework/OutStreams/PlotInterfaces/OptParallelCoordinate.py index 3f8826345d..0d1877b2f5 100644 --- a/ravenframework/OutStreams/PlotInterfaces/OptParallelCoordinate.py +++ b/ravenframework/OutStreams/PlotInterfaces/OptParallelCoordinate.py @@ -18,12 +18,7 @@ """ # External Imports -from collections import defaultdict -import matplotlib.pyplot as plt -from matplotlib.path import Path -import matplotlib.patches as patches import numpy as np -import pandas as pd import imageio # Internal Imports @@ -59,13 +54,12 @@ def __init__(self): @ Out, None """ super().__init__() - self.printTag = 'OptParallelCoordinate Plot' + self.printTag = 'OptParallelCoordinatePlot' self.source = None # reference to DataObject source self.sourceName = None # name of DataObject source self.vars = None # variables to plot self.index = None # index ID for each batch - def handleInput(self, spec): """ Loads the input specs for this object. @@ -91,6 +85,7 @@ def initialize(self, stepEntities): current step. The sources are searched into this. @ Out, None """ + super().initialize(stepEntities) src = self.findSource(self.sourceName, stepEntities) if src is None: self.raiseAnError(IOError, f'No source named "{self.sourceName}" was found in the Step for SamplePlot "{self.name}"!') @@ -129,8 +124,10 @@ def run(self): plotUtils.generateParallelPlot(ys,genID,yMin,yMax,self.vars,fileID) filesID.append(fileID) - fig = plt.figure() - with imageio.get_writer(f'{self.name}.gif', mode='I') as writer: + # create filename + giffilename = self._createFilename(defaultName=f'{self.name}.gif') + + with imageio.get_writer(giffilename, mode='I') as writer: for filename in filesID: image = imageio.imread(filename) writer.append_data(image) diff --git a/ravenframework/OutStreams/PlotInterfaces/OptPath.py b/ravenframework/OutStreams/PlotInterfaces/OptPath.py index ef5ea186c8..688c69164e 100644 --- a/ravenframework/OutStreams/PlotInterfaces/OptPath.py +++ b/ravenframework/OutStreams/PlotInterfaces/OptPath.py @@ -84,6 +84,7 @@ def initialize(self, stepEntities): current step. The sources are searched into this. @ Out, None """ + super().initialize(stepEntities) src = self.findSource(self.sourceName, stepEntities) if src is None: self.raiseAnError(IOError, f'No source named "{self.sourceName}" was found in the Step for SamplePlot "{self.name}"!') @@ -124,7 +125,11 @@ def run(self): loc='center right', borderaxespad=0.1, title='Legend') - plt.savefig(f'{self.name}.png') + + # create filename + filename = self._createFilename(defaultName=f'{self.name}.png') + + plt.savefig(filename) def addPoint(self, ax, i, value, accepted): """ diff --git a/ravenframework/OutStreams/PlotInterfaces/PlotInterface.py b/ravenframework/OutStreams/PlotInterfaces/PlotInterface.py index 3ddf5d4100..6f37ec5188 100644 --- a/ravenframework/OutStreams/PlotInterfaces/PlotInterface.py +++ b/ravenframework/OutStreams/PlotInterfaces/PlotInterface.py @@ -16,7 +16,7 @@ @author: talbpaul """ - +import os from abc import abstractmethod from .. import OutStreamInterface, OutStreamEntity from ...utils.utils import displayAvailable @@ -42,6 +42,8 @@ def __init__(self): @ Out, None """ super().__init__() + # keeps track of how many times the same plot has been plotted + self.counter = 0 self.printTag = 'PlotInterface' def handleInput(self, spec): @@ -60,8 +62,17 @@ def initialize(self, stepEntities): current step. The sources are searched into this. @ Out, None """ + self.counter = 0 super().initialize(stepEntities) + def increaseCounter(self): + """ + Function to increase the counter (number of times this plot instance has been called after the initialization) + @ In, None + @ Out, None + """ + self.counter += 1 + @abstractmethod def run(self): """ @@ -129,4 +140,22 @@ def getInitParams(self): paramDict['Overwrite output everytime called'] = 'True' else: paramDict['Overwrite output everytime called'] = 'False' + if self.filename is not None: + paramDict['Inputted filename'] = self.filename + if self.subDirectory is not None: + paramDict['Sub-directory'] = self.subDirectory return paramDict + + def _createFilename(self, defaultName): + """ + Utility method to create output file names (it considers the overwrite and subDirectory flag) + @ In, defaultName, str, the default filename if self.filename is not set + @ Out, filename, str, the formatted filename + """ + filename = self.filename if self.filename is not None else defaultName + prefix = str(self.counter) + '-' if not self.overwrite else '' + filename = f'{prefix}{filename}' + if self.subDirectory is not None: + filename = os.path.join(self.subDirectory,filename) + + return filename diff --git a/ravenframework/OutStreams/PlotInterfaces/PopulationPlot.py b/ravenframework/OutStreams/PlotInterfaces/PopulationPlot.py index 5fa302b838..d55b7e43dc 100644 --- a/ravenframework/OutStreams/PlotInterfaces/PopulationPlot.py +++ b/ravenframework/OutStreams/PlotInterfaces/PopulationPlot.py @@ -18,10 +18,8 @@ """ # External Imports -from collections import defaultdict import matplotlib.pyplot as plt import numpy as np -from matplotlib.lines import Line2D # Internal Imports from ...utils import plotUtils @@ -101,6 +99,7 @@ def initialize(self, stepEntities): current step. The sources are searched into this. @ Out, None """ + super().initialize(stepEntities) src = self.findSource(self.sourceName, stepEntities) if src is None: self.raiseAnError(IOError, f'No source named "{self.sourceName}" was found in the Step for SamplePlot "{self.name}"!') @@ -157,8 +156,9 @@ def run(self): fig.tight_layout() if self.how in ['png','pdf','svg','jpeg']: - fileName = self.name +'.%s' % self.how - plt.savefig(fileName, format=self.how) + # create filename + filename = self._createFilename(defaultName=self.name +'.%s' % self.how) + plt.savefig(filename, format=self.how) else: self.raiseAnError(IOError, f'Digital format of the plot "{self.name}" is not available!') diff --git a/ravenframework/OutStreams/PlotInterfaces/SamplePlot.py b/ravenframework/OutStreams/PlotInterfaces/SamplePlot.py index 7c292af3e4..7553965bc9 100644 --- a/ravenframework/OutStreams/PlotInterfaces/SamplePlot.py +++ b/ravenframework/OutStreams/PlotInterfaces/SamplePlot.py @@ -46,7 +46,7 @@ def __init__(self): @ Out, None """ super().__init__() - self.printTag = 'PlotInterface' + self.printTag = 'SamplePlot' self.source = None # reference to DataObject source self.sourceName = None # name of DataObject source self.vars = None # variables to plot @@ -102,7 +102,10 @@ def run(self): ax.set_ylabel(var) axes[-1].set_xlabel('RAVEN Sample Number') fig.align_ylabels(axes[:]) - plt.savefig(f'{self.name}.png') + + # create filename + filename = self._createFilename(defaultName=f'{self.name}.png') + plt.savefig(filename) def plotScalar(self, ax, ids, vals): """ diff --git a/ravenframework/OutStreams/PlotInterfaces/SyntheticCloud.py b/ravenframework/OutStreams/PlotInterfaces/SyntheticCloud.py index a04e4605de..8036143210 100644 --- a/ravenframework/OutStreams/PlotInterfaces/SyntheticCloud.py +++ b/ravenframework/OutStreams/PlotInterfaces/SyntheticCloud.py @@ -94,6 +94,7 @@ def initialize(self, stepEntities): current step. The sources are searched into this. @ Out, None """ + super().initialize(stepEntities) train = self.findSource(self.trainingName, stepEntities) if train is None: self.raiseAnError(IOError, f'No input named "{self.trainingName}" was found in the Step for Plotter "{self.name}"!') @@ -115,7 +116,6 @@ def run(self): @ In, None @ Out, None """ - tTag = self.training.sampleTag sTag = self.samples.sampleTag training = self.training.asDataset() samples = self.samples.asDataset() @@ -151,7 +151,19 @@ def run(self): if mTraining is not None: ax.plot(mTraining[self.microName].values, mTraining[var].values, 'k-.') - filename = f'{self.name}_{m}.png' + # create filename + originalFilename = None + if self.filename is not None: + originalFilename = self.filename + rootname = originalFilename.split(".")[0] + self.filename = None + else: + rootname = self.name + + filename = self._createFilename(defaultName= f'{rootname}_{m}.png') + if originalFilename is not None: + self.filename = originalFilename + plt.savefig(filename) self.raiseAMessage(f'Wrote "{filename}".') diff --git a/ravenframework/OutStreams/PrintInterfaces/FilePrint.py b/ravenframework/OutStreams/PrintInterfaces/FilePrint.py index 1f6e883bde..c9827f1307 100644 --- a/ravenframework/OutStreams/PrintInterfaces/FilePrint.py +++ b/ravenframework/OutStreams/PrintInterfaces/FilePrint.py @@ -133,7 +133,7 @@ def run(self): super().run() dictOptions = {} dictOptions['filenameroot'] = self.name - if len(self.filename) > 0: + if self.filename is not None: dictOptions['filenameroot'] = self.filename if self.subDirectory is not None: dictOptions['filenameroot'] = os.path.join(self.subDirectory,dictOptions['filenameroot']) diff --git a/tests/framework/Optimizers/GeneticAlgorithms/discrete/unconstrained/testGAMaxwRep.xml b/tests/framework/Optimizers/GeneticAlgorithms/discrete/unconstrained/testGAMaxwRep.xml index e455be6561..d8094394f2 100644 --- a/tests/framework/Optimizers/GeneticAlgorithms/discrete/unconstrained/testGAMaxwRep.xml +++ b/tests/framework/Optimizers/GeneticAlgorithms/discrete/unconstrained/testGAMaxwRep.xml @@ -147,7 +147,7 @@ opt_export trajID - + opt_export x1,x2,x3,ans diff --git a/tests/framework/Optimizers/GradientDescent/basic.xml b/tests/framework/Optimizers/GradientDescent/basic.xml index df6fbcf40f..f26d9e2082 100644 --- a/tests/framework/Optimizers/GradientDescent/basic.xml +++ b/tests/framework/Optimizers/GradientDescent/basic.xml @@ -118,7 +118,7 @@ opt_export trajID - + opt_export x,y,func,const,ans diff --git a/tests/framework/Optimizers/SimulatedAnnealing/CauchySA/test_simulatedAnnealing_OptPath.xml b/tests/framework/Optimizers/SimulatedAnnealing/CauchySA/test_simulatedAnnealing_OptPath.xml index 497a7c9944..64580fb518 100644 --- a/tests/framework/Optimizers/SimulatedAnnealing/CauchySA/test_simulatedAnnealing_OptPath.xml +++ b/tests/framework/Optimizers/SimulatedAnnealing/CauchySA/test_simulatedAnnealing_OptPath.xml @@ -107,7 +107,7 @@ opt_export trajID - + opt_export x,y,ans diff --git a/tests/framework/OutStreams/ga_population_plot.xml b/tests/framework/OutStreams/ga_population_plot.xml index 23e8140c8d..17ad35c59f 100644 --- a/tests/framework/OutStreams/ga_population_plot.xml +++ b/tests/framework/OutStreams/ga_population_plot.xml @@ -39,7 +39,7 @@ - + samples a,b,c,d,ans ans diff --git a/tests/framework/OutStreams/gold/GApopulation/plotter.png b/tests/framework/OutStreams/gold/GApopulation/OptimizationPlots/plotter.png similarity index 100% rename from tests/framework/OutStreams/gold/GApopulation/plotter.png rename to tests/framework/OutStreams/gold/GApopulation/OptimizationPlots/plotter.png diff --git a/tests/framework/OutStreams/invalidInterpolation.xml b/tests/framework/OutStreams/invalidInterpolation.xml index 7b8e637315..8c3e6589d7 100644 --- a/tests/framework/OutStreams/invalidInterpolation.xml +++ b/tests/framework/OutStreams/invalidInterpolation.xml @@ -48,7 +48,7 @@ - + contour @@ -62,7 +62,7 @@ png - + surface @@ -76,7 +76,7 @@ png - + trisurface @@ -90,7 +90,7 @@ png - + wireframe @@ -104,7 +104,7 @@ png - + pseudocolor diff --git a/tests/framework/OutStreams/parallel_coordinate_plot.xml b/tests/framework/OutStreams/parallel_coordinate_plot.xml index b41db5ae72..4144e3b748 100644 --- a/tests/framework/OutStreams/parallel_coordinate_plot.xml +++ b/tests/framework/OutStreams/parallel_coordinate_plot.xml @@ -40,7 +40,7 @@ - + samples a,b,c,d batchId diff --git a/tests/framework/OutStreams/sample_plot.xml b/tests/framework/OutStreams/sample_plot.xml index 6a3d72d63f..fe08a90bca 100644 --- a/tests/framework/OutStreams/sample_plot.xml +++ b/tests/framework/OutStreams/sample_plot.xml @@ -70,7 +70,7 @@ - + samples v0,angle,r diff --git a/tests/framework/OutStreams/tests b/tests/framework/OutStreams/tests index 43e32e3a20..c4eccd85df 100644 --- a/tests/framework/OutStreams/tests +++ b/tests/framework/OutStreams/tests @@ -87,7 +87,7 @@ [./PopulationPlot] type = 'RavenFramework' input = 'ga_population_plot.xml' - image = 'GApopulation/plotter.png' + image = 'GApopulation/OptimizationPlots/plotter.png' rel_err = 0.1 [../] diff --git a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningAffinityPropogation.xml b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningAffinityPropogation.xml index f4bcbac513..243021770d 100644 --- a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningAffinityPropogation.xml +++ b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningAffinityPropogation.xml @@ -62,7 +62,7 @@ DataSets Output|labels - + scatter diff --git a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningAgglomerative.xml b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningAgglomerative.xml index 999fefeba0..e6a867651c 100644 --- a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningAgglomerative.xml +++ b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningAgglomerative.xml @@ -64,7 +64,7 @@ Output|labels - + scatter diff --git a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningDBSCAN.xml b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningDBSCAN.xml index 2e03f1b273..8651082008 100644 --- a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningDBSCAN.xml +++ b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningDBSCAN.xml @@ -66,7 +66,7 @@ DataSets Output|labels - + scatter diff --git a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningGaussianMixture.xml b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningGaussianMixture.xml index 7a5f49a734..a36500dec2 100644 --- a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningGaussianMixture.xml +++ b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningGaussianMixture.xml @@ -74,7 +74,7 @@ csv clusterInfo - + scatter diff --git a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningKMeans.xml b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningKMeans.xml index a5fc8aea40..dbc4033e72 100644 --- a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningKMeans.xml +++ b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningKMeans.xml @@ -71,7 +71,7 @@ data Output|kMeansLabels - + scatter diff --git a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningKMeansPCA.xml b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningKMeansPCA.xml index 19caaa6a88..7d71882bcb 100644 --- a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningKMeansPCA.xml +++ b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningKMeansPCA.xml @@ -132,7 +132,7 @@ png - + 5 1 diff --git a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningMeanShift.xml b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningMeanShift.xml index dd56852fdf..9b558bc003 100644 --- a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningMeanShift.xml +++ b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningMeanShift.xml @@ -99,7 +99,7 @@ DataSetsIII Output|MeanShiftMoonsLabels - + 3 1 diff --git a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningMiniBatchKMeans.xml b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningMiniBatchKMeans.xml index 7389e1b759..15527e1b50 100644 --- a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningMiniBatchKMeans.xml +++ b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningMiniBatchKMeans.xml @@ -102,7 +102,7 @@ DataSets Output|MoonLabels - + scatter @@ -126,7 +126,7 @@ blobs - + scatter @@ -150,7 +150,7 @@ circles - + scatter diff --git a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningSpectralClustering.xml b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningSpectralClustering.xml index 16b4d04bce..5fa86d4415 100644 --- a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningSpectralClustering.xml +++ b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningSpectralClustering.xml @@ -62,7 +62,7 @@ DataSets Output|labels - + scatter diff --git a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningVariationalGMM.xml b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningVariationalGMM.xml index c2092b59f0..9d1f8857ee 100644 --- a/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningVariationalGMM.xml +++ b/tests/framework/PostProcessors/DataMiningPostProcessor/Clustering/test_dataMiningVariationalGMM.xml @@ -63,7 +63,7 @@ DataSets Output|labels - + scatter diff --git a/tests/framework/PostProcessors/DataMiningPostProcessor/DimensionalityReduction/test_dataMiningExactPCA_MLE.xml b/tests/framework/PostProcessors/DataMiningPostProcessor/DimensionalityReduction/test_dataMiningExactPCA_MLE.xml index 54890c140a..6cd3109a9a 100644 --- a/tests/framework/PostProcessors/DataMiningPostProcessor/DimensionalityReduction/test_dataMiningExactPCA_MLE.xml +++ b/tests/framework/PostProcessors/DataMiningPostProcessor/DimensionalityReduction/test_dataMiningExactPCA_MLE.xml @@ -69,7 +69,7 @@ csv drInfo - + PlotIris_mle diff --git a/tests/framework/ROM/TimeSeries/ARMA/varma.xml b/tests/framework/ROM/TimeSeries/ARMA/varma.xml index 5602ba42e1..d42f2b7022 100644 --- a/tests/framework/ROM/TimeSeries/ARMA/varma.xml +++ b/tests/framework/ROM/TimeSeries/ARMA/varma.xml @@ -168,7 +168,7 @@ stats input,output - + plot_VARMA @@ -191,7 +191,7 @@ png - + plot_input diff --git a/tests/framework/ROM/TimeSeries/ARMA/varma_heavy.xml b/tests/framework/ROM/TimeSeries/ARMA/varma_heavy.xml index 11be339363..ba61d23e06 100644 --- a/tests/framework/ROM/TimeSeries/ARMA/varma_heavy.xml +++ b/tests/framework/ROM/TimeSeries/ARMA/varma_heavy.xml @@ -169,7 +169,7 @@ stats input,output - + plot_VARMA @@ -192,7 +192,7 @@ png - + plot_input diff --git a/tests/framework/test_output.xml b/tests/framework/test_output.xml index 7357bab816..2767832783 100644 --- a/tests/framework/test_output.xml +++ b/tests/framework/test_output.xml @@ -634,7 +634,7 @@ - 1-2DHistoryPlot_histogram + 2DHistoryPlot_histogram histogram