1 /* _______________________________________________________________________ 2 3 DAKOTA: Design Analysis Kit for Optimization and Terascale Applications 4 Copyright 2014-2020 National Technology & Engineering Solutions of Sandia, LLC (NTESS). 5 This software is distributed under the GNU Lesser General Public License. 6 For more information, see the README file in the top Dakota directory. 7 _______________________________________________________________________ */ 8 9 //- Class: NonDLHSInterval 10 //- Description: Class for the Interval theory methods within DAKOTA/UQ 11 //- Owner: Laura Swiler 12 //- Checked by: 13 //- Version: 14 15 #ifndef NOND_LHS_INTERVAL_H 16 #define NOND_LHS_INTERVAL_H 17 18 #include "dakota_data_types.hpp" 19 #include "NonDInterval.hpp" 20 #include "DakotaModel.hpp" 21 22 namespace Dakota { 23 24 25 /// Class for the LHS-based interval methods within DAKOTA/UQ 26 27 /** The NonDLHSInterval class implements the propagation of epistemic 28 uncertainty using LHS-based methods. */ 29 30 class NonDLHSInterval: public NonDInterval 31 { 32 public: 33 34 // 35 //- Heading: Constructors and destructor 36 // 37 38 NonDLHSInterval(ProblemDescDB& problem_db, Model& model); ///< constructor 39 ~NonDLHSInterval(); ///< destructor 40 41 // 42 //- Heading: Virtual function redefinitions 43 // 44 45 void derived_init_communicators(ParLevLIter pl_iter); 46 void derived_set_communicators(ParLevLIter pl_iter); 47 void derived_free_communicators(ParLevLIter pl_iter); 48 49 /// performs an epistemic uncertainty propagation using LHS samples 50 void core_run(); 51 52 protected: 53 54 // 55 //- Heading: New virtual functions 56 // 57 58 /// perform any required initialization 59 virtual void initialize(); 60 /// post-process the output from executing lhsSampler 61 virtual void post_process_samples() = 0; 62 63 // 64 // - Heading: Data 65 // 66 67 Iterator lhsSampler; ///< the LHS sampler instance 68 const int seedSpec; ///< the user seed specification (default is 0) 69 int numSamples; ///< the number of samples used 70 String rngName; ///< name of the random number generator 71 72 private: 73 74 // 75 // - Heading: Data 76 // 77 78 }; 79 80 } // namespace Dakota 81 82 #endif 83