![]() |
Dakota
Version 6.20
Explore and Predict with Confidence
|
Derived approximation class for global basis polynomials. More...
Public Member Functions | |
| SharedC3ApproxData () | |
| default constructor | |
| SharedC3ApproxData (ProblemDescDB &problem_db, size_t num_vars) | |
| standard ProblemDescDB-driven constructor | |
| SharedC3ApproxData (const String &approx_type, const UShortArray &approx_order, size_t num_vars, short data_order, short output_level) | |
| on-the-fly constructor (no problem DB) | |
| ~SharedC3ApproxData () | |
| destructor | |
| size_t | regression_size () |
| return number of FT unknowns using start_rank(), max_rank(), start_orders(), max_order() | |
| size_t | max_rank_regression_size () |
| return number of FT unknowns using maximum rank, start_orders(), max_order() | |
| size_t | max_order_regression_size () |
| return number of FT unknowns using start_rank(), max_rank(), and maximum basis order | |
| size_t | max_regression_size () |
| return number of FT unknowns using maxima for rank and basis order | |
| void | set_parameter (String var, const UShortArray &val) |
| set UShortArray attribute value based on identifier string | |
| void | set_parameter (String var, unsigned short val) |
| set unsigned short attribute value based on identifier string | |
| void | set_parameter (String var, size_t val) |
| set size_t attribute value based on identifier string | |
| void | set_parameter (String var, bool val) |
| set bool attribute value based on identifier string | |
| void | set_parameter (String var, short val) |
| set short attribute value based on identifier string | |
| void | set_parameter (String var, double val) |
| set double attribute value based on identifier string | |
| void | set_parameter (String var, int val) |
| set int attribute value based on identifier string | |
| void | set_active_parameter (String var, const UShortArray &val) |
| set active UShortArray attribute value based on identifier string | |
| void | set_active_parameter (String var, unsigned short val) |
| set active unsigned short attribute value based on identifier string | |
| void | set_active_parameter (String var, size_t val) |
| set active size_t attribute value based on identifier string | |
| void | set_active_parameter (String var, int val) |
| set active int attribute value based on identifier string | |
| const UShortArray & | start_orders () const |
| return active start value for basis order | |
| UShortArray & | start_orders () |
| return active start value for basis order (mutable) | |
| unsigned short | max_order () const |
| return active maximum value for basis order | |
| unsigned short & | max_order () |
| return active maximum value for basis order (mutable) | |
| size_t | start_rank () const |
| return active start value for expansion rank | |
| size_t & | start_rank () |
| return active start value for expansion rank (mutable) | |
| size_t | max_rank () const |
| return active maximum value for expansion rank | |
| size_t & | max_rank () |
| return active maximum value for expansion rank (mutable) | |
| size_t | max_cross_validation_rank_candidates () const |
| return maxCVRankCandidates | |
| unsigned short | max_cross_validation_order_candidates () const |
| return maxCVOrderCandidates | |
| void | assign_start_ranks (SizetVector &start_ranks) const |
| void | update_basis () |
| update oneApproxOpts with active basis orders after an order change | |
| void | update_basis (const UShortArray &start_orders, unsigned short max_order) |
| update oneApproxOpts with passed basis orders after an order change | |
| void | update_basis (size_t v, unsigned short start_order, unsigned short max_order) |
| update oneApproxOpts for variable v with passed basis orders | |
Public Member Functions inherited from SharedApproxData | |
| SharedApproxData () | |
| default constructor More... | |
| SharedApproxData (ProblemDescDB &problem_db, size_t num_vars) | |
| standard constructor for envelope More... | |
| SharedApproxData (const String &approx_type, const UShortArray &approx_order, size_t num_vars, short data_order, short output_level) | |
| alternate constructor for envelope More... | |
| SharedApproxData (const SharedApproxData &approx) | |
| copy constructor More... | |
| virtual | ~SharedApproxData () |
| destructor | |
| SharedApproxData | operator= (const SharedApproxData &approx) |
| assignment operator | |
| virtual void | clear_model_keys () |
| reset initial state by clearing all model keys for an approximation | |
| virtual void | integration_iterator (const Iterator &iterator) |
| set integration driver for structured grid approximations | |
| virtual void | rebuild () |
| rebuilds the shared approximation data incrementally | |
| virtual void | pre_push () |
| push a previous state of the shared approximation data | |
| virtual size_t | finalize_index (size_t i, const Pecos::ActiveKey &key) |
| return index of i-th trial set within restorable bookkeeping sets | |
| virtual void | pre_finalize () |
| finalize the shared approximation data following a set of increments | |
| virtual void | post_finalize () |
| clean up popped bookkeeping following aggregation | |
| virtual void | clear_inactive () |
| clear inactive approximation data | |
| virtual void | post_combine () |
| clean up stored data sets after aggregation | |
| virtual void | combined_to_active (bool clear_combined=true) |
| promote aggregated data sets to active state | |
| virtual void | update_basis_distribution_parameters (const Pecos::MultivariateDistribution &mvd) |
| propagate updates to random variable distribution parameters to a polynomial basis | |
| virtual void | configuration_options (const Pecos::ExpansionConfigOptions &ec_options) |
| set ExpansionConfigOptions instance as a group specification | |
| virtual void | configuration_options (const Pecos::BasisConfigOptions &bc_options) |
| set BasisConfigOptions instance as a group specification | |
| virtual void | configuration_options (const Pecos::RegressionConfigOptions &rc_options) |
| set BasisConfigOptions instance as a group specification | |
| virtual void | refinement_statistics_mode (short stats_mode) |
| assign mode for statistics roll-up: {ACTIVE,COMBINED}_EXPANSION_STATS | |
| virtual const Pecos::BitArrayULongMap & | sobol_index_map () const |
| return set of Sobol indices that have been requested (e.g., as constrained by throttling) and are computable by a (sparse) expansion of limited order | |
| const Pecos::ActiveKey & | active_model_key () const |
| return active multi-index key | |
| void | discrepancy_emulation_mode (short mode) |
| set discrepancy emulation mode for approximating response differences | |
| short | discrepancy_emulation_mode () const |
| return discrepancy emulation mode for approximating response differences | |
| bool | formulation_updated () const |
| query whether the form of an approximation has been updated | |
| void | formulation_updated (bool update) |
| assign the status of approximation formulation updates | |
| void | set_bounds (const RealVector &c_l_bnds, const RealVector &c_u_bnds, const IntVector &di_l_bnds, const IntVector &di_u_bnds, const RealVector &dr_l_bnds, const RealVector &dr_u_bnds) |
| set approximation lower and upper bounds (currently only used by graphics) | |
| std::shared_ptr< SharedApproxData > | data_rep () const |
| returns dataRep for access to derived class member functions that are not mapped to the top SharedApproxData level | |
Static Public Member Functions | |
| static size_t | regression_size (size_t num_v, size_t rank, size_t max_rank, const UShortArray &orders, unsigned short max_order) |
| return number of FT unknowns given scalars: num vars, rank, order More... | |
Protected Member Functions | |
| void | active_model_key (const Pecos::ActiveKey &key) |
| activate an approximation state based on its multi-index key | |
| void | construct_basis (const Pecos::MultivariateDistribution &mv_dist) |
| construct the shared basis for an expansion-based approximation | |
| short | discrepancy_reduction () const |
| return the discrepancy type for approximations that support MLMF | |
| void | random_variables_key (const BitArray &random_vars_key) |
| assign key identifying a subset of variables that are to be treated as random for statistical purposes (e.g. expectation) | |
| void | build () |
| builds the shared approximation data from scratch | |
| void | increment_order () |
| increments polynomial expansion order (PCE, FT) | |
| void | decrement_order () |
| decrements polynomial expansion order (PCE, FT) | |
| void | pop (bool save_surr_data) |
| back out the previous increment to the shared approximation data | |
| bool | push_available () |
| queries availability of pushing data associated with a trial set | |
| size_t | push_index (const Pecos::ActiveKey &key) |
| return index for restoring trial set within stored data sets | |
| void | post_push () |
| clean up popped bookkeeping following push | |
| void | pre_combine () |
| aggregate the shared approximation data from current and stored states | |
| bool | advancement_available () |
| queries availability of advancing the approximation resolution | |
| void | max_rank_advancement (bool r_advance) |
| void | max_order_advancement (bool o_advance) |
| bool | increment_max_rank () |
| bool | increment_max_order () |
Protected Member Functions inherited from SharedApproxData | |
| SharedApproxData (BaseConstructor, ProblemDescDB &problem_db, size_t num_vars) | |
| constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139) More... | |
| SharedApproxData (NoDBBaseConstructor, const String &approx_type, size_t num_vars, short data_order, short output_level) | |
| constructor initializes the base class part of letter classes (BaseConstructor overloading avoids infinite recursion in the derived class constructors - Coplien, p. 139) More... | |
Protected Attributes | |
| std::vector< OneApproxOpts * > | oneApproxOpts |
| one-D approximation options (basis type, poly order, etc.) | |
| MultiApproxOpts * | multiApproxOpts |
| n-D approximation options, augmenting one-D options | |
| bool | respScaling |
| option to scale response data prior to regression | |
| UShortArray | startOrders |
| starting user specification for polynomial orders (from start_order scalar plus anisotropic dimension preference) | |
| std::map< Pecos::ActiveKey, UShortArray > | startOrdersMap |
| starting values for polynomial order (prior to adaptive refinement); for each model key, there is an array of polynomial orders per variable | |
| unsigned short | kickOrder |
| user specification for increment in order used within adapt_order | |
| unsigned short | maxOrder |
| maximum value for polynomial order from user spec | |
| std::map< Pecos::ActiveKey, unsigned short > | maxOrderMap |
| user specification for maximum order used within adapt_order; usually a scalar specification but can be adapted per model key for MAX_{ORDER,RANK_ORDER}_ADVANCEMENT refine types | |
| bool | adaptOrder |
| C3 FT can support CV over polynomial order in addition to adapt_rank. | |
| UShortArray | combinedOrders |
| polynomial basis order for combined expansion for each variable core | |
| size_t | startRank |
| starting user specification for rank (not augmented by dimension preference); Note: rank sequence spec is managed externally and becomes reflected in startRank model index mapping | |
| std::map< Pecos::ActiveKey, size_t > | startRankMap |
| starting values for rank (note: adapt_rank currently covers refinement); for each model index key, there is a scalar starting rank (recovered rank in C3FnrainPtrs can vary per core/variable and per QoI) | |
| size_t | kickRank |
| user specification for increment in rank used within adapt_rank | |
| size_t | maxRank |
| scalar user specification for maximum allowable rank when adapting | |
| std::map< Pecos::ActiveKey, size_t > | maxRankMap |
| user specification for maximum rank used within adapt_rank; usually a scalar specification but can be adapted per model key for MAX_{RANK,RANK_ORDER}_ADVANCEMENT refine types | |
| bool | adaptRank |
| internal C3 adaptation that identifies the best rank representation for a set of sample data based on cross validation | |
| short | regressType |
| type of regression solver for forming FT approximation | |
| double | regressRegParam |
| penalty parameter if regularized regression | |
| double | solverTol |
| tolerance on regression solver | |
| double | solverRoundingTol |
| tolerance for rounding (performing a truncation operation on a FT expansion) within the regression solver | |
| double | statsRoundingTol |
| tolerance for rounding (performing a truncation operation on a FT expansion) when post-processing an expansion: computing products for moments, combining expansions with c3axpy, etc. | |
| size_t | maxSolverIterations |
| maximum number of iterations for regression solver | |
| int | crossMaxIter |
| maximum number of iterations for (future) cross iteration solver | |
| int | randomSeed |
| C3 regression solver employs a random seed. | |
| short | combineType |
| type of discrepancy calculation: additive, multiplicative, or both | |
| short | discrepReduction |
| type of multilevel discrepancy emulation: distinct or recursive | |
| short | allocControl |
| type of multilevel strategy for sample allocation: ESTIMATOR_VARIANCE, RANK_SAMPLING, GREEDY | |
| short | c3AdvancementType |
| type of advancement strategy used in uniform refinement: {START_ORDER,START_RANK,MAX_ORDER,MAX_RANK,MAX_RANK_ORDER}_ADVANCEMENT | |
| std::map< Pecos::ActiveKey, bool > | c3MaxRankAdvance |
| flag indicating availability of rank advancement (accumulated from C3Approximation::advancement_available()) | |
| std::map< Pecos::ActiveKey, bool > | c3MaxOrderAdvance |
| flag indicating availability of order advancement (accumulated from C3Approximation::advancement_available()) | |
| unsigned short | maxCVOrderCandidates |
| restrict the number of candidates within cross validation for order (by increasing start order when needed as max order is advanced) | |
| size_t | maxCVRankCandidates |
| restrict the number of candidates within cross validation for rank (by increasing start rank when needed as max rank is advanced) | |
| SizetArray | randomIndices |
| indices for random subset when approximating in all-variables mode | |
| std::map< Pecos::ActiveKey, size_t > | poppedCounts |
| number of instances within the popped arrays (mostly a placeholder for supporting push_available()) | |
Protected Attributes inherited from SharedApproxData | |
| size_t | numVars |
| number of variables in the approximation | |
| String | approxType |
| approximation type identifier | |
| short | buildDataOrder |
| order of the data used for surrogate construction, in ActiveSet request vector 3-bit format. More... | |
| short | outputLevel |
| output verbosity level: {SILENT,QUIET,NORMAL,VERBOSE,DEBUG}_OUTPUT | |
| Pecos::ActiveKey | activeKey |
| key indicating the active model or model-pair used for approximation data | |
| short | discrepEmulationMode |
| approach for emulating response differences: {DEFAULT,DISTINCT,RECURSIVE}_EMULATION | |
| String | modelExportPrefix |
| Prefix for model export files. | |
| unsigned short | modelExportFormat |
| Bitmapped format request for exported models. | |
| RealVector | approxCLowerBnds |
| approximation continuous lower bounds (used by 3D graphics and Surfpack KrigingModel) | |
| RealVector | approxCUpperBnds |
| approximation continuous upper bounds (used by 3D graphics and Surfpack KrigingModel) | |
| IntVector | approxDILowerBnds |
| approximation continuous lower bounds | |
| IntVector | approxDIUpperBnds |
| approximation continuous upper bounds | |
| RealVector | approxDRLowerBnds |
| approximation continuous lower bounds | |
| RealVector | approxDRUpperBnds |
| approximation continuous upper bounds | |
| std::map< Pecos::ActiveKey, bool > | formUpdated |
| tracker for changes in order,rank configuration since last build (used by DataFitSurrModel::rebuild_approximation()) | |
Friends | |
| class | C3Approximation |
Derived approximation class for global basis polynomials.
The SharedC3ApproxData class provides a global approximation based on basis polynomials. This includes orthogonal polynomials used for polynomial chaos expansions and interpolation polynomials used for stochastic collocation.
|
inlinestatic |
return number of FT unknowns given scalars: num vars, rank, order
simplified estimation for scalar-valued rank and order (e.g., from start rank/order user specification) inline size_t SharedC3ApproxData:: regression_size(size_t num_v, size_t rank, size_t order) { Each dimension has its own rank within the product of function cores. This fn estimates for the case where rank and order are either constant across dimensions or averaged into a scalar.
the first and last core contribute p*r terms the middle cores contribute r*r*p terms
size_t p = order+1.; switch (num_v) { case 1: return p; break; // collapses to a 1D PCE case 2: return 2.*p*rank; break; // first and last core, no middle default: return p*rank*(2. + (num_v-2)*rank); break; // first,last,middle } } simplified estimation for scalar-valued rank and vector-valued order (e.g., from start rank/start order/dimension pref user specification)
References SharedC3ApproxData::max_order(), SharedC3ApproxData::max_rank(), and Dakota::sum().