PyLiq1 updateMaterialStage ?????
Moderators: silvia, selimgunay, Moderators
PyLiq1 updateMaterialStage ?????
Hi folks,
According to the documentation,
(http://opensees.berkeley.edu/OpenSees/m ... tation.pdf),
the pyliq1 material must be updated using updateMaterialStage to account for excess pore water pressure buildup in the solid soil elements. However, any time I call updateMaterialStage with reference to the pyLiq1 material tag OpenSees crashes with an "abnormal program termination".
I am calling the updateMaterialStage command after gravity analysis. even when I attempt to use the update command before any analysis, OpenSees crashes immediately, regardless of the update parameter (elastic or plastic).
I have no problem using updateMaterialStage with FSporous or PDmultiyield soil materials. Just doesn't seem to work with PyLiq1 as the documentation suggests.
Has anyone else had this problem? Or know any fixes? Is the updateMaterialStage incompatible with PyLiq1 elements?
According to the documentation,
(http://opensees.berkeley.edu/OpenSees/m ... tation.pdf),
the pyliq1 material must be updated using updateMaterialStage to account for excess pore water pressure buildup in the solid soil elements. However, any time I call updateMaterialStage with reference to the pyLiq1 material tag OpenSees crashes with an "abnormal program termination".
I am calling the updateMaterialStage command after gravity analysis. even when I attempt to use the update command before any analysis, OpenSees crashes immediately, regardless of the update parameter (elastic or plastic).
I have no problem using updateMaterialStage with FSporous or PDmultiyield soil materials. Just doesn't seem to work with PyLiq1 as the documentation suggests.
Has anyone else had this problem? Or know any fixes? Is the updateMaterialStage incompatible with PyLiq1 elements?
I'm not sure if this had to do with pore water pressures or what, I tried using quadUP elements and OpenSees still fails... I've made sure I've developed pore water pressure before updating as well... Not sure what I'm doing wrong.... If I update pyLiq1 to -stage 1 as soon as I run a analysis step the program crashes.
Does it even work at all????
ONE NOTE FOR DEVELOPERS: OpenSees needs to produce an error message if a material is referenced incorrectly or an incorrect stage number is used. I may be doing something wrong here, but I don't think so (if I am please let me know). If I reference a material that doesn't exist using updateMaterialStage the model keeps running no problem. Even if I use a stage that doesn't exist like sNum=4 the model keeps running. Misuse of updateMaterialStage should definitely warrant closure of OpenSees.
Does it even work at all????
ONE NOTE FOR DEVELOPERS: OpenSees needs to produce an error message if a material is referenced incorrectly or an incorrect stage number is used. I may be doing something wrong here, but I don't think so (if I am please let me know). If I reference a material that doesn't exist using updateMaterialStage the model keeps running no problem. Even if I use a stage that doesn't exist like sNum=4 the model keeps running. Misuse of updateMaterialStage should definitely warrant closure of OpenSees.
# Create model one soil, one beam column, one pyliq1 element
wipe all
set begin [clock clicks -milliseconds]
wipe all
model basic -ndm 2 -ndf 2
# Loose Sand
set rho1 0.0000001586;
set RefShearMod1 7.9576;
set RefBulkMod1 21.7027;
set fricAng1 29;
set peakShearStr 0.1;
set refPress 0.0116;
set CoefConfi 0.5;
set phaseAng1 29;
set contrac1 0.27;
set dilat11 0;
set dilat21 0;
set lique11 0.00145;
set lique21 0.02;
set lique3 1;
set e1 0.85;
set n1 [expr $e1/($e1+1)]
#loose sand
nDMaterial PressureDependMultiYield 812 2 $rho1 $RefShearMod1 $RefBulkMod1 $fricAng1 $peakShearStr $refPress $CoefConfi $phaseAng1 $contrac1 $dilat11 $dilat21 $lique11 $lique21 $lique3
nDMaterial FluidSolidPorous 822 2 812 775 #Create Saturated Sand
#create materials to try and debug updating pyliq1 problem
#these materials will be used instead of pyliq1 to isolate problem
uniaxialMaterial PySimple1 899 2 228 .252 0.3
uniaxialMaterial Elastic 901 1e9
uniaxialMaterial PyLiq1 900 1 228 .252 0.3 0 0.1 1 1
node 1 0 0
node 2 12 0
node 3 12 12
node 4 0 12
#dummy node
node 5 12 12
# fix the base
fix 1 1 1
fix 2 1 1
set rmedsand 0.0000001759;
set rwater 0.00000009345
set g -386.4
# quad $eleTag $iNode $jNode $kNode $lNode $thick $type $matTag <$pressure $rho $b1 $b2>
element quad 1 1 2 3 4 525 PlaneStrain 822 0 $rmedsand 0 [expr ($rmedsand - $rwater)*$g]
element zeroLength 700 5 3 -mat 900 -dir 1 ;#To get model to run change material to 899 pysimple1 or 901 rigid elastic
element zeroLength 701 5 3 -mat 901 -dir 2
#################################
system ProfileSPD
test NormDispIncr 1.0e-5 10 0
constraints Transformation
integrator LoadControl .2 1 .2 .2
algorithm Newton
numberer RCM
# create the Analysis
analysis Static
analyze 5
wipeAnalysis
setTime 0.0
#################################
updateMaterialStage -material 812 -stage 1 ; #PDMY sand
updateMaterialStage -material 822 -stage 1 ; #FluidSolidPorous Layer 4 and 2
updateMaterialStage -material 900 -stage 1 ;
updateMaterialStage -material 903 -stage 1 ;
model basic -ndm 2 -ndf 3
node 80 12 12
node 70 12 0
#fix base of beamcolumn element
fix 70 1 1 1
set Argd 144
set Izrgd 78000
set Ergd 29000
geomTransf Linear 1;
element elasticBeamColumn 10 70 80 $Argd $Ergd $Izrgd 1
#tie beam column to dummy node in x and y direction
equalDOF 5 80 1 2
system ProfileSPD
test NormDispIncr 1.0e-5 10 0
constraints Transformation
integrator LoadControl 1 1 1 1
algorithm Newton
numberer RCM
# create the Analysis
analysis Static
set P -800 ;#kips/column
set gravsteps 20
##
pattern Plain 2 "Linear" {
load 80 50000 [expr $P/$gravsteps] 0
}
analyze $gravsteps
wipeAnalysis
setTime 0.0
wipe all
set begin [clock clicks -milliseconds]
wipe all
model basic -ndm 2 -ndf 2
# Loose Sand
set rho1 0.0000001586;
set RefShearMod1 7.9576;
set RefBulkMod1 21.7027;
set fricAng1 29;
set peakShearStr 0.1;
set refPress 0.0116;
set CoefConfi 0.5;
set phaseAng1 29;
set contrac1 0.27;
set dilat11 0;
set dilat21 0;
set lique11 0.00145;
set lique21 0.02;
set lique3 1;
set e1 0.85;
set n1 [expr $e1/($e1+1)]
#loose sand
nDMaterial PressureDependMultiYield 812 2 $rho1 $RefShearMod1 $RefBulkMod1 $fricAng1 $peakShearStr $refPress $CoefConfi $phaseAng1 $contrac1 $dilat11 $dilat21 $lique11 $lique21 $lique3
nDMaterial FluidSolidPorous 822 2 812 775 #Create Saturated Sand
#create materials to try and debug updating pyliq1 problem
#these materials will be used instead of pyliq1 to isolate problem
uniaxialMaterial PySimple1 899 2 228 .252 0.3
uniaxialMaterial Elastic 901 1e9
uniaxialMaterial PyLiq1 900 1 228 .252 0.3 0 0.1 1 1
node 1 0 0
node 2 12 0
node 3 12 12
node 4 0 12
#dummy node
node 5 12 12
# fix the base
fix 1 1 1
fix 2 1 1
set rmedsand 0.0000001759;
set rwater 0.00000009345
set g -386.4
# quad $eleTag $iNode $jNode $kNode $lNode $thick $type $matTag <$pressure $rho $b1 $b2>
element quad 1 1 2 3 4 525 PlaneStrain 822 0 $rmedsand 0 [expr ($rmedsand - $rwater)*$g]
element zeroLength 700 5 3 -mat 900 -dir 1 ;#To get model to run change material to 899 pysimple1 or 901 rigid elastic
element zeroLength 701 5 3 -mat 901 -dir 2
#################################
system ProfileSPD
test NormDispIncr 1.0e-5 10 0
constraints Transformation
integrator LoadControl .2 1 .2 .2
algorithm Newton
numberer RCM
# create the Analysis
analysis Static
analyze 5
wipeAnalysis
setTime 0.0
#################################
updateMaterialStage -material 812 -stage 1 ; #PDMY sand
updateMaterialStage -material 822 -stage 1 ; #FluidSolidPorous Layer 4 and 2
updateMaterialStage -material 900 -stage 1 ;
updateMaterialStage -material 903 -stage 1 ;
model basic -ndm 2 -ndf 3
node 80 12 12
node 70 12 0
#fix base of beamcolumn element
fix 70 1 1 1
set Argd 144
set Izrgd 78000
set Ergd 29000
geomTransf Linear 1;
element elasticBeamColumn 10 70 80 $Argd $Ergd $Izrgd 1
#tie beam column to dummy node in x and y direction
equalDOF 5 80 1 2
system ProfileSPD
test NormDispIncr 1.0e-5 10 0
constraints Transformation
integrator LoadControl 1 1 1 1
algorithm Newton
numberer RCM
# create the Analysis
analysis Static
set P -800 ;#kips/column
set gravsteps 20
##
pattern Plain 2 "Linear" {
load 80 50000 [expr $P/$gravsteps] 0
}
analyze $gravsteps
wipeAnalysis
setTime 0.0
-
- Posts: 109
- Joined: Sat May 05, 2007 12:28 pm
- Location: Houston, TX
-
- Posts: 109
- Joined: Sat May 05, 2007 12:28 pm
- Location: Houston, TX