← Back to team overview

yade-users team mailing list archive

[Question #294036]: Rate of strain between compressive and tensile strength using CpmMat.

 

New question #294036 on Yade:
https://answers.launchpad.net/yade/+question/294036

Hello everyone,
I looked up document information and found that the concrete’s strain at maximum compressive strength is about 0.0033 and the strain at maximum tensile strength is about 0.00015. The rate of compressive strain and tensile strain is about 20. I used the following code to compress the concrete and tense it and I found from the diagram that the rate is about 2. I tried to change the rate by modifying the parameters, but I failed. Can you give me some suggestion about how to change the rate between the strain at maximum compressive strength and the strain at maximum tensile strength?

#########################################first code, calculate the strain at maximum compressive strength
#!/usr/bin/python           
import string
from yade import plot,qt
from yade.pack import *
from yade import pack, plot
O.materials.append(CpmMat(young=24e9,frictionAngle=atan(0.8),poisson=.2,sigmaT=3.5e6,relDuctility=30,epsCrackOnset=1e-4))

initSize=1.2

sp=pack.randomPeriPack(radius=.05,initSize=Vector3(initSize,initSize,initSize))

sp.toSimulation()

O.save('/tmp/hh.gz')

plot.plots={'ex':('sx',)}
def plotAddData():
	plot.addData(
		sx=p3d.stress[0],
		ex=p3d.strain[0],

	)


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(
					
							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'
							),
	PyRunner(command='plotAddData()',iterPeriod=1),
	
]

p3d.stressMask=0b111110       # prescribed ex,ey,sz,syz,ezx,sxy;   e..strain;  s..stress
p3d.goal=(-0.005,0,0,0,0,0)  #xx, yy, zz, yz, zx, xy
O.step()
bo1s.aabbEnlargeFactor=ig2ss.interactionDetectionFactor=1.
O.run(); O.wait()
plot.plot(subPlots=False)

#########################################second code, calculate the strain at maximum tensile strength
#!/usr/bin/python           
import string
from yade import plot,qt
from yade.pack import *
from yade import pack, plot


O.load('/tmp/hh.gz')

plot.plots={'ex':('sx',)}
def plotAddData():
	plot.addData(
		sx=p3d.stress[0],
		ex=p3d.strain[0],

	)


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(
					
							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'
							),
	PyRunner(command='plotAddData()',iterPeriod=1),
	
]




p3d.stressMask=0b111110       # prescribed ex,ey,sz,syz,ezx,sxy;   e..strain;  s..stress
p3d.goal=(0.0015,0,0,0,0,0)  #xx, yy, zz, yz, zx, xy
O.step()
bo1s.aabbEnlargeFactor=ig2ss.interactionDetectionFactor=1.

O.run(); O.wait()
plot.plot(subPlots=False)


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