snopt based optimization in opensees
TRANSCRIPT
SNOPT Based Optimization in
OpenSees
Quan GuJoel P. ConteMichele Barbato (LSU)
by
UCSD team
Needs for Integrating Optimization Software
Package with OpenSees
� Deterministic (standalone or general-purpose) structural optimization
• Optimization based seismic design
� Automatic FE model calibration & updating
� Reliability analysis
� Reliability-based optimization
• Reliability-based seismic design optimization
Needs & Challenges
� Optimization needed for different purposes at various levels:
• Optimization is called for deterministic structural optimization and finite element model updating problems
• Optimization for design point search is called inside the reliability module
• Optimization needs to be called at two different levels for reliability-based optimization
� Interface (objective function: OF, constraint functions: CFs, design variables: DVs) must be sufficiently flexible to accommodate users’ needs:
• Any input for OpenSees can be used as DVs
• Any output from OpenSees can be used in OF and/or CFs
� Need to integrate DDM-based sensitivity, reliability module and parameterization framework with optimization framework:• Need to couple Optimization with DDM in order to use analytical gradient
computation
• Reliability module needs to be compatible with parameterization framework
• Need to develop and maintain up-to-date user’s manuals for optimization, sensitivity and reliability analyses
• Need for reliable demonstration examples
SNOPT
A Fortran software package for solving large-scale nonlinear optimization
problems (by Philip Gill, Walter Murray and Michael Saunders)
� What is SNOPT ?
• Suitable for large-scale applications
• Requiring relatively few evaluations of OF and CFs and their gradients
• Able to tolerate discontinuities in the gradients of OF and CFs
• Able to by-pass points where the OF and CFs cannot be evaluated
numerically
• Very flexible and easy to customize
• Open source available for academic purposes
� Why SNOPT ?
Software Architecture
Optimization framework in OpenSees
SNOPTClass
+ solve ()
+ userFunction( )
DesignVariable(DV)
ObjectiveFunction
ConstraintFunction
SNOPTClass
+ solve ()
+ userFunction( )
DesignVariable(DV)
ObjectiveFunction
ConstraintFunction
SNOPTReliability
+ findDesignPoint()
+ userFunction()
ReliabilityDomain
GFunEvaluator
GradGEvaluator
ProbabilityTransformation
SNOPTReliability
+ findDesignPoint()
+ userFunction()
ReliabilityDomain
GFunEvaluator
GradGEvaluator
ProbabilityTransformation
SNOPTOptimization
+ runOptAnalysis()
+ updateXFG()
+ userFunction()
Domain
ObjectiveFunction
ConstraintFunction
SNOPTOptimization
+ runOptAnalysis()
+ updateXFG()
+ userFunction()
Domain
ObjectiveFunction
ConstraintFunction
ClassName
+ function()
variable
ClassName
+ function()
variable
Updated DV X
F and G
(+ gradients)
Inheritance or
polymorphism
Sending data
Function Details
OptimizationOptimization
userFunction()
Class name
Member function
Member variable
DV: design variable
F: objective function
G: constraint function
Structural reliability analysis in OpenSees
MeritFunctionCheckMeritFunctionCheck
SearchDirectionSearchDirection StepSizeRuleStepSizeRule
ConvergenceCheckConvergenceCheck
SNOPT
Class
……
New RV X
F and G
(+ gradients)
……RandomVariableRandomVariable LimitStateFunctionLimitStateFunction
GFunEvaluatorGFunEvaluatorProbabilityTransformationProbabilityTransformation……
SNOPT
Reliability
SNOPT
Reliability
GradGEvaluatorGradGEvaluator
ReliabilityDomainReliabilityDomain
FindDesignPoint
Algorithm
FindDesignPoint
Algorithm
Inheritance
Aggregation
Data transferring: sending data
RV: random variable
F : objective function
G : constraint functions
Calling analysis class
Communication with domain
class to get data or compute state
Reliability
Analysis
Reliability
Analysis
Model updating or structural optimization/identification
MeritFunctionCheckMeritFunctionCheck
SearchDirectionSearchDirection StepSizeRuleStepSizeRule
ConvergenceCheckConvergenceCheck
SNOPT
Class
……
New DV X
F and G
(+ gradients)
……DesignVariableDesignVariable DesignVariablePositionerDesignVariablePositioner
ConstraintFunctionConstraintFunction ……
SNOPT
Optimization
SNOPT
Optimization
ObjectiveFunctionObjectiveFunction
DomainDomain
AnalysisAnalysis
Inheritance
Aggregation DV: design variable
F : objective function
G : constraint functions
Calling analysis class
Communication with domain
class to get data or compute state
Data transferring: sending data
Reliability based optimization
……DesignVariableDesignVariable
DesignVariablePositionerDesignVariablePositioner
ConstraintFunctionConstraintFunction ……
SNOPT
Optimization
SNOPT
Optimization
ObjectiveFunctionObjectiveFunction
DomainDomain
AnalysisAnalysis
……RandomVariableRandomVariable
RandomVariablePositionerRandomVariablePositioner
Reliability
Domain
Reliability
Domain SNOPT
Reliability
SNOPT
Reliability
FindDesignPoint
Algorithm
FindDesignPoint
Algorithm
Reliability
Analysis
Reliability
Analysis
Application example 1
Nonlinear Structural Optimization
E
-0.01 -0.005 0 0.005 0.01-4
-2
0
2
4x 10
5]kPa[σ
Fy,ext
Fy,comp
E
][−ε-0.01 -0.005 0 0.005 0.01-4
-2
0
2
4x 10
5
-0.01 -0.005 0 0.005 0.01-4
-2
0
2
4x 10
5
-0.01 -0.005 0 0.005 0.01-4
-2
0
2
4x 10
5]kPa[σ
Fy,ext
Fy,comp
E
][−ε
x
z
2.0m2.0m
6.0m 6.0m
2.0m
2.5m
3.0m
3.5m
4.0my
G
A
C
B
x
z
2.0m2.0m
6.0m 6.0m
2.0m
2.5m
3.0m
3.5m
4.0my
G
A
C
B
F30o
G
F F
F
x
y
F30o
G
F F
F
x
y
30o
G
F F
F
x
y
(1) when F = 25 kN, the top umax < 1.50cm
(2) when F = 100 kN, the top umax < 15.0cm
� Minimize the total cost (or volume) such that
� Design variables
(1) Cross-section Area A: in range [8.0e-4, 1.6e-2] m2 , initial 8e-3 m2
(2) Cross-section Area B: in range [3.0e-4, 1.6e-3] m2 , initial 3e-3 m2
(3) Cross-section Area C: in range [2.0e-4, 4.0e-3] m2 , initial 2e-3 m2
(1) A = 3.17e-3 m2, B = 3.51e-4 m2, C = 2.00e-4 m2
(2) Total volume = 0.274 m3 (compared with initial volume
of 1.20m3)
� Optimal design
0 0.05 0.1 0.150
100
200
300
400
Initial Design: 1.20 [m3]
Iteration #20: 0.333 [m3]
Optimal Design (itn #40): 0.274 [m3]
Maximum top displacement [m]
Tota
l F
orc
e [k
N]
0 10 20 30 400.2
0.4
0.6
0.8
1
1.2
iteration #
Volu
me
[m
3]
Application example 2
Nonlinear FE Model Updating
0 5 10 15 20-2
0
2
u0 (surface)
u6 (6m from surface)
u11(11m from surface)
(17m from surface)
Mat. #1
Mat. #2
Mat. #3
Max accel. = 186 cm/s2
-1 0 1 2
x 10-3
-20
0
20
40
-1 0 1 2
x 10-3
-20
0
20
40
[ ]kNxzτ
]/[ 2smug
��
][sec Time
gu��
xzε xzε
� Objective function and its gradients:
� Design variables, their true (and initial) values [kPa]:
(1) Material #1: G1, τ1. 28800 (init: 30000), 31 (init:30)
(2) Material #2: G2, τ2 . 39200 (init: 30000), 33 (init:30)
(3) Material #3: G3, τ3 . 57800 (init: 30000), 34 (init:30)
� Parameters obtained by SNOPT: true values
20000 iG< < ∞ 20i
τ< < ∞ ( i = 1, 2, 3 ) Range:
( )( )time step#stations
2
j 1 n 1
1( )
2�� ��
Exp
j n j nF u t u t
= =
= −
∑ ∑
( )( )time step#stations
j 1 n 1
( )( )
���� ��
j nExp
j n j n
u tFu t u t
θ θ= =
∂ ∂= −
∂ ∂ ∑ ∑
0 5 10 15-2
0
2
Actual response
Simulated response
0 5 10 15-2
0
2
Time[sec]
]/[ 2smu g
��
(a)
(b)
� Comparison between measured (actual) and predicted ground surface accelerations:
(a) before model updating
(b) after model updating
0 20 40 60 80 1000
50
100
150
200
250
300
350
400FFDDDM
Convergence process (FFD vs DDM)
( )
−= ∑∑
==
2
,,
steps#
1
points#
1 2
1 EXP
tjtj
ijii
uuF ����
Algorithm using DDM converges MUCH FASTER than FFD !
Iteration Step #
F
Application example 3
Structural Reliability Analysis
30 25
y
20
25
A
7.0 7.0
CC
CC
B
B
B
B
A
A
P
P/2
(unit: m)
3.6
7.2
z20 25
y
20
25
B
z20 20
25
C
z
y
20
(unit: cm)30 25
y
20
25
A
7.0 7.0
CC
CC
B
B
B
B
A
A
P
P/2
(unit: m)
3.6
7.2
z20 25
y
20
25
B
z20 20
25
C
z
y
20
(unit: cm)
� Marginal PDFs, mean, c.o.v. and DP values of RVs
� Objective function and constraint
1
2y yT
F =top0.144m 0G u= − >
, FORM 0.0181fP = FORM 2.094β =� Reliability:
0 0.05 0.1 0.150
50
100
150
200
250
u1 at DP
u1 at mean point
uroof
at DP
uroof
at mean point
u [m]
P[kN]
� Base shear-horizontal floor displacements with RVs
at mean point and at the DP