yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #12634
[Question #293368]: Young modulus of concrete
New question #293368 on Yade:
https://answers.launchpad.net/yade/+question/293368
Hello everyone,
I want to use the boundary controller “peri3dController” to test the property of the concrete material, but I found that the Young modulus of x direction will change when the rate of x direction's strain and y direction's strain changed(x is perpendicular to y), but in the finite element method and in the elastic stage it will not change. I use the first code to calculate the Young modulus of x direction when there had strain in x direction and is no strain in y direction and save the model. Then in the second code I load the model and calculate the Young modulus of x direction when there had both strain in x and y direction. Can you give me some suggestions? Thanks a lot. This is my code.
###################################################### first code
#!/usr/bin/python # This is server.py file
from __future__ import division
import string
from yade import plot,qt
from yade.pack import *
from yade import pack, plot
O.materials.append(CpmMat(density=4800,young=10.4e10,frictionAngle=.7,poisson=.15,sigmaT=3e60,epsCrackOnset=1e60,relDuctility=30,neverDamage=True))
initSize=1.2
sp=pack.randomPeriPack(radius=.05,initSize=Vector3(initSize,initSize,initSize))
sp.toSimulation()
O.dt=PWaveTimeStep()/2
EnlargeFactor=1.5
EnlargeFactor=1.0
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=EnlargeFactor,label='bo1s')]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=EnlargeFactor,label='ig2ss')],
[Ip2_CpmMat_CpmMat_CpmPhys()],[Law2_ScGeom_CpmPhys_Cpm()]),
NewtonIntegrator(),
Peri3dController(
stressMask=0b011100, # prescribed ex,ey,sz,syz,ezx,sxy; e..strain; s..stress
nSteps=4000, # how many time steps the simulation will last
# after reaching nSteps do doneHook action
doneHook='print "Simulation with Peri3dController finished."; O.pause()',
# the prescribed path (step,value of stress/strain) can be defined in absolute values
# or in relative values
# if the goal value is 0, the absolute stress/strain values are always considered (step values remain relative)
# if ##Path is not explicitly defined, it is considered as linear function between (0,0) and (nSteps,goal)
# as in yzPath and xyPath
# the relative values are really relative (zxPath gives the same - except of the sign from goal value - result as yyPath)
# variables used in the first step
label='p3d'
),
]
O.save('/tmp/first.gz')
p3d.goal=(0.00001,0,0,0,0,0) #xx, yy, zz, yz, zx, xy
O.step()
bo1s.aabbEnlargeFactor=ig2ss.interactionDetectionFactor=1.
O.run(); O.wait()
print "the first Young modulus"
print p3d.stress[0]/p3d.strain[0]
########################################## second code
#!/usr/bin/python # This is server.py file
from __future__ import division
import string
from yade import plot,qt
from yade.pack import *
from yade import pack, plot
loadFile='/tmp/first.gz'
O.load(loadFile)
p3d.goal=(0.00001,0.00001,0,0,0,0) #xx, yy, zz, yz, zx, xy
O.step()
bo1s.aabbEnlargeFactor=ig2ss.interactionDetectionFactor=1.
O.run(); O.wait()
print "the second Young modulus"
print p3d.stress[0]/p3d.strain[0]
--
You received this question notification because your team yade-users is
an answer contact for Yade.