RAVENv2.1
- RAVEN USER MANUAL
- RAVEN USER GUIDE
- RAVEN THEORY MANUAL
- REGRESSION TEST DOCUMENTATION
- ANALYTICAL TEST DOCUMENTATION
- Commits diff between RAVENv2.0 and RAVENv2.1
Official Release of the RAVEN code.
Version: 2.1
Main New Features:
-
RAVEN Plug-ins:
- Standardized the creation of new RAVEN PostProcessor plugins #1456 #1471 #1512 #1533 :
- Standardize the API
- Utilize DataSet to handle data flow for better efficiency
- Move PRAplugin to SR2ML, add minimal cut sets solver
- Standardized the creation of new RAVEN OutStream plugins #1329 #1534
- Add CI for plugins LOGOS, SRAW, and SR2ML
- Add maintenance models for SR2ML;
- In addition to the already deployed plug-ins (CashFlow and PRA plugin), new supported plug-ins have been deployed:
- Added HERON as a supported plugin for those with access to it. HERON (Holistic Energy Resource Optimization Network) is a plugin for stochastic technoeconomic analysis of connected systems with resource usage. #1271
- CashFlow renamed to TEAL and open sourced
- Addition of the new RAVEN official plugin (FARM), owned and distributed by the Argonne National Laboratory. (https://github.com/Argonne-National-Laboratory/FARM)
- Standardized the creation of new RAVEN PostProcessor plugins #1456 #1471 #1512 #1533 :
-
Optimizers:
- Enhance gradient descent optimizer by utilize previous gradient evaluations for step direction evaluation #1639
- Expose Additional TargetEvaluation variables in SolutionExport for Optimizer
- Add genetic algorithm for optimization #1253
- Implemented feasibility first parameterless fitness for genetic algorithm to handle different type of constraints. #1455
- Increase the user flexibility to allow the user to manipulate the perturbation distance scaling of gradient evaluation points in gradient descent step manipulations. #1409
- Add implicit function constrains in the optimizer and the reject reason flag on the new optimal point.
-
Models:
- Implemented a new model entity "LogicalModel". The LogicalModel utilizes control functions to manage the selection and execution of different models (i.e. ExternalModel, ROMs, Codes). Both LogicalModel and current HybridModel share some common functionalities. In this case, a new base class is created for both entities.
- In case of ensemble modeling not involving codes, the ensemble model should use the standard parallelization strategy (no Client mode) since, if large datasets need to be transfered from a model to the other, the client approach can deteriorate the parallelism. If no Codes are involved in an ensemble model, the parallelism should follow a standard "MPI-like" approach #1342
-
Samplers:
- Implementation of Markov Chain Monte Carlo algorithm, i.e. Metropolis Algorithm. Markov Chain Monte Carlo (MCMC) is mainly used for Bayesian Calibration (or inverse uncertainty quantification). It can also be used to sample any given distribution.
- Extended restart capability to Adaptive Samplers, including passing through FinalizeActualSampling. #1262
- Adaptive MCMC Sampler for bayesian update #1398
-
Code interfaces:
- New interfaces:
- Add Prescient code interface (https://github.com/grid-parity-exchange/Prescient) #1324, Prescient can be used for production cost modeling, scenario generation and prediction interval.
- Add AccelerateCFD interface: create ACFD-RAVEN API to enhance the industrial market value of a fast-running CFD ROM (Reduced Order Model) software, AccelerateCFD, under development by Illinois Rocstar LLC, pursuing two key capabilities to achieve the goal. #1613
- Major updates:
- handle NetCDF Databases as returns from RAVEN code Interface runs #1460
- Extended CSV readers for Codes to be consistent with DataSet reading. This allows reading CSVs with string entries from Codes. Also retained a float-only option for CodeInterfaces with large output CSVs without useful string entries.
- Support Dynamic Event Tree sampler in RELAP5 interface #1384
- Extend code interface to handle the returned data directly without a CSV creation #1366
- Optionally clear the run directories before running the step #1337
- Enable string outputs for codes #1267
- Create a failed runs report instead of printing on screen #1409
- Update MOOSE interface to be able to perturb vector variables #1630
- New interfaces:
-
Surrogate Models:
- Upgrade to TensorFlow 2 for deep neural network ROMs #1596
- Serialize externalROMloader instances #1560
- Add LSTM regression ROM #1519
- Utilize ROMCollection to split the Fourier for global and local analysis in ARMA to enhance the flexibility and accuracy of generated synthetic signals. #1409
- Add option to limit the number of cycles sampled in an interpolated ROMCollection #1409
- Allow ROM to register expected meta keys for point wise data #1409
-
Post-Processors:
- Add TSA (time-series analysis) post processor to perform the characterization of TSA analysis #1628 #1631
- Extend validation post-processor to support time-dependent data #1554
- Several PostProcessors (i.e. DataClassifier, FTImporter, ETImporter, RiskMeasuresDiscrete, MCSImporter) in RAVEN actually belong to SR2ML. Due to the PostProcessor Plugin system is not in place, these PostProcessors were kept in RAVEN repo. Now the Plugin system has been designed and merged into RAVEN. These PostProcessors have been moved to SR2ML now. #1553
- Restructure the post-processor, create post-processor plugin API #1508
- Added HistorySetDelay post-processor to create lagged parameters in a HistorySet #1523
- Extend ParetoFront PP to handle multiple dimensions optimization #1479
- Extend HStoPSOperator post-processor to convert a HistorySet into a PointSet.
- Added a new Post Processor EconomicRatio, for calculating the return of an investment compared to its risk, several metrics are implemented such as Sharpe ratio, Sortino ratio, gain-loss ratio, value at risk, and conditional value at risk.
-
OutStreams:
-
Database
- Integrate NetCDF to handle raven database, which offers native capacity to store multi-dimensional data structures. #1459
-
Utility and Others
- Addition of a RunInfo node for multi-threading command specification #1590
- Added a ranking utility to sort/rank the non-dominated fronts for multi-objective genetic algorithms #1476
- Add a tool to check the memory footprint of complex objects in RAVEN for developer debugging #1409
- Added a profiling mode for developers for checking bottlenecks through a
--profile
argument toraven_framework
. Requires installation of optional libraryline_profiler
. #1318 - Improve operability of RAY parallelization in large HPC clusters #1357
-
Documentation:
- Updated RAVEN documentation (user manual, user guide, tests’ description) for a clearer explanation of the different features
Addressed Defects: