STRUCTURAL SAFETY Structural Safety 28 (2006) 44–67 www.elsevier.com/locate/strusafe Structural reliability software at the University of California, Berkeley A. Der Kiureghian a a,* , T. Haukaas b, K. Fujimura a Department of Civil and Environmental Engineering, University of California, Berkeley, 721 Davis Hall, Berkeley, CA 94720, United States b University of British Columbia, Vancouver, BC, Canada V6T 1Z4 Available online 14 April 2005 Abstract The paper provides an overview of three software for structural reliability analysis developed at the University of California, Berkeley. These are CalREL, which is a general-purpose structural reliability code written in FORTRAN; FERUM, which is a collection of Matlab files that can be used for structural reliability analysis in conjunction with simple finite element models; and OpenSees, which is an object-oriented code for nonlinear structural response simulation with reliability capabilities. Reliability analysis methods featured by these software include FORM, SORM, Monte Carlo simulation, and various importance sampling methods. In addition, variable importance and sensitivity measures are provided. 2005 Elsevier Ltd. All rights reserved. Keywords: Computer code; Finite element; FORM; Probabilistic methods; Reliability analysis; Reliability software; Sampling; Sensitivity; Simulation; SORM 1. Introduction Starting in early 1980s, under the leadership of the first author, efforts were made at the University of California at Berkeley to develop computer codes for structural reliability analysis * Corresponding author. Tel.: +1 510 642 2469; fax: +1 510 643 8928. E-mail address: adk@ce.berkeley.edu (A. Der Kiureghian). 0167-4730/$ - see front matter 2005 Elsevier Ltd. All rights reserved. doi:10.1016/j.strusafe.2005.03.002 A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 45 for teaching, research and engineering practice. The result has been three codes: CalREL – a FORTRAN code for general-purpose structural reliability analysis; FERUM (Finite-Element Reliability Using Matlab) – an open-source Matlab toolbox for structural reliability analysis in conjunction with simple finite element models; and reliability modules in OpenSees (Open System for earthquake engineering simulation), allowing reliability analysis in conjunction with static and dynamic nonlinear finite element response analysis. OpenSees, which is an open-source, object-oriented general-purpose code written in C++ and specifically developed for earthquake engineering analysis, is the official simulation platform of the Pacific Earthquake Engineering Research (PEER) Center [30]. Recently, it has also been adopted as the simulation platform of NEES, the NSF-sponsored George E. Brown Jr. Network for Earthquake Engineering Simulation. All three codes have been developed as part of doctoral students research. As a result, these software are continuously evolving and expanding and are suitable for research, but they lack fancy user interfaces typical of commercial software. While FERUM and OpenSees are freely downloadable from the web, CalREL is made available through UC Berkeley for a modest license fee. As a contribution to this special issue on structural reliability software, this paper aims at describing the objectives, architecture, features and methods of analysis employed in each of the above computer codes. Brief technical descriptions are presented of the reliability formulation and solution methods implemented in CalREL. This code has served as the model for FERUM and OpenSees from a technical standpoint, so that these descriptions for the most part also apply to the latter codes. However, as will be described, the intended objectives and architectures of these three codes are entirely different. In describing OpenSees, more emphasis is placed on the software architecture, since that aspect of this code is rather unique among known structural reliability software. Example applications demonstrating various features of CalREL and OpenSees are presented. 2. CalREL CalREL was initially developed by Liu et al. [26] as a general-purpose structural reliability code for the purposes of teaching, research and engineering practice. Significant extensions to the initial code were made by Y. Zhang and K. Fujimura. Over the years, the code has evolved into a powerful tool for structural reliability analysis with a large collection of alternative analysis methods and computational algorithms. As just mentioned, this program served as the model for the later development of FERUM and OpenSees. Therefore, much of the technical description in this section also applies to the latter two codes. 2.1. Problem definition CalREL solves general structural system reliability problems of the form " ( )# K [ \ ; gi ðx; hg Þ 6 0 pf ¼ P k¼1 i2C k ð1Þ 46 A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 where pf is the ‘‘failure’’ probability of interest, x denotes a vector of random variables having a specified probability distribution f(x, hf), where hf is a vector of distribution parameters, gi(x, hg) is a continuous and differentiable limit-state function defining the state of the ith component of the system such that gi 6 0 denotes the failure of the component, hg denotes a vector of limit-state-function parameters, Ck, k = 1, . . ., K, is the kth cut set of the system, defining a set of indices of components whose joint failures constitutes the failure of the system, and K is the number of cut sets. Three classes of problems are recognized in CalREL: (a) component-reliability problems defined by a single cut set containing a single component (i.e., without the intersection and union operators in (1)), (b) series-system reliability problems, where the cut sets contain single components (i.e., without the intersection operator in (1)), and (c) general-system reliability problems as defined in (1). Naturally, more analysis options are available in CalREL for component and series system problems than for general system problems. The user defines the reliability problem by specifying the limit-state functions gi(x, hg) for all components, the probability distribution f(x, hf) for x, and the cut sets Ck, k = 1, . . ., K. Each of these elements are described in the following subsections. It is noted that CalREL uses dynamic memory allocation. All variables are internally stored in a single vector. As a result, no limitation exists on the number of random variables, parameters, limit-state functions or cut sets. The only controlling variable is the size of that one vector, which can be made as large as the specific computer can accommodate. 2.1.1. Definition of limit-state functions The limit-state functions are defined in a user-provided subroutine, which itself can call other subroutines or even subprograms to compute the function values for given x. The user-defined subroutine(s) or subprograms must be compiled and linked with the main body of the code to produce an executable version of CalREL specialized for the specific problem of interest. Over time, a user can develop an executable code that incorporates a library of limit-state functions, which can be used selectively to solve a variety of problems. The limit-state functions need not be algebraic functions of x, as long as they are continuous and differentiable with respect to x. For example, a limit-state function may involve response quantities from a finite-element model, which are implicit functions of x. In that case, the finite-element program must be made a subprogram under the user-provided subroutine to compute the limit-state functions. Such merging of CalREL with problem-specific application programs has been conducted by a number of investigators, including Liu and Der Kiureghian [25] and Der Kiureghian and Zhang [11] for nonlinear mechanics problems, Sitar et al. [35] for ground water flow problems, Jang et al. [19] for contaminant transport problems, and Chua et al. [6] for asphalt pavement problems. In such applications, access to the source of the application code is necessary. If this is not possible, communication through an external device (i.e., writing/reading data on a disk) may be used. However, the latter option significantly slows down the computation. The parameters hg in the limit-state functions can of course be hard-coded, i.e., their numerical values can be directly entered in the user-defined code. However, it is generally a better practice to define these as parameters and specify their numerical values through the input file. For such parameters, CalREL provides options for sensitivity and parametric importance analysis, as described in Section 2.4. A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 47 Certain reliability methods used by CalREL employ the gradient vector of each limit-state function with respect to x. CalREL provides two options for this purpose: either the user provides the needed derivatives in a subroutine, or the code internally computes the derivatives by use of finite differences. The former option is preferred when calculation of derivatives by finite differences is costly or inaccurate and efficient algorithms for exact differentiation are available. This approach has been used in the applications by Liu and Der Kiureghian [25] and Der Kiureghian and Zhang [11], where the direct differentiation method (DDM) (see [39]) has been implemented in the finite element code FEAP [41] and coupled with CalREL. The DDM approach is also implemented in FERUM and OpenSees, as described below. 2.1.2. Definition of probability distributions CalREL has a rich library of probability distribution models. The library distributions can be used either as marginal or as conditional distributions. Distributions not available in the library can be provided through a user-defined subroutine. These distributions allow specification of three types of random variables: (a) statistically independent random variables, (b) dependent random variables having the Nataf joint distribution [23], and (c) dependent random variables defined in terms of conditional distributions. The formulations for the latter two cases are briefly described below. For a set of random variables x = (x1, . . ., xn) having marginal cumulative distribution functions (CDFs) Fi(xi), i = 1, . . ., n, and correlation coefficients qij, i, j = 1, . . ., n, the Nataf joint distribution is defined such that the marginally transformed random variables zi = U1[Fi(xi)], i = 1, . . ., n, where U1[Æ] is the inverse of the standard normal CDF, have the joint normal distribution. The relation between the correlation coefficients q0,ij of zi and zj and the correlation coefficient qij of the original random variables xi and xj is [23] Z 1 Z 1 xj lj x i li ð2Þ u2 zi ; zj ; q0;ij dzi dzj ; qij ¼ ri rj 1 1 where li and ri are the mean and standard deviation of xi , respectively, and u2(Æ, Æ, q) is the bivariate standard normal probability density function (PDF) with correlation coefficient q. In selecting this distribution, the user only needs to specify the marginal distributions Fi(xi) and the correlation coefficients qij. Relations expressing q0,ij in terms of qij and the corresponding marginal distributions, originally developed in Liu and Der Kiureghian [23], are coded for all library distributions. For user-defined distributions, CalREL expects the user to provide the correlation coefficient q0,ij in place of qij. This value can be obtained by iteratively solving for q0,ij in (2) external to the program. The joint PDF of a set of random variables in general can be written in the form f ðxÞ ¼ fn ðxn jx1 ; . . . ; xn1 Þfn1 ðxn1 jx1 ; . . . ; xn2 Þ f2 ðx2 jx1 Þf1 ðx1 Þ; ð3Þ where fi(xi|x1, . . ., xi 1) is the conditional PDF of xi for the given values of x1, . . ., xi 1. This form is used in CalREL to specify dependent random variables having a distribution other than Nataf. The user first defines random variable x1 through its marginal distribution f1(x1). Next, the conditional distribution f2(x2|x1) is defined, where the parameters can be functions of x1. This is followed by the definition of the conditional distribution f3(x3|x1, x2), where the parameters can now be functions of x1 and x2. This process is continued until all random variables in the 48 A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 group have been defined. Each of the conditional distributions fi(xi|x1, . . ., xi 1) can be a library distribution or a user-defined distribution. When using library distributions, the distribution parameters can be as any of the previously defined random variables in the group. 2.1.3. Definition of cut sets For general system problems, the user must define the set of components in each cut set. This is done by providing a string of integers, separated by zeros, that define the component indices within each cut set. Thus, the string of numbers 1 4 6 0 3 – 5 8 7 0 1 9 0 defines a general system with three cut sets. The first cut set contains the components 1, 4 and 6, the second cut set contains the components 3, 8, 7 and the complement of component 5, and the third cut set contains components 1 and 9. By ‘‘the complement of component 5’’ we mean a component that has the limit-state function g5(x, hg). This feature is useful in defining general systems, since often complementary component events appear in the cut sets. The user may use minimal, disjoint or other types of cut sets. For component reliability problems, the user only needs to define the identification number(s) of the component(s) of interest. A series system problem can be defined as a general system with single-component cut sets. However, it is better to define such a problem through the ‘‘series-system’’ class of CalREL, since more analysis options are available for this class than for general systems. 2.2. Transformation to standard normal space All reliability methods employed in CalREL (including simulation) perform computations in a transformed space of standard normal random variables. These variables, denoted u = (u1, . . ., un), are obtained by a triangular transformation of the form ui ¼ T i ðx1 ; . . . ; xi Þ; i ¼ 1; . . . ; n: ð4Þ For statistically independent random variables, this transformation is actually diagonal and has the elements ui = U1[Fi(xi)]. For Nataf-distributed random variables, the transformation has the form u ¼ L1 0 z, where z = (z1, . . ., zn) are the marginally transformed variables defined earlier and L0 is the Choleski decomposition of the correlation matrix R0 having the elements q0,ij. For random variables defined by conditional distributions, the well-known Rosenblatt transformation [16] is used. For each of these transformations, CalREL includes a Newton-type algorithm for computing the inverse, which takes advantage of the triangular form of the transformation. Calculations are performed from top to bottom, involving one unknown in each nonlinear equation. The Jacobian of the transformation, which is also needed in certain reliability methods, is hardcoded in CalREL for library distributions and computed by finite differences for user-defined distributions. Note that the Jacobian is also triangular. As a result, its inverse, which is also required, is easily computed. 2.3. Analysis methods CalREL incorporates several methods and algorithms for reliability analysis of structural components and systems. These include the first-order reliability method (FORM), the second-order A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 49 reliability method (SORM), importance sampling (IM), directional simulation (DS), orthogonalplane sampling (OPS) and Monte Carlo simulation (MCS). These and other available methods are briefly described below. 2.3.1. FORM As is well known [13], FORM employs a linearization of each limit-state function at the socalled design point, which is the point on the limit-state surface nearest to the origin in the standard normal space. For a limit-state function g(x) (dropping the index and the parameters hg for ease of notation), the design point is obtained by solving the constrained optimization problem u ¼ arg min fkukjGðuÞ ¼ 0g; ð5Þ 1 where G(u) = g(T (u)) is the limit-state function in the transformed standard normal space. CalREL offers six alternative algorithms for solving this problem: The original HLRF algorithm as developed by Hasofer and Lind [14] and extended by Rackwitz and Fiessler [32] for nonnormal random variables, the modified HLRF algorithm developed by Liu and Der Kiureghian [24], the improved HLRF algorithm developed by Zhang and Der Kiureghian [40], the gradient projection method [27], the sequential quadratic programming method [33], and the Polak and He [31] algorithm. All these algorithms employ an iterative scheme of the form urþ1 ¼ ur þ kr dr r ¼ 0; 1; . . . ; ð6Þ where dr is a search direction vector and kr is a step size. The step size is selected by minimizing the value of a ‘‘merit’’ function m(u) along the search direction. In CalREL, the Armijo rule is employed for this purpose [27]. The difference between the various algorithms is in the selection of the search direction and the merit function. A common feature among all the algorithms is that they use the gradient vector $G of the limit-state function to define the search direction. Thus, the solution of (5) essentially requires repeated computations of the limit-state function and its gradient. In our experience, the improved HLRF algorithm and the Polak-He algorithm perform best for solving problem (5). Once the design point u* is obtained, the reliability index for the component is computed as b = au*, where a = $G/i$Gi is the normalized negative gradient vector at the design point. The first-order approximation of the failure probability is given by pf1 = U(b). For a series system, CalREL linearizes each component limit-state function at its design point and determines the corresponding reliability index, bi, and the normalized negative gradient vector, ai. The correlation coefficient between the linearized limit-states is given by qij = ai Æ aj. The formula pseries,1 = 1Un(B, R), derived by Hohenbichler and Rackwitz [17], is then used to compute the first-order approximation of the failure probability, where Un is the n-variate correlated standard normal CDF having the arguments B = (b1, . . ., bK) and the correlation matrix R = [qij]. CalREL uses an efficient simulation method developed by Au and Beck [3] to compute this multinormal probability function for series systems. A second alternative implemented in CalREL for computing the reliability of series systems is the bounds by Ditlevsen [12]. This alternative makes use of the bi-variate normal CDF U2(bi, bj, qij), for which a single-fold integral formula is implemented. For parallel systems, CalREL has two options for linearizing the limit-state surface. In one option, the surfaces are linearized at the individual design points as defined by (5). In the second 50 A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 option, the joint design point associated with the individually linearized surfaces is first found, and then each limit-state function is linearized at that point. After determining the reliability index, bi, and the normalized negative gradient vector, ai, for each linearized limit-state function, the firstorder approximation to the parallel system probability is computed by using the formula pparallel,1 = Un(B, R) due to Hohenbichler and Rackwitz [17], where Un, B and R are as defined earlier. The multi-normal CDF in this case is computed by the sequential conditioned importance sampling method developed by Ambartzumian et al. [1]. Three options are available for general systems. In one, the probability in (1) is expanded by use of the well-known inclusion–exclusion rule and written in terms of a sum of probabilities of intersection events. Each term in the sum is then computed as a parallel-system problem. This approach is practical when the number of cut sets is not too large. The second alternative is to compute Ditlevsen-type bounds on the general system probability. This involves computing the probabilities of the individual cut sets and their pair wise intersections. These are again computed as parallel system problems. The third option makes use of linear programming to compute bounds on the system probability in terms of marginal and joint component probabilities. The details of the latter method are presented in Song and Der Kiureghian [36]. 2.3.2. SORM CalREL incorporates two distinct methods for second-order reliability analysis. In one method, the limit-state surface is approximated by a paraboloid surface with its principal curvatures fitted to the principal curvatures of the limit-state surface at the design point. Two algorithms are available for determining the principal curvatures and the corresponding principal directions of the limit-state surface at the design point. One algorithm determines the principal curvatures (eigenvalues) and the principal directions (eigenvectors) by solving an eigenvalue problem involving the Hessian (second-derivative matrix) of the limit-state surface. The Hessian is computed by finitedifference calculations in the standard normal space. Another algorithm computes the principal curvatures in the order of decreasing magnitude by iterative calculations in the course of finding the design point by the improved HLRF algorithm (see [9]). This approach is advantageous for reliability problems with large number of random variables, since calculations can be stopped when the magnitude of the last curvature found is sufficiently small. Once the principal curvatures are determined, the asymptotic formula by Breitung [5] or the exact formula by Tvedt [37] is used to compute the probability content of the fitted paraboloid as the SORM approximation, pf2, of the failure probability for each component. The curvature-fitting SORM approximation is applicable when the limit-state function is twice differentiable and the second derivatives can be easily and accurately computed. When the limitstate function involves numerical computations that are subject to truncation or other errors (e.g., finite element computations), the resulting noise makes the computation of curvatures problematic. For such problems, CalREL has a point-fitting SORM approximation. In this method the limit-state function is approximated by a piecewise paraboloid surface, which is tangent to the limit-state surface at the design point and coincides with the limit-state surface at two points on each axis selected on both sides of the origin. The SORM approximation of the failure probability is again computed by the Breitung or Tvedt formulas. The details of the method can be found in Der Kiureghian et al. [10] and Araya and Der Kiureghian [2]. This approach is advantageous when the computation of curvatures is problematic, or when the problem has a large A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 51 number of random variables. For the vast majority of problems we have studied, the results obtained by the two SORM approximations have been in close agreement. For system problems, one SORM option available in CalREL is to replace each component limit-state surface by an approximating piecewise paraboloid surface, and then use a directional simulation method to compute the system probability. This is further described in the following section. 2.3.3. Sampling methods CalREL incorporates four different methods for probability computation by random sampling. The most basic method is MCS. The probability in (1) is computed by randomly sampling standard normal random variables uj, j = 1, . . ., N, transforming them to the original space, xj = T1(uj), and computing the mean and standard deviation of the sample values qj = I(uj), The sample where I(uj) = 1 if xj is in the failure domain and I(uj) = 0 if xj is in the safe domain. pffiffiffiffi mean q provides an estimate of the failure probability and the quantity dq = N , where dq is the computed coefficient of variation (c.o.v.) of the sample, provides the c.o.v. of the probability estimate as a measure of accuracy of the estimate. The user specifies a maximum value for N and a minimum value for dq. The simulation is terminated whenever either of these limits is reached. The user has the option of providing a seed for the random number generator. This is useful when it is desired to use the same sequence of random numbers in order to compare results obtained for different methods or problem formulations. The MCS method is applicable to all component and system problems. However, the number of needed simulations rapidly grows with decreasing probability. Therefore, this method is not effective for small-probability problems. In the importance sampling (IS) method, a distribution other than standard normal is used to generate the sample values uj, j = 1, . . ., N. Specifically, the distribution hðuÞ ¼ m X wi uðu ui Þ; ð7Þ i¼1 suggested by Schuëller and Stix [34] and Melchers [28] is used, where wi are a set of weights and uðu ui Þ is the standard normal PDF centered at the ith design point. The only other difference is that the sample values qj are now computed as qj = I(uj)u(uj)/h(uj). For component and series system problems, the design points are as obtained for each limit-state function from (5). For parallel and general systems, the design points are obtained at the intersection of linearized limit state surfaces by solving an optimization problem with multiple linear constraints. The IS method is most effective for component and series-system problems, regardless of the magnitude of the failure probability. It may be less effective for parallel or general system problems when the failure domain appears as a narrow wedge. In the DS method (see, e.g. [4]), a sequence of random direction vectors aj = uj/iuji, j = 1, . . ., N, is simulated and the sample values are computed as qj ¼ 1 v2n ðr2j Þ, where v2n ðÞ is the chi-square CDF with n degrees of freedom and rj is the distance from the origin to the system failure surface computed by solving ð8Þ rj ¼ min max rjGi ðraj Þ ¼ 0 : k i2C k 52 A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 A root-finding method by bi-section is used to solve the above problem. Two options are available in CalREL for this type of analysis. In one option the roots are solved with the original limit-state functions. In a simpler and faster approach, the limit-state surfaces are replaced by their first(hyperplane) or second-order (piecewise paraboloid) approximations, for which closed-form solutions of the roots are available [22]. In this way, an approximate estimate of the system failure probability is obtained without additional computations of the limit-state functions. The DS method is most effective for component and series system problems, regardless of the magnitude of the failure probability. However, it tends to slow down with increasing number of random variables (dimension of the space). In the OPS method [18], the simulation is conducted in a plane orthogonal to the normalized negative gradient vector a of a design point. For each simulated point in the orthogonal plane, the distance hj from the plane to the limit-state surface in a direction parallel to a is computed by a root-finding scheme. The estimation is then performed in the manner described above with the sample values computed as qj = U(hj). The OPS method is effective for component problems and certain parallel system problems, particularly when the failure domain appears as a narrow wedge orthogonal to the a vector. This kind of parallel system problem arises when computing the mean up-crossing rate in random vibration analysis. 2.4. Sensitivity and importance measures Upon request, CalREL computes the sensitivities (partial derivatives) of the FORM approximation of each component reliability with respect to the distribution parameters, hf, and limitstate function parameters, hg. These are computed by use of well-known reliability sensitivity formulas (see [13]). These sensitivity measures can be used in a variety of ways, including parameter uncertainty analysis, optimal design, identification of important parameters, and reliability updating. As a part of its standard output, CalREL lists four sets of importance vectors for the random variables. The first vector is a. As shown in Der Kiureghian [8], the elements of this vector represent contributions by the standard normal random variables ui, i = 1, . . ., n, to the total variance of the limit-state function linearized at the design point. In this sense, the elements of a provide relative measures of importance of the elements of u. The second importance vector produced by CalREL is the unit vector c, which, in analogy to a, represents the relative contributions of the original random variables xi, i = 1, . . ., n, to the total variance of the linearized limit-state function. As shown in Der Kiureghian [8], c coincides with a when the random variables x are statistically independent. The third importance vector is d = $MbD, where $Mb is the gradient row vector of the reliability index with respect to the mean values of the random variables x with the standard deviations fixed, and D is the diagonal matrix of the standard deviations. The product produces a dimensionless vector whose elements are the sensitivities of b with respect to the mean values, scaled by the corresponding standard deviations. The scaling is intended not only to make the importance vector dimensionless, but also to make the variations in the mean values proportional to the uncertainty present in each random variable. The fourth and final importance vector is g = $DbD, where $Db denotes the gradient row vector of the reliability index with respect to the standard deviations of the random variables x with the mean values fixed. While d conveys the relative importance of the random variables with respect to variations in their mean values, A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 53 g indicates their relative importances with respect to variations in their standard deviations. We have found the importance vectors c, d and g to be invaluable in gaining insight into the physics of a reliability problem. 2.5. Example application As mentioned earlier, CalREL has no limitation (other than the capacity of the computer used) on the number of input random variables, parameters, limit-state functions and cut sets. An example with a large number of these quantities could be given here. Instead, we have selected a simple example taken from Der Kiureghian [8], which well illustrates the system reliability capabilities in CalREL as well as the idea of reliability updating. More elaborate examples involving implicit limit-state functions can be found in several of the references mentioned earlier. Consider the one-bay frame in Fig. 1, which has ductile members and is subjected to random horizontal and vertical loads h and m. The frame has random plastic moment capacities mi, i = 1, . . ., 5, at the joints shown in the figure. Under the applied loads, this frame may fail in any of the three mechanisms shown in Fig. 1. Using the principle of virtual work, these mechanisms are described by the following limit-state functions: g1 ðxÞ ¼ m1 þ m2 þ m4 þ m5 5h; ð8aÞ g2 ðxÞ ¼ m2 þ 2m3 þ m4 5m; ð8bÞ g3 ðxÞ ¼ m1 þ 2m3 þ 2m4 þ m5 5h 5m; ð8cÞ Fig. 1. Ductile frame and its failure mechanisms. 54 A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 where x = {m1, . . ., m5, h, m}T is the vector of random variables. Table 1 shows the assumed distributions and second moments of the random variables. The reliability of the frame against the formation of a mechanism represents a series system reliability problem with the limit-state functions (8a)–(8c). Using the FORM approximation, we obtain the following bkak values for the three components: b1 a1 ¼ 2:29½0:238 0:174 0:044 0:131 0:112 0:939 0:000; ð9aÞ b2 a2 ¼ 2:87½0:263 0:356 0:425 0:204 0:000 0:000 0:763; ð9bÞ b3 a3 ¼ 2:00½0:313 0:137 0:291 0:240 0:113 0:792 0:317; ð9cÞ Thus, we have B = (2.29, 2.87, 2.00) and q12 = a1 Æ a2 = 0.170, q13 = a1 Æ a3 = 0.899 and q23 = a2 Æ a3 = 0.545, where qij are the elements of the 3 · 3 inter-component correlation matrix R. Using the multinormal probability algorithm, CalREL computes pf1 = 1U3(B, R) = 0.0270. Now suppose the frame has been proof-tested under a horizontal load of h0 = 70 kN and a vertical load of m0 = 72 kN. Since the frame has survived under these loads, we have observed the events: g4 ðxÞ ¼ ðm1 þ m2 þ m4 þ m5 5h0 Þ 6 0; ð10aÞ g5 ðxÞ ¼ ðm2 þ 2m3 þ m4 5m0 Þ 6 0; ð10bÞ g6 ðxÞ ¼ ðm1 þ 2m3 þ 2m4 þ m5 5h0 5m0 Þ 6 0; ð10cÞ where h0 and m0 are deterministic values, as given above. The updated probability of failure of the frame in light of the proof-test result is the conditional probability pfjproof test ¼ P ðC 1 [ C 2 [ C 3 Þ ; P ðC 4 Þ ð11Þ where the index sets for the cut sets Ck, k = 1, . . ., 4, are c1 = (1, 4, 5, 6), c2 = (2, 4, 5, 6), c3 = (3, 4, 5, 6) and c4 = (4, 5, 6), respectively. It is seen that the numerator represents a general system problem, whereas the denominator is a parallel system problem. First-order approximation of the probabilities in (11) yields the updated probability pf1|proof test = 0.0189. In light of the positive Table 1 Description of random variables for frame example Variable Distribution Mean c.o.v. Correlation mi, i = 1, . . ., 5 (kN m) h (kN) m (kN) Joint lognormal Gumbel Gamma 150 50 60 0.2 0.4 0.2 qmi mj ¼ 0:3; i 6¼ j Independent Independent A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 55 proof test observation, this result is smaller than the unconditional failure probability estimated earlier. 3. FERUM The development and maintenance of software such as CalREL and OpenSees require expertise in computer programming. As mentioned earlier, CalREL uses the FORTRAN language, whereas OpenSees uses C++. Neither of these languages are immediately comprehensible for students and researchers without experience in computer programming. Recently, so-called scripting languages have become available to remedy this problem. These programs, such as Matlab, Tcl, and Python, allow the user to give commands in an interactive mode or in a batch mode through an input file. In addition to the advantage of not having to compile an algorithm before executing it (scripting languages compile at run time), the scripting languages usually have simpler syntax rules while retaining features of structured programming, such as ‘‘for’’ and ‘‘while’’ loops and ‘‘if’’ statements. In this section, we briefly present the reliability algorithms in FERUM, which are prepared in the Matlab scripting language. This work has successfully built a developer-friendly computational platform that facilitates learning and collaboration between students and researchers. Many of the algorithms that are implemented in OpenSees were first tested in the FERUM environment. In essence, FERUM is a collection of files that contain commands to perform reliability analysis by FORM, SORM and sampling techniques. The file collection is available at the website http://www.ce.berkeley.edu/FERUM. One feature of FERUM to be noted is the ease by which new algorithms are added to evaluate the limit-state function(s). An interface file named gfun.m is provided to allow the developer to link to separate algorithms that specify the limit-state function, and possibly its gradient vector, for a given realization of the random variables. This is a powerful feature because of (a) the ease with which expressions and algorithms are implemented in Matlab, (b) the strong debugging/error handling capabilities of Matlab, and (c) the abundance of advanced mathematical functions in Matlab. An example of this type of linkage is an interface between FERUM and the nonlinear structural analysis code FEDEAS (http://www.ce.berkeley.edu/~filippou/Research/fedeas.htm) written by Paolo Franchin. This enables the user to specify limit-state functions in terms of response quantities from linear and nonlinear, static and dynamic analysis of buildings and bridges, in a manner similar to that of OpenSees. The second example is a small finite element code with truss, beam and quadrilateral elements, which is provided as part of the FERUM package. This code was established by taking advantage of the powerful matrix analysis capabilities of Matlab, and was readily linked to the reliability analysis module through the gfun.m file. A number of researchers have contributed to further development of FERUM since its initiation by A. Der Kiureghian and T. Haukaas in 1999. These include P. Franchin, A. Hahnel, S. Pakzad, J. Song, and B.Sudret. In particular, the work by J. Song extended the original version with state-of-the-art system reliability analysis options, B. Sudret added random field models and A. Hahnel extended the software with comprehensive SORM analysis capabilities. Naturally, the computational efficiency of FERUM is less than that of CalREL and OpenSees. This is due to the fact that FERUM uses a scripting language and, hence, compiles at run time. 56 A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 However, the ease in using FERUM in a pedagogical context and as a vehicle for collaboration between researchers has proven to counteract this disadvantage. 4. OpenSees An increasingly important objective for the structural reliability community is the incorporation of advanced reliability methods into current engineering practice. One initiative to address this objective is the development of nonlinear finite element reliability methods. Such methods comprise a combination of static and dynamic nonlinear finite element analysis and reliability algorithms, such as FORM, SORM and simulation. To promote the use of reliability methods, it is imperative that these techniques be implemented in modern software packages that are in widespread use. OpenSees fits this description, as it is rapidly gaining ground as a computational platform for nonlinear structural analysis. As mentioned earlier, OpenSees is the computational platform of PEER and NEES. As such, it has a rapidly growing user and developer clientele throughout the world. Several important advantages are offered by OpenSees, which are unique among existing structural reliability codes. These include the open-source nature of the code, its object-oriented software architecture, and its extensive and extensible library of material, section and element objects. Motivation for the development of reliability capabilities in OpenSees is also provided by the observation that software developed within an academic setting are often prone to developer discontinuity, as students graduate and leave to pursue their careers. As a result, the software often lacks proper maintenance and quickly becomes obsolete due to lack of proper documentation and haphazard development. This is particularly the case when a procedural and personalized software design is employed. The end result is a patchwork-type software structure. This is not desirable for several reasons. Such software become increasingly difficult to debug and maintain and extensions can only be added in an ad hoc manner. Furthermore, the cost of climbing the learning curve for new students/developers who wish to utilize or further develop the software tends to become discouragingly high with time. This adversely affects motivation and frequently leads to a decision to abandon the existing software. These time- and resource-costly development cycles are not desirable. These problems are remedied by the software architecture enabled by the object-oriented programming approach. In this section, we first describe the fundamental concepts of object-oriented programming and the reliability implementations in OpenSees. An important part of the implementations is the extension of the core finite element code with response sensitivity capabilities. Next, we provide an overview of the analysis features that are currently available, and describe how to make use of them through the so-called Tcl interface of OpenSees. The section concludes with an example to demonstrate nonlinear finite element reliability analysis of a highway bridge. Readers are referred to Haukaas and Der Kiureghian [15] and the website http://opensees.berkeley.edu for further details regarding this example and the reliability implementations in OpenSees. 4.1. Object-oriented software library for reliability analysis The introduction of object-oriented programming has transformed modern software development. A key element in this transformation is the notion of standardized, interchangeable A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 57 software components. In object-oriented programming, these components are called objects or, abstractly, classes. Objects are created at run-time based on specifications made by the developer in the corresponding classes. Each class, and hence object, generally contains both member functions and member data. In object-oriented programming, increased emphasis is placed on the planning and design phase of the software development. The task at hand is abstracted and separated into logical components. Member functions are designed to handle the interaction between objects and to perform operations on member data. Various design patterns can be employed, depending on the structure of the problem. The reliability implementations in OpenSees are separated into a ‘‘domain’’ and an ‘‘analysis’’ part. The domain consists of classes such as random variables, limit-state functions, and correlation structures. The analysis part is organized into separate analysis tasks, such as computing the step size in the search for the design point and performing probability transformations. We stress the extensibility and maintainability features of this analysis framework: the user can easily change algorithms for each analysis task separately, without modifying the software framework. For instance, the user may wish to investigate the effect of changing the rule that computes the step size in the algorithm for finding the design point. Such changes are accommodated in OpenSees in a straightforward manner. Object-oriented programming is based on several fundamental principles that are independent of language. They represent the means by which real-world procedures are transformed into abstract data types. Of particular interest to the reliability implementations in OpenSees are the principles that allow the creation of a software framework with enhanced extensibility and maintainability. The two principles of inheritance and polymorphism are essential for this objective. The former permits the organization of classes into a framework of base classes and subclasses. The subclasses inherit functionality from their associated base classes. Such a hierarchy can have several levels. This concept is used extensively in the reliability implementations in OpenSees. For instance, the base class GFunEvaluator is part of the framework of reliability analysis tools. It is responsible for obtaining the value(s) of the limit-state function(s). Associated subclasses, such as the OpenSeesGFunEvaluator, extends the capabilities of the base class to handle cases where response quantities from an OpenSees finite element analysis are included in the limit-state function(s). The principle of polymorphism is a powerful concept that further enhances the extensibility of a software framework by allowing ‘‘virtual’’ methods to be created, i.e., methods that merely act as placeholders. Actual implementations are provided by the subclasses. For instance, a base class named ProbabilityTransformation exists in the reliability analysis framework. This class promises features such as transformation to and from the standard normal space and computation of the corresponding Jacobian matrix, but it does not provide any specific implementations. For this reason it is called a virtual base class. Specific implementations are provided in subclasses, such as the NatafProbabilityTransformation class. The principles of object-oriented programming facilitate the abstraction of engineering analysis into a framework of base classes. Such frameworks are easily extended with new subclasses without the need to modify the framework itself. Detailed specification of the member functions and data members of a class is found in the class interface. This information is the key to understanding an object-oriented software framework. At the OpenSees web site, these specifications are provided in separate files with the .h extension. Detailed implementations of the promised features are provided in .cpp files, which are also made freely available. Some of the classes in the reliability 58 A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 framework of OpenSees are briefly mentioned here. Eight global analysis classes are available: FORMAnalysis, SORMAnalysis, SamplingAnalysis, SystemAnalysis, FOSMAnalysis, ParametricReliabilityAnalysis, OutCrossingAnalysis, and GFunVisualizationAnalysis. These are the orchestrating algorithms for the various analysis types. Each analysis type requires certain tasks to be performed, such as evaluating the limit-state function, evaluating its gradient, transforming the vector of random variables between original and standard normal spaces, and selecting search direction vectors and step sizes in the search for the design point. Some tasks are sub-tasks to other tasks. Additional tasks, such as generating random numbers, computing curvatures of the limit-state surface, checking for convergence, and evaluating a merit function are also addressed by the software framework. These and other tasks are identified and abstracted into a framework of interacting base- and sub-classes according to the principles just outlined. The limit-state function(s) is specified by the user in the input file. The expression may include one or more of the random variables defined for the problem, or response quantities from a finite element analysis that are implicit functions of the random variables. Alternatives are available to enable the user to create Tcl or Matlab scripts to evaluate the limit-state function(s). We stress that there is no need to re-compile the code upon specification of the limit-state function, as is the case with most reliability software, including CalREL. The evaluation of the Tcl expressions are automatically handled inside OpenSees. The reliability domain of OpenSees currently can be populated by seven types of domain components: RandomVariable, CorrelationCoefficient, PerformanceFunction (limit-state function), RandomVariablePositioner, Filter, ModulatingFunction, and Spectrum. Some of these classes are virtual base classes which require specific implementation of subclasses. For instance, a library of random variable subclasses is available. These serve as a library of probability distributions for the user to select from. Additional subclasses can be easily added to this library. A disadvantage of the object-oriented programming approach may be a slight increase in the computational overhead; namely, the time spent by the computer on tasks not associated with the finite element or reliability computations but rather with interaction between objects. Studies show that the increase in computational effort with the object-oriented approach, as compared with the common procedural approach, is of the order of 10–15% [29]. It is believed, however, that the time and resources saved in learning, debugging, maintaining, extending and continually using an object-oriented software framework is well worth the possible sacrifice in computational overhead. As a part of implementing reliability modules in OpenSees, significant effort has been devoted to extending the core finite element code with response sensitivity capabilities. Derivatives of finite element response quantities with respect to model parameters are desirable for a number of reasons, including: (1) as indicators of parameter importance, guiding the allocation of resources for gathering information, (2) in assessing the effect of parameter uncertainties on the response, (3) in determining search directions in optimal design and system identification analysis, and (4) for finding the design point for reliability analysis by FORM, SORM and importance sampling. It is essential that such gradients are computed accurately, efficiently and consistent with the approximations inherent in the computation of the response quantities themselves. Response sensitivities of course can be computed by finite differences. However, the requirement for repeated finite element analysis makes this method impractical, particularly for nonlinear problems. Additionally, there are accuracy issues in nonlinear problems. The direct differentiation A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 59 method (DDM) (see, e.g. [20,39]) involves development of analytical derivatives of the finite element response and their implementation as a part of the finite element code. With this method, no repeated finite element analyses are needed to compute the response gradient. Instead, the gradient is computed alongside the response itself during one analysis. Hence, at the cost of an initial investment, response sensitivities are computed accurately and efficiently by the DDM. In OpenSees, DDM is implemented for static and dynamic inelastic problems. Response sensitivities are obtained with respect to material parameters, nodal coordinates, cross-sectional geometry and nodal loads for a variety of material models and element formulations. Further details regarding the derivations and implementations are available in Haukaas and Der Kiureghian [15]. OpenSees is capable of performing reliability analysis for component and series system problems by FORM, a limited SORM (only accounting for the major principal curvature), importance sampling, and Monte Carlo simulation. Features are also available for modeling stochastic inputs and computing the mean up-crossing rate of random vibration response by FORM analysis. Currently, OpenSees allows modeling of random variables according to the Nataf joint distribution, as described in Section 2.1.2. More general joint distribution models requiring the Rosenblatt transformation and other reliability methods are planned for implementation in the near future. 4.2. Practical use of the reliability implementations in opensees A Users and Developers Guide for the sensitivity and reliability implementations in OpenSees is available in Haukaas and Der Kiureghian [15]. We stress, however, that OpenSees is a software framework for developing computer applications. It should not be regarded as a packaged ‘‘code,’’ but as a collection of software components. Presently, the scripting language Tcl [38] is employed as an interface to make use of the OpenSees software framework. Commands are added to Tcl to create model components and to aggregate the analysis tools. This subsection provides a brief overview of the commands added to facilitate the use of the reliability and sensitivity implementations. Prior to any of the subsequent commands, the command reliability must be issued. In effect, this command ‘‘activates’’ the reliability and sensitivity commands by loading them into the Tcl script interpreter. Reliability commands are available in five categories. The first category of commands characterize the material properties, geometry and loads of the finite element model as uncertain quantities. They are randomVariable, rvReduction, correlate, correlateGroup, randomVariablePositioner, discretizedRandomProcess, simulatedRandomProcess, modulatingFunction, filter, and spectrum. Second category includes the command performanceFunction, which is used to specify the limitstate function(s) of the reliability analysis. A wide collection of finite element response quantities are available for inclusion in the expressions for these functions. The syntax rules are described in Haukaas and Der Kiureghian [15]. The third category includes commands to create the analysis tools. An important objective in developing the reliability analysis framework has been to modularize the analysis algorithms. Before a reliability analysis is executed, the user must create an aggregation of the necessary analysis components or ‘‘tools,’’ depending on the type of analysis to be carried out. The following commands are available for this purpose, each with alternative options: probabilityTransformation, gFunEvaluator, gradGEvaluator, searchDirection, stepSizeRule, rootFinding, meritFunctionCheck, reliabilityConvergenceCheck, startPoint, findDesignPoint, randomNumberGenerator, and findCurvatures. In the fourth category are the eight global analysis 60 A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 classes mentioned previously, each having one command associated with them. Finally, commands are available to obtain response sensitivity results from the DDM implementations in OpenSees. 4.3. Numerical example The Pacific Earthquake Engineering Research (PEER) Center has selected four ‘‘testbed’’ structures for numerical studies and testing of analysis tools developed by its researchers (see http:// www.peertestbeds.net). In this section, the I-880 highway bridge testbed is considered for reliability analysis by utilizing the reliability implementations in OpenSees. The finite element model of this structure is developed by Kunnath et al. [21]. A frame consisting of four bents is considered and both static pushover and inelastic dynamic analysis are conducted. Fig. 2 depicts the general features of the model, where node and element numbers are identified for subsequent discussion of the reliability results. The foundation is modeled using soil spring elements. The columns are modeled with distributed hinges at the element ends. The cross-sections of these hinges are Fig. 2. Node and element numbers for I-880 testbed bridge model. A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 61 fiber-discretized, and the behavior of the confined and unconfined concrete fibers and the reinforcing steel are described by realistic uni-axial material models. The structure is analyzed as a free-standing frame with no interaction effect from adjacent bridge structures. All parameters describing material properties, cross-sectional geometry and nodal coordinates are characterized as random variables. Thus, a total of 320 random variables describe the structural model. Detailed specifications are provided in Haukaas and Der Kiureghian [15]. Aside from determining the propagation of uncertainties and probabilities for specified limit states, an important purpose of the reliability analysis is to determine parameter importance measures so that important sources of uncertainty can be identified. First, a probabilistic push-over analysis is performed. The horizontal displacement at node 15005, denoted u, is computed for horizontal loads applied at nodes 1403, 1503, 1603 and 1703 with a load factor k. Fig. 3(a) shows the conditional mean and mean ± standard deviation of u for given k, and Fig. 3(b) shows the conditional mean and mean ± standard deviation of k for given u, both computed by first-order second-moment (FOSM) analysis. Both diagrams show that the uncertainty in the response increases with increasing nonlinearity. This is expected, since nonlinear response is more sensitive to uncertainties in the system parameters. For each value of u or k, the above evaluation requires a single finite element response and sensitivity analysis. Importance measures based on FOSM (product of sensitivity and standard deviation) are computed for each random variable and response quantity. As expected, these measures vary depending on the considered response quantity and the location within the load–displacement curve. Here, we report some of the results for the propagation of uncertainty in u for given k, i.e., the case in Fig. 3(a). In the initial region of the load–displacement curve, the stiffness of the soil springs is identified as the most important variable. The stiffness and cross-sectional geometry of the horizontal elastic elements close to the bent with node 15005 also rank high. Remarkably, the nodal coordinates in the y-direction for the nodes of this bent are among the top 25 most important variables, even though the assumed standard deviation for the nodal coordinates is only 1.27 cm. The strength and stiffness of the cover concrete of the distributed fiber hinges in elements 151 and 152 (see Fig. 2) also rank among the 40 most important variables, as does the elastic modulus E of the elastic region of these elements. In the yielding region of the load– displacement curve, the yield strength parameters of both reinforcing steel and core/cover concrete of the columns are most important, followed by the vertical and horizontal soil spring stiffnesses. y- and z-direction coordinates of several nodes also rank high. Next, we consider reliability push-over analysis with the limit-state function g(x) = u0 u(x, k), where u0 is a threshold and u(x, k) is the displacement for the random variables x and load factor k. Repeated reliability analysis while varying u0 allows us to compute the complementary cumulative distribution function (CCDF) of the displacement. A special feature is available in OpenSees for such parameterized reliability analysis. Furthermore, probability sensitivities with respect to the threshold values provide the probability density functions (PDF) of the displacement. These are plotted in Fig. 4 for three cases: (a) reliability analysis including the uncertainty in only the 10 most important random variables, (b) analysis with the top 100 most important random variables, and (c) analysis with all 320 random variables. It is clear that the analysis with the top 100 most important random variables produces results that are practically identical to those obtained when all 320 random variables are considered. Based on this finding, subsequent reliability analysis were carried out using only the top 100 most important variables with the 62 A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 0.25 0.2 Mean displacement Load factor Mean + std.dev. 0.15 0.1 0.05 0 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 Displacement [meters] (a) 0.25 0.2 Mean displacement Load factor Mean + std.dev. 0.15 0.1 0.05 0 (b) 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 Displacement [meters] Fig. 3. Results from FOSM analysis; conditional mean and mean ± standard deviation for (a) u given k and (b) k given u. A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 63 CCDF for displacement response at load factor 0.20 1 10 most important r.v. 100 most important r.v. All 320 r.v. 1 CDF = P[g < 0] 0.8 0.6 0.4 0.2 0 0.2 0.22 0.24 0.26 0.28 Displacement threshold uo 0.3 0.32 Corresponding PDF Corresponding PDF 25 10 most important r.v. 100 most important r.v. All 320 r.v. 20 15 10 5 0 0.2 0.22 0.24 0.26 0.28 0.3 0.32 Displacement threshold uo Fig. 4. Probability distribution for displacement response at load factor k = 0.20; obtained by a series of FORM reliability anlayses. remaining ones being substituted with their mean values. This simplification greatly reduces the required computational effort. As a means of examining the accuracy of the above results, importance sampling centered at the design point is carried out for the limit-state function g(x) for k = 0.20 and u0 = 0.35 m. A sample of 1000 simulations produces the failure probability (the probability that u(x, 0.20) exceeds the threshold u0 = 0.35 m) estimate ^pf ¼ 0:0107 with 5.5% coefficient of variation. The FORM approximation, pf1 = 0.0119, compares favorably with this ‘‘exact’’ estimate. It is noted that a Monte Carlo estimate with 5% c.o.v. would require approximately 34,000 simulations. Convergence of the search for the design point may be impeded by problems such as response sensitivity discontinuities and trial points too far in the failure domain. The latter may happen due to the response being more nonlinear at the design point than at the start point. Remedies such as the use of ‘‘smooth’’ material models and step size control are implemented in OpenSees to improve the stability of the search algorithm. The details can be found in Haukaas and Der Kiureghian [15]. OpenSees includes several options for stochastic dynamic analysis. One option is to compute the mean rate of occurrence of events such as {g(x, y(t)) 6 0}, where y(t) denotes a vector of stochastic processes, e.g., components of the ground motion, which are represented in a discrete form in terms of a finite number of random variables. This problem can be solved as a parallel system reliability problem (see [7]). If the limit-state function exhibits a monotonically decreasing 64 A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 behavior with time, then time-invariant FORM analysis can be used to solve the probabilistic dynamic problem. As an application to the I-880 testbed, we consider the limit-state function g(x) = E0 Eh(x), where Eh(x) is a (nonnegative) cumulative damage measure, such as the hysteretic energy dissipated by an element during a specified ground motion, and E0 is an acceptable threshold. Since Eh(x) is a cumulative measure, the above limit-state function monotonically decreases with time. Therefore, the probability of failure can be computed at the end of the excitation period. For this application, we have selected Eh(x) as the cumulative hysteretic energy dissipated by the reinforcing bar in the plastic hinge section of column 152. We also select E0 = 22 · 106 N/m2. Fig. 5 shows the displacement response at node 15005 and the strain-stress history of the selected reinforcing bar, when the structure model with mean properties is subjected to the ground motion record at the Gilroy Historic station during the 1989 Loma Prieta earthquake. It is seen that significant inelastic deformation occurs in the bar. Now, FORM analysis with the above limit-state function and the top 20 most important random variables is carried out to compute the failure probability. The result is pf1 = 0.00167, indicating a small probability 6 x 10 0.3 0 0.1 Stress [N/m2] Displacement [m] 0.2 0 0 10 20 Time [sec.] 30 40 0 Strain 8 x 10 x 10 Stress [N/m2] 0 2 Stress [N/m ] 5 x 10 7 0 0 5 Strain 10 15 x 10 0 Strain x 10 Fig. 5. Response at mean point: (top) displacement time history and (bottom) hysteretic stress–strain curve for selected reinforcing bar. A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 65 that the hysteretic energy dissipated by the selected reinforcing bar will exceed the specified threshold. 5. Concluding remarks The features and capabilities of three software for structural reliability analysis developed at the University of California at Berkeley, are reviewed. The three software have different objectives and serve different purposes. CalREL is a stand-alone, general-purpose structural reliability code written in FORTRAN. It performs reliability analysis for structural components and general systems by FORM, SORM, Monte Carlo simulation and a variety of importance sampling methods. It can be combined with application codes, e.g., a finite element code for structural analysis, provided access to the source of the application code is available. FERUM is a collection of Matlab files, which allows maximum flexibility in a collaborative teaching and research environment for finite element reliability analysis. However, it is not as efficient or as powerful as CalREL. OpenSees is an open-source, object-oriented simulation platform for general-purpose nonlinear structural analysis, which has been empowered with capabilities for response sensitivity and reliability analysis. Reliability algorithms are directly implemented in the code framework, so that no linking of separate software is necessary. Due to its object-oriented architecture and extensive capabilities for modeling and analysis of nonlinear structures, OpenSees offers a bright future in bringing reliability methods into the mainstream of structural engineering practice. Acknowledgements The development of the tree codes described in this paper has benefited from the work of many individuals, who are not listed as co-authors. Their names are reported within the body of the paper and will not be repeated here. The authors wish to extend sincere thanks for their contributions in developing the codes. Funding for the development of the FERUM and OpenSees were provided by a grant from the Pacific Earthquake Engineering Research (PEER) Center through the Earthquake Engineering Research Centers Program of the National Science Foundation under award number EEC-9701568. This supports are gratefully acknowledged. References [1] Ambartzumian RV, Der Kiureghian A, Oganian VK, Sukiasian HS. Multinormal probability by sequential conditioned importance sampling: theory and application. Probab Eng Mech 1998;13(4):299–308. [2] Araya R, Der Kiureghian A. Seismic hazard analysis: improved models, uncertainties and sensitivities. Report No. UCB/EERC-90/11, Earthquake Engineering Research Center, University of California, Berkeley, CA, March; 1988. [3] Au SK, Beck JL. First excursion probabilities for linear systems by very efficient importance sampling. Probab Eng Mech 2001;16(3):193–207. [4] Bjerager P. Probability integration by directional simulation. J Eng Mech ASCE 1988;114(8):1285–302. [5] Breitung K. Asymptotic approximations for multinormal integrals. J Eng Mech ASCE 1984;110(3):357–66. 66 A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 [6] Chua KH, Der Kiureghian A, Monismith CL. Stochastic model for pavement design. J Transp Eng ASCE 1992;118(6):769–86. [7] Der Kiureghian A. The geometry of random vibrations and solutions by FORM and SORM. Probab Eng Mech 2000;15(1):81–90. [8] Der Kiureghian A. First- and second-order reliability methods. In: Nikolaidis E, Ghiocel D, editors. Engineering design reliability handbook. Boca Raton (FL): CRC Press; 2004 [chapter 14]. [9] Der Kiureghian A, DeStefano M. Efficient algorithm for second-order reliability analysis. J Eng Mech ASCE 1991;117(12):2904–23. [10] Der Kiureghian A, Lin H-Z, Hwang S-J. Second-order reliability approximations. J Eng Mech ASCE 1987;113(8):1208–25. [11] Der Kiureghian A, Zhang Y. Space-variant finite element reliability analysis. Comp Methods Appl Mech Eng 1999;168(1–4):173–83. [12] Ditlevsen O. Narrow reliability bounds for structural systems. J Struct Mech 1979;7(4):453–72. [13] Ditlevsen O, Madsen HO. Structural reliability methods. New York (NY): Wiley; 1996. [14] Hasofer AM, Lind NC. Exact and invariant second-moment code format. J Eng Mech Div ASCE 1974;100(1):111–21. [15] Haukaas T, Der Kiureghian A. Finite element reliability and sensitivity methods for performance-based earthquake engineering. PEER Report 2003/14, Pacific Earthquake Engineering Research Center, University of California, Berkeley; 2004. [16] Hohenbichler M, Rackwitz R. Non-normal dependent vectors in structural safety. J Eng Mech ASCE 1981;107(6):1227–38. [17] Hohenbichler M, Rackwitz R. First-order concepts in system reliability. Struct Safe 1983;1(3):177–88. [18] Hohenbichler M, Rackwitz R. Improvement of second-order reliability estimates by importance sampling. J Eng Mech ASCE 1988;114(12):2195–9. [19] Jang Y-S, Sitar N, Der Kiureghian A. Reliability analysis of contaminant transport in saturated porous media. Water Resources Res 1994;30(8):2435–48. [20] Kleiber M, Antunez H, Hien TD, Kowalczyk P. Parameter sensitivity in nonlinear mechanics. West Sussex: Wiley; 1997. [21] Kunnath SK, Jeremic B, von Felton A, Bauer K. Simulation models for performance-based evaluation of the I-880 highway bridge. In: Proceedings of the ASCE structures congress, WA; 2003. [22] Lin H-Z, Der Kiureghian A. Second-order system reliability with directional simulation. In: Proceedings of the 5th international conference on appllication of statistics and probability in soil and structural engineering, Vancouver, Canada, May, vol. 2; 1987. p. 930–7. [23] Liu P-L, Der Kiureghian A. Multivariate distribution models with prescribed marginals and covariances. Probab Eng Mech 1986;1(2):105–12. [24] Liu P-L, Der Kiureghian A. Optimization algorithms for structural reliability. Struct Safe 1990;9(3):161–77. [25] Liu P-L, Der Kiureghian A. Finite-element reliability of geometrically nonlinear uncertain structures. J Eng Mech ASCE 1991;117(8):1806–25. [26] Liu P-L, Lin H-Z, Der Kiureghian A. CalREL user manual. Report No. UCB/SEMM-89/18, Structural Engineering, Mechanics and Materials, Department of Civil Engineering, University of California, Berkeley, CA, April; 1989. [27] Luenberger DG. Introduction to linear and nonlinear programming. Reading (MA): Addison-Wesley; 1986. [28] Melchers R. Importance sampling in structural systems. Struct Safe 1989;6(1):3–10. [29] McKenna FT. Object-oriented finite element programming: frameworks for analysis, algorithms and parallel computing. PhD Thesis, University of California, Berkeley; 1997. [30] McKenna FT, Fenves GL, Scott MH. Open system for earthequake engineering simulation. Berkeley: Pacific Earthquake Engineering Research Center, University of California; 2002. Available from:Available from: http:// opensees.berkeley.edu/. [31] Polak E, He L. A unified steerable phase I – phase II method of feasible directions for semi-infinite optimization. J Optimiz Theory Appl 1991;69(1):83–107. [32] Rackwitz R, Fiessler B. Structural reliability under combined load sequences. Comput Struct 1978;9:489–94. A. Der Kiureghian et al. / Structural Safety 28 (2006) 44–67 67 [33] Schittkowski K. NLPQL: A FORTRAN subroutine solving constrained nonlinear programming problems. Ann Oper Res 1985;5:485–500. [34] Schuëller GI, Stix R. A critical appraisal of methods to determine failure probabilities. Struct Safe 1987;4(4):293–309. [35] Sitar N, Cawlfield JD, Der Kiureghian A. First-order reliability approach to stochastic analysis of subsurface flow and contaminant transport. Water Resources Res 1987;23(5):794–804. [36] Song J, Der Kiureghian A. Bounds on system reliability by linear programming. Eng Mech ASCE 2003;129(6). [37] Tvedt L. Distribution of quadratic forms in normal space: application to structural reliability. Eng Mech ASCE 1990;116(6):1183–97. [38] Welch BB. Practical programming in Tcl & Tk. Upper Saddle River (NJ): Prentice-Hall; 2000. [39] Zhang Y, Der Kiureghian A. Dynamic response sensitivity of inelastic structures. Comput Method Appl Mech Eng 1993;108(1):23–36. [40] Zhang Y, DerKiureghian A. Two improved algorithms for reliability analysis. In: Rackwitz R., Augusti G, Borri A. editors. Reliability and Optimization of Structural Systems, Proceedings of the 6th IFIP WG 7.5 working conference on reliability and optimization of structural systems, 1994; 1995. p. 297–304. [41] Zienkiewicz OC, Taylor RL. The finite element method, vol. 2. London: McGraw-Hill; 1991.