FERUM 4.1 User's Guide: J.-M. Bourinet July 1, 2010
FERUM 4.1 User's Guide: J.-M. Bourinet July 1, 2010
1 Users Guide
J.-M. Bourinet
July 1, 2010
Abstract
c
The development of FERUM (Finite Element Reliability Using Matlab) as an open-source Matlab
toolbox
was initiated in 1999 under Armen Der Kiureghians leadership at the University of California at Berkeley
(UCB). This general purpose structural reliability code was developed and maintained by Terje Haukaas, with
the contributions of many researchers at UCB.
The present document aims at presenting the main features and capabilities of a new version of this
open-source code (FERUM 4.x) based on a work carried out at the Institut Franais de Mcanique Avance
(IFMA) in Clermont-Ferrand, France. This new version offers improved capabilities such as simulation-based
technique (Subset Simulation), Global Sensitivity Analysis (based on Sobols indices), Reliability-Based Design
Optimization (RBDO) algorithm, Global Sensitivity Analysis and reliability assessment based on Support Vector Machine (SVM) surrogates, etc. Beyond the new methods implemented in this code, an emphasis is put on
the new architecture of the code, which now allows distributed computing, either virtually through vectorized
calculations within Matlab or for real with multi-processor computers.
An important note about this Users Guide is that it does not contain a detailed description of FERUM
usage and FERUM available methods. The user must have some prior knowledge about probability concepts,
stochastic methods, structural reliability, sensitivity analysis, etc. More details about the FERUM inputs may
be found in the template input file (template_inputfile.m) provided with the FERUM package. This document
has been mainly elaborated from FERUM 4.0 reference paper [BMD09].
The FERUM 4.x package is available under the conditions of the GNU General Public License, like for
FERUM 3.1. This implies that you may download the program for free. However, if you make changes or
additions you must make them available for free under the same general public license.
Contents
1 Introduction
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
4
5
6
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
6
6
6
7
8
8
9
9
11
12
13
14
16
17
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4 Getting started
17
17
6 Release summary
19
1 Introduction
FERUM (Finite Element Reliability Using Matlab) is a general purpose structural reliability code whose first
developments started in 1999 at the University of Cafifornia at Berkeley (UCB) [DKHF06]. This code consists
c
of an open-source Matlab
toolbox, featuring various structural reliability methods. As opposed to commercial structural reliability codes, see e.g. [PS06] for a review in 2006, the main objective of FERUM is to provide
students with a tool immediately comprehensible and easy to use and researchers with a tool very accessible
which they may develop for research purposes. The scripting language of Matlab is perfect for such objectives,
as it allows users to give commands in a very flexible way, either in an interactive mode or in a batch mode
through input files.
FERUM was created under Prof. Armen Der Kiureghians leadership and was managed by Terje Haukaas at
UCB until 2003. It benefited from a prior experience with CalRel structural reliability code, which features all
the methods implemented in the last version of FERUM. It also benefited from the works of many researchers
at UCB, who made valuable contributions in the latest available version (version 3.1), which can be downloaded at the following address: http://www.ce.berkeley.edu/FERUM/. Since 2003, this code is no longer
officially maintained.
This document is a basic users manual of a new version of this code (FERUM 4.x), which results from
a work carried out at the Institut Franais de Mcanique Avance (IFMA) in Clermont-Ferrand. As previously
achieved in the past, the main intention is to provide students and researchers with a developer-friendly computational platform which facilitates learning methods and serves as a basis for collaborative research works.
FERUM should still be viewed as a development platform for testing new methods and applying them to
various challenging engineering problems, either represented by basic analytical models or more elaborated
numerical models, through proper user-defined interfaces.
The main architecture of FERUM was preserved in general, see Section 2 for more details. In order to
improve its efficiency in terms of computational time, all algorithms have been revisited to extend FERUM
capabilities to distributed computing. For example, in its new version, FERUM makes Monte Carlo Simulation
(MCS) much faster thanks to limit-state functions defined in a vectorized form or real distributed computing,
according that a proper interface is defined for sending multiple jobs to a multi-processor computer platform.
fX (x, f ) dx
g(x, g )0
(1)
=
=
=
=
=
=
=
=
Normal distribution
Lognormal distribution
Gamma distribution
Shifted exponential distribution
Shifted Rayleigh distribution
Uniform distribution
Beta distribution
Chi-square distribution
11
12
13
14
15
16
=
=
=
=
=
=
18
19
The structural reliability problem of Equation (1) expressed in the original space of physical random variables X is transformed to a standard normal space where U becomes an independent standard normal vector.
This mapping is carried out in FERUM using the Nataf model [LDK86]. Physical random variables X are
transformed to correlated standard normal variables Z whose correlation structure obeys integral relation of
Equation (3) and Z is then transformed to uncorrelated standard normal variables U.
f , i = 1, . . . , n
X
X with i
7 Z N 0, R0
7 U N (0, I)
(2)
R
=
i j nn
For each i j-pair of variables with known correlation i j , Equation (3) should be solved to determine
correlation 0 i j between mapped z-variables:
Z + Z +
x j j
x i i
i j =
2 (zi , z j , 0 i j ) dzi dz j
(3)
i
j
where i and i respectively stand for the mean and standard deviation of the ith component of X, and
2 (, , ) is the 2D standard normal probability density function (pdf) with correlation coefficient .
Independent standard normal variables U are then obtained from Z variables such as follows:
u = L1
0 z
(4)
Case of a limit-state function which is defined by means of an analytical expression or a Matlab m-function:
gfundata(1).evaluator
gfundata(1).type
= basic;
= expression;
= aster;
= expression;
analysisopt.block_size = 50;
Based on the same developments of FERUM algorithms, it is also possible to send multiple calls to a userdefined Matlab limit-state function written in a vectorized manner. Vectorized calculations, in the Matlab
sense, eliminate the need to cycle through nested loops and thus run much faster because of the way Matlab
handles vectors internally. The principle is similar to distributed computing, the difference being that the
multiprocessor computer is virtually replaced by a single computer which can handle a number of runs simultaneously (this maximum number being directly dependent on the memory available on the computer). Here
again, the maximum number of runs sent simultaneously is controlled through analysisopt.block_size
variable.
For illustration purpose, on an Intel T7800 2.6GHz dual core CPU with 4Gb RAM, a crude MCS takes
31 min with 1.5 109 samples for a basic g = r s problem, where R and S are normal random variables, in a
vectorized manner (FERUM 4.x), as opposed to 6 days 15 hours in a sequential manner.
Basic FORM
First-Order Reliability Method (FORM) (option 10 of FERUM 4.x) aims at using a first-order approximation
of the limit-state function in the standard space at the so-called Most Probable Point (MPP) of failure P* (or
design point), which is the limit-state surface closest point to the origin. Finding the coordinates u* of the
MPP consists in solving the following constrained optimization problem:
(5)
u* = arg min kuk g(x (u) , g ) = G u, g = 0
u2
2 ( u ) = cst
1 (u) 0
G
u2*
O
P*
u1
*
1
G (u) = 0
1 ( u ) = T u = 0
G
Figure 1: First-Order Reliability Method (FORM).
Parameters specific to FORM in the analysisopt.block_size structure variable are listed hereafter.
% FORM analysis options
analysisopt.i_max
= 100;
analysisopt.e1
= 0.001;
analysisopt.e2
= 0.001;
analysisopt.step_code
= 0;
analysisopt.Recorded_u = 1;
analysisopt.Recorded_x = 1;
% FORM, SORM analysis options
analysisopt.grad_flag = ddm;
analysisopt.ffdpara
3.1.2
= 1000;
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
%
In addition to the reliability index and the MPP coordinates coming from a FORM analysis, the user may
use FERUM 4.x to calculate the sensitivities of (or of the failure probability p f ) to distribution parameters
f or to deterministic limit-state function parameters g .
For instance, the sensitivity of w.r.t. f reads:
= ui / f
T
f = Ju*, f x*, f
(6)
The Jacobian of the transformation is obtained by differentiating Equation (4) w.r.t. f parameters:
u
f
= L1
0
z
f
L1
0
f
(7)
In FERUM 4.x, sensitivities w.r.t. distributions parameters f are evaluated based on both terms of Equation (7), as opposed to FERUM 3.1 which only uses the first term. Sensitivities to correlation are based on the
second term of this expression only, as the first one vanishes [BL08]. Sensitivities are evaluated numerically
with the same integration scheme as the one used for obtaining R0 matrix and it is required to differentiate the
Cholesky decomposition algorithm in a step-by-step manner. Examples of application are given in reference
[BL08].
Parameters specific to FORM reliability sensitivities are listed hereafter. Thet are set up in the probdata
structure variable for sensitivities w.r.t. distributions parameters f and in the gfundata structure variable
for sensitivities w.r.t. deterministic limit-state function parameters g .
% Flag for computation of sensitivities w.r.t. means, standard deviations, parameters and
% correlation coefficients
% 1: all sensitivities assessed, 0: no sensitivities assessment
probdata.flag_sens
= 1;
% Flag for computation of sensitivities w.r.t. thetag parameters of the limit-state function
% 1: all sensitivities assessed, 0: no sensitivities assessment
gfundata(1).flag_sens = 1;
analysisopt.ffdpara_thetag = 1000;
3.1.3
Search for multiple MPPs such as described in [DKD98] is also implemented in FERUM 4.x (option 11). Figure
2 illustrates the use of this method, applied to a 2D example with a parabolic limit-state function [DKD98]:
g(x) = g(x 1 , x 2 ) = b x 2 (x 1 e)2
(8)
where b = 5, = 0.5 and e = 0.1. Both variables x 1 and x 2 are independent and identically distributed (i.i.d.)
standard normal random variables.
This problem is characterized by two MPPs at similar distances from the origin and basic FORM algorithm results are therefore not valid: 1.83 103 instead of 3.02 103 reference value for p f . Results in Figure
2 are obtained with parameter values recommended in [DKD98], i.e. = 1.1, = 0.75 and = 0.5. These
parameters are set in the form_multiple_dspts.m function. All valid MPP results obtained with FERUM 4.x are
stored in an ALLformresults array which is added as an extra field to the analysisopt structure variable.
U-space
U-space
0
x1
x2
-5
-5
U-space
x2
x2
-5
-5
0
x1
-5
-5
0
x1
u2 G 2 ( u ) = 0
2 ( u ) = cst
2 (u) 0
G
u2*
O
P*
u1
*
1
G (u) = 0
1 ( u ) = T u = 0
G
Figure 3: Second-Order Reliability Method (SORM).
un
( v , v )
G ( u ) = 0
( v , v )
+
+
n
ui
(9)
D fX
where D fX represents the integration domain of joint pdf fX (x), I () is an indicator function which equals 1 if
g(x) 0 and 0 otherwise, and E fX [] denotes the mathematical expectation w.r.t. joint pdf fX (x) ( f and g
parameters omitted for the sake of clarity).
The expectation in Equation (9) is estimated in a statistical sense for a crude Monte Carlo Simulation
(crude MCS). The u-space is randomly sampled with N independent samples u( j) , j = 1, . . . , N . These N samples are then transformed to the x-space x( j) = x(u( j) ) and an unbiased estimate of p f is finally obtained from
the sample mean of q j = I(x( j) ). Note that a standard deviation is also obtained for this sample, providing
useful information regarding the accuracy of the estimated value of p f .
It must be stressed out here that a crude MCS requires a high computational effort (large N ) for small
failure probabilities and a number of variance reduction techniques have been proposed in the past to lower
this computational effort. One of these variance reduction techniques is known as Importance Sampling (IS).
Equation (9) is rewritten now in the following form:
Z
fX (x)
fX (X)
pf =
(10)
I (x)
h(x) dx = Eh I (X)
h(x)
h(X)
D
h
where h is called a sampling density. For an IS analysis, it is usual to take h(x) = h(x(u)) = n (u u*) where
n is the n-dimensional standard normal pdf and u* is the vector of MPP coordinates coming from a previous
FORM analysis. Note that p f is now obtained from the sample mean of q j = I(x( j) ) fX (x( j) ) / h(x( j) ).
X-space
X-space
10
10
0
0
10
-5
-10
20
0
r
(a)
(b)
-5
-5
10
-5
-10
0
r
(c)
-5
-5
0
r
(d)
20
10
= 0.05;
= 0;
pf =
(11)
an
N h
1X
j=1
i
1 n2 r 2j
(12)
u2
a(1)
a(3)
u1
O
a(2)
2
G (u) = 0
u2
rj
a( j )
u1
G (u) = 0
11
P(Fi | Fi1 )
i=2
Unknown
limitstate
First threshold y
5
5
Unknown
limitstate
First threshold y
0
u
5
5
0
u
(b)
Unknown
limitstate
Second threshold y
5
5
0
u1
(a)
5
Unknown
limitstate
Last threshold y =y =0
5
5
(c)
0
u1
(d)
(13)
Each subset event Fi (and the related threshold value yi ) is determined so that its corresponding conditional probability equals a sufficiently large value , in order to be efficiently estimated with a rather small
number of samples (in practice 0.1-0.2, set by analysisopt.pf_target parameter). In essence, there
is a trade-off between minimizing the number m of subsets by choosing rather small intermediate conditional
probabilities and maximizing the same probabilities so that they can be estimated efficiently by simulations.
The first threshold y1 is obtained by a crude MCS, so that P(F1 ) (see Figure 8, subplot (a)). For further
thresholds, new sampling points corresponding to { Fi | Fi1 } conditional events are obtained from Markov
Chains Monte Carlo (MCMC), based on a modified Metropolis-Hastings algorithm, see green star points in
figure 8, subplot (b) corresponding to i = 2 case. The process is repeated until a negative threshold yi is
found. This is therefore the last step (i = m) and ym is set to 0. The corresponding probability P(Fm | Fm1 )
is then evaluated. See Figure 8, subplot (d). The last step is reached for m = i = 3 in the present case. The
coefficient of variation of the failure probability estimated from SS can be evaluated by intermediate coefficients of variation, weighted by the correlation that exists between the samples used for the estimation of
intermediate conditional probabilities, please refer to reference [AB01] for more details.
For a Subset Simulation analysis, select option 23 in FERUM 4.x. Parameters specific to this method
are listed hereafter.
% Simulation analysis (MC,IS,DS,SS) and distribution analysis options
analysisopt.num_sim
= 10000;
% Number of samples per subset step (SS)
analysisopt.rand_generator
= 1;
% 0: default rand matlab function
% 1: Mersenne Twister (to be preferred)
% Subset Simulation (SS) analysis options
analysisopt.width
= 2;
analysisopt.pf_target
= 0.1;
analysisopt.flag_cov_pf_bounds
= 1;
analysisopt.ss_restart_from_step = -inf;
analysisopt.flag_plot
= 0;
analysisopt.flag_plot_gen
= 0;
3.7
%
%
%
%
%
%
%
%
%
%
%
%
%
SMART
Basic random variables realizations are classified in two classes, either they fall in the safety domain or in the
failure domain. The 2 SMART method hinges on the use of Support Vector Machines (SVMs) [Vap95, STC00,
SS02] for classifying training points (called also learning points). The limit-state g(x) = 0 must be seen here
as the perfect classifier. We assume that such a classifier exists, whatever the complexity of its geometry.
The 2 SMART method starts from the pionneering idea of J.E. Hurtados work, who first introduced SVMs to
reliability analysis [Hur04]. The key idea of 2 SMART is to build a SVM classifier for each Subset Simulationlike yi -threshold intermediate limit-state, which turns out to be more easy to manage than tackling g(x) = 0
directly. This learning process takes place in the standard space. The surrogate to each intermediate limit-state
g(x) yi = 0 is constructed by training on a set of initial learning points and a few new points added in an
iterative manner (concept of active learning [Mac92]).
Table 1 gives an overview of the 2 SMART algorithm. More details about this method are available in a paper
submitted to Structural Safety [BDL10].
1. An initial set of (Nu + Nn ) samples is used for the training of a first SVM- yi classifier (Table 1, part 1),
noted e
g (x(u)) = g(x(u))
y , as an approximation to the exact intermediate limit-state g (x(u)) =
yi
yi
g(x(u)) yi = 0. Some of these samples (Nn samples) are used for determining a suitable threshold value
yi corresponding to a target probability expected to be close to = 0.1, similarly to Subset Simulation.
2. The strategy then consists in improving the initial SVM- yi classifier, by adding new points to the learning
database in an iterative manner (Table 1, part 2). These updates of the current SVM- yi classifier hinge
on a coarse to fine adjustment strategy (localization, stabilization and convergence stages, see Figure
9). The number of new points added at each iteration is increased with the number of random variables
n. By a wise selection of the most informative new training samples, drastic improvements of the
accuracy of the SVM classifier are obtained, with a rather limited amount of new samples.
13
3. After a few iterations noted Niter max , the SVM- yi classifier is expected to become accurate enough and
we can evaluate P( F1 ) corresponding to y1 -threshold value at the first step of the algorithm (i = 1) or
P( Fi | Fi1 ) corresponding to yi -threshold value at next steps (i > 1) (Table 1, part 3). For i = 1, . . . , m,
Fi stands for the SVM approximation of Fi exact intermediate failure domain. For all steps except the
last, it is required to keep points which satisfy e
g yi (x(u)) 0 (g-values lower or equal than yi based
on the current SVM- yi classifier) and which correspond to various numbers of points involved at each
stage (N1 , N2 , N3 for localization, stabilization and convergence stages respectively). These points called
germs serve for generating the sampling population of the next step.
Qm
4. The P f estimate is given by the following expression: P f = P( F1 )
P( Fi | Fi1 ).
i=2
For a 2 SMART simulation, select option 33 in FERUM 4.x. Parameters specific to this method are listed
hereafter.
analysisopt.num_sim_sdu
= [ 50 50 ];
% Nu number of points
%( [ first subset-like step, next steps], same values by default )
% Nn number of points
%( [ first subset-like step, next steps], same values by default )
% RAM-size dependent parameter for eval_svm.m function
% 0: cross validation at the 1st subset-like step only
% 1: cross validation at all steps
(14)
14
V Y | X i = xi*
(15)
Since x i * value is unknown, we take the expectation of Equation (15) and, by virtue of the law of total variance, we can write:
V E Y | X i = V (Y ) E V Y | X i
V E Y | X i , X j Vi Vj
Vi j
Si j =
=
V (Y )
V
(16)
(17)
(18)
First-order indices inform about the influence of each variate taken alone whereas higher order indices account for possible influences between various parameters. Total sensitivity indices are also usually introduced.
They express the total sensitivity of Y variance to X i input, including all interactions that involve X i :
X
S Ti =
Sk
(19)
ik
15
analysisopt.gridsel_option = 1;
% SVR parameter for cross validation search (do not modify)
% Parameters C, epsilon and sigma (RBF kernel is chosen) are determined in the train_SVR.m function.
% However, the user may have some knowledge of the problem in order to define a grid search
% for the hyperparameters (C, epsilon, sigma)
analysisopt.n_reg_radius
= 200000;
% Number of samples for assessing the radius of the
% learning hypersphere, when analysisopt.SVRbasis = CVT_unif
analysisopt.svm_buf_size
= 3500^2;
% RAM-size dependent parameter for eval_svm.m function
q
where:
stands for the design variables of the problem, either purely deterministic variables g or distribution
parameters f ,
c() is the cost function to be minimized,
f1 (), . . . , fq1 () is a vector of (q 1) deterministic constraints over the design variables ,
fq (x, ) is the reliability constraint enforcing the respect of the design rule referred to as the limit-state
function and considering the uncertainty to which some of the model parameters x are subjected to. t
is the targeted safety index.
One way to answer the problem in Equation (20) consists in a brute-force outer optimization loop over the
reliability evaluation, here termed Nested bi-level approach (N2LA). This might be computational expensive
in the case of simulation-based methods such as MCS and DS, as addressed in [RP04] and [RP07] respectively. However, if based on FORM, this brute-force method gives a solution within a reasonable amount of
calls to the limit-state function. The outer optimization loop makes use of the Polak-He optimization algorithm [Pol97] and requires the gradients of both cost and constraints functions, which themselves require the
gradient of the reliability index w.r.t. design variables .
Previous RBDO applications of the Polak-He algorithm showed that its rate of convergence was highly
dependent on the order of magnitude of the design parameters, cost and constraints functions. In FERUM 4.x,
all these values are normalized at each Polak-He iteration, thus improving and ensuring convergence, whatever the initial scaling of the problem in Equation (20). Convergence to an optimum is assumed to be obtained
when the cost function has reached a stable value and all the constraints are satisfied, i.e. f1 (), . . . , fq () 0.
In order to carry out a N2LA FORM-based RBDO analysis, select option 40 in FERUM 4.x. The current
implementation is so far restricted to deterministic parameters as design parameters, i.e. = g . The cost
function (rbdo_fundata.cost field) is expressed in the form c() = c0 + c f p f , where p f represents the
failure probability. Deterministic constraints are defined by means of the rbdo_fundata.constraint field.
Parameters specific to the RBDO analysis are listed hereafter.
rbdo_fundata.cost = {
4/3.*pi.*(r1.^3 - r0.^3)
0e2 * 4/3.*pi.*(r1.^3 - r0.^3) };
rbdo_fundata.constraint = { - r0 + 40
r1 - 150
r0 - r1
};
%
%
%
%
% Deterministic constraints:
% fi <= 0, i = 1,...,(q-1)
16
rbdo_parameters.alpha
rbdo_parameters.beta
rbdo_parameters.gamma
rbdo_parameters.delta
=
=
=
=
0.5;
0.6;
3;
1;
%
%
%
%
ph_quadprog
ph_quadprog
ph_quadprog
ph_quadprog
parameter
parameter
parameter
parameter
rbdo_parameters.steplim
= 50;
rbdo_parameters.max_iter
rbdo_parameters.target_beta
rbdo_parameters.method
= 7;
= 5;
= FORM;
4 Getting started
You might want to check out how FERUM works by running one of the examples provided with the program
package. To do so, proceed as follows:
1. Go to the FERUM 4.x homepage http://www.ifma.fr/FERUM/.
2. Download the FERUM4.0.zip archive file and extract all compressed files to a directory of your choice
on your harddisk where you wish to save all FERUM files (extraction with pathnames).
3. Before you can start using the toolbox, you must to add all FERUM subdirectories (aster_files, dir_simulations, etc.) to your Search Path, so that Matlab knows where to look for them. This is done by using
one of the three following options:
select Set Path in the File menu in Matlab,
select subdirectories in the Current Directory Browser, then right click, Add to path, Selected
folder and Subfolders,
use the addpath.m function.
4. Read one of the example inputfiles into your Matlab workspace. This can be done by issuing the command >> inputfile_xxx in Matlab. You now have the necessary input parameters for a reliability
analysis in your current Matlab workspace.
5. Issue the command >> ferum in the Matlab workspace.
6. Choose a specific option (e.g. option 10 for a FORM analysis).
7. The program now performs an analysis corresponding to the selected option and gives you intermediate
results/information as it runs.
8. If the analysis is successful, you will finally see an overview of the available result parameters on the
screen. These results are gathered in the fields of a specific structure in the Matlab workspace (e.g.
formresults if a FORM analysis is run).
17
gfunction directory
Examples of limit-state functions defined through Matlab .m files
FORM directory
Search for a single design point with the iHL-RF algorithm (form.m)
Search for possible multiple design points (form_multiple_dspts.m, via calls to form.m)
Auxiliary files
sensitivities directory
All files necessary to assess FORM sensitivities w.r.t. distribution parameters f (means, standard deviations, correlation, distribution parameters) and deterministic parameters g in the limit-state function
SORM directory
SORM curvature-fitting method (sorm_cfh.m)
SORM point-fitting method (sorm_pf.m)
Auxiliary files
distributions directory
Distribution of the limit-state function based on a Monte Carlo simulation (distribution_analysis.m)
simulations directory
Crude Monte Carlo (CMC) simulation or Importance Sampling (IS) (simulation_single_dspt.m, simulation_single_dspt_lowRAM.m)
Mersenne Twister pseudo-random number generator (C++ source files twister.cpp-32bit and twister.cpp64bit respectively for 32-bit and 64-bit computational platforms, Windows .dll file, Linux 32-bit .mexglx
file)
dir_simulations directory
Directional Simulation (dir_simulation.m) with either random or deterministic directions (through calls
to eq_point_set.m function and auxiliary files in eq_sphere_partitions directory)
subset_simulations directory
Subset Simulation (subset_simulation.m)
Auxiliary files
2SMART directory
Auxiliary files
kmeans files for clustering (kmeans subdirectory)
Sobol directory
Global Sensitivity Analysis based on Sobol indices (Sobol_SA.m), either through calls to the original
limit-state function or to a SVR surrogate (Support Vector Regression).
Sobol quasirandom sequences generated by means of the Matlab Statistical Toolbox or the sobolseq51
Windows .dll file from BRODA (BRODA subdirectory)
Training samples possibly re-arranged by means of Centroidal Voronoi Tessellation (CVT subdirectory)
N2LA directory
Nested bi-level RBDO analysis based on FORM and gradient of index w.r.t. design variables (N2LA.m)
Polak-He optimization algorithm (ph_quadprog.m)
fun.m auxiliary file
SVM directory
Spider toolbox (spider subdirectory)
18
SVM auxiliary files (svm_init.m and svr_init.m: initialization for classification and regression respectively, train_SVR.m: training of a SVR surrogate, eval_svm.m: evaluation based on a SVM surrogate,
used both for classification and regression, gfunsvr.m: SVR surrogate function)
ferum_in_loop directory
Example script files showing how to call FERUM in a silent mode
aster_files directory
Files required for external calls to Code_aster Finite Element code in a sequential way (inputfile, gfunaster.m function called by gfun.m, Windows specific files, Code_aster template files, gawk binary, gawk
file for post processing of FE results)
6 Release summary
FERUM 4.1 (July 1, 2010) vs. 4.0 (September 9, 2009):
A new method is offered to assess small failure probabilities, based on Support Vector Machine (SVM)
surrogates. This method referred as 2 SMART consists in essence to build a SVM classifier for each Subset
Simulation-like yi -threshold intermediate limit-state.
Global Sensitivity Analysis based on Sobol indices now works with models characterized by a vectorial
output. The limit-state function may either return a scalar value if gfundata(lsf).ng field is set
to 1 in the input file (default value) or a vector of values if gfundata(lsf).ng is set to a value
strictly greater than 1. The Global Sensitivity Analysis works either with the physical model itself or SVR
surrogates. If the limit-state function has a vectorial output, a SVR surrogate is built for each component
of this vectorial output.
FORM with search for multiple design points can now be run in silent mode (analysisopt.echo_flag
set to 0).
All SVM m-functions are gathered in the svm subdirectory (including the Spider toolbox). They may be
useful either in a 2 SMART analysis or in a SVR-based Global Sensitivity analysis.
A slightly modified version of twister.cpp file is given for 64-bit computational platforms. It prevents
crashes which occur when the internal state of the generator needs to be saved by issuing the command
>> S = twister(state).
References
[AB01] S.-K. Au and J.L. Beck. Estimation of small failure probabilities in high dimensions by subset
simulation. Probabilistic Engineering Mechanics, 16:263277, 2001.
[BDL10] J.-M. Bourinet, F. Deheeger, and M. Lemaire. Assessing small failure probabilities by combined
subset simulation and support vector machines. Submitted to Structural Safety, 2010.
[Bje88] P. Bjerager. Probability integration by directional simulation. Journal of Engineering Mechanics,
114(8):12851302, 1988.
[BL08] J.-M. Bourinet and M. Lemaire. FORM sensitivities to correlation: Application to fatigue crack
propagation based on Virkler data. In Proc. of the 4th International ASRANet Colloquium, Athens,
Greece, 2008.
[BMD09] J.-M. Bourinet, C. Mattrand, and V. Dubourg. A review of recent features and improvements added
to FERUM software. In Proc. of the 10th International Conference on Structural Safety and Reliability
(ICOSSAR09), Osaka, Japan, 2009.
[DKD98] A. Der Kiureghian and T. Dakessian. Multiple design points in first and second-order reliability.
Structural Safety, 20(1):3749, 1998.
[DKHF06] A. Der Kiureghian, T. Haukaas, and K. Fujimura. Structural reliability software at the University
of California, Berkeley. Structural Safety, 28(1-2):4467, 2006.
[DKLH87] A. Der Kiureghian, H.-Z. Lin, and S.-J. Hwang. Second-order reliability approximations. Journal
of Engineering Mechanics, 113(8):12081225, 1987.
19
[DM07] O. Ditlevsen and H.O. Madsen. Structural reliability methods. Internet Edition 2.3.7, 2007.
[DNBF09] V. Dubourg, C. Noirfalise, J.-M. Bourinet, and M. Fogli. FE-based reliability analysis of the buckling
of shells with random shape, material and thickness imperfections. In Proc. of the 10th International Conference on Structural Safety and Reliability (ICOSSAR09), Osaka, Japan, 2009.
[Hur04] J.E. Hurtado. Structural reliability, statistical learning perspectives. Lecture Notes in Applied and
Computational Mechanics Vol. 17, Springer, 2004.
[LDK86] P.-L. Liu and A. Der Kiureghian. Multivariate distribution models with prescribed marginals and
covariance. Probabilistic Engineering Mechanics, 1(2):105112, 1986.
[Lem09] M. Lemaire. Structural reliability. John Wiley, 2009.
[Mac92] D. MacKay. Information-based objective functions for active data selection. Neural Computation,
4(4):590604, 1992.
[NBGL06] L. Nespurek, J.-M. Bourinet, A. Gravouil, and M. Lemaire. Some approaches to improve the
computational efficiency of the reliability analysis of complex crack propagation problems. In
Proc. of the 3rd International ASRANet Colloquium, Glasgow, UK, 2006.
[Pol97] E. Polak. Optimization: Algorithms and consistent approximations. Springer-Verlag, 1997.
[PS06] M.F. Pellissetti and G.I. Schuller. On general purpose software in structural reliability - an
overview. Structural Safety, 28:316, 2006.
[RP04] J.O. Royset and E. Polak. Reliability-based optimal design using sample average approximations.
Probabilistic Engineering Mechanics, 19(4):331343, 2004.
[RP07] J.O. Royset and E. Polak. Extensions of stochastic optimization results to problems with system
failure probability functions. Journal of Optimization Theory and its Application, 132(2):118,
2007.
[Sob07] I.M. Sobol. Sensitivity estimates for nonlinear mathematical models. Mathematical Modelling and
Computational Experiments, 1:407414, 2007.
[SS02] B. Schlkopf and A. Smola. Learning with kernels. MIT Press, 2002.
[STC00] J. Shawe-Taylor and N. Cristianni. An introduction to support vector machines and other kernelbased learning methods. Cambridge University Press, 2000.
[Vap95] V. Vapnik. The nature of statistical learning theory. Springer, 1995.
[ZDK94] Y. Zhang and A. Der Kiureghian. Two improved algorithms for reliability analysis. In R. Rackwitz,
G. Augusti, and A. Borri, editors, 6th IFIP WG 7.5 Working Conference on Reliability and Optimisation of Structural Systems, Reliability and Optimization of Structural Systems. Chapman & Hall,
1994.
20
i>1
(L1)
(L)
(S1)
(S)
N1 sampling points
Iteration 1 k < k1
N2 sampling points
k < k2
Iteration k1
(C1)
(C)
Work/MC population
N3 sampling points
Iteration k2 k k3
21