Modeling sheathed walls with Pinching4 uniaxial material

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

Moderators: silvia, selimgunay, Moderators

Post Reply
scottswensen
Posts: 4
Joined: Mon Jun 28, 2010 9:34 pm
Location: Stanford

Modeling sheathed walls with Pinching4 uniaxial material

Post by scottswensen »

I am a brand new user of OpenSees (less than 1 week). Before I move on to more extensive models, I'm trying to model a 16" x 16" framed wall with sheathing that uses 4 sheathing-to-framing fasteners (one at each corner). I'm modeling the framing as beam elements with the "elasticBeamColumn" command, the sheathing as a shell element with the "ShellMITC4" command, and the connectors as bilinear zero length uniaxialMaterial using the Pinching4 model. I have been modifying an example code found on the website, though I didn't find anything extremely similar to what I am doing. Right now I'm just attempting a simple pushover analysis.

When running, I get the following error at the pushover step:

WARNING: CTestNorUnbalance::test() - failed to converge after: 400 iterations
NewtonRaphson::solveCurrentStep() -the ConvergenceTest object failed in test()
StaticAnalysis::analyze() - the Algorithm failed at iteration: 0 with domain at load factor -1.78974e+141
OpenSees > analyze failed, returned: -3 error flag

Does anyone have any tips? I would really appreciate it.

My code is:

wipe all;
model BasicBuilder -ndm 2 -ndf 3;
source PinchingModel.tcl;

# Define type of analysis: "pushover" = pushover
set analysisType "pushover";
if {$analysisType == "pushover"} {
set dataDir Concentrated-Pushover-Output; # name of output folder
file mkdir $dataDir; # create output folder
}

# define structure-geometry parameters
set Ngrid 1;
set Wgrid 16;
set Hwall [expr $Wgrid*$Ngrid];
set Wwall [expr $Wgrid*$Ngrid];
# Calculate locations of horizontal and vertical mesh points
set Vert1 0.0;
set Vert2 [expr $Vert1 + $Wgrid];
set Hor1 0.0;
set Hor2 [expr $Hor1 + $Wgrid];
# Calculate nodal masses - lump mass at top of wall;
set g 386.2; # acceleration of gravity
set Weight 1; # weigth applied to wall in kips;
set NodalMass [expr $Weight/2/$g]; # mass on each node at top of wall
set Negligible 1e-9; # ~0
# Define nodes and assign masses to mesh
# nodes on shell element:
node 111 $Vert1 $Hor1;
node 121 $Vert2 $Hor1;
node 112 $Vert1 $Hor2;
node 122 $Vert2 $Hor2;
# nodes on horizontal elements
node 211 $Vert1 $Hor1;
node 221 $Vert2 $Hor1;
node 212 $Vert1 $Hor2 -mass $NodalMass $Negligible $Negligible;
node 222 $Vert2 $Hor2 -mass $NodalMass $Negligible $Negligible;
# nodes on vertical elements
node 311 $Vert1 $Hor1;
node 312 $Vert1 $Hor2;
node 321 $Vert2 $Hor1;
node 322 $Vert2 $Hor2;

# constrain end nodes of linear elements to behave as hinges with adjoining line elements
set dof1 1; # constrain movement in dof1
set dof2 2; # constrain movement in dof2
equalDOF 311 211 $dof1 $dof2;
equalDOF 321 221 $dof1 $dof2;
equalDOF 312 212 $dof1 $dof2;
equalDOF 322 222 $dof1 $dof2;

# Assign boundary conditions
# pin the sill plate of the framing
fix 311 1 1 0;
fix 321 1 1 0;

# define column and beam 2 x 4 sections;
set Aframing 5.25;
set Iframing 0.9844;
# define sheathing thickness (2 sheets)
set Tsheathing 1.25;
# define material properties
set Ew 1600.0; # Young's modulus of wood
set Eg 360.0; # Young's modulus of gypsum board
set vw 0.2; # Poisson ratio for wood
set vg 0.2; # Poisson ratio for gypsum board
# create the material
section ElasticMembranePlateSection 10 $Eg $vg $Tsheathing [expr 0.000024444/$g];
# set up geometric transformation of element
set PDeltaTransf 1;
geomTransf PDelta $PDeltaTransf;
# define elastic shell elements using "element" command
element ShellMITC4 411 111 121 122 112 10;
# define elastic beam elements
element elasticBeamColumn 511 211 221 $Aframing $Ew $Iframing $PDeltaTransf;
element elasticBeamColumn 512 212 222 $Aframing $Ew $Iframing $PDeltaTransf;
# define elastic column elements using "element" command
element elasticBeamColumn 611 311 312 $Aframing $Ew $Iframing $PDeltaTransf;
element elasticBeamColumn 621 321 322 $Aframing $Ew $Iframing $PDeltaTransf;

# set parameters for fasteners
set Pf1 0.112;
set Pf2 0.198;
set Pf3 0.261;
set Pf4 0.0225;
set Pd1 0.00984;
set Pd2 0.0492;
set Pd3 0.157;
set Pd4 0.315;
set rDispP 0.65;
set rForceP 0.35;
set uForceP 0.05;
set gK1 1.0;
set gK2 0.2;
set gK3 0.3;
set gK4 0.2;
set gKLim 0.1;
set gD1 0.5;
set gD2 0.5;
set gD3 2.0;
set gD4 2.0;
set gDLim 0.25;
set gF1 1.0;
set gF2 0.0;
set gF3 1.0;
set gF4 1.0;
set gFLim 0.15;
set gE 10;
set dmgType energy;

# define horizontal springs

PinchingModel 711 311 111 $Pf1 $Pd1 $Pf2 $Pd2 $Pf3 $Pd3 $Pf4 $Pd4 $rDispP $rForceP $uForceP $gK1 $gK2 $gK3 $gK4 $gKLim $gD1 $gD2 $gD3 $gD4 $gDLim $gF1 $gF2 $gF3 $gF4 $gFLim $gE $dmgType;
PinchingModel 712 312 112 $Pf1 $Pd1 $Pf2 $Pd2 $Pf3 $Pd3 $Pf4 $Pd4 $rDispP $rForceP $uForceP $gK1 $gK2 $gK3 $gK4 $gKLim $gD1 $gD2 $gD3 $gD4 $gDLim $gF1 $gF2 $gF3 $gF4 $gFLim $gE $dmgType;
PinchingModel 721 321 121 $Pf1 $Pd1 $Pf2 $Pd2 $Pf3 $Pd3 $Pf4 $Pd4 $rDispP $rForceP $uForceP $gK1 $gK2 $gK3 $gK4 $gKLim $gD1 $gD2 $gD3 $gD4 $gDLim $gF1 $gF2 $gF3 $gF4 $gFLim $gE $dmgType;
PinchingModel 722 322 122 $Pf1 $Pd1 $Pf2 $Pd2 $Pf3 $Pd3 $Pf4 $Pd4 $rDispP $rForceP $uForceP $gK1 $gK2 $gK3 $gK4 $gKLim $gD1 $gD2 $gD3 $gD4 $gDLim $gF1 $gF2 $gF3 $gF4 $gFLim $gE $dmgType;

#Eigenvalue Analysis
set pi [expr 2.0*asin(1.0)];
set nEigenI 1;
set nEigenJ 2;
set lambdaN [eigen [expr $nEigenJ]];
set lambdaI [lindex $lambdaN [expr 0]];
set lambdaJ [lindex $lambdaN [expr $nEigenJ-1]];
set w1 [expr pow($lambdaI,0.5)];
set w2 [expr pow($lambdaJ,0.5)];
set T1 [expr 2.0*$pi/$w1];
set T2 [expr 2.0*$pi/$w2];
puts "T1 = $T1 s";
puts "T2 = $T2 s";

# Pushover Analysis
if {$analysisType == "pushover"} {
puts "Running Pushover..."
pattern Plain 200 Linear {
load 312 $lat 0.0 0.0;
}

# displacement parameters
set IDctrlNode 312;
set IDctrlDOF 1;
set Dmax [expr 0.1*$Hwall];
set Dincr [expr 0.01];

# analysis commands
constraints Plain;
numberer RCM;
system BandGeneral;
test NormUnbalance 1.0e-6 400;
algorithm Newton;
integrator DisplacementControl $IDctrlNode $IDctrlDOF $Dincr;
analysis Static;
set Nsteps [expr int($Dmax/$Dincr)];
set ok [analyze $Nsteps];
puts "Pushover complete";
}

The file PinchingModel.tcl is given by:

proc PinchingModel {eleID nodeR nodeC Pf1 Pd1 Pf2 Pd2 Pf3 Pd3 Pf4 Pd4 rDispP rForceP uForceP gK1 gK2 gK3 gK4 gKLim gD1 gD2 gD3 gD4 gDLim gF1 gF2 gF3 gF4 gFLim gE dmgType} {#

uniaxialMaterial Pinching4 $eleID $Pf1 $Pd1 $Pf2 $Pd2 $Pf3 $Pd3 $Pf4 $Pd4 $rDispP $rForceP $uForceP $gK1 $gK2 $gK3 $gK4 $gKLim $gD1 $gD2 $gD3 $gD4 $gDLim $gF1 $gF2 $gF3 $gF4 $gFLim $gE $dmgType;
geomTransf Linear $eleID
element zeroLength $eleID $nodeR $nodeC -mat $eleID $eleID -dir 1 2}

Any help would be greatly appreciated!!
vesna
Posts: 3033
Joined: Tue May 23, 2006 11:23 am
Location: UC Berkeley

Re: Modeling sheathed walls with Pinching4 uniaxial material

Post by vesna »

If not even one step of analysis can be performed there is something wrong with your model.

Since you are the new user of OpenSees I would suggest you to make a simple model first (consisting only of wall). After it is modeled and working well you can start adding things to it (I would suggest one by one). This was you will be able to identify the source of error.
Post Reply