Skip to content
Snippets Groups Projects
To find the state of this project's repository at the time of any of these versions, check out the tags.

CHANGELOG

[2.0.0] (2025-02-05)

Requirements

  • Set matplotlib version back to 3.7.3 to ensure stability in combination with seaborn

Added

Features

  • caculate_moments method in Meta_Model class for a general calculation of the moments
  • PCEGPR class for combining polynomial chaos and gaussian processes

Tests

  • Tests for GPE class
  • Tests for calculate_moments method in Meta_Model and GPESkl classes
  • Tests for PCEGPR class
  • Tests for PostProcessingclass

Examples

  • Example analytical_function_pcegpr.py to show application of the combined class PCEGPR

Changed

  • Split surrogate classes into template class MetaModel and child classes PCE and GPESklearn
  • Changed Exception format in GPE class to more specific Exceptions
  • Extend Inputs.add_marginals to allow direct setting of marginal properties
  • Move Sobol' calculation to PCE.calculate_sobol
  • Clean PostProcessing class and update for general MetaModel objects
  • Split BayesInferenceclass into BayesInference, template class PostSampler and child class RejectionSampler
  • Class MCMC child class of PostSampler
  • Split BayesInference.create_inference() into BayesInference.run_inference()and BayesInference.run_validation()
  • Plot in PCE.adaptive_regression is saved automatically
  • Moved adaptPlot() to be Engine.plot_adapt()

Renaming

  • Renamed attributes of classes BayesInference, BMC, MCMC, SeqDesign and Engine following from structure reworking
  • Renamed attribues and functions to snake-style naming:
    • *.Discrepancy to *.discrepancy
    • surrogate_models.py to meta_model.py
    • *.MetaModel to *.meta_model
    • *.ExpDesign to *.exp_design
    • *.Model to *.model
    • *LCerror to *lc_error
    • *.InputSpace to *.input_space
    • *.Marginals to *.marginals
    • *.Rosenblatt to *.rosenblatt
    • *.add_InputSpace to *.add_input_space
    • *.InputObj to *.input_object
    • *.JDist to *.j_dist
    • ._autoSelect to *._auto_select
    • ExpDesigns.generate_ED to ExpDesigns.generate_ed
    • ExpDesigns.X to ExpDesigns.x
    • ExpDesigns.Y to ExpDesigns.y
    • PyLinkForwardModel.Output to PyLinkForwardModel.output
  • Class auto_vivification to AutoVivification

Bug fixes

  • ExpDesign always uses user-defined samples when given
  • ExpDesign n_init_samples can be user-defined
  • Fixed pce-loocv calculation for few training samples
  • Two-step coefficient estimation for LARS PCE training options

Removed

  • Input n_samples for ExpDesign.generate_ED()
  • Reduced Discrepancy options to only total_sigma2

[1.1.0]

Requirements

  • numpy >= 1.23.5

Added

Features

  • class SeqDesign for sequential training
  • Engine can be built without a surrogate
  • BayesInference and BayesModelComparison can be performed on an Engine object without a surrogate

Examples

  • Example user_guide to go along with the user guide on the website
  • Example principal_component_analysis to show application of pca on metamodel outputs
  • Example 'only_model' for use of inference and model comparison without a metamodel

Changed

  • Moved functions for sequential training from Engine to SeqDesign
  • Moved hellinger_distance, logpdf, subdomain into surrogate_models/seq_design
  • Early stop in BayesInf for improved performance of BayesModelComp
  • Allow singular matrices in exploitation with BayesActDesign
  • ExpDesign.generate_ED no longer needs transform

Bug fixes

  • Import of ExpDesign allowed
  • Images in PostProcessing only saved, not opened
  • Fixed option MetaModel.dim_red_method = 'pca'

Removed

  • Disabled exploration with voronoi
  • BayesModelComp.just_n_meas

[1.0.0]

Requirements

  • numpy now at 1.23.3
  • ....

Added

Features

  • PyLinkForwardModel has new link_type 'umbridge' for UM-Bridge type models
  • class InputSpace as parent class to ExpDesigns
  • MetaModel has option to train with OLS+constraints

Examples

  • Example umbridge_tsunamitutorial to show two options of using UM-Bridge type models
  • Example convergence_tests for the constraints

Changed

General

  • Independent functions moved out of classes
  • Constructors of PostProcessing, BayesInference, BayesModelComp are to be given the engine instead of the metamodel
  • Constructor of Exploration to be given ExpDesigns instead of MetaModel

Engine

  • MetaModelEngine renamed to Engine
  • Split run() into train_normal() and train_sequential()
  • opt_SeqDesign() renamed to choose_next_sample()

MetaModel

  • MetaModel fully independent of model
  • MetaModel uses InputSpace instead of ExpDesigns
  • create_metamodel() split into build_metamodel() and fit()
  • fit() renamed to regression()
  • eval_metamodel() only runs on given samples, full functionality retained in Engine.eval_metamodel()
  • Polynomial related functions moved from MetaModelEngine to MetaModel

PyLinkForwardModel

  • Read-in of MC-references now performed by PyLinkForwardModel.read_observation()

ExpDesigns

  • Parameters related to sequential training were moved from MetaModel to ExpDesigns (Seq*, valid_model_runs)

Removed

  • Class SequentialDesign
  • ExpDesigns.method
  • MetaModel.create_basis_indices()