# Program Overview

FERUM 4.1 collection files are currently organized as follows:

ferum.m main file, definition of distributions, FERUM pre-processing files (update_data.m, distribution_parameter.m), Nataf model specific files including mod_corr_solve.m main file (files necessary for FORM sensitivities in the sensitivities directory), mapping from physical space to standard space (and reverse), limit-state function main file (gfun.m) and gfunbasic.m

Examples of inputfiles, input file template (inputfile_template.m)

Examples of limit-state functions defined through Matlab .m files

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

All files necessary to assess FORM sensitivities

SORM curvature-fitting method (sorm_cfh.m) and SORM point-fitting method (sorm_pf.m), auxiliary files

Distribution of the limit-state function based on a Monte Carlo simulation (distribution_analysis.m)

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.cpp-64bit respectively for 32-bit and 64-bit computational platforms, Windows .dll file, Linux 32-bit .mexglx file)

Directional Simulation (dir_simulation.m) with either random or deterministic directions (call to eq_point_set.m function and auxiliary files in eq_sphere_partitions directory)

Subset Simulation (subset_simulation.m) and auxiliary files

²SMART simulation (ssvm_simulation.m), kmeans clustering files (kmeans subdirectory) and auxiliary files

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 .ddl file from BRODA (BRODA subdirectory). Training samples possibly re-arranged by means of Centroidal Voronoi Tessellation (CVT subdirectory)

Nested bi-level RBDO analysis based on FORM and gradient of beta index w.r.t. design variables (N2LA.m), Polak-He optimization algorithm (ph_quadprog.m), fun.m auxiliary files

Spider toolbox (spider subdirectory), 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)

Example script files showing how to call FERUM in a silent mode

**Main directory**ferum.m main file, definition of distributions, FERUM pre-processing files (update_data.m, distribution_parameter.m), Nataf model specific files including mod_corr_solve.m main file (files necessary for FORM sensitivities in the sensitivities directory), mapping from physical space to standard space (and reverse), limit-state function main file (gfun.m) and gfunbasic.m

**inputfile**directory

Examples of inputfiles, input file template (inputfile_template.m)

**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 thetaf (means, standard deviations, correlation, distribution parameters) and deterministic parameters thetag in the limit-state function

**SORM**directory

SORM curvature-fitting method (sorm_cfh.m) and 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.cpp-64bit 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 (call to eq_point_set.m function and auxiliary files in eq_sphere_partitions directory)

**subset_simulations**directory

Subset Simulation (subset_simulation.m) and auxiliary files

**2SMART**directory

²SMART simulation (ssvm_simulation.m), kmeans clustering files (kmeans subdirectory) and auxiliary files

**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 .ddl 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 beta index w.r.t. design variables (N2LA.m), Polak-He optimization algorithm (ph_quadprog.m), fun.m auxiliary files

**SVM**directory

Spider toolbox (spider subdirectory), 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)