1

I am working on a structural engineering application using a software called "opensees V3.0.3" that is developed based on tcl (TCL8.6.9). When I run the code it stops in the middle and gives me an exit code (Exit code -1073740940) without certain errors. However, when i try running it on other devices, it works well without any problems. What could be causing this problem to happen only when I run the code on my PC. And I have windows 10. this is the code of the model:

wipe ;
model BasicBuilder -ndm 2 -ndf 3;

# Define Parameters
set L 5.0 ;                                     # beam length (m)
set H 3.5 ;                                     # column height (m)
set Ly 4.0 ;                                    # perpendicular length (m)
set Lb [expr sqrt(pow($L/2,2)+pow($H,2))] ;     # brace length (m)
# Loads (KN/m2)
set DL [expr 4.50] ; #  (KN/m2)
set LL [expr 2.0] ;  #  (KN/m2)

set g 9.81 ;  #  (m/s2)
set pi 3.14 ;
set RSteel 7.85 ; # mass per unit volume of steel (t/m3)
set FileName "GVOutPut";
file mkdir $FileName;

# Define Nodes 
# Base Nodes
#       tag       X                     Y
node     1       0.0                   0.0 ;
node     2       $L                    0.0 ;
# First Floor Nodes
node    101      0.0                    $H ;
node    102      $L                     $H ;
# Second Floor Nodes
node    201      0.0                [expr 2*$H] ;
node    202      $L                 [expr 2*$H] ;
# Third Floor Nodes
node    301      0.0                [expr 3*$H] ;
node    302      $L                 [expr 3*$H] ;
#Damper First Floor Nodes 
node    105  [expr $L/2]                $H ;
node    1055 [expr $L/2]                $H ;

# #Damper Second Floor Nodes 
node    205  [expr $L/2]         [expr 2*$H] ;
node    2055 [expr $L/2]         [expr 2*$H] ;

# #Damper Third Floor Nodes 
node    305  [expr $L/2]         [expr 3*$H] ;
node    3055 [expr $L/2]         [expr 3*$H] ;

# # Define Constraint
# SPConstraint
# SPC    tag    Dx    Dy    Rz
fix       1     1     1     1 ;
fix       2     1     1     1 ;
# MP constraints
#        $rNodeTag $cNodeTag $dof1 $dof2 $dof3.
equalDOF    105       1055        2   6  ;
equalDOF    205       2055        2   6  ;
equalDOF    305       3055        2   6  ;


# # Define passive slip-loads
set N11 42;  # (KN)
set N12 126; # (KN)
set N21 32;  # (KN)
set N22 96;  # (KN)
set N31 18;  # (KN)
set N32 54;  # (KN)
set Fs1 [expr $N11];
puts "Fs1=$Fs1";
set Fs2 [expr $N21];
puts "Fs2=$Fs2";
set Fs3 [expr $N31];
puts "Fs3=$Fs3";
set dy 1.0e-5;
#

# Define Materials
#                           $matTag         $E         $dy 
uniaxialMaterial ElasticPP     11    [expr $Fs1/$dy]   $dy;   
uniaxialMaterial ElasticPP     22    [expr $Fs2/$dy]   $dy;  
uniaxialMaterial ElasticPP     33    [expr $Fs3/$dy]   $dy;  
#                        Tag    Fy      E       b   $R0  $cR1  $cR2
uniaxialMaterial Steel02  2   275.e3  2.0e8   0.01  18  0.925  0.15 ;     # Material of beams & columns
#                        Tag    $E
uniaxialMaterial Elastic  3   2.0e8 ;                                     # Material of braces 

# Define Sections

# # IPE Sections 
# IPE 300
set h1 0.3 ;
set b1 0.15 ; 
set s1 0.0071 ;
set t1 0.0107 ; 
set MatTag 2 ;
set dh11 [expr ($h1/2.0)-$t1] ; 
set dh21 [expr ($h1/2.0)] ;
set db1 [expr ($b1/2.0)] ;
set ds1 [expr ($s1/2.0)] ;
section Fiber 300 { ;
#            Mat  Nij  Njk  yi     zi    yj     zj    yk    zk    yl    zl
patch quad $MatTag 3   34  $dh11 -$db1  $dh21 -$db1  $dh21 $db1  $dh11 $db1
patch quad $MatTag 38   3 -$dh11 -$ds1  $dh11 -$ds1  $dh11 $ds1 -$dh11 $ds1
patch quad $MatTag 3   34 -$dh21 -$db1 -$dh11 -$db1 -$dh11 $db1 -$dh21 $db1
} ;
puts "Section I With Tag 300 Has Been Generated";
# IPE 270
set h2 0.27 ;
set b2 0.135 ; 
set s2 0.0066 ;
set t2 0.0102 ; 
set MatTag 2 ;
set dh12 [expr ($h2/2.0)-$t2] ; 
set dh22 [expr ($h2/2.0)] ;
set db2 [expr ($b2/2.0)] ;
set ds2 [expr ($s2/2.0)] ;
section Fiber 270 { ;
#            Mat  NijNjk  yi   zi    yj   zj    yk  zk    yl  zl
patch quad $MatTag 3 34  $dh12 -$db2  $dh22 -$db2  $dh22 $db2  $dh12 $db2
patch quad $MatTag 38 3 -$dh12 -$ds2  $dh12 -$ds2  $dh12 $ds2 -$dh12 $ds2
patch quad $MatTag 3 34 -$dh22 -$db2 -$dh12 -$db2 -$dh12 $db2 -$dh22 $db2
} ;
puts "Section I With Tag 270 Has Been Generated";

# # Box Sections 
# Box 25X2
set MatT 2 ; 
set B2 0.25 ; 
set tt2 0.02 ;

set dB12 [expr ($B2/2.0)-$tt2] ;
set dB22 [expr ($B2/2.0)] ;

section Fiber 2520 { ;
#          MatTag  Nij  Njk   yi     zi     yj     zj     yk    zk     yl     zl
patch quad $MatT    3   30  $dB12 -$dB12  $dB22 -$dB12  $dB22  $dB12  $dB12  $dB12 ;
patch quad $MatT    3   30 -$dB22 -$dB12 -$dB12 -$dB12 -$dB12  $dB12 -$dB22  $dB12 ;
patch quad $MatT    34   3 -$dB22 -$dB22  $dB22 -$dB22  $dB22 -$dB12 -$dB22 -$dB12 ;
patch quad $MatT    34   3 -$dB22  $dB12  $dB22  $dB12  $dB22  $dB22 -$dB22  $dB22 ;
} ;
puts "Section Box With Tag 2520 Has Been Generated";

# Box 20X15
set MatT 2 ; 
set B3 0.20 ; 
set tt3 0.015 ;

set dB13 [expr ($B3/2.0)-$tt3] ;
set dB23 [expr ($B3/2.0)] ;

section Fiber 2015 { ;
#       MatTag Nij Njk  yi    zi    yj    zj    yk    zk    yl    zl
patch quad $MatT 3 30  $dB13 -$dB13  $dB23 -$dB13  $dB23  $dB13  $dB13  $dB13
patch quad $MatT 3 30 -$dB23 -$dB13 -$dB13 -$dB13 -$dB13  $dB13 -$dB23  $dB13
patch quad $MatT 34 3 -$dB23 -$dB23  $dB23 -$dB23  $dB23 -$dB13 -$dB23 -$dB13
patch quad $MatT 34 3 -$dB23  $dB13  $dB23  $dB13  $dB23  $dB23 -$dB23  $dB23
} ;
puts "Section Box With Tag 2015 Has Been Generated";

# Define the fiber Circular Hollow fiber section
# Hot-Finished Circular Hollow Sections (D=88.9,t=10)
set MatID 3;                # material ID tag -- 
set DSec 0.1683;        # Hollow Section Diameter
set t 0.0125;            # Hollow Section Thickness
set ro [expr $DSec/2];  # overall (outer) radius of the section
set ri [expr $ro-$t] ;          # inner radius of the section, only for hollow sections
set nfCoreR 8;      # number of radial divisions in the core (number of "rings")
set nfCoreT 8;      # number of theta divisions in the core (number of "wedges")

section fiberSec 8810  {
#          $matTag $numSubdivCirc $numSubdivRad $yCenter $zCenter $intRad $extRad $startAng $endAng
patch circ $MatID      $nfCoreT       $nfCoreR      0        0        $ri    $ro      0        360;      # Define the Circular Hollow section patch
};

puts "End of Define Sections";

# Define Transformation
#Columns
geomTransf PDelta 1;
#Beams 
geomTransf Linear 2;
# braces
geomTransf Corotational 3;

# Define Elements
#Columns
set Acol1 0.0184; # Area of Box With Tag 2520
set Acol2 0.0141; # Area of Box With Tag 2015

set massCol1 [expr (($Acol1*$RSteel)*$H)]; # Mass of Box With Tag 2520 (t)
set massCol2 [expr (($Acol2*$RSteel)*$H)]; # Mass of Box With Tag 2015 (t)

#First Floor
#                          Tag   iNode   jNode nP SecTag TransTag
element nonlinearBeamColumn 11     1      101  5   2520    1 ;
element nonlinearBeamColumn 12     2      102  5   2520    1 ;
#                          $eleTag $iNode $jNode   $A      $E       $Iz     $transfTag 
# element elasticBeamColumn    11      1      101  0.0184  2.0e8   1.635e-4       2 ; 
# element elasticBeamColumn    12      2      102  0.0184  2.0e8   1.635e-4       2 ; 
#Second Floor
#                          Tag   iNode   jNode nP SecTag TransTag
element nonlinearBeamColumn 21    101     201  5   2520    1 ; 
element nonlinearBeamColumn 22    102     202  5   2520    1 ;
#                          $eleTag $iNode $jNode   $A      $E       $Iz     $transfTag 
# element elasticBeamColumn    21     101     201  0.0184  2.0e8   1.635e-4       2 ; 
# element elasticBeamColumn    22     102     202  0.0184  2.0e8   1.635e-4       2 ; 

#Third Floor
#                          Tag   iNode   jNode nP SecTag TransTag
element nonlinearBeamColumn 31    201     301  5   2015    1 ; 
element nonlinearBeamColumn 32    202     302  5   2015    1 ;
#                          $eleTag $iNode $jNode   $A      $E       $Iz     $transfTag 
# element elasticBeamColumn     31    201     301  0.0141  2.0e8   6.373e-5       2 ; 
# element elasticBeamColumn     32    202     302  0.0141  2.0e8   6.373e-5       2 ; 

# Beams
set Asec300 0.00538; # Area of I section With Tag 300
set Asec270 0.00459; # Area of I section With Tag 270

set massBeam1 [expr (((($DL+(0.2*$LL))*$Ly)/$g+($Asec300*$RSteel))*$L)];  # Mass of I section With Tag 300 (t)
set massBeam2 [expr (((($DL+(0.2*$LL))*$Ly)/$g+($Asec300*$RSteel))*$L)];  # Mass of I section With Tag 300 (t)
set massBeam3 [expr (((($DL+(0.2*$LL))*$Ly)/$g+($Asec270*$RSteel))*$L)];  # Mass of I section With Tag 300 (t)

#First Floor
#                           Tag    iNode jNode nP  SecT  TransTag
element nonlinearBeamColumn 1010    101   105  5   300      2 ;
element nonlinearBeamColumn 1020    105   102  5   300      2 ; 

#Second Floor
#                           Tag    iNode jNode nP SecT  TransTag
element nonlinearBeamColumn 2010    201   205  5   300      2 ;
element nonlinearBeamColumn 2020    205   202  5   300      2 ;

#Third Floor
#                           Tag    iNode jNode nP SecT  TransTag
element nonlinearBeamColumn 3010    301   305  5   270      2 ;
element nonlinearBeamColumn 3020    305   302  5   270      2 ;


# Damper Elements (Braces)
set E 2.0e8;
set Abr 61.2e-4; # Area of Circular Hollow Section With Tag 8810
set massbr [expr ($Abr*$RSteel)*$Lb];

#First Floor
#                           $eleTag  $iNode $jNode  $secTag
element corotTrussSection     120      1     1055    8810;        # Circular hollow section 
element corotTrussSection     121      2     1055    8810;        # Circular hollow section
# Friction Node
#                    $eleTag $iNode $jNode -mat $matTag  -dir $dir
element zeroLength     122     105    1055 -mat    11    -dir   1;

#Second Floor
#                           $eleTag  $iNode $jNode  $secTag
element corotTrussSection     220      101   2055    8810;        # Circular hollow section 
element corotTrussSection     221      102   2055    8810;        # Circular hollow section
# Friction Node
#                    $eleTag $iNode $jNode -mat $matTag  -dir $dir
element zeroLength     222     205    2055 -mat    22    -dir   1;

#Third Floor
#                           $eleTag  $iNode $jNode  $secTag
element corotTrussSection     320      201   3055    8810;        # Circular hollow section 
element corotTrussSection     321      202   3055    8810;        # Circular hollow section
# Friction Node
#                    $eleTag $iNode $jNode -mat $matTag  -dir $dir
element zeroLength     322     305    3055 -mat    33    -dir   1;

# Nodal Mass 
# Assign masses to the nodes that the columns are connected to each connection takes the mass of 1/2 of each element framing into it (mass=weight/$g)
# Mass tag                                mx                                                       my                                         mIz
mass   101 [expr 5*($massCol1 + $massBeam1/2 + $massbr)]                  [expr 5*($massCol1 + $massBeam1/2 + $massbr)]                       0.0 ;     # level 1
mass   201 [expr 5*($massCol1/2 + $massCol2/2 + $massBeam2/2 + $massbr)]  [expr 5*($massCol1/2 + $massCol2/2 + $massBeam2/2 + $massbr)]       0.0 ;     # level 2
mass   202 [expr 5*($massCol1/2 + $massCol2/2 + $massBeam2/2 + $massbr)]  [expr 5*($massCol1/2 + $massCol2/2 + $massBeam2/2 + $massbr)]       0.0 ;     # level 2
mass   301 [expr 5*($massCol2/2 + $massBeam3/2)]                          [expr 5*($massCol2/2 + $massBeam3/2)]                               0.0 ;     # level 3
mass   302 [expr 5*($massCol2/2 + $massBeam3/2)]                          [expr 5*($massCol2/2 + $massBeam3/2)]                               0.0 ;     # level 3

puts "End of Define Model Elements" ;

# # Eigenvalue Analysis 

set pi [expr 2.0*asin(1.0)]; # Definition of pi
set nEigenI 1; # mode i = 1
set nEigenJ 2; # mode j = 2
set lambdaN [eigen [expr $nEigenJ]]; # eigenvalue analysis for nEigenJ modes
set lambdaI [lindex $lambdaN [expr 0]]; # eigenvalue mode i = 1
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]]; # eigenvalue mode j = 2
set w1 [expr pow($lambdaI,0.5)]; # w1 (1st mode circular frequency)
set w2 [expr pow($lambdaJ,0.5)]; # w2 (2nd mode circular frequency)
set T1 [expr 2.0*$pi/$w1]; # 1st mode period of the structure
set T2 [expr 2.0*$pi/$w2]; # 2nd mode period of the structure

puts "W1=$w1 Rad/Sec";
puts "T1=$T1 Sec";
puts "************";
puts "W2=$w2 Rad/Sec";
puts "T2=$T2 Sec";
puts "************";

puts "End of Define Model Geometry" ;


recorder Node -file GVOutPut/BaseNodeReaction.out -time -node 1 2 -dof  2 reaction ;

# define gravity load applied to beams and columns -- eleLoad applies loads in local coordinate axis
# beams
set WzFloor1  [expr ((($DL+$LL)*$Ly)+($Asec300*$RSteel*$g))] ;
set WzFloor2 [expr ((($DL+$LL)*$Ly)+($Asec300*$RSteel*$g))] ;
set WzFloor3 [expr ((($DL+$LL)*$Ly)+($Asec270*$RSteel*$g))] ;
# columns
set WColF1 [expr ($Acol1*$RSteel*$g)] ;
set WColF2 [expr ($Acol1*$RSteel*$g)] ;
set WColF3 [expr ($Acol2*$RSteel*$g)] ;
# braces
set Wbr [expr ($massbr*$g)] ;
#

pattern Plain 1 Linear {
eleLoad -ele 1010 1020  -type -beamUniform  -$WzFloor1;     # beams level 1 (in -y direction)
eleLoad -ele 2010 2020  -type -beamUniform  -$WzFloor2;     # beams level 2 (in -y direction)
eleLoad -ele 3010 3020  -type -beamUniform  -$WzFloor3;       # beams level 3 (in -y direction)
eleLoad -ele  11   12   -type -beamUniform  0.0  -$WColF1;  # Box section weight per length Level 1 (in -x direction)
eleLoad -ele  21   22   -type -beamUniform  0.0  -$WColF2;  # Box section weight per length Level 2 (in -x direction)
eleLoad -ele  31   32   -type -beamUniform  0.0  -$WColF3;  # Box section weight per length Level 3 (in -x direction)
} ;
# Static Analysis
constraints Transformation; # how it handles boundary conditions
numberer RCM; # renumber dof's to minimize band-width (optimization), if you want to
system BandGeneral; # how to store and solve the system of equations in the analysis (large model: try UmfPack)
test EnergyIncr 1.0e-5  50; # 
algorithm Newton; # 
set NstepGravity 10;          
set DGravity [expr 1./$NstepGravity]; 
integrator LoadControl $DGravity; # 
analyze $NstepGravity; # apply gravity
# maintain constant gravity loads and reset time to zero
loadConst -time 0.0;

puts "End of Static Analysis" ;
  • Assuming your "device" runs Windows, this indicates a heap corruption issue (e.g., https://social.microsoft.com/Forums/en-US/6237ab2f-a4c3-47ea-9e90-652dc63081fd/exit-code-1073740940?forum=windowshpcdevs). You would have to share some code to reproduce the issue. Besides, your question misses all relevant details (OS version, Tcl version, OpenSees version, ...) – mrcalvin Aug 18 '19 at 10:00
  • sorry for any inconveniences and thanks for your reply. I've edited the question and provided what you've asked for. – Abdelrahman Abdelaleem Aug 18 '19 at 15:06
  • I don't have an `OpenSees` installation, nor do I have a Windows environment, I am afraid. Can you provide a stacktrace from the moment of the crash (see, e.g., https://stackoverflow.com/questions/24208767/get-stack-trace-of-a-crash-on-windows-without-installing-visual-studio-c)? Besides: Does `OpenSees` provide a pre-built Tcl installation? If not, try to obtain a debug-enabled Tcl 8.6.9 installation, then produce the stacktrace. – mrcalvin Aug 19 '19 at 10:12

0 Answers0