multi-layer shell element for shear walls

Forum for OpenSees users to post questions, comments, etc. on the use of the OpenSees interpreter, OpenSees.exe

Moderators: silvia, selimgunay, Moderators

Post Reply
ghada
Posts: 4
Joined: Tue Aug 28, 2018 8:21 am

multi-layer shell element for shear walls

Post by ghada » Fri Oct 19, 2018 10:36 am

I'm trying to model a reinforced concrete shear wall system using OpenSees, I'm in the stage of performing a nonlinear static analysis, already have a reference output for the analysis for the problem I'm testing.
I'm using the multi-layer shell element to model shear walls in OpenSees. I'm getting good results and agreement between the two solutions till the point where the loss of strength is expected, in the analysis using OpenSees I don't get this loss of strength, the curve keeps going up and the iteration steps stops. I doubled checked the material models for concrete and steel and they seem ok and I reduced the size of iteration steps and refined the solution algorithm but the results are still the same. If anybody has an idea where to go from here or have other suggestions, please share

Code
https://www.dropbox.com/s/ltnrw7u8egbzg ... A.tcl?dl=0

Reference solution
https://www.dropbox.com/s/7xuayvuo4g0ru ... t.png?dl=0

Prafullamalla
Posts: 141
Joined: Mon Feb 02, 2015 6:32 pm

Re: multi-layer shell element for shear walls

Post by Prafullamalla » Sat Oct 20, 2018 3:33 am

I have just changed the nDMaterial PlaneStressLayeredMaterial in your code. Although, the result is not so good , you may check the code. might be helpful. ALso, check the unit, I got maximum 120 kN.
plot is here https://1drv.ms/u/s!AuCoXBhjXOhkh883K6m2RWdBpeZ9Pg
#Main File fro opensees forum test
model basic -ndm 2 -ndf 2; set numModes 4;
# metric units m, kg, N, sec
# length of wall is 3.5m., width is 4.5, thickness 0.25m.

wipe;
#Define nodes

node 1 0. 0. 0.; node 2 1.125 0. 0.; node 3 2.25 0. 0.; node 4 3.375 0. 0.; node 5 4.5 0. 0.;

node 6 0. 0.7 0.; node 7 1.125 0.7 0.; node 8 2.25 0.7 0.; node 9 3.375 0.7 0.; node 10 4.5 0.7 0.;

node 11 0. 1.4 0.; node 12 1.125 1.4 0.; node 13 2.25 1.4 0.; node 14 3.375 1.4 0.; node 15 4.5 1.4 0.;

node 16 0. 2.1 0.; node 17 1.125 2.1 0.; node 18 2.25 2.1 0.; node 19 3.375 2.1 0.; node 20 4.5 2.1 0.;

node 21 0. 2.8 0.; node 22 1.125 2.8 0.; node 23 2.25 2.8 0.; node 24 3.375 2.8 0.; node 25 4.5 2.8 0.;

node 26 0. 3.5 0.; node 27 1.125 3.5 0.; node 28 2.25 3.5 0.; node 29 3.375 3.5 0.; node 30 4.5 3.5 0.;

node 31 0. 4.2 0.; node 32 1.125 4.2 0.; node 33 2.25 4.2 0.; node 34 3.375 4.2 0.; node 35 4.5 4.2 0.; #

node 36 0. 4.9 0.; node 37 1.125 4.9 0.; node 38 2.25 4.9 0.; node 39 3.375 4.9 0.; node 40 4.5 4.9 0.;

node 41 0. 5.6 0.; node 42 1.125 5.6 0.; node 43 2.25 5.6 0.; node 44 3.375 5.6 0.; node 45 4.5 5.6 0.;

node 46 0. 6.3 0.; node 47 1.125 6.3 0.; node 48 2.25 6.3 0.; node 49 3.375 6.3 0.; node 50 4.5 6.3 0.;

node 51 0. 7.0 0.; node 52 1.125 7. 0.; node 53 2.25 7. 0.; node 54 3.375 7. 0.; node 55 4.5 7. 0.;

node 56 0. 7.7 0.; node 57 1.125 7.7 0.; node 58 2.25 7.7 0.; node 59 3.375 7.7 0.; node 60 4.5 7.7 0.; #

node 61 0. 8.4 0.; node 62 1.125 8.4 0.; node 63 2.25 8.4 0.; node 64 3.375 8.4 0.; node 65 4.5 8.4 0.;

node 66 0. 9.1 0.; node 67 1.125 9.1 0.; node 68 2.25 9.1 0.; node 69 3.375 9.1 0.; node 70 4.5 9.1 0.;

node 71 0. 9.8 0.; node 72 1.125 9.8 0.; node 73 2.25 9.8 0.; node 74 3.375 9.8 0.; node 75 4.5 9.8 0.;

node 76 0. 10.5 0.; node 77 1.125 10.5 0.; node 78 2.25 10.5 0.; node 79 3.375 10.5 0.; node 80 4.5 10.5 0.;

node 81 0. 11.2 0.; node 82 1.125 11.2 0.; node 83 2.25 11.2 0.; node 84 3.375 11.2 0.; node 85 4.5 11.2 0.; #

node 86 0. 11.9 0.; node 87 1.125 11.9 0.; node 88 2.25 11.9 0.; node 89 3.375 11.9 0.; node 90 4.5 11.9 0.;

node 91 0. 12.6 0.; node 92 1.125 12.6 0.; node 93 2.25 12.6 0.; node 94 3.375 12.6 0.; node 95 4.5 12.6 0.;

node 96 0. 13.3 0.; node 97 1.125 13.3 0.; node 98 2.25 13.3 0.; node 99 3.375 13.3 0.; node 100 4.5 13.3 0.;

node 101 0. 14. 0.; node 102 1.125 14. 0.; node 103 2.25 14. 0.; node 104 3.375 14. 0.; node 105 4.5 14. 0.;

puts "Done Node"
set negmass 1e-5;
#Define mass
#the correspondent masses of the walls are lumped
mass 28 205210. $negmass
mass 53 199900. $negmass
mass 78 198900. $negmass
mass 103 128450. $negmass

#Boundary condition
fix 1 1 1 ; fix 2 1 1 ; fix 3 1 1 ;
fix 4 1 1 ; fix 5 1 1 ;

puts "Done Boundary condition"

# Concrete Material Properties
# nDMaterial PlaneStressUserMaterial $matTag $nStatevs $nProps $Prop1 ... $ Propn fc ft fcu epsc0 epscu epstu stc
#nDMaterial PlaneStressUserMaterial 1 40 7 28e6 2.2e6 -6e6 -0.002 -0.006 8.83e-05 0.08;

# nDMaterial PlateFromPlaneStress matTag PlaneStressMatTag $OutOfPlaneShearModulus= E/2(1+v) ?30147
#nDMaterial PlateFromPlaneStress 4 1 1.256e10;

# Concrete
# Parameters for the new concrete model
set E 28e9 ;#elastic modulus
set nu 0.2 ;#Poisson ratio
set fc 6e6 ;#compressive yield strength
set ft 0.6e6 ;#tensile yield strength
set Ap 0.1 ;#damage material data
set An 1.5 ;#damage material data
set Bn 0.75 ;#damage material data
set Beta 0.4

nDMaterial PlasticDamageConcretePlaneStress 10 $E $nu $ft $fc $Beta $Ap $An $Bn; #Boundaries
#Steel Material Properties
uniaxialMaterial Steel02 7 500.e6 2.e11 0.005 18.5 0.925 0.15;

# STEEL ...........................................................
# uniaxialMaterial SteelMPF $mattag $fyp $fyn $E0 $bp $bn $R0 $a1 $a2
# steel X
set fyX 400e6; # fy
set bx 0.005; # strain hardening

# steel Y web
set fyYw 500e6; # fy
set byw 0.005; # strain hardening

# steel Y boundary
set fyYb 500e6; # fy
set byb 0.005; # strain hardening

# steel misc
set Esy 2e11; # Young's modulus
set Esx $Esy; # Young's modulus
set R0 18.5; # initial value of curvature parameter
set A1 0.925; # curvature degradation parameter
set A2 0.15; # curvature degradation parameter

# Build steel materials
uniaxialMaterial SteelMPF 501 $fyX $fyX $Esx $bx $bx $R0 $A1 $A2; # steel X
uniaxialMaterial SteelMPF 502 $fyYw $fyYw $Esy $byw $byw $R0 $A1 $A2; # steel Y web
uniaxialMaterial SteelMPF 503 $fyYb $fyYb $Esy $byb $byb $R0 $A1 $A2; # steel Y boundary


#Reinforcement rebars
#angle=90 longitudinal reinforced steel
nDMaterial PlaneStressRebarMaterial 9 502 90;

#angle=0 transverse reinforced steel
nDMaterial PlaneStressRebarMaterial 11 501 0;


#absolute thickness= (total area of the bars in one floor)/(length of the region in y-direction or height of the wall)
#N.B. The thickness is calculted in mm and then converted to m in the section layer
# main vertical reinforcemnt is D16@250, transverse reinforcement D10@250

# section LayeredShell $sectionTag $nLayers $matTag1 $thickness1...$matTagn $thickness
#1stfloor
#section LayeredShell 1 10 1 0.035 11 0.0002772 9 0.00080424 1 0.045 1 0.045 1 0.045 1 0.045 9 0.00080424 11 0.0002772 1 0.035;
#2ndfloor
#section LayeredShell 2 10 1 0.035 11 0.0002772 9 0.00080424 1 0.045 1 0.045 1 0.045 1 0.045 9 0.00080424 11 0.0002772 1 0.035;
#3rdfloor
#section LayeredShell 3 10 1 0.035 11 0.0002772 9 0.00080424 1 0.045 1 0.045 1 0.045 1 0.045 9 0.00080424 11 0.0002772 1 0.035;
#and 4thfloor
#section LayeredShell 4 10 1 0.035 11 0.0002772 9 0.00080424 1 0.045 1 0.045 1 0.045 1 0.045 9 0.00080424 11 0.0002772 1 0.035;
nDMaterial PlaneStressLayeredMaterial 1 10 10 0.035 11 0.0002772 9 0.00080424 10 0.045 10 0.045 10 0.045 10 0.045 9 0.00080424 11 0.0002772 10 0.035;
#2ndfloor
nDMaterial PlaneStressLayeredMaterial 2 10 10 0.035 11 0.0002772 9 0.00080424 10 0.045 10 0.045 10 0.045 10 0.045 9 0.00080424 11 0.0002772 10 0.035;
#3rdfloor
nDMaterial PlaneStressLayeredMaterial 3 10 10 0.035 11 0.0002772 9 0.00080424 10 0.045 10 0.045 10 0.045 10 0.045 9 0.00080424 11 0.0002772 10 0.035;
#and 4thfloor
nDMaterial PlaneStressLayeredMaterial 4 10 10 0.035 11 0.0002772 9 0.00080424 10 0.045 10 0.045 10 0.045 10 0.045 9 0.00080424 11 0.0002772 10 0.035;


puts "Done Section"
set t 0.25;
#define element
# element quad eleID node1 node2 node3 node4 thick type matID
element quad 1 1 2 7 6 $t PlaneStress 1
element quad 2 2 3 8 7 $t PlaneStress 1
element quad 3 3 4 9 8 $t PlaneStress 1
element quad 4 4 5 10 9 $t PlaneStress 1
element quad 5 6 7 12 11 $t PlaneStress 1
element quad 6 7 8 13 12 $t PlaneStress 1
element quad 7 8 9 14 13 $t PlaneStress 1
element quad 8 9 10 15 14 $t PlaneStress 1
element quad 9 11 12 17 16 $t PlaneStress 1
element quad 10 12 13 18 17 $t PlaneStress 1
element quad 11 13 14 19 18 $t PlaneStress 1
element quad 12 14 15 20 19 $t PlaneStress 1
element quad 13 16 17 22 21 $t PlaneStress 1
element quad 14 17 18 23 22 $t PlaneStress 1
element quad 15 18 19 24 23 $t PlaneStress 1
element quad 16 19 20 25 24 $t PlaneStress 1
element quad 17 21 22 27 26 $t PlaneStress 1
element quad 18 22 23 28 27 $t PlaneStress 1
element quad 19 23 24 29 28 $t PlaneStress 1
element quad 20 24 25 30 29 $t PlaneStress 1
element quad 21 26 27 32 31 $t PlaneStress 2
element quad 22 27 28 33 32 $t PlaneStress 2
element quad 23 28 29 34 33 $t PlaneStress 2
element quad 24 29 30 35 34 $t PlaneStress 2
element quad 25 31 32 37 36 $t PlaneStress 2
element quad 26 32 33 38 37 $t PlaneStress 2
element quad 27 33 34 39 38 $t PlaneStress 2
element quad 28 34 35 40 39 $t PlaneStress 2
element quad 29 36 37 42 41 $t PlaneStress 2
element quad 30 37 38 43 42 $t PlaneStress 2
element quad 31 38 39 44 43 $t PlaneStress 2
element quad 32 39 40 45 44 $t PlaneStress 2
element quad 33 41 42 47 46 $t PlaneStress 2
element quad 34 42 43 48 47 $t PlaneStress 2
element quad 35 43 44 49 48 $t PlaneStress 2
element quad 36 44 45 50 49 $t PlaneStress 2
element quad 37 46 47 52 51 $t PlaneStress 2
element quad 38 47 48 53 52 $t PlaneStress 2
element quad 39 48 49 54 53 $t PlaneStress 2
element quad 40 49 50 55 54 $t PlaneStress 2
element quad 41 51 52 57 56 $t PlaneStress 3
element quad 42 52 53 58 57 $t PlaneStress 3
element quad 43 53 54 59 58 $t PlaneStress 3
element quad 44 54 55 60 59 $t PlaneStress 3
element quad 45 56 57 62 61 $t PlaneStress 3
element quad 46 57 58 63 62 $t PlaneStress 3
element quad 47 58 59 64 63 $t PlaneStress 3
element quad 48 59 60 65 64 $t PlaneStress 3
element quad 49 61 62 67 66 $t PlaneStress 3
element quad 50 62 63 68 67 $t PlaneStress 3
element quad 51 63 64 69 68 $t PlaneStress 3
element quad 52 64 65 70 69 $t PlaneStress 3
element quad 53 66 67 72 71 $t PlaneStress 3
element quad 54 67 68 73 72 $t PlaneStress 3
element quad 55 68 69 74 73 $t PlaneStress 3
element quad 56 69 70 75 74 $t PlaneStress 3
element quad 57 71 72 77 76 $t PlaneStress 3
element quad 58 72 73 78 77 $t PlaneStress 3
element quad 59 73 74 79 78 $t PlaneStress 3
element quad 60 74 75 80 79 $t PlaneStress 3
element quad 61 76 77 82 81 $t PlaneStress 4
element quad 62 77 78 83 82 $t PlaneStress 4
element quad 63 78 79 84 83 $t PlaneStress 4
element quad 64 79 80 85 84 $t PlaneStress 4
element quad 65 81 82 87 86 $t PlaneStress 4
element quad 66 82 83 88 87 $t PlaneStress 4
element quad 67 83 84 89 88 $t PlaneStress 4
element quad 68 84 85 90 89 $t PlaneStress 4
element quad 69 86 87 92 91 $t PlaneStress 4
element quad 70 87 88 93 92 $t PlaneStress 4
element quad 71 88 89 94 93 $t PlaneStress 4
element quad 72 89 90 95 94 $t PlaneStress 4
element quad 73 91 92 97 96 $t PlaneStress 4
element quad 74 92 93 98 97 $t PlaneStress 4
element quad 75 93 94 99 98 $t PlaneStress 4
element quad 76 94 95 100 99 $t PlaneStress 4
element quad 77 96 97 102 101 $t PlaneStress 4
element quad 78 97 98 103 102 $t PlaneStress 4
element quad 79 98 99 104 103 $t PlaneStress 4
element quad 80 99 100 105 104 $t PlaneStress 4

puts "Done Element"

equalDOF 28 26 1; equalDOF 28 27 1; equalDOF 28 29 1; equalDOF 28 30 1;
equalDOF 53 51 1; equalDOF 53 52 1; equalDOF 53 54 1; equalDOF 53 55 1;
equalDOF 78 76 1; equalDOF 78 77 1; equalDOF 78 79 1; equalDOF 78 80 1;
equalDOF 103 101 1; equalDOF 103 102 1; equalDOF 103 104 1; equalDOF 103 105 1;

puts "Diaphragm constraints done"


#Gravity loads
# gravity loads on walls
pattern Plain 1 Linear {
load 28 0. -500000 ;
load 53 0. -500000 ;
load 78 0. -500000 ;
load 103 0. -500000 ;
}
#Analysis Gravity Load
set TestType EnergyIncr;
set Tol 1.e-5;
set maxNumIter 150;
test $TestType $Tol $maxNumIter;
constraints Plain;
numberer Plain; system BandGeneral;
algorithm KrylovNewton; set NstepGravity 100;
set DGravity [expr 1./$NstepGravity];
integrator LoadControl $DGravity;
analysis Static; set Gravity [analyze $NstepGravity];
if {$Gravity != 0} {puts "Gravity loads not OK"}
loadConst -time 0.0
if {$Gravity == 0} {puts "Model including gravity loads has been built."}


set DisplacementCheck1 [nodeDisp 101 2];
set node1Rxn1 [nodeReaction 3];
puts $DisplacementCheck1
puts $node1Rxn1

# create data directory
file mkdir modes;
#Perform eigenvalue analysis and store periods into a file
for { set k 1 } { $k <= $numModes } { incr k } {
recorder Node -file [format "modes/mode%i.out" $k] -node 3 28 53 78 103 -dof 1 "eigen $k"
}
#Perform eigenvalue analysis and store periods into a file
set lambda [eigen -fullGenLapack $numModes];

# calculate frequencies and periods of the structure
# ---------------------------------------------------
set omega {}
set f {}
set T {}
set pi 3.141593

foreach lam $lambda {
lappend omega [expr sqrt($lam)]
lappend f [expr sqrt($lam)/(2*$pi)]
lappend T [expr (2*$pi)/sqrt($lam)]
}

#puts "periods are $T"

# write the output file cosisting of periods
# --------------------------------------------
set period "modes/Periods.txt"
set Periods [open $period "w"]
foreach t $T {
puts $Periods " $t"
}
close $Periods
record

#source Record.tcl
#****Record Data****
#***********************************************************
set dataDir C:/Users/praf_/OneDrive/OpenSees/ForumShearwallGhada/Results;
file mkdir $dataDir
# record Base Shear
recorder Node -file $dataDir/BaseShear.out -node 1 2 3 4 5 -dof 1 reaction;


# Displacements
recorder Node -file $dataDir/ControlDisp4th.out -time -node 103 -dof 1 disp;

#****Load pattern****
pattern Plain 992 Linear {
load 103 1. 0;
load 78 0.66 0;
load 53 0.35 0;
load 28 0.11 0;
}
# **** Non-linear static analysis****
#****Integrator****
set ControlDisplacementNode 103;
set ControlDisplacementDOF 1; ;
set Dmax 0.5;
set Dincr [expr (1/1000.)];

integrator DisplacementControl $ControlDisplacementNode $ControlDisplacementDOF $Dincr;
#integrator LoadControl 0.1 10 0.05 20.0
#Create the system of equation, a sparse solver with partial pivoting
system BandGeneral
# Create the constraint handler
constraints Plain
# Create the DOF numberer
numberer Plain
# Create the convergence test
test NormDispIncr 1.0e-2 100 5
# Create the solution algorithm
algorithm KrylovNewton
# Type of analysis analysis
analysis Static; # define type of analysis: static for pushover267
set Nsteps [expr int($Dmax/$Dincr)];# number of pushover analysis steps
set ok [analyze $Nsteps]; # this will return zero if no convergence problems were encountered
puts "Analysis complete"; # display this message in the command window
wipe all;
Prafulla Malla, Nepal
Praf_malla@hotmail.com

liguossss
Posts: 2
Joined: Fri Sep 25, 2020 12:54 am

Re: multi-layer shell element for shear walls

Post by liguossss » Fri Sep 25, 2020 6:24 am

Prafullamalla wrote:
Sat Oct 20, 2018 3:33 am
I have just changed the nDMaterial PlaneStressLayeredMaterial in your code. Although, the result is not so good , you may check the code. might be helpful. ALso, check the unit, I got maximum 120 kN.
plot is here https://1drv.ms/u/s!AuCoXBhjXOhkh883K6m2RWdBpeZ9Pg
#Main File fro opensees forum test
model basic -ndm 2 -ndf 2; set numModes 4;
# metric units m, kg, N, sec
# length of wall is 3.5m., width is 4.5, thickness 0.25m.

wipe;
#Define nodes

node 1 0. 0. 0.; node 2 1.125 0. 0.; node 3 2.25 0. 0.; node 4 3.375 0. 0.; node 5 4.5 0. 0.;

node 6 0. 0.7 0.; node 7 1.125 0.7 0.; node 8 2.25 0.7 0.; node 9 3.375 0.7 0.; node 10 4.5 0.7 0.;

node 11 0. 1.4 0.; node 12 1.125 1.4 0.; node 13 2.25 1.4 0.; node 14 3.375 1.4 0.; node 15 4.5 1.4 0.;

node 16 0. 2.1 0.; node 17 1.125 2.1 0.; node 18 2.25 2.1 0.; node 19 3.375 2.1 0.; node 20 4.5 2.1 0.;

node 21 0. 2.8 0.; node 22 1.125 2.8 0.; node 23 2.25 2.8 0.; node 24 3.375 2.8 0.; node 25 4.5 2.8 0.;

node 26 0. 3.5 0.; node 27 1.125 3.5 0.; node 28 2.25 3.5 0.; node 29 3.375 3.5 0.; node 30 4.5 3.5 0.;

node 31 0. 4.2 0.; node 32 1.125 4.2 0.; node 33 2.25 4.2 0.; node 34 3.375 4.2 0.; node 35 4.5 4.2 0.; #

node 36 0. 4.9 0.; node 37 1.125 4.9 0.; node 38 2.25 4.9 0.; node 39 3.375 4.9 0.; node 40 4.5 4.9 0.;

node 41 0. 5.6 0.; node 42 1.125 5.6 0.; node 43 2.25 5.6 0.; node 44 3.375 5.6 0.; node 45 4.5 5.6 0.;

node 46 0. 6.3 0.; node 47 1.125 6.3 0.; node 48 2.25 6.3 0.; node 49 3.375 6.3 0.; node 50 4.5 6.3 0.;

node 51 0. 7.0 0.; node 52 1.125 7. 0.; node 53 2.25 7. 0.; node 54 3.375 7. 0.; node 55 4.5 7. 0.;

node 56 0. 7.7 0.; node 57 1.125 7.7 0.; node 58 2.25 7.7 0.; node 59 3.375 7.7 0.; node 60 4.5 7.7 0.; #

node 61 0. 8.4 0.; node 62 1.125 8.4 0.; node 63 2.25 8.4 0.; node 64 3.375 8.4 0.; node 65 4.5 8.4 0.;

node 66 0. 9.1 0.; node 67 1.125 9.1 0.; node 68 2.25 9.1 0.; node 69 3.375 9.1 0.; node 70 4.5 9.1 0.;

node 71 0. 9.8 0.; node 72 1.125 9.8 0.; node 73 2.25 9.8 0.; node 74 3.375 9.8 0.; node 75 4.5 9.8 0.;

node 76 0. 10.5 0.; node 77 1.125 10.5 0.; node 78 2.25 10.5 0.; node 79 3.375 10.5 0.; node 80 4.5 10.5 0.;

node 81 0. 11.2 0.; node 82 1.125 11.2 0.; node 83 2.25 11.2 0.; node 84 3.375 11.2 0.; node 85 4.5 11.2 0.; #

node 86 0. 11.9 0.; node 87 1.125 11.9 0.; node 88 2.25 11.9 0.; node 89 3.375 11.9 0.; node 90 4.5 11.9 0.;

node 91 0. 12.6 0.; node 92 1.125 12.6 0.; node 93 2.25 12.6 0.; node 94 3.375 12.6 0.; node 95 4.5 12.6 0.;

node 96 0. 13.3 0.; node 97 1.125 13.3 0.; node 98 2.25 13.3 0.; node 99 3.375 13.3 0.; node 100 4.5 13.3 0.;

node 101 0. 14. 0.; node 102 1.125 14. 0.; node 103 2.25 14. 0.; node 104 3.375 14. 0.; node 105 4.5 14. 0.;

puts "Done Node"
set negmass 1e-5;
#Define mass
#the correspondent masses of the walls are lumped
mass 28 205210. $negmass
mass 53 199900. $negmass
mass 78 198900. $negmass
mass 103 128450. $negmass

#Boundary condition
fix 1 1 1 ; fix 2 1 1 ; fix 3 1 1 ;
fix 4 1 1 ; fix 5 1 1 ;

puts "Done Boundary condition"

# Concrete Material Properties
# nDMaterial PlaneStressUserMaterial $matTag $nStatevs $nProps $Prop1 ... $ Propn fc ft fcu epsc0 epscu epstu stc
#nDMaterial PlaneStressUserMaterial 1 40 7 28e6 2.2e6 -6e6 -0.002 -0.006 8.83e-05 0.08;

# nDMaterial PlateFromPlaneStress matTag PlaneStressMatTag $OutOfPlaneShearModulus= E/2(1+v) ?30147
#nDMaterial PlateFromPlaneStress 4 1 1.256e10;

# Concrete
# Parameters for the new concrete model
set E 28e9 ;#elastic modulus
set nu 0.2 ;#Poisson ratio
set fc 6e6 ;#compressive yield strength
set ft 0.6e6 ;#tensile yield strength
set Ap 0.1 ;#damage material data
set An 1.5 ;#damage material data
set Bn 0.75 ;#damage material data
set Beta 0.4

nDMaterial PlasticDamageConcretePlaneStress 10 $E $nu $ft $fc $Beta $Ap $An $Bn; #Boundaries
#Steel Material Properties
uniaxialMaterial Steel02 7 500.e6 2.e11 0.005 18.5 0.925 0.15;

# STEEL ...........................................................
# uniaxialMaterial SteelMPF $mattag $fyp $fyn $E0 $bp $bn $R0 $a1 $a2
# steel X
set fyX 400e6; # fy
set bx 0.005; # strain hardening

# steel Y web
set fyYw 500e6; # fy
set byw 0.005; # strain hardening

# steel Y boundary
set fyYb 500e6; # fy
set byb 0.005; # strain hardening

# steel misc
set Esy 2e11; # Young's modulus
set Esx $Esy; # Young's modulus
set R0 18.5; # initial value of curvature parameter
set A1 0.925; # curvature degradation parameter
set A2 0.15; # curvature degradation parameter

# Build steel materials
uniaxialMaterial SteelMPF 501 $fyX $fyX $Esx $bx $bx $R0 $A1 $A2; # steel X
uniaxialMaterial SteelMPF 502 $fyYw $fyYw $Esy $byw $byw $R0 $A1 $A2; # steel Y web
uniaxialMaterial SteelMPF 503 $fyYb $fyYb $Esy $byb $byb $R0 $A1 $A2; # steel Y boundary


#Reinforcement rebars
#angle=90 longitudinal reinforced steel
nDMaterial PlaneStressRebarMaterial 9 502 90;

#angle=0 transverse reinforced steel
nDMaterial PlaneStressRebarMaterial 11 501 0;


#absolute thickness= (total area of the bars in one floor)/(length of the region in y-direction or height of the wall)
#N.B. The thickness is calculted in mm and then converted to m in the section layer
# main vertical reinforcemnt is D16@250, transverse reinforcement D10@250

# section LayeredShell $sectionTag $nLayers $matTag1 $thickness1...$matTagn $thickness
#1stfloor
#section LayeredShell 1 10 1 0.035 11 0.0002772 9 0.00080424 1 0.045 1 0.045 1 0.045 1 0.045 9 0.00080424 11 0.0002772 1 0.035;
#2ndfloor
#section LayeredShell 2 10 1 0.035 11 0.0002772 9 0.00080424 1 0.045 1 0.045 1 0.045 1 0.045 9 0.00080424 11 0.0002772 1 0.035;
#3rdfloor
#section LayeredShell 3 10 1 0.035 11 0.0002772 9 0.00080424 1 0.045 1 0.045 1 0.045 1 0.045 9 0.00080424 11 0.0002772 1 0.035;
#and 4thfloor
#section LayeredShell 4 10 1 0.035 11 0.0002772 9 0.00080424 1 0.045 1 0.045 1 0.045 1 0.045 9 0.00080424 11 0.0002772 1 0.035;
nDMaterial PlaneStressLayeredMaterial 1 10 10 0.035 11 0.0002772 9 0.00080424 10 0.045 10 0.045 10 0.045 10 0.045 9 0.00080424 11 0.0002772 10 0.035;
#2ndfloor
nDMaterial PlaneStressLayeredMaterial 2 10 10 0.035 11 0.0002772 9 0.00080424 10 0.045 10 0.045 10 0.045 10 0.045 9 0.00080424 11 0.0002772 10 0.035;
#3rdfloor
nDMaterial PlaneStressLayeredMaterial 3 10 10 0.035 11 0.0002772 9 0.00080424 10 0.045 10 0.045 10 0.045 10 0.045 9 0.00080424 11 0.0002772 10 0.035;
#and 4thfloor
nDMaterial PlaneStressLayeredMaterial 4 10 10 0.035 11 0.0002772 9 0.00080424 10 0.045 10 0.045 10 0.045 10 0.045 9 0.00080424 11 0.0002772 10 0.035;


puts "Done Section"
set t 0.25;
#define element
# element quad eleID node1 node2 node3 node4 thick type matID
element quad 1 1 2 7 6 $t PlaneStress 1
element quad 2 2 3 8 7 $t PlaneStress 1
element quad 3 3 4 9 8 $t PlaneStress 1
element quad 4 4 5 10 9 $t PlaneStress 1
element quad 5 6 7 12 11 $t PlaneStress 1
element quad 6 7 8 13 12 $t PlaneStress 1
element quad 7 8 9 14 13 $t PlaneStress 1
element quad 8 9 10 15 14 $t PlaneStress 1
element quad 9 11 12 17 16 $t PlaneStress 1
element quad 10 12 13 18 17 $t PlaneStress 1
element quad 11 13 14 19 18 $t PlaneStress 1
element quad 12 14 15 20 19 $t PlaneStress 1
element quad 13 16 17 22 21 $t PlaneStress 1
element quad 14 17 18 23 22 $t PlaneStress 1
element quad 15 18 19 24 23 $t PlaneStress 1
element quad 16 19 20 25 24 $t PlaneStress 1
element quad 17 21 22 27 26 $t PlaneStress 1
element quad 18 22 23 28 27 $t PlaneStress 1
element quad 19 23 24 29 28 $t PlaneStress 1
element quad 20 24 25 30 29 $t PlaneStress 1
element quad 21 26 27 32 31 $t PlaneStress 2
element quad 22 27 28 33 32 $t PlaneStress 2
element quad 23 28 29 34 33 $t PlaneStress 2
element quad 24 29 30 35 34 $t PlaneStress 2
element quad 25 31 32 37 36 $t PlaneStress 2
element quad 26 32 33 38 37 $t PlaneStress 2
element quad 27 33 34 39 38 $t PlaneStress 2
element quad 28 34 35 40 39 $t PlaneStress 2
element quad 29 36 37 42 41 $t PlaneStress 2
element quad 30 37 38 43 42 $t PlaneStress 2
element quad 31 38 39 44 43 $t PlaneStress 2
element quad 32 39 40 45 44 $t PlaneStress 2
element quad 33 41 42 47 46 $t PlaneStress 2
element quad 34 42 43 48 47 $t PlaneStress 2
element quad 35 43 44 49 48 $t PlaneStress 2
element quad 36 44 45 50 49 $t PlaneStress 2
element quad 37 46 47 52 51 $t PlaneStress 2
element quad 38 47 48 53 52 $t PlaneStress 2
element quad 39 48 49 54 53 $t PlaneStress 2
element quad 40 49 50 55 54 $t PlaneStress 2
element quad 41 51 52 57 56 $t PlaneStress 3
element quad 42 52 53 58 57 $t PlaneStress 3
element quad 43 53 54 59 58 $t PlaneStress 3
element quad 44 54 55 60 59 $t PlaneStress 3
element quad 45 56 57 62 61 $t PlaneStress 3
element quad 46 57 58 63 62 $t PlaneStress 3
element quad 47 58 59 64 63 $t PlaneStress 3
element quad 48 59 60 65 64 $t PlaneStress 3
element quad 49 61 62 67 66 $t PlaneStress 3
element quad 50 62 63 68 67 $t PlaneStress 3
element quad 51 63 64 69 68 $t PlaneStress 3
element quad 52 64 65 70 69 $t PlaneStress 3
element quad 53 66 67 72 71 $t PlaneStress 3
element quad 54 67 68 73 72 $t PlaneStress 3
element quad 55 68 69 74 73 $t PlaneStress 3
element quad 56 69 70 75 74 $t PlaneStress 3
element quad 57 71 72 77 76 $t PlaneStress 3
element quad 58 72 73 78 77 $t PlaneStress 3
element quad 59 73 74 79 78 $t PlaneStress 3
element quad 60 74 75 80 79 $t PlaneStress 3
element quad 61 76 77 82 81 $t PlaneStress 4
element quad 62 77 78 83 82 $t PlaneStress 4
element quad 63 78 79 84 83 $t PlaneStress 4
element quad 64 79 80 85 84 $t PlaneStress 4
element quad 65 81 82 87 86 $t PlaneStress 4
element quad 66 82 83 88 87 $t PlaneStress 4
element quad 67 83 84 89 88 $t PlaneStress 4
element quad 68 84 85 90 89 $t PlaneStress 4
element quad 69 86 87 92 91 $t PlaneStress 4
element quad 70 87 88 93 92 $t PlaneStress 4
element quad 71 88 89 94 93 $t PlaneStress 4
element quad 72 89 90 95 94 $t PlaneStress 4
element quad 73 91 92 97 96 $t PlaneStress 4
element quad 74 92 93 98 97 $t PlaneStress 4
element quad 75 93 94 99 98 $t PlaneStress 4
element quad 76 94 95 100 99 $t PlaneStress 4
element quad 77 96 97 102 101 $t PlaneStress 4
element quad 78 97 98 103 102 $t PlaneStress 4
element quad 79 98 99 104 103 $t PlaneStress 4
element quad 80 99 100 105 104 $t PlaneStress 4

puts "Done Element"

equalDOF 28 26 1; equalDOF 28 27 1; equalDOF 28 29 1; equalDOF 28 30 1;
equalDOF 53 51 1; equalDOF 53 52 1; equalDOF 53 54 1; equalDOF 53 55 1;
equalDOF 78 76 1; equalDOF 78 77 1; equalDOF 78 79 1; equalDOF 78 80 1;
equalDOF 103 101 1; equalDOF 103 102 1; equalDOF 103 104 1; equalDOF 103 105 1;

puts "Diaphragm constraints done"


#Gravity loads
# gravity loads on walls
pattern Plain 1 Linear {
load 28 0. -500000 ;
load 53 0. -500000 ;
load 78 0. -500000 ;
load 103 0. -500000 ;
}
#Analysis Gravity Load
set TestType EnergyIncr;
set Tol 1.e-5;
set maxNumIter 150;
test $TestType $Tol $maxNumIter;
constraints Plain;
numberer Plain; system BandGeneral;
algorithm KrylovNewton; set NstepGravity 100;
set DGravity [expr 1./$NstepGravity];
integrator LoadControl $DGravity;
analysis Static; set Gravity [analyze $NstepGravity];
if {$Gravity != 0} {puts "Gravity loads not OK"}
loadConst -time 0.0
if {$Gravity == 0} {puts "Model including gravity loads has been built."}


set DisplacementCheck1 [nodeDisp 101 2];
set node1Rxn1 [nodeReaction 3];
puts $DisplacementCheck1
puts $node1Rxn1

# create data directory
file mkdir modes;
#Perform eigenvalue analysis and store periods into a file
for { set k 1 } { $k <= $numModes } { incr k } {
recorder Node -file [format "modes/mode%i.out" $k] -node 3 28 53 78 103 -dof 1 "eigen $k"
}
#Perform eigenvalue analysis and store periods into a file
set lambda [eigen -fullGenLapack $numModes];

# calculate frequencies and periods of the structure
# ---------------------------------------------------
set omega {}
set f {}
set T {}
set pi 3.141593

foreach lam $lambda {
lappend omega [expr sqrt($lam)]
lappend f [expr sqrt($lam)/(2*$pi)]
lappend T [expr (2*$pi)/sqrt($lam)]
}

#puts "periods are $T"

# write the output file cosisting of periods
# --------------------------------------------
set period "modes/Periods.txt"
set Periods [open $period "w"]
foreach t $T {
puts $Periods " $t"
}
close $Periods
record

#source Record.tcl
#****Record Data****
#***********************************************************
set dataDir C:/Users/praf_/OneDrive/OpenSees/ForumShearwallGhada/Results;
file mkdir $dataDir
# record Base Shear
recorder Node -file $dataDir/BaseShear.out -node 1 2 3 4 5 -dof 1 reaction;


# Displacements
recorder Node -file $dataDir/ControlDisp4th.out -time -node 103 -dof 1 disp;

#****Load pattern****
pattern Plain 992 Linear {
load 103 1. 0;
load 78 0.66 0;
load 53 0.35 0;
load 28 0.11 0;
}
# **** Non-linear static analysis****
#****Integrator****
set ControlDisplacementNode 103;
set ControlDisplacementDOF 1; ;
set Dmax 0.5;
set Dincr [expr (1/1000.)];

integrator DisplacementControl $ControlDisplacementNode $ControlDisplacementDOF $Dincr;
#integrator LoadControl 0.1 10 0.05 20.0
#Create the system of equation, a sparse solver with partial pivoting
system BandGeneral
# Create the constraint handler
constraints Plain
# Create the DOF numberer
numberer Plain
# Create the convergence test
test NormDispIncr 1.0e-2 100 5
# Create the solution algorithm
algorithm KrylovNewton
# Type of analysis analysis
analysis Static; # define type of analysis: static for pushover267
set Nsteps [expr int($Dmax/$Dincr)];# number of pushover analysis steps
set ok [analyze $Nsteps]; # this will return zero if no convergence problems were encountered
puts "Analysis complete"; # display this message in the command window
wipe all;
Hi, Prafullamalla

I have been trying to carry out the numerical simulation analysis of shear walls recently. The numerical simulation method based on the "nDMaterial PlasticDamageConcretePlaneStress" and the "nDMaterial PlaneStressLayeredMaterial” mentioned by you above is a very effective method in my opinion. I am very interested in this and would like to try the method in my research. I wonder if you could provide me with some of corresponding thesis or research papers to help me understand the method details?
I am looking forward to your reply! Thank you very much.

Best regards
Liguo

Post Reply