Version 6.21 (2024/11/14)
Highlight: Numerical robustness for ML BLUE
The multilevel best linear unbiased estimator (ML BLUE) now uses truncated SVD for all matrix solutions (previously handled by Cholesky factorization with equilibration), enabling more robust solution recovery for resouce allocations and final moment estimates. This can mitigate ill-conditioned for problems with larger group counts, for groups containing some level of model redundancy, and for larger budgets with more aggressive sample profiles.
Enabling / Accessing: New SVD solver strategies are built-in with truncation tolerances tuned from numerical studies.
Documentation: Refer to the reference documentation starting from multilevel_blue
for additional information on ML BLUE and its options. Benchmark examples with three models (tunable problem), five models (steady state diffusion), and 8 models (transient diffusion) are available under dakota/test in the release distribution.
Highlight: New options for using MCMC algorithms from the MUQ library
This release exposes the DILI (Dimension-Independent Likelihood-Informed subspace [CLM16]) MCMC sampler from the MIT UQ Library (MUQ).
Enabling / Accessing:
Add the dili
keyword to the bayes_calibration muq
method keyword group to select this submethod. MUQ is available in Linux and macOS downloads, but not yet in Windows. It
must be enabled when building from source by setting the CMake variable DAKOTA_HAVE_MUQ=ON
.
Documentation:
Consult Dakota’s keyword documentation for the dili
method or
the MUQ documentation.
Highlight: JSON parameters and results files
This release adds support for parameters and results files in JSON format, which is intended to simplify driver development.
Enabling / Accessing:
Two new keyword groups were added to the interface portion of the input file,
parameters_format
and
results_format
. The json
keyword within
these groups is used to select JSON format files.
In addition, the aprepro
keyword was moved to the parameters_format
group, and the
labeled
keyword
is now located in the results_format
group.
Documentation:
The User’s Manual describes the schemas for JSON parameters and results files.
Improvements by Category
Interfaces, Input/Output
Writing evaluations by evaluation ID is supported by the
BatchSplitter
class in the dakota.interfacing module.The
python_interface()
decorator in the dakota.interfacing module now supports batch evaluations.Support for reading and writing JSON parameters and results files was added to dakota.interfacing.
Models
Vector-valued Python surrogates now supported. Python surrogates now can provide Hessians.
Optimization Methods
UQ Methods
Hierarchical DAG enumeration (essentially a reordering of model dependencies) is now available for weighted MLMC and MFMC. See
search_model_graphs
andsearch_model_graphs
.Hierarchical sampling methods (MLMC aka
multilevel_sampling
, and MLCV MC akamultilevel_multifidelity_sampling
) extended to support concurrent multi-batch processing.New run-time group throttles for ML BLUE:
best_conditioned
andrcond_tolerance
now prune groups based on the conditioning of their group covariances.Improved robustness for
offline_pilot
mode by employing the offline covariances for both sample allocation and final moment rollup. This relaxes previous contraints on the minimum high-fidelity samples for subsequent online sampling.Online cost recovery can now be alternated with pre-specified cost on a per model basis.
MAP pre-solve and chain samples export enabled for MUQ methods.
Miscellaneous Enhancements and Bugfixes
Enh: When building Dakota from source with the Python direct interface enabled, NumPy 2 is supported.
Bug fix: JEGA global log file is closed when the environment is destructed.
Bug fix: When performing batch evaluations with the Python direct interface, the evaluation ID is now correctly reported.
Deprecated and Changed
The
aprepro
keyword was moved to theparameters_format
group, and thelabeled
keyword is now located in theresults_format
group.The legacy Python interface is no longer enabled in binary downloads. It is also disabled by default when building from source.
The “eval_id” in the direct Python parameters diciontary is now a string.
Many submethod-specific
muq
keywords were renamed and moved to better follow Dakota conventions. For example, the keyworddr_num_stages
, a control used by thedelayed_rejection
anddram
algorithms, formerly resided just below themuq
keyword. It has been renamed tonum_stages
and made a subkeyword of both submethods.
Compatibility
Building Dakota from source now requires a C++14 compliant compiler.