Multiple design points
Implement the possiblity to check for multiple design points (not just by generating random start points).
Reference: Der Kiureghian A., Dakessian T.: Multiple design points in first and second-order reliability. Structural Safety, 20: 37-49 (1998).
Blueprint information
- Status:
- Not started
- Approver:
- Wolfgang Betz
- Priority:
- Low
- Drafter:
- Wolfgang Betz
- Direction:
- Approved
- Assignee:
- Wolfgang Betz
- Definition:
- New
- Series goal:
- Accepted for trunk
- Implementation:
- Not started
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Sprints
Whiteboard
example fem_random has multiple design points.
This problem has multiple design points !!! (and the wrong one ins found if starting from mean)
=======
loadlib "RND";
fem new;
rnd new 1 lognormal mu 0.01 sd 0.01 epsilon 0; # predisplacement
rnd new 2 normal mu 0.03 sd 0.025; # predisplacement (rotation)
rnd new 3 lognormal mu 5 sd 4; # friction
rnd new 4 gumbel mu 1 sd 0.2; # nodal load
rnd corr rv1 1 rv2 2 rho -0.4;
rnd corr create;
isomat 0 E 3e5 nu 0.1;
crosssec 0 Manual A 1e-4 Iy 0.0003 Iz 6e-4 It 20;
crosssec 1 Manual A 1e-4 Iy 0.0003 Iz 6e-6 It 20;
node 0 [0] fix wx, fix wy, fix wz, fix rx, fix ry;
node 1 [2] fix wz, fix rx, fix ry;
node 2 [4] fix wy, fix wz, fix rx, fix ry;
node 10 [2] link wx 1, link wy 1, link wz 1;
node 11 [1,-1] fix wy, fix wz, fix rx, fix ry, fix rz rv(2), spring wx rv(3);
node 12 [3,-1] fix wy -1.0*rv(1), fix wz, fix rx, fix ry, fix rz, spring wx rv(3);
edge 1 0 1;
edge 2 1 2;
edge 11 11 10;
edge 12 12 10;
edge 13 11 12 { pOrder=3; };
elbeam 1 1;
elbeam 2 2;
elbeam 11 11 { crossSec=1; };
elbeam 12 12 { crossSec=1; };
eltruss 13 13;
nload 10 wx 1;
nload 10 wy -1*rv(4);
eload 1 local wy pos=[-1,1] load=-0.5;
eload 2 local wy pos=[-1,1] load=-0.5;
eload 13 local wx pos=[-1,1] load=lx { degreeLoad=1; };
fem assdof;
fem assstf { printmtx=true; };
fem assforces;
fem solve {
pcn=4;
};
# Output some results
calc nodeu([1,wx]);
calc nodeu([1,wy]);
funplot nodeu([11,wx]), nodeu([12,wx]), nodeu([
calc elinfo(13,N,0);
# Define the limit state function
var lsf = objexec(
fem assstf { dolog=false; };
fem assforces { dolog=false; };
fem solve { dolog=false; pcn=4; };
});
# random sampling
sfor (i;10) {
rnd smp { verbose = false; dolog=false; };
calc lsf;
};
# FORM - analysis
form ( formy; formx; lsf ) {
xstart = rv_mean();
vlog = true;
betadp = betadp;
};
sfor (i;10) {
rnd smp { verbose = false; dolog=false; };
form ( formy; formx; lsf ) {
xstart = rv_vec(x);
vlog = true;
betadp = betadp;
#dolog = false;
};
funplot betadp;
};
# Importance sampling
ips(ipsv;
(tailstdn betadp 3.64)
{}
{
reliability = true;
dolog = false;
} ;