Does jcfpm material have strain softening stage?
Hello,
My question is similar to that mentioned in [1], but we use different materials ([1] is CPM material but mine is JCFPM material).
What I am doing is simulating the triaxial compression test of rock, and using the interaction enlarge factor of 1.5 to consider simulating brittle rock.In my understanding, brittle rocks should change from brittleness to ductility under high confining pressure (i.e. strain softening stage after peak).
I try to set the confining pressure from 20MPa to 100MPa, however, the stress-strain curve is similar to that described in [1], i.e have a linear elastic state and then followed by a sharp drop (the tangent of the stress decrease is almost 90 degree)..
I didn't get the desired strain softening stage. Is it due to material problems?
Thanks for help
-------
from yade import pack, ymport, plot, utils, export, timing
import numpy as np
import sys
Wy=-20e6
rate=-0.5
damp=0.4
stabilityThresh
key='_triax_base_'
young=3000e9
name='JCFPM_triax'
#targetPorosity
compFricDegree=30
poisson=0.4
OUT=str(
mn,mx=Vector3(
O.materials.
O.materials.
walls=aabbWalls
wallIds=
O.bodies.
triax=TriaxialS
maxMultiplier=
finalMaxMultip
thickness = 0,
stressMask = 7,
internalCompac
)
newton=
def recorder():
yade.plot.addData(
i=O.iter,
e11=-triax.
s11=-triax.
s22=-triax.
s33=-triax.
numberTc=
numberSc=
unb=unbalanced
)
plot.saveDataT
def stop_condition():
extremum=
s=abs(
e=abs(
#if abs(s) > .5*abs(extremum) or e < 0.005:
if e < 0.001 :
return
if abs(s)/
print('Max stress and strain:
presentcohesi
for i in O.interactions:
if hasattr(i.phys, 'isCohesive'):
if i.phys.isCohesive == True:
print('the number of cohesive bond now is:',presentcoh
O.wait()
O.engines=[
ForceResetter(),
InsertionSortC
InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),
GlobalStiffnes
triax,
TriaxialStateR
PyRunner(
PyRunner(
VTKRecorder(
newton,
]
O.step()
ss2sc.interacti
is2aabb.
cohesiveCount = 0
for i in O.interactions:
if hasattr(i.phys, 'isCohesive'):
if i.phys.isCohesive == True:
cohesiveCount+=1
print('the origin total number of cohesive bond is:',cohesiveCount)
triax.goal1=
while 1:
#global Wy
O.run(500,1)
unb=unbalanced
print('unbalanced force:',unb,'mean stres:'
if unb<stabilityTh
break
cohesiveCount = 0
for i in O.interactions:
if hasattr(i.phys, 'isCohesive'):
if i.phys.isCohesive == True:
cohesiveCount+=1
print('the first total number of cohesive bond is:',cohesiveCount)
triax.internalC
triax.stressMask=3
triax.goal1=Wy
triax.goal2=Wy
triax.goal3=rate
plot.plots=
plot.plot()
O.run()
-------
[1]https:/
Question information
- Language:
- English Edit question
- Status:
- Open
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Last query:
- Last reply:
Can you help with this problem?
Provide an answer of your own, or ask Ziyu Wang for more information if necessary.