← Back to team overview

yade-users team mailing list archive

[Question #690942]: Concrete cube dimension, aggregate particle and peri3dController

 

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

Dear All,

I am new to YADE. I have studied some code from this forum. There are some of the questions related to concrete cube testing.

1. How to determine the dimensions of the concrete cube (150x150mm) in the modeling? In the code, there is an initial size = 1.2, but apparently, this is not the cube dimension.

2. How to determine the variation of aggregate granules if specified;
    a. 0-4mm: 40%
    b. 4-8 mm: 22%
    c. 8-16mm: 38%

3. How to determine the value (goal, xxPath, yyPath, zzPath, zxPath, xyPath), I'm confused with the determination of the numbers . I have read it in YADE Book (pg.280), but i dont understand about it.

goal=(20e-4,-6e-4,0, -2e6,3e-4,2e6)
# the prescribed path (step,value of stress/strain) can be defined in absolute values
xxPath=[(465,5e-4),(934,-5e-4),(1134,10e-4)],
# or in relative values
yyPath=[(2,4),(7,-2),(11,0),(14,4)],
# if the goal value is 0, the absolute stress/strain values are always considered (step values remain relative)
zzPath=[(5,-1e7),(10,0)],
# 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)
zxPath=[(4,2),(14,-1),(22,0),(28,2)],
xyPath=[(1,1),(2,-1),(3,1),(4,-1),(5,1)],

Could you please help me with this?. I'm writing a thesis and paper using YADE.

Regards,
Faqih Ma’arif

****************************************************************************************************************************************************************************************************************
the complete code as follows:

# peri3dController_example1.py
# script, that explains funcionality and input parameters of Peri3dController

import string
from yade import pack, plot
from yade import plot,qt           
from yade.pack import *             

# create some material
#O.materials.append(CpmMat(neverDamage=True,young=25e9,frictionAngle=.7,poisson=.2,sigmaT=3e6,epsCrackOnset=1e-4,relDuctility=30))
O.materials.append(CpmMat(neverDamage=True,young=25e9,frictionAngle=.7,poisson=.2,sigmaT=3e6,epsCrackOnset=1e-4,relDuctility=30))

# create periodic assembly of particles
initSize=1.2                       #old 

sp=pack.randomPeriPack(radius=.05,initSize=Vector3(initSize,initSize,initSize),memoizeDb='/tmp/packDb.sqlite')
sp.toSimulation()

# plotting 
#plot.live=False
plot.plots={'progress':('sx','sy','sz','syz','szx','sxy',),'progress_':('ex','ey','ez','eyz','ezx','exy',)}
def plotAddData():
	plot.addData(
		progress=p3d.progress,progress_=p3d.progress,
		sx=p3d.stress[0],sy=p3d.stress[1],sz=p3d.stress[2],
		syz=p3d.stress[3],szx=p3d.stress[4],sxy=p3d.stress[5],
		ex=p3d.strain[0],ey=p3d.strain[1],ez=p3d.strain[2],
		eyz=p3d.strain[3],ezx=p3d.strain[4],exy=p3d.strain[5],
	)

# in how many time steps should be the goal state reached
nSteps=4000             #new


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(
							goal=(20e-4,-6e-4,0, -2e6,3e-4,2e6), # Vector6 of prescribed final values (xx,yy,zz, yz,zx,xy)
							stressMask=0b101100,            # prescribed ex,ey,sz,syz,ezx,sxy;   e..strain;  s..stress
							nSteps=nSteps, 			# 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
							xxPath=[(465,5e-4),(934,-5e-4),(1134,10e-4)],
							# or in relative values
							yyPath=[(2,4),(7,-2),(11,0),(14,4)],
							# if the goal value is 0, the absolute stress/strain values are always considered (step values remain relative)
							zzPath=[(5,-1e7),(10,0)],
							# 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)
							zxPath=[(4,2),(14,-1),(22,0),(28,2)],
							xyPath=[(1,1),(2,-1),(3,1),(4,-1),(5,1)],
							# variables used in the first step
							label='p3d'
							),
	PyRunner(command='plotAddData()',iterPeriod=1),
]

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.