← Back to team overview

yade-users team mailing list archive

Re: [Question #695679]: stress path

 

Question #695679 on Yade changed:
https://answers.launchpad.net/yade/+question/695679

    Status: Answered => Open

ehsan benabbas is still having a problem:
Thank you Bruno for your response.  I made the following changes to the
code, but the problem is for b=0 (which means confining pressures must
be equal as b=(sigma1-sigma3)/(sigma2-sigma3) when the axial/vertical
direction is direction 2) I get different results in comparison with the
case that I had not used "b and p" parameters. I mean when I add these
changes, when I put b=0, it must be the same as before, however, I get
much higher confining pressures and axial pressure.


To follow the aforementioned logic for defining a loading path, first I defined the following parameters:

################# LOADING #################
strainRate=-0.5  # %/sec
target_strain=0.35 
p=-5e5 # Mean Stress , KPa ... Pa=N/m2
sigmaIso=p # Confining Pressure , Kpa ... Pa=N/m2
# Note that direction 2 is vertical/axial and directions 1 & 3 are lateral/confining
b=0 # b = (sigma1-sigma3)/(sigma2-sigma3)

Second, for confining pressure I defined the following lines:

###############################################################
################# APPLYING CONFINING PRESSURE #################

print ('============ APPLYING CONFINING PRESSURE ============')

triax.goal1 = sigmaIso
triax.goal2 = sigmaIso
triax.goal3 = sigmaIso

while 1:
    O.run(ORN,True)
    unb = unbalancedForce()
    meanS=(triax.stress(triax.wall_right_id)[0]+triax.stress(triax.wall_top_id)[1]+triax.stress(triax.wall_front_id)[2])/3
    ConfStressRatio=abs(sigmaIso-triax.meanStress)/abs(sigmaIso)
    print ('~~~~~~~~~~~~~ Phase_01: Converging to Isotropic Compression, 50kPa ~~~~~~~~~~~~~')
    print ('ConfSratio:',ConfStressRatio,' step:', O.iter/ORN, ' Time:',O.time, ' iter/sec',O.speed)
    print ('mean stress engine:',triax.meanStress,' mean stress (Calculated):',meanS)
    if unb<stabilityThreshold and ConfStressRatio<PCPC:
        break


and finally, in the deviatoric phase of the triaxial test I defined the following lines:

######################################################
################# DEVIATORIC LOADING #################

print ('============ APPLYING DEVIATORIC LOADING ============')
triax.internalCompaction=False
setContactFriction(0.5)

# Allow walls to move. >>> False means fixed , True means free to move
triax.wall_top_activated=True
triax.wall_bottom_activated=False
triax.wall_left_activated=True
triax.wall_right_activated=True
triax.wall_back_activated=True
triax.wall_front_activated=True

# Make Stress Control on X,Y,Z directions by setting True, False means Strain Control
triax.stressControl_1=True
triax.stressControl_2=False
triax.stressControl_3=True

# set the rate of strain to the desirable axis
triax.strainRate2=strainRate


# set the deviatoric conditions
triax.stressMask = 5
triax.goal2 = strainRate
sigma2=triax.goal2
sigma1=(((1-b)*3*p)+(((2*b)-1)*sigma2))/(2-b)
triax.goal1 = sigma1
sigma3=((3*p)-((b+1)*sigma2))/(2-b)
triax.goal3 = sigma3

newton.damping=damp

while 1:
    O.run(ORN,True)
    unb=unbalancedForce()
    axialS=triax.stress(triax.wall_top_id)[1]
    eps2=triax.strain[1]
    eps2cal=(triax.height-Ls)/Ls
    print ('~~~~~~~~~~~~~ Phase_02: Converging to Deviatoric Compression, Strain Rate ~~~~~~~~~~~~~')
    print ('sigma2: ',axialS, ' q: ', axialS-sigmaIso,' step= ', O.iter/ORN,' Time:',O.time, ' iter/sec',O.speed)
    print ('Strain2 Calculated: ',eps2cal, ' Strain2 engine: ',eps2,'axial deformation (%)', (eps2-e22Check)*100)
    if abs(eps2-e22Check)>=target_strain: #triax.sigma2
        break

print ('################## Deviatoric phase is finished and saved
successfully ##################')

-- 
You received this question notification because your team yade-users is
an answer contact for Yade.