failed to get compatible element for deformations for elemen
Moderators: silvia, selimgunay, Moderators
-
- Posts: 2
- Joined: Mon Feb 06, 2006 1:57 am
- Location: IIEES - http://www.iiees.ac.ir/english/index.php
- Contact:
failed to get compatible element for deformations for elemen
Dear Mr or Mrs
I making use of OpenSees to perform some inelastic time history analysis .But I got a problem with it.The problem is that analysis are not converged.This happen when displacement of structure is 6 cm however ultimate displacement according to DDBD result is 25~30 cm.I mean it seems that this error is not because of instability problem. Error message is:
WARNING - ForceBeamColumn2d::update - failed to get compatible element for
deformations for element: 18(dW: << 5.05294e-008)
Domain::update - domain failed in update
Newmark::update() - failed to update the domain
WARNING NewtonRaphson::solveCurrentStep() -the Integrator failed in update
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 3.88
Of course my models conclude the same commands that there are in samples with one exception that I use distributed load on beam and I think there in no problem with modeling .however there in not any error during TH analysis of these samples.
Also for more details,I’ve attached OpenSees file.
May I ask you to explain reason(s) of this error and guide me to solve it?If you please introduce some references about it.
Thank you very much
Kind Regards
M.Azari
my project
----------------------------------------------------------------------------------
# OSP Generated Input file for use in the OpenSees/G3 Platform
# Created = 25/09/2005 & by m.kaffashian [IIEES]
# units KN - m - s
wipe
# Start of model generation
# ------------------------------
# Create ModelBuilder (with two-dimensions and 3 DOF/node)
model basic -ndm 2 -ndf 3
set displayMode "displayON"
# Create nodes
# tag X Y
node 1 0.0 0.0
node 2 6.0 0.0
node 3 12.0 0.0
node 4 0.0 3.0
node 5 6.0 3.0
node 6 12.0 3.0
node 7 0.0 6.0
node 8 6.0 6.0
node 9 12.0 6.0
node 10 0.0 9.0
node 11 6.0 9.0
node 12 12.0 9.0
node 13 0.0 12.0
node 14 6.0 12.0
node 15 12.0 12.0
# Fix supports at base of columns
# tag DX DY RZ
fix 1 1 1 1
fix 2 1 1 1
fix 3 1 1 1
# Nodal Mass
set mint 18.915
set mext 11.295
# tag MX MY RZ
# External columns
mass 4 $mext 0 0
mass 6 $mext 0 0
mass 7 $mext 0 0
mass 9 $mext 0 0
mass 10 $mext 0 0
mass 12 $mext 0 0
mass 13 $mext 0 0
mass 15 $mext 0 0
# Internal columns
mass 5 $mint 0 0
mass 8 $mint 0 0
mass 11 $mint 0 0
mass 14 $mint 0 0
# Define materials for nonlinear columns
# ------------------------------------------
set fy 392266.0 ; # Yield stress
set E 205900000.0 ; # Young's modulus
# CONCRETE $matTag $fpc $epsc0 $fpcu $epscu $lambda $ft $Ets
# Core concrete (confined)
uniaxialMaterial Concrete02 1 -28193.138 -0.004 -20593.9654 -0.007 0.1 2819.3138 2137849.74
# Cover concrete (unconfined)
uniaxialMaterial Concrete02 2 -20593.965 -0.003 -2059.39654 -0.006 0.1 2059.3965 2137849.74
# STEEL
# Reinforcing steel
# tag fy E0 b
uniaxialMaterial Steel01 3 $fy $E 0.0123
# Formal arguments
# id - tag for the section that is generated by this procedure
# h - overall height of the section (see above)
# b - overall width of the section (see above)
# cover - thickness of the cover patches
# coreID - material tag for the core patch
# coverID - material tag for the cover patches
# steelID - material tag for the reinforcing steel
# numBars - number of reinforcing bars on any given side of the section
# barArea - cross-sectional area of each reinforcing bar
# nfCoreY - number of fibers in the core patch in the y direction
# nfCoreZ - number of fibers in the core patch in the z direction
# nfCoverY - number of fibers in the cover patches with long sides in the y direction
# nfCoverZ - number of fibers in the cover patches with long sides in the z direction
source RCsection.tcl
source RCsectionBeam.tcl
source RCsectionBeam2.tcl
#{ id h b cover coreID coverID steelID numBars barArea nfCoreY nfCoreZ nfCoverY nfCoverZ}
# column
RCsection 1 0.60 0.60 0.04 1 2 3 8 0.000491 5 2 2 1
RCsection 2 0.55 0.55 0.04 1 2 3 6 0.000491 5 2 2 1
RCsection 3 0.55 0.55 0.04 1 2 3 6 0.000491 5 2 2 1
RCsection 4 0.50 0.50 0.04 1 2 3 5 0.000491 5 2 2 1
# beam
#{ id h b cover coreID coverID steelID numBarsT numBarsB barArea nfCoreY nfCoreZ nfCoverY nfCoverZ}
RCsectionBeam2 5 0.55 0.40 0.04 1 2 3 5 5 0.00038 5 2 2 1
RCsectionBeam2 6 0.55 0.40 0.04 1 2 3 5 5 0.00038 5 2 2 1
RCsectionBeam2 7 0.55 0.40 0.04 1 2 3 5 5 0.00038 5 2 2 1
RCsectionBeam 8 0.50 0.30 0.04 1 2 3 6 6 0.00038 5 2 2 1
# Standard Transformations
# column
geomTransf Linear 1
# beam
# Number of integration points along length of element
set np 5
# Create the coulumns using Beam-column elements
# column
# tag ndI ndJ nsecs secID transfTag
element nonlinearBeamColumn 1 1 4 $np 1 1
element nonlinearBeamColumn 2 2 5 $np 1 1
element nonlinearBeamColumn 3 3 6 $np 1 1
element nonlinearBeamColumn 4 4 7 $np 2 1
element nonlinearBeamColumn 5 5 8 $np 2 1
element nonlinearBeamColumn 6 6 9 $np 2 1
element nonlinearBeamColumn 7 7 10 $np 3 1
element nonlinearBeamColumn 8 8 11 $np 3 1
element nonlinearBeamColumn 9 9 12 $np 3 1
element nonlinearBeamColumn 10 10 13 $np 4 1
element nonlinearBeamColumn 11 11 14 $np 4 1
element nonlinearBeamColumn 12 12 15 $np 4 1
# beam
geomTransf Linear 2
# 1 story
element nonlinearBeamColumn 13 4 5 $np 5 2
element nonlinearBeamColumn 14 5 6 $np 5 2
# 2 story
element nonlinearBeamColumn 15 7 8 $np 6 2
element nonlinearBeamColumn 16 8 9 $np 6 2
# 3 story
element nonlinearBeamColumn 17 10 11 $np 7 2
element nonlinearBeamColumn 18 11 12 $np 7 2
# 4 story
element nonlinearBeamColumn 19 13 14 $np 8 2
element nonlinearBeamColumn 20 14 15 $np 8 2
pattern Plain 1 Constant {
eleLoad -ele 13 -type -beamUniform -23.7402
eleLoad -ele 14 -type -beamUniform -23.7402
eleLoad -ele 15 -type -beamUniform -23.7402
eleLoad -ele 16 -type -beamUniform -23.7402
eleLoad -ele 17 -type -beamUniform -23.7402
eleLoad -ele 18 -type -beamUniform -23.7402
eleLoad -ele 19 -type -beamUniform -23.7402
eleLoad -ele 20 -type -beamUniform -23.7402
}
pattern Plain 2 Constant {
eleLoad -ele 13 -type -beamUniform -5.886
eleLoad -ele 14 -type -beamUniform -5.886
eleLoad -ele 15 -type -beamUniform -5.886
eleLoad -ele 16 -type -beamUniform -5.886
eleLoad -ele 17 -type -beamUniform -5.886
eleLoad -ele 18 -type -beamUniform -5.886
eleLoad -ele 19 -type -beamUniform -5.886
eleLoad -ele 20 -type -beamUniform -5.886
}
# Source in some commands to display the model
# ------------------------------
# End of model generation
# ------------------------------
# Start of recorder generation
# ------------------------------
# Start of recorder generation
# Record displacements at roof
# --------------------------------
# End of recorder generation
# ------------------------------
# Start of analysis generation
# ------------------------------
#if {$displayMode == "displayON"} {
# source StFramePZLdisplay4.tcl
#}
# Set the gravity loads to be constant & reset the time in the domain
loadConst -time 0.0
# ----------------------------------------------------
# End of Model Generation & Initial Gravity Analysis
# ----------------------------------------------------
# Define nodal mass in terms of axial load on columns
set g 9.81
# Define dynamic loads
# Set some parameters
set InputFile 1.dat
set dt 0.01
set accelSeries "Path -filePath $InputFile -dt $dt -factor $g"
# Source in TCL proc to read a PEER Strong Motion Database record
# Create UniformExcitation load pattern
# tag dir
pattern UniformExcitation 3 1 -accel $accelSeries
# set the rayleigh damping factors for nodes & elements
# ----------------------------------------------------
# End of additional modeling for dynamic loads
# ----------------------------------------------------
# ------------------------------
# Start of recorder generation
# Record displacements at roof
recorder Node -file NodeDisp-DYNAMIC-6.out -time -node 6 -dof 1 disp
recorder Node -file NodeDisp-DYNAMIC-9.out -time -node 9 -dof 1 disp
recorder Node -file NodeDisp-DYNAMIC-12.out -time -node 12 -dof 1 disp
recorder Node -file NodeDisp-DYNAMIC-15.out -time -node 15 -dof 1 disp
#recorder EnvelopeNode -file EnvelopeNodeDisp-DYNAMIC-6.out -time -node 6 -dof 1 disp
#recorder EnvelopeNode -file EnvelopeNodeDisp-DYNAMIC-9.out -time -node 9 -dof 1 disp
#recorder EnvelopeNode -file EnvelopeNodeDisp-DYNAMIC-12.out -time -node 12 -dof 1 disp
#recorder EnvelopeNode -file EnvelopeNodeDisp-DYNAMIC-15.out -time -node 15 -dof 1 disp
#recorder EnvelopeElement -file EnvelopeElement.out -ele all
recorder Element -time -file force1-DYNAMIC.out -ele 1 force
recorder Element -time -file force2-DYNAMIC.out -ele 2 force
recorder Element -time -file force3-DYNAMIC.out -ele 3 force
recorder Element -time -file force4-DYNAMIC.out -ele 4 force
recorder Element -time -file force5-DYNAMIC.out -ele 5 force
recorder Element -time -file force6-DYNAMIC.out -ele 6 force
recorder Element -time -file force7-DYNAMIC.out -ele 7 force
recorder Element -time -file force8-DYNAMIC.out -ele 8 force
recorder Element -time -file force9-DYNAMIC.out -ele 9 force
recorder Element -time -file force10-DYNAMIC.out -ele 10 force
recorder Element -time -file force11-DYNAMIC.out -ele 11 force
recorder Element -time -file force12-DYNAMIC.out -ele 12 force
recorder Element -time -file force13-DYNAMIC.out -ele 13 force
recorder Element -time -file force14-DYNAMIC.out -ele 14 force
recorder Element -time -file force15-DYNAMIC.out -ele 15 force
recorder Element -time -file force16-DYNAMIC.out -ele 16 force
recorder Element -time -file force17-DYNAMIC.out -ele 17 force
recorder Element -time -file force18-DYNAMIC.out -ele 18 force
recorder Element -time -file force19-DYNAMIC.out -ele 19 force
recorder Element -time -file force20-DYNAMIC.out -ele 20 force
# End of recorder generation
# ---------------------------------
# ---------------------------------------------------------
# Start of modifications to analysis for transient analysis
# ---------------------------------------------------------
# Delete the old analysis and all its component objects
# ---------------------------------------------------------
# Start of modifications to analysis for transient analysis
# ---------------------------------------------------------
# Delete the old analysis and all it's component objects
wipeAnalysis
# Create the system of equation, a banded general storage scheme
system BandGeneral
# Create the constraint handler, a plain handler as homogeneous boundary
constraints Plain
# Create the convergence test, the norm of the residual with a tolerance of
# 1e-12 and a max number of iterations of 10
test NormDispIncr 1.0e-6 10
# Create the solution algorithm, a Newton-Raphson algorithm
algorithm Newton
# Create the DOF numberer, the reverse Cuthill-McKee algorithm
numberer RCM
# Create the integration scheme, the Newmark with alpha =0.5 and beta =.25
integrator Newmark 0.5 0.25 0.117121 0.002915 0.0 0.0
# Create the analysis object
analysis Transient
# ---------------------------------------------------------
# End of modifications to analysis for transient analysis
# ---------------------------------------------------------
# ------------------------------
# Finally perform the analysis
# ------------------------------
# Perform an eigenvalue analysis
puts [eigen 4]
# Perform the transient analysis
# N dt
set ok [analyze 2501 0.01]
if {$ok != 0} {
set tFinal [expr 2501 * 0.01]
set tCurrent [getTime]
set ok 0
while {$ok == 0 && $tCurrent < $tFinal} {
set ok [analyze 1 0.01]
# if the analysis fails try initial tangent iteration
if {$ok != 0} {
puts "regular newton failed .. lets try an initail stiffness for this step"
test NormDispIncr 1.0e-4 1000 1
algorithm Newton -initial
set ok [analyze 1 0.01]
if {$ok == 0} {puts "that worked .. back to regular newton"}
test NormDispIncr 1.0e-6 10
algorithm Newton
}
set tCurrent [getTime]
}
}
if {$ok == 0} {
puts "Transient analysis completed succesfully";
} else {
puts "Transient analysis completed failed";
}
# Perform an eigenvalue analysis
puts [eigen 4]
------------------------------------------------------------------------------
#RCsection.tcl
proc RCsection {id h b cover coreID coverID steelID numBars barArea nfCoreY nfCoreZ nfCoverY nfCoverZ} {
# The distance from the section z-axis to the edge of the cover concrete
# in the positive y direction
set coverY [expr $h/2.0]
# The distance from the section y-axis to the edge of the cover concrete
# in the positive z direction
set coverZ [expr $b/2.0]
# The negative values of the two above
set ncoverY [expr -$coverY]
set ncoverZ [expr -$coverZ]
# Determine the corresponding values from the respective axes to the
# edge of the core concrete
set coreY [expr $coverY-$cover]
set coreZ [expr $coverZ-$cover]
set ncoreY [expr -$coreY]
set ncoreZ [expr -$coreZ]
# Define the fiber section
section fiberSec $id {
# Define the core patch
patch quadr $coreID $nfCoreZ $nfCoreY $ncoreY $coreZ $ncoreY $ncoreZ $coreY $ncoreZ $coreY $coreZ
# Define the four cover patches
patch quadr $coverID 1 $nfCoverY $ncoverY $coverZ $ncoreY $coreZ $coreY $coreZ $coverY $coverZ
patch quadr $coverID 1 $nfCoverY $ncoreY $ncoreZ $ncoverY $ncoverZ $coverY $ncoverZ $coreY $ncoreZ
patch quadr $coverID $nfCoverZ 1 $ncoverY $coverZ $ncoverY $ncoverZ $ncoreY $ncoreZ $ncoreY $coreZ
patch quadr $coverID $nfCoverZ 1 $coreY $coreZ $coreY $ncoreZ $coverY $ncoverZ $coverY $coverZ
# Define the steel along constant values of y (in the z direction)
layer straight $steelID $numBars $barArea $ncoreY $coreZ $ncoreY $ncoreZ
layer straight $steelID $numBars $barArea $coreY $coreZ $coreY $ncoreZ
# Determine the spacing for the remaining bars in the y direction
set spacingY [expr ($coreY-$ncoreY)/($numBars-1)]
# Avoid double counting bars
set numBars [expr $numBars-2]
# Define remaining steel in the y direction
layer straight $steelID $numBars $barArea [expr $coreY-$spacingY] $coreZ [expr $ncoreY+$spacingY] $coreZ
layer straight $steelID $numBars $barArea [expr $coreY-$spacingY] $ncoreZ [expr $ncoreY+$spacingY] $ncoreZ
}
}
----------------------------------------------------------------------------------
#RCsectionBeam.tcl
proc RCsectionBeam {id h b cover coreID coverID steelID numBarsT numBarsB barArea nfCoreY nfCoreZ nfCoverY nfCoverZ} {
# The distance from the section z-axis to the edge of the cover concrete
# in the positive y direction
set coverY [expr $h/2.0]
# The distance from the section y-axis to the edge of the cover concrete
# in the positive z direction
set coverZ [expr $b/2.0]
# The negative values of the two above
set ncoverY [expr -$coverY]
set ncoverZ [expr -$coverZ]
# Determine the corresponding values from the respective axes to the
# edge of the core concrete
set coreY [expr $coverY-$cover]
set coreZ [expr $coverZ-$cover]
set ncoreY [expr -$coreY]
set ncoreZ [expr -$coreZ]
set ncoreY2 [expr -$coreY+0.044]
# Define the fiber section
section fiberSec $id {
# Define the core patch
patch quadr $coreID $nfCoreZ $nfCoreY $ncoreZ $ncoreY $coreZ $ncoreY $coreZ $coreY $ncoreZ $coreY
# Define the four cover patches
patch quadr $coverID 1 $nfCoverY $ncoverZ $ncoverY $coverZ $ncoverY $coverZ $ncoreY $ncoverZ $ncoreY
patch quadr $coverID 1 $nfCoverY $ncoverZ $coreY $coverZ $coreY $coverZ $coverY $ncoverZ $coverY
patch quadr $coverID $nfCoverZ 1 $ncoverZ $ncoreY $ncoreZ $ncoreY $ncoreZ $coreY $ncoverZ $coreY
patch quadr $coverID $nfCoverZ 1 $coreZ $ncoreY $coverZ $ncoreY $coverZ $coreY $coreZ $coreY
# Define the steel along constant values of y (in the z direction)
#layer straight $steelID $numBars $barArea $ncoreY $coreZ $ncoreY $ncoreZ
#layer straight $steelID $numBars $barArea $coreY $coreZ $coreY $ncoreZ
# Determine the spacing for the remaining bars in the y direction
#set spacingY [expr ($coreY-$ncoreY)/($numBars-1)]
# Avoid double counting bars
#set numBars [expr $numBars-2]
# Define remaining steel in the y direction
layer straight $steelID $numBarsB $barArea $ncoreZ $ncoreY $coreZ $ncoreY
layer straight $steelID $numBarsT $barArea $ncoreZ $coreY $coreZ $coreY
}
}
--------------------------------------------------------------------------------
#RCsectionBeam2.tcl
proc RCsectionBeam2 {id h b cover coreID coverID steelID numBarsT numBarsB barArea nfCoreY nfCoreZ nfCoverY nfCoverZ} {
# The distance from the section z-axis to the edge of the cover concrete
# in the positive y direction
set coverY [expr $h/2.0]
# The distance from the section y-axis to the edge of the cover concrete
# in the positive z direction
set coverZ [expr $b/2.0]
# The negative values of the two above
set ncoverY [expr -$coverY]
set ncoverZ [expr -$coverZ]
# Determine the corresponding values from the respective axes to the
# edge of the core concrete
set coreY [expr $coverY-$cover]
set coreZ [expr $coverZ-$cover]
set ncoreY [expr -$coreY]
set ncoreZ [expr -$coreZ]
set ncoreY2 [expr -$coreY+0.044]
# Define the fiber section
section fiberSec $id {
# Define the core patch
patch quadr $coreID $nfCoreZ $nfCoreY $ncoreZ $ncoreY $coreZ $ncoreY $coreZ $coreY $ncoreZ $coreY
# Define the four cover patches
patch quadr $coverID 1 $nfCoverY $ncoverZ $ncoverY $coverZ $ncoverY $coverZ $ncoreY $ncoverZ $ncoreY
patch quadr $coverID 1 $nfCoverY $ncoverZ $coreY $coverZ $coreY $coverZ $coverY $ncoverZ $coverY
patch quadr $coverID $nfCoverZ 1 $ncoverZ $ncoreY $ncoreZ $ncoreY $ncoreZ $coreY $ncoverZ $coreY
patch quadr $coverID $nfCoverZ 1 $coreZ $ncoreY $coverZ $ncoreY $coverZ $coreY $coreZ $coreY
# Define the steel along constant values of y (in the z direction)
#layer straight $steelID $numBars $barArea $ncoreY $coreZ $ncoreY $ncoreZ
#layer straight $steelID $numBars $barArea $coreY $coreZ $coreY $ncoreZ
# Determine the spacing for the remaining bars in the y direction
#set spacingY [expr ($coreY-$ncoreY)/($numBars-1)]
# Avoid double counting bars
#set numBars [expr $numBars-2]
# Define remaining steel in the y direction
layer straight $steelID $numBarsB $barArea $ncoreZ $ncoreY $coreZ $ncoreY
layer straight $steelID $numBarsB $barArea $ncoreZ $ncoreY2 $coreZ $ncoreY2
layer straight $steelID $numBarsT $barArea $ncoreZ $coreY $coreZ $coreY
}
}
-----------------------------------------------------------------------------------
I making use of OpenSees to perform some inelastic time history analysis .But I got a problem with it.The problem is that analysis are not converged.This happen when displacement of structure is 6 cm however ultimate displacement according to DDBD result is 25~30 cm.I mean it seems that this error is not because of instability problem. Error message is:
WARNING - ForceBeamColumn2d::update - failed to get compatible element for
deformations for element: 18(dW: << 5.05294e-008)
Domain::update - domain failed in update
Newmark::update() - failed to update the domain
WARNING NewtonRaphson::solveCurrentStep() -the Integrator failed in update
DirectIntegrationAnalysis::analyze() - the Algorithm failed at time 3.88
Of course my models conclude the same commands that there are in samples with one exception that I use distributed load on beam and I think there in no problem with modeling .however there in not any error during TH analysis of these samples.
Also for more details,I’ve attached OpenSees file.
May I ask you to explain reason(s) of this error and guide me to solve it?If you please introduce some references about it.
Thank you very much
Kind Regards
M.Azari
my project
----------------------------------------------------------------------------------
# OSP Generated Input file for use in the OpenSees/G3 Platform
# Created = 25/09/2005 & by m.kaffashian [IIEES]
# units KN - m - s
wipe
# Start of model generation
# ------------------------------
# Create ModelBuilder (with two-dimensions and 3 DOF/node)
model basic -ndm 2 -ndf 3
set displayMode "displayON"
# Create nodes
# tag X Y
node 1 0.0 0.0
node 2 6.0 0.0
node 3 12.0 0.0
node 4 0.0 3.0
node 5 6.0 3.0
node 6 12.0 3.0
node 7 0.0 6.0
node 8 6.0 6.0
node 9 12.0 6.0
node 10 0.0 9.0
node 11 6.0 9.0
node 12 12.0 9.0
node 13 0.0 12.0
node 14 6.0 12.0
node 15 12.0 12.0
# Fix supports at base of columns
# tag DX DY RZ
fix 1 1 1 1
fix 2 1 1 1
fix 3 1 1 1
# Nodal Mass
set mint 18.915
set mext 11.295
# tag MX MY RZ
# External columns
mass 4 $mext 0 0
mass 6 $mext 0 0
mass 7 $mext 0 0
mass 9 $mext 0 0
mass 10 $mext 0 0
mass 12 $mext 0 0
mass 13 $mext 0 0
mass 15 $mext 0 0
# Internal columns
mass 5 $mint 0 0
mass 8 $mint 0 0
mass 11 $mint 0 0
mass 14 $mint 0 0
# Define materials for nonlinear columns
# ------------------------------------------
set fy 392266.0 ; # Yield stress
set E 205900000.0 ; # Young's modulus
# CONCRETE $matTag $fpc $epsc0 $fpcu $epscu $lambda $ft $Ets
# Core concrete (confined)
uniaxialMaterial Concrete02 1 -28193.138 -0.004 -20593.9654 -0.007 0.1 2819.3138 2137849.74
# Cover concrete (unconfined)
uniaxialMaterial Concrete02 2 -20593.965 -0.003 -2059.39654 -0.006 0.1 2059.3965 2137849.74
# STEEL
# Reinforcing steel
# tag fy E0 b
uniaxialMaterial Steel01 3 $fy $E 0.0123
# Formal arguments
# id - tag for the section that is generated by this procedure
# h - overall height of the section (see above)
# b - overall width of the section (see above)
# cover - thickness of the cover patches
# coreID - material tag for the core patch
# coverID - material tag for the cover patches
# steelID - material tag for the reinforcing steel
# numBars - number of reinforcing bars on any given side of the section
# barArea - cross-sectional area of each reinforcing bar
# nfCoreY - number of fibers in the core patch in the y direction
# nfCoreZ - number of fibers in the core patch in the z direction
# nfCoverY - number of fibers in the cover patches with long sides in the y direction
# nfCoverZ - number of fibers in the cover patches with long sides in the z direction
source RCsection.tcl
source RCsectionBeam.tcl
source RCsectionBeam2.tcl
#{ id h b cover coreID coverID steelID numBars barArea nfCoreY nfCoreZ nfCoverY nfCoverZ}
# column
RCsection 1 0.60 0.60 0.04 1 2 3 8 0.000491 5 2 2 1
RCsection 2 0.55 0.55 0.04 1 2 3 6 0.000491 5 2 2 1
RCsection 3 0.55 0.55 0.04 1 2 3 6 0.000491 5 2 2 1
RCsection 4 0.50 0.50 0.04 1 2 3 5 0.000491 5 2 2 1
# beam
#{ id h b cover coreID coverID steelID numBarsT numBarsB barArea nfCoreY nfCoreZ nfCoverY nfCoverZ}
RCsectionBeam2 5 0.55 0.40 0.04 1 2 3 5 5 0.00038 5 2 2 1
RCsectionBeam2 6 0.55 0.40 0.04 1 2 3 5 5 0.00038 5 2 2 1
RCsectionBeam2 7 0.55 0.40 0.04 1 2 3 5 5 0.00038 5 2 2 1
RCsectionBeam 8 0.50 0.30 0.04 1 2 3 6 6 0.00038 5 2 2 1
# Standard Transformations
# column
geomTransf Linear 1
# beam
# Number of integration points along length of element
set np 5
# Create the coulumns using Beam-column elements
# column
# tag ndI ndJ nsecs secID transfTag
element nonlinearBeamColumn 1 1 4 $np 1 1
element nonlinearBeamColumn 2 2 5 $np 1 1
element nonlinearBeamColumn 3 3 6 $np 1 1
element nonlinearBeamColumn 4 4 7 $np 2 1
element nonlinearBeamColumn 5 5 8 $np 2 1
element nonlinearBeamColumn 6 6 9 $np 2 1
element nonlinearBeamColumn 7 7 10 $np 3 1
element nonlinearBeamColumn 8 8 11 $np 3 1
element nonlinearBeamColumn 9 9 12 $np 3 1
element nonlinearBeamColumn 10 10 13 $np 4 1
element nonlinearBeamColumn 11 11 14 $np 4 1
element nonlinearBeamColumn 12 12 15 $np 4 1
# beam
geomTransf Linear 2
# 1 story
element nonlinearBeamColumn 13 4 5 $np 5 2
element nonlinearBeamColumn 14 5 6 $np 5 2
# 2 story
element nonlinearBeamColumn 15 7 8 $np 6 2
element nonlinearBeamColumn 16 8 9 $np 6 2
# 3 story
element nonlinearBeamColumn 17 10 11 $np 7 2
element nonlinearBeamColumn 18 11 12 $np 7 2
# 4 story
element nonlinearBeamColumn 19 13 14 $np 8 2
element nonlinearBeamColumn 20 14 15 $np 8 2
pattern Plain 1 Constant {
eleLoad -ele 13 -type -beamUniform -23.7402
eleLoad -ele 14 -type -beamUniform -23.7402
eleLoad -ele 15 -type -beamUniform -23.7402
eleLoad -ele 16 -type -beamUniform -23.7402
eleLoad -ele 17 -type -beamUniform -23.7402
eleLoad -ele 18 -type -beamUniform -23.7402
eleLoad -ele 19 -type -beamUniform -23.7402
eleLoad -ele 20 -type -beamUniform -23.7402
}
pattern Plain 2 Constant {
eleLoad -ele 13 -type -beamUniform -5.886
eleLoad -ele 14 -type -beamUniform -5.886
eleLoad -ele 15 -type -beamUniform -5.886
eleLoad -ele 16 -type -beamUniform -5.886
eleLoad -ele 17 -type -beamUniform -5.886
eleLoad -ele 18 -type -beamUniform -5.886
eleLoad -ele 19 -type -beamUniform -5.886
eleLoad -ele 20 -type -beamUniform -5.886
}
# Source in some commands to display the model
# ------------------------------
# End of model generation
# ------------------------------
# Start of recorder generation
# ------------------------------
# Start of recorder generation
# Record displacements at roof
# --------------------------------
# End of recorder generation
# ------------------------------
# Start of analysis generation
# ------------------------------
#if {$displayMode == "displayON"} {
# source StFramePZLdisplay4.tcl
#}
# Set the gravity loads to be constant & reset the time in the domain
loadConst -time 0.0
# ----------------------------------------------------
# End of Model Generation & Initial Gravity Analysis
# ----------------------------------------------------
# Define nodal mass in terms of axial load on columns
set g 9.81
# Define dynamic loads
# Set some parameters
set InputFile 1.dat
set dt 0.01
set accelSeries "Path -filePath $InputFile -dt $dt -factor $g"
# Source in TCL proc to read a PEER Strong Motion Database record
# Create UniformExcitation load pattern
# tag dir
pattern UniformExcitation 3 1 -accel $accelSeries
# set the rayleigh damping factors for nodes & elements
# ----------------------------------------------------
# End of additional modeling for dynamic loads
# ----------------------------------------------------
# ------------------------------
# Start of recorder generation
# Record displacements at roof
recorder Node -file NodeDisp-DYNAMIC-6.out -time -node 6 -dof 1 disp
recorder Node -file NodeDisp-DYNAMIC-9.out -time -node 9 -dof 1 disp
recorder Node -file NodeDisp-DYNAMIC-12.out -time -node 12 -dof 1 disp
recorder Node -file NodeDisp-DYNAMIC-15.out -time -node 15 -dof 1 disp
#recorder EnvelopeNode -file EnvelopeNodeDisp-DYNAMIC-6.out -time -node 6 -dof 1 disp
#recorder EnvelopeNode -file EnvelopeNodeDisp-DYNAMIC-9.out -time -node 9 -dof 1 disp
#recorder EnvelopeNode -file EnvelopeNodeDisp-DYNAMIC-12.out -time -node 12 -dof 1 disp
#recorder EnvelopeNode -file EnvelopeNodeDisp-DYNAMIC-15.out -time -node 15 -dof 1 disp
#recorder EnvelopeElement -file EnvelopeElement.out -ele all
recorder Element -time -file force1-DYNAMIC.out -ele 1 force
recorder Element -time -file force2-DYNAMIC.out -ele 2 force
recorder Element -time -file force3-DYNAMIC.out -ele 3 force
recorder Element -time -file force4-DYNAMIC.out -ele 4 force
recorder Element -time -file force5-DYNAMIC.out -ele 5 force
recorder Element -time -file force6-DYNAMIC.out -ele 6 force
recorder Element -time -file force7-DYNAMIC.out -ele 7 force
recorder Element -time -file force8-DYNAMIC.out -ele 8 force
recorder Element -time -file force9-DYNAMIC.out -ele 9 force
recorder Element -time -file force10-DYNAMIC.out -ele 10 force
recorder Element -time -file force11-DYNAMIC.out -ele 11 force
recorder Element -time -file force12-DYNAMIC.out -ele 12 force
recorder Element -time -file force13-DYNAMIC.out -ele 13 force
recorder Element -time -file force14-DYNAMIC.out -ele 14 force
recorder Element -time -file force15-DYNAMIC.out -ele 15 force
recorder Element -time -file force16-DYNAMIC.out -ele 16 force
recorder Element -time -file force17-DYNAMIC.out -ele 17 force
recorder Element -time -file force18-DYNAMIC.out -ele 18 force
recorder Element -time -file force19-DYNAMIC.out -ele 19 force
recorder Element -time -file force20-DYNAMIC.out -ele 20 force
# End of recorder generation
# ---------------------------------
# ---------------------------------------------------------
# Start of modifications to analysis for transient analysis
# ---------------------------------------------------------
# Delete the old analysis and all its component objects
# ---------------------------------------------------------
# Start of modifications to analysis for transient analysis
# ---------------------------------------------------------
# Delete the old analysis and all it's component objects
wipeAnalysis
# Create the system of equation, a banded general storage scheme
system BandGeneral
# Create the constraint handler, a plain handler as homogeneous boundary
constraints Plain
# Create the convergence test, the norm of the residual with a tolerance of
# 1e-12 and a max number of iterations of 10
test NormDispIncr 1.0e-6 10
# Create the solution algorithm, a Newton-Raphson algorithm
algorithm Newton
# Create the DOF numberer, the reverse Cuthill-McKee algorithm
numberer RCM
# Create the integration scheme, the Newmark with alpha =0.5 and beta =.25
integrator Newmark 0.5 0.25 0.117121 0.002915 0.0 0.0
# Create the analysis object
analysis Transient
# ---------------------------------------------------------
# End of modifications to analysis for transient analysis
# ---------------------------------------------------------
# ------------------------------
# Finally perform the analysis
# ------------------------------
# Perform an eigenvalue analysis
puts [eigen 4]
# Perform the transient analysis
# N dt
set ok [analyze 2501 0.01]
if {$ok != 0} {
set tFinal [expr 2501 * 0.01]
set tCurrent [getTime]
set ok 0
while {$ok == 0 && $tCurrent < $tFinal} {
set ok [analyze 1 0.01]
# if the analysis fails try initial tangent iteration
if {$ok != 0} {
puts "regular newton failed .. lets try an initail stiffness for this step"
test NormDispIncr 1.0e-4 1000 1
algorithm Newton -initial
set ok [analyze 1 0.01]
if {$ok == 0} {puts "that worked .. back to regular newton"}
test NormDispIncr 1.0e-6 10
algorithm Newton
}
set tCurrent [getTime]
}
}
if {$ok == 0} {
puts "Transient analysis completed succesfully";
} else {
puts "Transient analysis completed failed";
}
# Perform an eigenvalue analysis
puts [eigen 4]
------------------------------------------------------------------------------
#RCsection.tcl
proc RCsection {id h b cover coreID coverID steelID numBars barArea nfCoreY nfCoreZ nfCoverY nfCoverZ} {
# The distance from the section z-axis to the edge of the cover concrete
# in the positive y direction
set coverY [expr $h/2.0]
# The distance from the section y-axis to the edge of the cover concrete
# in the positive z direction
set coverZ [expr $b/2.0]
# The negative values of the two above
set ncoverY [expr -$coverY]
set ncoverZ [expr -$coverZ]
# Determine the corresponding values from the respective axes to the
# edge of the core concrete
set coreY [expr $coverY-$cover]
set coreZ [expr $coverZ-$cover]
set ncoreY [expr -$coreY]
set ncoreZ [expr -$coreZ]
# Define the fiber section
section fiberSec $id {
# Define the core patch
patch quadr $coreID $nfCoreZ $nfCoreY $ncoreY $coreZ $ncoreY $ncoreZ $coreY $ncoreZ $coreY $coreZ
# Define the four cover patches
patch quadr $coverID 1 $nfCoverY $ncoverY $coverZ $ncoreY $coreZ $coreY $coreZ $coverY $coverZ
patch quadr $coverID 1 $nfCoverY $ncoreY $ncoreZ $ncoverY $ncoverZ $coverY $ncoverZ $coreY $ncoreZ
patch quadr $coverID $nfCoverZ 1 $ncoverY $coverZ $ncoverY $ncoverZ $ncoreY $ncoreZ $ncoreY $coreZ
patch quadr $coverID $nfCoverZ 1 $coreY $coreZ $coreY $ncoreZ $coverY $ncoverZ $coverY $coverZ
# Define the steel along constant values of y (in the z direction)
layer straight $steelID $numBars $barArea $ncoreY $coreZ $ncoreY $ncoreZ
layer straight $steelID $numBars $barArea $coreY $coreZ $coreY $ncoreZ
# Determine the spacing for the remaining bars in the y direction
set spacingY [expr ($coreY-$ncoreY)/($numBars-1)]
# Avoid double counting bars
set numBars [expr $numBars-2]
# Define remaining steel in the y direction
layer straight $steelID $numBars $barArea [expr $coreY-$spacingY] $coreZ [expr $ncoreY+$spacingY] $coreZ
layer straight $steelID $numBars $barArea [expr $coreY-$spacingY] $ncoreZ [expr $ncoreY+$spacingY] $ncoreZ
}
}
----------------------------------------------------------------------------------
#RCsectionBeam.tcl
proc RCsectionBeam {id h b cover coreID coverID steelID numBarsT numBarsB barArea nfCoreY nfCoreZ nfCoverY nfCoverZ} {
# The distance from the section z-axis to the edge of the cover concrete
# in the positive y direction
set coverY [expr $h/2.0]
# The distance from the section y-axis to the edge of the cover concrete
# in the positive z direction
set coverZ [expr $b/2.0]
# The negative values of the two above
set ncoverY [expr -$coverY]
set ncoverZ [expr -$coverZ]
# Determine the corresponding values from the respective axes to the
# edge of the core concrete
set coreY [expr $coverY-$cover]
set coreZ [expr $coverZ-$cover]
set ncoreY [expr -$coreY]
set ncoreZ [expr -$coreZ]
set ncoreY2 [expr -$coreY+0.044]
# Define the fiber section
section fiberSec $id {
# Define the core patch
patch quadr $coreID $nfCoreZ $nfCoreY $ncoreZ $ncoreY $coreZ $ncoreY $coreZ $coreY $ncoreZ $coreY
# Define the four cover patches
patch quadr $coverID 1 $nfCoverY $ncoverZ $ncoverY $coverZ $ncoverY $coverZ $ncoreY $ncoverZ $ncoreY
patch quadr $coverID 1 $nfCoverY $ncoverZ $coreY $coverZ $coreY $coverZ $coverY $ncoverZ $coverY
patch quadr $coverID $nfCoverZ 1 $ncoverZ $ncoreY $ncoreZ $ncoreY $ncoreZ $coreY $ncoverZ $coreY
patch quadr $coverID $nfCoverZ 1 $coreZ $ncoreY $coverZ $ncoreY $coverZ $coreY $coreZ $coreY
# Define the steel along constant values of y (in the z direction)
#layer straight $steelID $numBars $barArea $ncoreY $coreZ $ncoreY $ncoreZ
#layer straight $steelID $numBars $barArea $coreY $coreZ $coreY $ncoreZ
# Determine the spacing for the remaining bars in the y direction
#set spacingY [expr ($coreY-$ncoreY)/($numBars-1)]
# Avoid double counting bars
#set numBars [expr $numBars-2]
# Define remaining steel in the y direction
layer straight $steelID $numBarsB $barArea $ncoreZ $ncoreY $coreZ $ncoreY
layer straight $steelID $numBarsT $barArea $ncoreZ $coreY $coreZ $coreY
}
}
--------------------------------------------------------------------------------
#RCsectionBeam2.tcl
proc RCsectionBeam2 {id h b cover coreID coverID steelID numBarsT numBarsB barArea nfCoreY nfCoreZ nfCoverY nfCoverZ} {
# The distance from the section z-axis to the edge of the cover concrete
# in the positive y direction
set coverY [expr $h/2.0]
# The distance from the section y-axis to the edge of the cover concrete
# in the positive z direction
set coverZ [expr $b/2.0]
# The negative values of the two above
set ncoverY [expr -$coverY]
set ncoverZ [expr -$coverZ]
# Determine the corresponding values from the respective axes to the
# edge of the core concrete
set coreY [expr $coverY-$cover]
set coreZ [expr $coverZ-$cover]
set ncoreY [expr -$coreY]
set ncoreZ [expr -$coreZ]
set ncoreY2 [expr -$coreY+0.044]
# Define the fiber section
section fiberSec $id {
# Define the core patch
patch quadr $coreID $nfCoreZ $nfCoreY $ncoreZ $ncoreY $coreZ $ncoreY $coreZ $coreY $ncoreZ $coreY
# Define the four cover patches
patch quadr $coverID 1 $nfCoverY $ncoverZ $ncoverY $coverZ $ncoverY $coverZ $ncoreY $ncoverZ $ncoreY
patch quadr $coverID 1 $nfCoverY $ncoverZ $coreY $coverZ $coreY $coverZ $coverY $ncoverZ $coverY
patch quadr $coverID $nfCoverZ 1 $ncoverZ $ncoreY $ncoreZ $ncoreY $ncoreZ $coreY $ncoverZ $coreY
patch quadr $coverID $nfCoverZ 1 $coreZ $ncoreY $coverZ $ncoreY $coverZ $coreY $coreZ $coreY
# Define the steel along constant values of y (in the z direction)
#layer straight $steelID $numBars $barArea $ncoreY $coreZ $ncoreY $ncoreZ
#layer straight $steelID $numBars $barArea $coreY $coreZ $coreY $ncoreZ
# Determine the spacing for the remaining bars in the y direction
#set spacingY [expr ($coreY-$ncoreY)/($numBars-1)]
# Avoid double counting bars
#set numBars [expr $numBars-2]
# Define remaining steel in the y direction
layer straight $steelID $numBarsB $barArea $ncoreZ $ncoreY $coreZ $ncoreY
layer straight $steelID $numBarsB $barArea $ncoreZ $ncoreY2 $coreZ $ncoreY2
layer straight $steelID $numBarsT $barArea $ncoreZ $coreY $coreZ $coreY
}
}
-----------------------------------------------------------------------------------
the problem is the element is that the force based beam column elements is having convergence problems coming up with compatable end forces for the end deformations .. this typically manifests itself in degrading systems .. a possible fix for this problem would be to turn
down the convergence criteria of the element (Fedeas for example does no iteration and so no convergence criteria) .. this can result in the ele problem manifesting itself at the global level so it will not always work .. you need to use the -iter options:
for this problem try changing all element commands to whats shown below for ele 1:
element nonlinearBeamColumn 1 1 4 $np 1 1 -iter 10 1.0e-1
down the convergence criteria of the element (Fedeas for example does no iteration and so no convergence criteria) .. this can result in the ele problem manifesting itself at the global level so it will not always work .. you need to use the -iter options:
for this problem try changing all element commands to whats shown below for ele 1:
element nonlinearBeamColumn 1 1 4 $np 1 1 -iter 10 1.0e-1
-
- Posts: 14
- Joined: Wed Dec 21, 2005 1:56 am
- Location: European Commission, Joint Research Centre, European Laboratory for Structural Assessment (ELSA)
Dear Frank,
I am using Concrete01 material for my 3D building and have similar problem.I added "-iter 10 1e-1" to each nonlinearBeamColumn element but it didn't work.After a few steps the analysis is terminated with the same error message: failed to get compatibel force&deformations for two columns...
I am using Concrete01 material for my 3D building and have similar problem.I added "-iter 10 1e-1" to each nonlinearBeamColumn element but it didn't work.After a few steps the analysis is terminated with the same error message: failed to get compatibel force&deformations for two columns...
Ufuk HANCILAR
ELSA - European Laboratory for Structural Assessment
European Commission - JRC
Ispra (VA) ITALY
ELSA - European Laboratory for Structural Assessment
European Commission - JRC
Ispra (VA) ITALY
-
- Posts: 2
- Joined: Mon Feb 06, 2006 1:57 am
- Location: IIEES - http://www.iiees.ac.ir/english/index.php
- Contact:
Thank you
Dear Dr Silvia Mazzoni & Frank McKenna
Thank you for your help .
best regards
M.azari
Thank you for your help .
best regards
M.azari