Submit Reliability questions here!

A place to ask questions on how to use OpenSees to perform Finite Element Reliability Analysis

Moderators: silvia, selimgunay, mhscott, Moderators

Post Reply
mhscott
Posts: 872
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

Submit Reliability questions here!

Post by mhscott » Mon Sep 09, 2013 9:42 am

This forum is dedicated to all things reliability analysis in OpenSees. Questions on its use, feature requests, etc.

ziqidwang
Posts: 1
Joined: Sat Apr 14, 2012 5:32 am
Location: SWJTU

Re: Submit Reliability questions here!

Post by ziqidwang » Thu Jan 23, 2014 8:37 pm

Hello,

Are the commands 'DiscretizedRandomProcess' and 'SimulatedRandomProcsess' working on the current version of OpenSees?

I am planning to do some seismic reliability analysis with random acceleration process involved, so I want to know if those random process commands are working properly right now. If they are working fine, can someone post some examples of reliability analysis with random process involved?

mhscott
Posts: 872
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

Re: Submit Reliability questions here!

Post by mhscott » Tue Jan 28, 2014 8:04 am

I will have to check if they are working and will post examples once confirmed.

JOSELUISEM
Posts: 11
Joined: Fri Oct 18, 2013 9:36 am
Location: Unam

Re: Submit Reliability questions here!

Post by JOSELUISEM » Tue Apr 29, 2014 12:02 pm

Hi,
1.-I want to parameterize the wall thickness of a "pipe" fibre section
2.-I want to parameterize an elastic-plastic material (with plastic hardening) with different yielding points/variablesSIG (Eps, SIG) for tension and compression (not P.Plastic)

I would like to know:
Is it possible to do with the current reliability functions?
If it is possible, which is the syntax to identify material and section parameters for uncertainty characterization?

Thank you for your valuable time,

JOSELUISEM
Posts: 11
Joined: Fri Oct 18, 2013 9:36 am
Location: Unam

Re: Submit Reliability questions here!

Post by JOSELUISEM » Fri May 23, 2014 11:08 am

I managed to successfully modify the steel01 material following the tutorials. Now, I'm having some trouble to implement a new pipefibersection2d I like to know if there are some tutorial o references about adding a new section class??

thank you for your advice,

ashtari
Posts: 1
Joined: Wed Jun 08, 2011 7:38 pm
Location: University of British Columbia

Re: Submit Reliability questions here!

Post by ashtari » Mon May 26, 2014 11:12 am

Hi,

I have tried to use FORM finite element module in OpenSees for a very simple cantilever beam below, but when I execute it, it will give zero reliability index. I would really appreciate if you could help me find its problem.

wipe
wipeReliability


model basic -ndm 3 -ndf 6
reliability

set E_mean [expr 4500.0*pow(45.0,0.5)*1.0e6];
set L_mean 5.0;
set a 0.4;
set b 0.25;
set Iz [expr 1/12.0*$b*pow($a,3)];
set Iy [expr 1/12.0*$a*pow($b,3)];
set J [expr $Iz+$Iy];
set G_mean [expr $E_mean/2.0/(1.0+0.25)];
set A [expr $a*$b];
set rho [expr 2500.0*$A];
set g 9.81;

node 1 0.0 0.0 0.0
node 2 $L_mean 0.0 0.0

fix 1 1 1 1 1 1 1
fix 2 0 0 1 1 1 0

randomVariable 1 lognormal -mean $E_mean -stdv [expr $E_mean*0.1];
randomVariable 2 lognormal -mean $G_mean -stdv [expr $G_mean*0.05];
randomVariable 3 normal -mean $L_mean -stdv [expr $L_mean*0.01];


geomTransf Linear 1 0 0 1;
#$A $E $G $J $Iy $Iz $tranfTag $massDens;
element elasticBeamColumn 1 1 2 $A $E_mean $G_mean $J $Iy $Iz 1 $rho;


parameter 1 randomVariable 1 element 1 E
parameter 2 randomVariable 2 element 1 G
parameter 3 randomVariable 3 node 2 coord 1


# Load Cases
set DL [expr $rho*$g];
set LL 10000.0;

# Load Combinations
set combo1 [expr $DL+$LL];
set combo2 [expr 1.2*$DL+1.6*$LL];

eval "recorder Element -file ele_force1.txt -time -ele 1 force"
eval "recorder Element -file ele_disp1.txt -time -ele 1 deformation"

eval "recorder Node -file node1_reac1.out -time -node 1 -dof 2 reaction"
eval "recorder Node -file node2_disp1.out -time -node 2 -dof 2 disp"


# Loading and FEM Analysis Specifications
set py 10000.0;

pattern Plain 1 "Linear" {

load 2 0.0 $py 0.0 0.0 0.0 0.0
}


set Nsteps 10;
numberer RCM;
system UmfPack;
test NormDispIncr 1.0e-6 50 1
algorithm KrylovNewton
constraints Transformation
integrator LoadControl [expr 1.0/$Nsteps]
analysis Static

# Sensitivity
sensitivityIntegrator -static
sensitivityAlgorithm -computeAtEachStep # Finds the design point using the direct differentiation method


parameter 4 node 2 Disp 2

set Umax 0.0103;

performanceFunction 1 "$Umax-\$par(4)"


randomNumberGenerator CStdLib
probabilityTransformation Nataf -print 3
reliabilityConvergenceCheck Standard -e1 1.0e-4 -e2 1.0e-4 -print 1
functionEvaluator Tcl -file "analyze $Nsteps";
gradientEvaluator Implicit
searchDirection iHLRF
meritFunctionCheck AdkZhang -multi 2.0 -add 50 -factor 0.5
stepSizeRule Fixed -stepSize 1.0
startPoint Mean
findDesignPoint StepSearch -maxNumIter 20; # -printDesignPointX designPointX.out

runFORMAnalysis beamPushover.out

return
Sepideh Ashtari
PhD Student
University of British Columbia

mhscott
Posts: 872
Joined: Tue Jul 06, 2004 3:38 pm
Location: Corvallis, Oregon USA
Contact:

Re: Submit Reliability questions here!

Post by mhscott » Mon Jun 09, 2014 11:58 am

The Implicit gradientEvaluator (DDM) will not work for elasticBeamColumn in 3D because the element methods have not been implemented (not difficult, just hasn't been done). Try using finite different gradientEvaluator.

lorcancon
Posts: 25
Joined: Thu May 22, 2014 5:22 am
Location: Roughan & O Donovan

Re: Submit Reliability questions here!

Post by lorcancon » Tue Jul 01, 2014 2:45 am

Mike,

I am trying to program a simple reliability analysis of a steel bar with a tensile axial load. I want to compute the probability of the deflections exceeding 0.006''. I want to calculate probabilities from both FORM and Monte Carlo Simulation. I've started with one of your examples, but I cannot figure out how to re-run the finite element analysis through each loop of Monte Carlo Simulation. I have reviewed one of your Monte Carlo examples which does not include a Finite element model in which you have simply updated the parameters through each loop of MCS, but can this be done for a nodal displacement parameter? Please see code below:

wipe
# Model Created by Lorcan Connolly 30/06/2014
# The script creates a static model of a bar with a single tensile axial load
# A reliability anaysis is used to calculate the probability of the axial displacement exceeding 0.006
# Form and Monte Carlo methods are used

# model builder: model basic -ndm %ndm -ndf %ndf
model basic -ndm 2 -ndf 3
#Set length of beam
set L 144.0
#Create nodes
node 1 0.0 0.0
node 2 $L 0.0
#Fix nodes
fix 1 1 1 0
fix 2 0 1 0
#Set material properties
set E 30000.0
set A 25.0
set I 1500.0
# Create section
section Elastic 1 $E $A $I
# Define Linear geometric transfer
geomTransf Linear 1
# Create Single element: element forceBeamColumn %tag %Nodei %Nodej %Transfer tag "Integration type" %arg1 %arg2
element forceBeamColumn 1 1 2 1 Lobatto 1 3
#Set Load value
set P 25.0
# Define Nodal load pattern: load %Node ndf(%Load Values)
pattern Plain 1 Constant {
load 2 $P 0 0
}
#Define static analysis
analysis Static
#Read in reliability commands
reliability
#Set young's modulus as random variable: randomVariable %tag "distribution" -mean %mean -stdv %Standard Deviation
randomVariable 62 normal -mean $E -stdv [expr 0.1*$E]
# Define parameter for young's modulus: parameter %paramtag randomVariable %RVtag element %element tag "E"
parameter 62 randomVariable 62 element 1 E
# Define parameter for nodal displacement of node 2 in x-direction: parameter %paramtag node %nodetag disp %DoF
parameter 23 node 2 disp 1

#Define performance function number 76
performanceFunction 76 "0.006-\$par(23)"

#Define sensitivity integrator
sensitivityIntegrator -static
#Define sensitivity Algorithm
sensitivityAlgorithm -computeAtEachStep

# Select random number generator
randomNumberGenerator CStdLib
# Define probability Transformation
probabilityTransformation Nataf -print 1
#Define reliability Convergence Check
reliabilityConvergenceCheck Standard -e1 1.0e-2 -e2 1.0e-2 -print 1
# Use tcl function evaluator and finite difference gradient evaluator
functionEvaluator Tcl -file "analyze 1"
gradientEvaluator FiniteDifference

searchDirection iHLRF
meritFunctionCheck AdkZhang -multi 2.0 -add 10.0 -factor 0.5
stepSizeRule Armijo -maxNum 10 -base 0.5 -initial 0.3 5
stepSizeRule Fixed -stepSize 1.0
startPoint Mean
findDesignPoint StepSearch -maxNumIter 15 -printDesignPointX designPointX.out
# Run form analysis
runFORMAnalysis truss_FORM.out -relSens 1


# ========== Monte Carlo =====================
# Set number of trials
set Ntrials 1000
# Initial number of failures
set Nfail 0
# loop through trials
for {set i 1} {$i <= $Ntrials} {incr i} {
# Set RV list and loop through
set U ""
foreach rv [getRVTags] {
# Generate random number between 0 --> 1.
set val [expr rand()]
# Calculate standard normal variable
lappend U [getStdNormalInverseCDF $val]
}
#Set new value for RV
set X [transformUtoX $U]
set irv 0
# Loop through each random variable
foreach rv [getRVTags] {
# Update each parameter in model to equal X-value
updateParameter $rv [lindex $X $irv]
# ******************* At this point, I think I need to re-run my FE model in order to update parameter 23 (nodal displacement) - How do I do this?
updateParameter 23 [node 2 disp 1]; # ????????????
incr irv
}
#Create variable x3 = new nodal displacement
set x3 [getParamValue 23]
# Define performance function
set g [expr 0.006-$x3]
#Count number of fails
if {$g <= 0} {
incr Nfail
}
}
# Output failure probability
puts "Monte Carlo Pf = [expr double($Nfail)/($Ntrials)]"

Thanking you in advance,
Kind regards,
Lorcan Connolly.

lorcancon
Posts: 25
Joined: Thu May 22, 2014 5:22 am
Location: Roughan & O Donovan

Re: Submit Reliability questions here!

Post by lorcancon » Tue Jul 01, 2014 4:57 am

Actually, I've managed to answer my own question. I've essentially had to re-run the static analysis on each loop and store the nodal displacement as a variable. Is this the best way to do it? The simulation took about 50 minutes to run 100,000 iterations.

set Ntrials 100000
set Nfail 0
for {set i 1} {$i <= $Ntrials} {incr i} {
reset
set U ""
foreach rv [getRVTags] {
set val [expr rand()]
lappend U [getStdNormalInverseCDF $val]
}
set X [transformUtoX $U]
set irv 0
foreach rv [getRVTags] {
updateParameter $rv [lindex $X $irv]
incr irv
}
analyze 1
print node 2
set D [nodeDisp 2 1]
if {[expr 0.006-$D] <= 0.0} {incr Nfail}
}
puts "Monte Carlo Pf = [expr double($Nfail)/($Ntrials)]"

majidmahjoor
Posts: 1
Joined: Sat Feb 08, 2014 11:05 am
Location: ARYAN Institute of Sience and Technology Ministry of Science, Research and Technology
Contact:

Re: Submit Reliability questions here!

Post by majidmahjoor » Thu Aug 28, 2014 5:27 am

hi
I want to calculate the reliability index with Monte Carlo simulation for steel fram (2D) on seismic loading.
who could help me?(explain about seismic variable e.g. duration & frequency & PGA)
any body can send me a sample code :( .

JOSELUISEM
Posts: 11
Joined: Fri Oct 18, 2013 9:36 am
Location: Unam

performanceFunction

Post by JOSELUISEM » Tue Dec 02, 2014 10:16 pm

Hi,Thank you for your valuable time in advance. I'm having quite a trouble when using performanceFunction (PF) in terms of beam-strain.

this is in some examples:
performanceFunction 1 "5.0e-5-\[nodeDisp 2 1\]"

It works fine like this instead:
parameter 23 node 2 disp 1
performanceFunction 1 "0.0000005-\$par(23)"

so... How to use "section Displacement" in a similar way???? if one wants to use a PF like this:
performanceFunction 2 "5.0e-8+\[sectionDisplacement 1 1 2\]"

Also,

It's possible to assign a random variable to a zerolength element's uniaxial material parameter E ?

Post Reply