-
Notifications
You must be signed in to change notification settings - Fork 22
/
Copy pathLibAnalysisStaticParameters.tcl
79 lines (78 loc) · 5.45 KB
/
LibAnalysisStaticParameters.tcl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# static analysis parameters
# I am setting all these variables as global variables (using variable rather than set command)
# so that these variables can be uploaded by a procedure
# Constraints Handler -- Determines how the constraint equations are enforced in the analysis (http://opensees.berkeley.edu/OpenSees/manuals/usermanual/617.htm)
# Plain Constraints -- Removes constrained degrees of freedom from the system of equations (only for homogeneous equations)
# Lagrange Multipliers -- Uses the method of Lagrange multipliers to enforce constraints
# Penalty Method -- Uses penalty numbers to enforce constraints --good for static analysis with non-homogeneous eqns (rigidDiaphragm)
# Transformation Method -- Performs a condensation of constrained degrees of freedom
variable constraintsTypeStatic Plain; # default
if { [info exists RigidDiaphragm] == 1} {
if {$RigidDiaphragm=="ON"} {
variable constraintsTypeStatic Lagrange; # for large model, try Transformation
}; # if rigid diaphragm is on
}; # if rigid diaphragm exists
constraints $constraintsTypeStatic
# DOF NUMBERER (number the degrees of freedom in the domain): (http://opensees.berkeley.edu/OpenSees/manuals/usermanual/366.htm)
# Determines the mapping between equation numbers and degrees-of-freedom
# Plain -- Uses the numbering provided by the user
# RCM -- Renumbers the DOF to minimize the matrix band-width using the Reverse Cuthill-McKee algorithm
set numbererTypeStatic RCM
numberer $numbererTypeStatic
# System (http://opensees.berkeley.edu/OpenSees/manuals/usermanual/371.htm)
# Linear Equation Solvers (how to store and solve the system of equations in the analysis)
# provide the solution of the linear system of equations Ku = P. Each solver is tailored to a specific matrix topology.
# ProfileSPD-Direct profile solver for symmetric positive definite matrices
# BandGeneral-Direct solver for banded unsymmetric matrices
# BandSPD-Direct solver for banded symmetric positive definite matrices
# SparseGeneral-Direct solver for unsymmetric sparse matrices
# SparseSPD-Direct solver for symmetric sparse matrices
# UmfPack-Direct UmfPack solver for unsymmetric matrices
set systemTypeStatic UmfPack; # try UmfPack for large model
system $systemTypeStatic
# Convergence Test
# Accept the current state of the domain as being on the converged solution path
# Determine if convergence has been achieved at the end of an iteration step
# NormUnbalance-Specifies a tolerance on the norm of the unbalanced load at the current iteration
# NormDispIncr-Specifies a tolerance on the norm of the displacement increments at the current iteration
# EnergyIncr-Specifies a tolerance on the inner product of the unbalanced load and displacement increments at the current iteration
# RelativeNormUnbalance
# RelativeNormDispIncr
# RelativeEnergyIncr
variable counterItr 1;
variable RDR 0.0;
variable TolStatic 1.e-8; # Convergence Test: tolerance
variable maxNumIterStatic 6; # Convergence Test: maximum number of iterations that will be performed before "failure to converge" is returned
variable printFlagStatic 0; # Convergence Test: flag used to print information on convergence (optional) 1: print information on each step;
variable testTypeStatic EnergyIncr ; # Convergence-test type
test $testTypeStatic $TolStatic $maxNumIterStatic $printFlagStatic;
# for improved-convergence procedure:
variable maxNumIterConvergeStatic 2000;
variable printFlagConvergeStatic 0;
# Solution Algorithm: Iterate from the last time step to the current
# Linear-Uses the solution at the first iteration and continues
# Newton-Uses the tangent at the current iteration to iterate to convergence
# ModifiedNewton-Uses the tangent at the first iteration to iterate to convergence
# NewtonLineSearch
# KrylovNewton
# BFGS
# Broyden
variable algorithmTypeStatic Newton;
algorithm $algorithmTypeStatic;
# Static Integration: Determine the next time step for an analysis
# LoadControl -- Specifies the incremental load factor to be applied to the loads in the domain
# DisplacementControl -- Specifies the incremental displacement at a specified DOF in the domain
# Minimum Unbalanced Displacement Norm -- Specifies the incremental load factor such that the residual displacement norm in minimized
# Arc Length -- Specifies the incremental arc-length of the load-displacement path
# Transient Integration: Determine the next time step for an analysis including inertial effects
# Newmark-The two parameter time-stepping method developed by Newmark
# HHT-The three parameter Hilbert-Hughes-Taylor time-stepping method
# Central Difference-Approximates velocity and acceleration by centered finite differences of displacement
integrator DisplacementControl $CtrlNode $CtrlDOF $Dincr
# Analysis-defines what type of analysis is to be performed
# Static Analysis -- solves the KU=R problem, without the mass or damping matrices.
# Transient Analysis -- solves the time-dependent analysis. The time step in this type of analysis is constant. The time step in the output is also constant.
# variableTransient Analysis -- performs the same analysis type as the Transient Analysis object. The time step, however, is variable. This method is used when
# there are convergence problems with the Transient Analysis object at a peak or when the time step is too small. The time step in the output is also variable.
set analysisTypeStatic Static
analysis $analysisTypeStatic