Public Member Functions | Private Member Functions | Private Attributes
NonDLocalReliability Class Reference

Class for the reliability methods within DAKOTA/UQ. More...

Inheritance diagram for NonDLocalReliability:
NonDReliability NonD Analyzer Iterator

List of all members.

Public Member Functions

 NonDLocalReliability (Model &model)
 constructor
 ~NonDLocalReliability ()
 destructor
void quantify_uncertainty ()
 performs an uncertainty propagation using analytical reliability methods which solve constrained optimization problems to obtain approximations of the cumulative distribution function of response
void print_results (std::ostream &s)
 print the approximate mean, standard deviation, and importance factors when using the mean value method or the CDF/CCDF information when using MPP-search-based reliability methods
String uses_method () const
 return name of active MPP optimizer
void method_recourse ()
 perform an MPP optimizer method switch due to a detected conflict

Private Member Functions

void initial_taylor_series ()
 convenience function for performing the initial limit state Taylor-series approximation
void mean_value ()
 convenience function for encapsulating the simple Mean Value computation of approximate statistics and importance factors
void mpp_search ()
 convenience function for encapsulating the reliability methods that employ a search for the most probable point (AMV, AMV+, FORM, SORM)
void initialize_class_data ()
 convenience function for initializing class scope arrays
void initialize_level_data ()
 convenience function for initializing/warm starting MPP search data for each response function prior to level 0
void initialize_mpp_search_data ()
 convenience function for initializing/warm starting MPP search data for each z/p/beta level for each response function
void update_mpp_search_data (const Variables &vars_star, const Response &resp_star)
 convenience function for updating MPP search data for each z/p/beta level for each response function
void update_level_data ()
 convenience function for updating z/p/beta level data and final statistics following MPP convergence
void update_pma_reliability_level ()
 update requestedCDFRelLevel from prescribed probabilities or prescribed generalized reliabilities by inverting second-order integrations
void update_limit_state_surrogate ()
 convenience function for passing the latest variables/response data to the data fit embedded within uSpaceModel
void assign_mean_data ()
 update mostProbPointX/U, computedRespLevel, fnGradX/U, and fnHessX/U from ranVarMeansX/U, fnValsMeanX, fnGradsMeanX, and fnHessiansMeanX
void dg_ds_eval (const RealVector &x_vars, const RealVector &fn_grad_x, RealVector &final_stat_grad)
 convenience function for evaluating dg/ds
Real probability (const Real &beta, bool cdf_flag)
 Convert beta to a probability using either a first-order or second-order integration.
Real reliability (const Real &p, bool cdf_flag)
 Convert probability to beta using the inverse of a first-order or second-order integration.
bool reliability_residual (const Real &p, const Real &beta, const RealVector &kappa, Real &res)
 compute the residual for inversion of second-order probability corrections using Newton's method (called by reliability(p))
Real reliability_residual_derivative (const Real &p, const Real &beta, const RealVector &kappa)
 compute the residual derivative for inversion of second-order probability corrections using Newton's method (called by reliability(p))
void principal_curvatures ()
 Compute the kappaU vector of principal curvatures from fnHessU.

Private Attributes

RealVector meanStats
 means of response functions (calculated in initial_taylor_series())
RealVector stdDevStats
 std deviations of response functions (calculated in initial_taylor_series())
RealVector fnGradX
 actual x-space gradient for current function from most recent response evaluation
RealVector fnGradU
 u-space gradient for current function updated from fnGradX and Jacobian dx/du
RealSymMatrix fnHessX
 actual x-space Hessian for current function from most recent response evaluation
RealSymMatrix fnHessU
 u-space Hessian for current function updated from fnHessX and Jacobian dx/du
RealVector kappaU
 principal curvatures derived from eigenvalues of orthonormal transformation of fnHessU
RealVector fnValsMeanX
 response function values evaluated at mean x
RealMatrix fnGradsMeanX
 response function gradients evaluated at mean x
RealSymMatrixArray fnHessiansMeanX
 response function Hessians evaluated at mean x
RealVector ranVarMeansU
 vector of means for all uncertain random variables in u-space
RealVector initialPtU
 initial guess for MPP search in u-space
RealVector mostProbPointX
 location of MPP in x-space
RealVector mostProbPointU
 location of MPP in u-space
RealVectorArray prevMPPULev0
 array of converged MPP's in u-space for level 0. Used for warm-starting initialPtU within RBDO.
RealMatrix prevFnGradDLev0
 matrix of limit state sensitivities w.r.t. inactive/design variables for level 0. Used for warm-starting initialPtU within RBDO.
RealMatrix prevFnGradULev0
 matrix of limit state sensitivities w.r.t. active/uncertain variables for level 0. Used for warm-starting initialPtU within RBDO.
RealVector prevICVars
 previous design vector. Used for warm-starting initialPtU within RBDO.
ShortArray prevCumASVLev0
 accumulation (using |=) of all previous design ASV's from requested finalStatistics. Used to detect availability of prevFnGradDLev0 data for warm-starting initialPtU within RBDO.
bool npsolFlag
 flag representing the optimization MPP search algorithm selection (NPSOL SQP or OPT++ NIP)
bool warmStartFlag
 flag indicating the use of warm starts
bool nipModeOverrideFlag
 flag indicating the use of move overrides within OPT++ NIP
bool curvatureDataAvailable
 flag indicating that sufficient data (i.e., fnGradU, fnHessU, mostProbPointU) is available for computing principal curvatures
short integrationOrder
 integration order (1 or 2) provided by integration specification
short secondOrderIntType
 type of second-order integration: Breitung, Hohenbichler-Rackwitz, or Hong
Real curvatureThresh
 cut-off value for 1/sqrt() term in second-order probability corrections.
short taylorOrder
 order of Taylor series approximations (1 or 2) in MV/AMV/AMV+ derived from hessianType
RealMatrix impFactor
 importance factors predicted by MV
int npsolDerivLevel
 derivative level for NPSOL executions (1 = analytic grads of objective fn, 2 = analytic grads of constraints, 3 = analytic grads of both).
unsigned short warningBits
 set of warnings accumulated during execution

Detailed Description

Class for the reliability methods within DAKOTA/UQ.

The NonDLocalReliability class implements the following reliability methods through the support of different limit state approximation and integration options: mean value (MVFOSM/MVSOSM), advanced mean value method (AMV, AMV^2) in x- or u-space, iterated advanced mean value method (AMV+, AMV^2+) in x- or u-space, two-point adaptive nonlinearity approximation (TANA) in x- or u-space, first order reliability method (FORM), and second order reliability method (SORM). All options except mean value employ an optimizer (currently NPSOL SQP or OPT++ NIP) to solve an equality-constrained optimization problem for the most probable point (MPP). The MPP search may be formulated as the reliability index approach (RIA) for mapping response levels to reliabilities/probabilities or as the performance measure approach (PMA) for performing the inverse mapping of reliability/probability levels to response levels.


Member Function Documentation

void initial_taylor_series ( ) [private]
void initialize_class_data ( ) [private]
void initialize_level_data ( ) [private]

convenience function for initializing/warm starting MPP search data for each response function prior to level 0

For a particular response function prior to the first z/p/beta level, initialize/warm-start optimizer initial guess (initialPtU), expansion point (mostProbPointX/U), and associated response data (computedRespLevel, fnGradX/U, and fnHessX/U).

References Iterator::activeSet, NonDLocalReliability::assign_mean_data(), Model::component_parallel_mode(), Model::compute_response(), NonDReliability::computedRespLevel, Model::continuous_variable_ids(), Model::continuous_variables(), Dakota::copy_data(), Model::current_response(), NonDLocalReliability::curvatureDataAvailable, NonDLocalReliability::fnGradU, NonDLocalReliability::fnGradX, NonDLocalReliability::fnHessU, NonDLocalReliability::fnHessX, Response::function_gradient_copy(), Response::function_hessian(), Response::function_value(), Model::inactive_continuous_variables(), NonDLocalReliability::initialPtU, Iterator::iteratedModel, NonDLocalReliability::mostProbPointU, NonDLocalReliability::mostProbPointX, NonDReliability::mppSearchType, NonD::natafTransform, NonDReliability::numRelAnalyses, NonD::numUncertainVars, NonDLocalReliability::prevCumASVLev0, NonDLocalReliability::prevFnGradDLev0, NonDLocalReliability::prevFnGradULev0, NonDLocalReliability::prevICVars, NonDLocalReliability::prevMPPULev0, ActiveSet::request_value(), ActiveSet::request_values(), NonD::requestedRespLevels, NonDReliability::respFnCount, Iterator::subIteratorFlag, Model::surrogate_function_indices(), NonDLocalReliability::taylorOrder, NonDLocalReliability::update_limit_state_surrogate(), NonDReliability::uSpaceModel, and NonDLocalReliability::warmStartFlag.

Referenced by NonDLocalReliability::mpp_search().

void initialize_mpp_search_data ( ) [private]

convenience function for initializing/warm starting MPP search data for each z/p/beta level for each response function

For a particular response function at a particular z/p/beta level, warm-start or reset the optimizer initial guess (initialPtU), expansion point (mostProbPointX/U), and associated response data (computedRespLevel, fnGradX/U, and fnHessX/U).

References NonDLocalReliability::assign_mean_data(), NonD::cdfFlag, NonD::computedRelLevels, NonDLocalReliability::fnGradU, NonDLocalReliability::initialPtU, NonDReliability::levelCount, NonDLocalReliability::mostProbPointU, NonDReliability::mppSearchType, NonD::numUncertainVars, NonDReliability::requestedCDFRelLevel, NonDReliability::requestedRespLevel, NonD::requestedRespLevels, NonDReliability::respFnCount, and NonDLocalReliability::warmStartFlag.

Referenced by NonDLocalReliability::mpp_search().

void update_mpp_search_data ( const Variables vars_star,
const Response resp_star 
) [private]

convenience function for updating MPP search data for each z/p/beta level for each response function

Includes case-specific logic for updating MPP search data for the AMV/AMV+/TANA/NO_APPROX methods.

References Response::active_set(), Response::active_set_request_vector(), Iterator::activeSet, NonDReliability::approxConverged, NonDReliability::approxIters, NonD::cdfFlag, Model::component_parallel_mode(), Model::compute_response(), NonDReliability::computedRelLevel, NonDReliability::computedRespLevel, Model::continuous_variable_ids(), Variables::continuous_variables(), Model::continuous_variables(), Iterator::convergenceTol, Variables::copy(), Dakota::copy_data(), Model::current_response(), Model::current_variables(), NonDLocalReliability::curvatureDataAvailable, Dakota::data_pairs, NonD::finalStatistics, NonDLocalReliability::fnGradU, NonDLocalReliability::fnGradX, NonDLocalReliability::fnHessU, NonDLocalReliability::fnHessX, Response::function_gradient_copy(), Response::function_hessian(), Response::function_hessians(), Response::function_value(), Response::function_values(), NonDLocalReliability::initialPtU, NonDLocalReliability::integrationOrder, Model::interface_id(), Iterator::iteratedModel, NonDReliability::levelCount, Dakota::lookup_by_val(), Iterator::maxIterations, NonDLocalReliability::mostProbPointU, NonDLocalReliability::mostProbPointX, NonDReliability::mppSearchType, NonD::natafTransform, Iterator::numFunctions, NonD::numNormalVars, NonD::numUncertainVars, NonDLocalReliability::reliability(), ActiveSet::request_value(), ActiveSet::request_values(), ActiveSet::request_vector(), NonDReliability::requestedCDFProbLevel, NonDReliability::requestedCDFRelLevel, NonD::requestedProbLevels, NonD::requestedRelLevels, NonDReliability::requestedRespLevel, NonD::requestedRespLevels, NonDReliability::respFnCount, NonDReliability::statCount, NonDLocalReliability::taylorOrder, NonDLocalReliability::update_limit_state_surrogate(), NonDReliability::uSpaceModel, NonDLocalReliability::warmStartFlag, and NonDLocalReliability::warningBits.

Referenced by NonDLocalReliability::mpp_search().

void update_level_data ( ) [private]

convenience function for updating z/p/beta level data and final statistics following MPP convergence

Updates computedRespLevels/computedProbLevels/computedRelLevels, finalStatistics, warm start, and graphics data.

References Dakota::abort_handler(), Response::active_set_derivative_vector(), Response::active_set_request_vector(), Graphics::add_datapoint(), NonD::cdfFlag, NonD::computedGenRelLevels, NonD::computedProbLevels, NonDReliability::computedRelLevel, NonD::computedRelLevels, NonDReliability::computedRespLevel, NonD::computedRespLevels, NonDLocalReliability::curvatureThresh, Dakota::dakota_graphics, NonDLocalReliability::dg_ds_eval(), NonD::finalStatistics, NonDLocalReliability::fnGradU, NonDLocalReliability::fnGradX, Response::function_gradient(), Response::function_value(), NonDLocalReliability::integrationOrder, NonDLocalReliability::kappaU, NonDReliability::levelCount, NonDLocalReliability::mostProbPointU, NonDLocalReliability::mostProbPointX, Graphics::new_dataset(), Iterator::numFunctions, NonD::numUncertainVars, NonDLocalReliability::prevCumASVLev0, NonDLocalReliability::prevFnGradDLev0, NonDLocalReliability::prevFnGradULev0, NonDLocalReliability::prevMPPULev0, NonDLocalReliability::probability(), NonD::requestedGenRelLevels, NonD::requestedProbLevels, NonD::requestedRelLevels, NonD::requestedRespLevels, NonDReliability::respFnCount, NonD::respLevelTarget, NonDLocalReliability::secondOrderIntType, NonDReliability::statCount, Iterator::subIteratorFlag, NonDLocalReliability::warmStartFlag, and NonDLocalReliability::warningBits.

Referenced by NonDLocalReliability::mpp_search().

void update_pma_reliability_level ( ) [private, virtual]
void dg_ds_eval ( const RealVector &  x_vars,
const RealVector &  fn_grad_x,
RealVector &  final_stat_grad 
) [private]
Real probability ( const Real &  beta,
bool  cdf_flag 
) [private]

Convert beta to a probability using either a first-order or second-order integration.

Converts beta into a probability using either first-order (FORM) or second-order (SORM) integration. The SORM calculation first calculates the principal curvatures at the MPP (using the approach in Ch. 8 of Haldar & Mahadevan), and then applies correction formulations from the literature (Breitung, Hohenbichler-Rackwitz, or Hong).

References NonDLocalReliability::curvatureDataAvailable, NonDLocalReliability::curvatureThresh, NonDAdaptImpSampling::get_probability(), NonDReliability::importanceSampler, NonDAdaptImpSampling::initialize(), NonDLocalReliability::integrationOrder, NonDReliability::integrationRefinement, Iterator::iterator_rep(), NonDLocalReliability::kappaU, NonDLocalReliability::mostProbPointU, NonD::numUncertainVars, NonDLocalReliability::principal_curvatures(), NonDReliability::requestedRespLevel, NonDReliability::respFnCount, Iterator::run_iterator(), NonDLocalReliability::secondOrderIntType, and NonDLocalReliability::warningBits.

Referenced by NonDLocalReliability::mean_value(), and NonDLocalReliability::update_level_data().

Real reliability ( const Real &  p,
bool  cdf_flag 
) [private]

The documentation for this class was generated from the following files: