How to measure lateral strain about examples/concrete/triax.py
Hi,
Due to the needs of laboratory tests, I need to use cylindrical specimens for triaxial compression numerical simulation.
Since TriaxialStressC
My code as follows:
-------
from yade import pack, ymport, plot, utils, export, timing
import numpy as np
import sys
rate=-0.2
damp=0.4
stabilityThresh
key='_triax_base_'
young=100e9
name='JCFPM_triax'
compFricDegree=30
poisson=0.4
name='cylinder'
preStress=-20e6
strainRate = -1
OUT=str(
nw=24
nh=15
rParticle=
bcCoeff = 5
width = 0.025
height = 0.05
mn,mx=Vector3(
O.materials.
O.materials.
spheres=
bot = [O.bodies[s] for s in spheres if O.bodies[
top = [O.bodies[s] for s in spheres if O.bodies[
vel = strainRate*
for s in bot:
s.shape.color = (1,0,0)
s.state.
s.state.vel = (0,0,-vel)
for s in top:
s.shape.color = Vector3(0,1,0)
s.state.
s.state.vel = (0,0,vel)
facets = []
rCyl2 = .5*width / cos(pi/float(nw))
for r in range(nw):
for h in range(nh):
v1 = Vector3( rCyl2*cos(
v2 = Vector3( rCyl2*cos(
v3 = Vector3( rCyl2*cos(
v4 = Vector3( rCyl2*cos(
f1 = facet((
f2 = facet((
facets.
O.bodies.
mass = O.bodies[
for f in facets:
f.state.mass = mass
f.state.
plot.plots = { 'e':('s',), }
def addForces():
for f in facets:
n = f.shape.normal
a = f.shape.area
O.forces.
def stopIfDamaged(
extremum = max(abs(s) for s in plot.data['s'])
s = abs(plot.
e = abs(plot.
if O.iter < 1000 or s > .5*extremum and e < maxEps:
return
if abs(s)/
print('Simulation finished')
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
print('Max stress and strain:
O.pause()
O.dt=.5*
newton=
O.engines=[
ForceResetter(),
InsertionSortC
InteractionLoop(
[Ig2_
[Ip2_
[Law2_
),
PyRunner(
newton,
PyRunner(
PyRunner(
VTKRecorder(
]
def plotAddData():
f1 = sum(O.forces.
f2 = sum(O.forces.
f = .5*(f2-f1)
s = f/(pi*.
e = (top[0]
plot.addData(
i = O.iter,
s = -s,
e = -e,
tc = interactionLaw.
sc = interactionLaw.
)
plot.saveDataT
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)
plot.plot()
O.run()
-------
Thanks for kindly help!
[1]https:/
Question information
- Language:
- English Edit question
- Status:
- Solved
- For:
- Yade Edit question
- Assignee:
- No assignee Edit question
- Solved by:
- Jan Stránský
- Solved:
- Last query:
- Last reply: