![]() |
Dakota
Version 6.15
Explore and Predict with Confidence
|
Class for Richardson extrapolation for code and solution verification. More...
Public Member Functions | |
RichExtrapVerification (ProblemDescDB &problem_db, Model &model) | |
constructor | |
~RichExtrapVerification () | |
destructor | |
void | core_run () |
core portion of run; implemented by all derived classes and may include pre/post steps in lieu of separate pre/post More... | |
void | print_results (std::ostream &s, short results_state=FINAL_RESULTS) |
print the final iterator results More... | |
![]() | |
bool | resize () |
reinitializes iterator based on new variable size | |
![]() | |
const VariablesArray & | all_variables () |
return the complete set of evaluated variables | |
const RealMatrix & | all_samples () |
return the complete set of evaluated samples | |
const IntResponseMap & | all_responses () const |
return the complete set of computed responses | |
int | num_samples () const |
virtual void | vary_pattern (bool pattern_flag) |
sets varyPattern in derived classes that support it | |
![]() | |
Iterator (std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
default constructor More... | |
Iterator (ProblemDescDB &problem_db, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate envelope constructor that assigns a representation pointer More... | |
Iterator (ProblemDescDB &problem_db, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate envelope constructor which uses the ProblemDescDB but accepts a model from a higher level (meta-iterator) context, instead of constructing its own More... | |
Iterator (const String &method_string, Model &model, std::shared_ptr< TraitsBase > traits=std::shared_ptr< TraitsBase >(new TraitsBase())) | |
alternate envelope constructor for instantiations by name without the ProblemDescDB More... | |
Iterator (const Iterator &iterator) | |
copy constructor More... | |
virtual | ~Iterator () |
destructor | |
Iterator | operator= (const Iterator &iterator) |
assignment operator | |
virtual void | derived_set_communicators (ParLevLIter pl_iter) |
derived class contributions to setting the communicators associated with this Iterator instance | |
virtual void | derived_free_communicators (ParLevLIter pl_iter) |
derived class contributions to freeing the communicators associated with this Iterator instance | |
virtual void | post_input () |
read tabular data for post-run mode | |
virtual void | reset () |
restore initial state for repeated sub-iterator executions | |
virtual void | nested_variable_mappings (const SizetArray &c_index1, const SizetArray &di_index1, const SizetArray &ds_index1, const SizetArray &dr_index1, const ShortArray &c_target2, const ShortArray &di_target2, const ShortArray &ds_target2, const ShortArray &dr_target2) |
set primaryA{CV,DIV,DRV}MapIndices, secondaryA{CV,DIV,DRV}MapTargets within derived Iterators; supports computation of higher-level sensitivities in nested contexts (e.g., derivatives of statistics w.r.t. inserted design variables) | |
virtual void | nested_response_mappings (const RealMatrix &primary_coeffs, const RealMatrix &secondary_coeffs) |
set primaryResponseCoefficients, secondaryResponseCoefficients within derived Iterators; Necessary for scalarization case in MLMC NonDMultilevelSampling to map scalarization in nested context | |
virtual void | initialize_iterator (int job_index) |
used by IteratorScheduler to set the starting data for a run | |
virtual void | pack_parameters_buffer (MPIPackBuffer &send_buffer, int job_index) |
used by IteratorScheduler to pack starting data for an iterator run | |
virtual void | unpack_parameters_buffer (MPIUnpackBuffer &recv_buffer, int job_index) |
used by IteratorScheduler to unpack starting data for an iterator run | |
virtual void | unpack_parameters_initialize (MPIUnpackBuffer &recv_buffer, int job_index) |
used by IteratorScheduler to unpack starting data and initialize an iterator run | |
virtual void | pack_results_buffer (MPIPackBuffer &send_buffer, int job_index) |
used by IteratorScheduler to pack results data from an iterator run | |
virtual void | unpack_results_buffer (MPIUnpackBuffer &recv_buffer, int job_index) |
used by IteratorScheduler to unpack results data from an iterator run | |
virtual void | update_local_results (int job_index) |
used by IteratorScheduler to update local results arrays | |
virtual const RealVector & | response_error_estimates () const |
return error estimates associated with the final iterator solution | |
virtual bool | accepts_multiple_points () const |
indicates if this iterator accepts multiple initial points. Default return is false. Override to return true if appropriate. | |
virtual void | initial_point (const Variables &pt) |
sets the initial point for this iterator (user-functions mode for which Model updating is not used) | |
virtual void | initial_point (const RealVector &pt) |
sets the initial point (active continuous variables) for this iterator (user-functions mode for which Model updating is not used) | |
virtual void | initial_points (const VariablesArray &pts) |
sets the multiple initial points for this iterator. This should only be used if accepts_multiple_points() returns true. | |
virtual void | variable_bounds (const RealVector &cv_lower_bnds, const RealVector &cv_upper_bnds) |
assign nonlinear inequality and equality constraint allowables for this iterator (user-functions mode for which Model updating is not used) | |
virtual void | linear_constraints (const RealMatrix &lin_ineq_coeffs, const RealVector &lin_ineq_lb, const RealVector &lin_ineq_ub, const RealMatrix &lin_eq_coeffs, const RealVector &lin_eq_tgt) |
assign linear inequality and linear equality constraints for this iterator (user-functions mode for which Model updating is not used) | |
virtual void | nonlinear_constraints (const RealVector &nln_ineq_lb, const RealVector &nln_ineq_ub, const RealVector &nln_eq_tgt) |
assign nonlinear inequality and equality constraint allowables for this iterator (user-functions mode for which Model updating is not used) | |
virtual void | initialize_graphics (int iterator_server_id=1) |
initialize the 2D graphics window and the tabular graphics data More... | |
virtual unsigned short | uses_method () const |
return name of any enabling iterator used by this iterator More... | |
virtual void | method_recourse () |
perform a method switch, if possible, due to a detected conflict | |
virtual void | sampling_reset (int min_samples, bool all_data_flag, bool stats_flag) |
reset sampling iterator to use at least min_samples | |
virtual void | sampling_reference (int samples_ref) |
set reference number of samples, which is a lower bound during reset | |
virtual void | sampling_increment () |
increment to next in sequence of refinement samples | |
virtual void | random_seed (int seed) |
set randomSeed, if present | |
virtual unsigned short | sampling_scheme () const |
return sampling name | |
virtual IntIntPair | estimate_partition_bounds () |
estimate the minimum and maximum partition sizes that can be utilized by this Iterator | |
virtual void | declare_sources () |
Declare sources to the evaluations database. | |
void | init_communicators (ParLevLIter pl_iter) |
initialize the communicators associated with this Iterator instance | |
void | set_communicators (ParLevLIter pl_iter) |
set the communicators associated with this Iterator instance | |
void | free_communicators (ParLevLIter pl_iter) |
free the communicators associated with this Iterator instance | |
void | resize_communicators (ParLevLIter pl_iter, bool reinit_comms) |
Resize the communicators. This is called from the letter's resize() | |
void | parallel_configuration_iterator (ParConfigLIter pc_iter) |
set methodPCIter | |
ParConfigLIter | parallel_configuration_iterator () const |
return methodPCIter | |
void | run (ParLevLIter pl_iter) |
invoke set_communicators(pl_iter) prior to run() | |
void | run () |
orchestrate initialize/pre/core/post/finalize phases More... | |
void | assign_rep (std::shared_ptr< Iterator > iterator_rep) |
replaces existing letter with a new one More... | |
void | iterated_model (const Model &model) |
set the iteratedModel (iterators and meta-iterators using a single model instance) | |
Model & | iterated_model () |
return the iteratedModel (iterators & meta-iterators using a single model instance) | |
ProblemDescDB & | problem_description_db () const |
return the problem description database (probDescDB) | |
ParallelLibrary & | parallel_library () const |
return the parallel library (parallelLib) | |
void | method_name (unsigned short m_name) |
set the method name to an enumeration value | |
unsigned short | method_name () const |
return the method name via its native enumeration value | |
void | method_string (const String &m_str) |
set the method name by string | |
String | method_string () const |
return the method name by string | |
String | method_enum_to_string (unsigned short method_enum) const |
convert a method name enumeration value to a string | |
unsigned short | method_string_to_enum (const String &method_str) const |
convert a method name string to an enumeration value | |
String | submethod_enum_to_string (unsigned short submethod_enum) const |
convert a sub-method name enumeration value to a string | |
const String & | method_id () const |
return the method identifier (methodId) | |
int | maximum_evaluation_concurrency () const |
return the maximum evaluation concurrency supported by the iterator | |
void | maximum_evaluation_concurrency (int max_conc) |
set the maximum evaluation concurrency supported by the iterator | |
size_t | maximum_iterations () const |
return the maximum iterations for this iterator | |
void | maximum_iterations (size_t max_iter) |
set the maximum iterations for this iterator | |
void | convergence_tolerance (Real conv_tol) |
set the method convergence tolerance (convergenceTol) | |
Real | convergence_tolerance () const |
return the method convergence tolerance (convergenceTol) | |
void | output_level (short out_lev) |
set the method output level (outputLevel) | |
short | output_level () const |
return the method output level (outputLevel) | |
void | summary_output (bool summary_output_flag) |
Set summary output control; true enables evaluation/results summary. | |
size_t | num_final_solutions () const |
return the number of solutions to retain in best variables/response arrays | |
void | num_final_solutions (size_t num_final) |
set the number of solutions to retain in best variables/response arrays | |
void | active_set (const ActiveSet &set) |
set the default active set (for use with iterators that employ evaluate_parameter_sets()) | |
const ActiveSet & | active_set () const |
return the default active set (used by iterators that employ evaluate_parameter_sets()) | |
void | active_set_request_vector (const ShortArray &asv) |
return the default active set request vector (used by iterators that employ evaluate_parameter_sets()) | |
const ShortArray & | active_set_request_vector () const |
return the default active set request vector (used by iterators that employ evaluate_parameter_sets()) | |
void | active_set_request_values (short asv_val) |
return the default active set request vector (used by iterators that employ evaluate_parameter_sets()) | |
void | sub_iterator_flag (bool si_flag) |
set subIteratorFlag (and update summaryOutputFlag if needed) | |
bool | is_null () const |
function to check iteratorRep (does this envelope contain a letter?) | |
std::shared_ptr< Iterator > | iterator_rep () const |
returns iteratorRep for access to derived class member functions that are not mapped to the top Iterator level | |
virtual void | eval_tag_prefix (const String &eval_id_str) |
set the hierarchical eval ID tag prefix More... | |
std::shared_ptr< TraitsBase > | traits () const |
returns methodTraits for access to derived class member functions that are not mapped to the top TraitsBase level | |
bool | top_level () |
Return whether the iterator is the top level iterator. | |
void | top_level (const bool &tflag) |
Set the iterator's top level flag. | |
Private Member Functions | |
void | estimate_order () |
perform a single estimation of convOrder using extrapolation() More... | |
void | converge_order () |
iterate using extrapolation() until convOrder stabilizes More... | |
void | converge_qoi () |
iterate using extrapolation() until QOIs stabilize More... | |
void | extrapolation (const RealVector &refine_triple, RealMatrix &qoi_triples) |
estimate convOrder from refinement and quantity of interest (QOI) triples | |
void | extrapolate_result (const RealVector &refine_triple, const RealMatrix &qoi_triples) |
predict the converged value based on the convergence rate and the value of Phi | |
Private Attributes | |
unsigned short | studyType |
internal code for extrapolation study type: SUBMETHOD_{CONVERGE_ORDER,CONVERGE_QOI,ESTIMATE_ORDER} | |
size_t | numFactors |
number of refinement factors defined from active state variables | |
RealVector | initialCVars |
initial reference values for refinement factors | |
size_t | factorIndex |
the index of the active factor | |
Real | refinementRate |
rate of mesh refinement (default = 2.) | |
RealMatrix | convOrder |
the orders of convergence of the QOIs (numFunctions by numFactors) | |
RealMatrix | extrapQOI |
the extrapolated value of the QOI (numFunctions by numFactors) | |
RealMatrix | numErrorQOI |
the numerical uncertainty associated with level of refinement (numFunctions by numFactors) | |
RealVector | refinementRefPt |
This is a reference point reported for the converged extrapQOI and numErrorQOI. It currently corresponds to the coarsest mesh in the final refinement triple. | |
Additional Inherited Members | |
![]() | |
Verification (ProblemDescDB &problem_db, Model &model) | |
constructor | |
Verification (unsigned short method_name, Model &model) | |
alternate constructor for instantiations "on the fly" | |
~Verification () | |
destructor | |
![]() | |
static void | gnewton_set_recast (const Variables &recast_vars, const ActiveSet &recast_set, ActiveSet &sub_model_set) |
conversion of request vector values for the Gauss-Newton Hessian approximation More... | |
![]() | |
size_t | numFunctions |
number of response functions | |
size_t | numContinuousVars |
number of active continuous vars | |
size_t | numDiscreteIntVars |
number of active discrete integer vars | |
size_t | numDiscreteStringVars |
number of active discrete string vars | |
size_t | numDiscreteRealVars |
number of active discrete real vars | |
bool | compactMode |
switch for allSamples (compact mode) instead of allVariables (normal mode) | |
VariablesArray | allVariables |
array of all variables to be evaluated in evaluate_parameter_sets() | |
RealMatrix | allSamples |
compact alternative to allVariables | |
IntResponseMap | allResponses |
array of all responses to be computed in evaluate_parameter_sets() | |
StringArray | allHeaders |
array of headers to insert into output while evaluating allVariables | |
size_t | numObjFns |
number of objective functions | |
size_t | numLSqTerms |
number of least squares terms | |
RealPairPRPMultiMap | bestVarsRespMap |
map which stores best set of solutions | |
Class for Richardson extrapolation for code and solution verification.
The RichExtrapVerification class contains several algorithms for performing Richardson extrapolation.
|
virtual |
core portion of run; implemented by all derived classes and may include pre/post steps in lieu of separate pre/post
Virtual run function for the iterator class hierarchy. All derived classes need to redefine it.
Reimplemented from Iterator.
References Dakota::abort_handler(), Model::continuous_variables(), RichExtrapVerification::converge_order(), RichExtrapVerification::converge_qoi(), RichExtrapVerification::convOrder, RichExtrapVerification::estimate_order(), RichExtrapVerification::extrapQOI, RichExtrapVerification::initialCVars, Iterator::iteratedModel, RichExtrapVerification::numErrorQOI, RichExtrapVerification::numFactors, Analyzer::numFunctions, Iterator::outputLevel, RichExtrapVerification::refinementRefPt, and RichExtrapVerification::studyType.
|
virtual |
print the final iterator results
This virtual function provides additional iterator-specific final results outputs beyond the function evaluation summary printed in finalize_run().
Reimplemented from Verification.
References Model::continuous_variable_labels(), RichExtrapVerification::convOrder, Dakota::copy_data(), RichExtrapVerification::extrapQOI, Iterator::iteratedModel, RichExtrapVerification::numErrorQOI, Verification::print_results(), RichExtrapVerification::refinementRate, RichExtrapVerification::refinementRefPt, and Model::response_labels().
|
private |
perform a single estimation of convOrder using extrapolation()
This algorithm executes a single refinement triple and returns convergence order estimates.
References RichExtrapVerification::extrapolate_result(), RichExtrapVerification::extrapolation(), RichExtrapVerification::extrapQOI, RichExtrapVerification::factorIndex, RichExtrapVerification::initialCVars, RichExtrapVerification::numErrorQOI, RichExtrapVerification::numFactors, Analyzer::numFunctions, RichExtrapVerification::refinementRate, and RichExtrapVerification::refinementRefPt.
Referenced by RichExtrapVerification::core_run().
|
private |
iterate using extrapolation() until convOrder stabilizes
This algorithm continues to refine until the convergence order estimate converges.
References Iterator::convergenceTol, RichExtrapVerification::convOrder, Dakota::copy_data(), RichExtrapVerification::extrapolate_result(), RichExtrapVerification::extrapolation(), RichExtrapVerification::extrapQOI, RichExtrapVerification::factorIndex, RichExtrapVerification::initialCVars, Iterator::maxIterations, RichExtrapVerification::numErrorQOI, RichExtrapVerification::numFactors, Analyzer::numFunctions, Iterator::outputLevel, RichExtrapVerification::refinementRate, and RichExtrapVerification::refinementRefPt.
Referenced by RichExtrapVerification::core_run().
|
private |
iterate using extrapolation() until QOIs stabilize
This algorithm continues to refine until the discretization error lies within a prescribed tolerance.
References Iterator::convergenceTol, RichExtrapVerification::extrapolate_result(), RichExtrapVerification::extrapolation(), RichExtrapVerification::extrapQOI, RichExtrapVerification::factorIndex, RichExtrapVerification::initialCVars, Iterator::maxIterations, RichExtrapVerification::numErrorQOI, RichExtrapVerification::numFactors, Analyzer::numFunctions, Iterator::outputLevel, RichExtrapVerification::refinementRate, and RichExtrapVerification::refinementRefPt.
Referenced by RichExtrapVerification::core_run().