New question #670047 on Yade:
https://answers.launchpad.net/yade/+question/670047
Hi:
I have an uniaxial compression test of a cylinder, which I did following the
YADE example. I need now to determine the macro parameters (like Young modulus
or Poisson ratio) in order to relate them to the micro ones... I don't have any
idea of how to determine the macro parameters (I'm new to YADE and DEM in
general). Could you give some clues??... I don't know either which other macro
parameters could be determined, so it would be great if you could tell me that
too... (I have read about "angle of repose" and "bulk density" for instance,
but I'm not quite sure). I post here the code I have so far:
#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import division
from yade import plot,pack,timing
import time, sys, os, copy
#DATOS PROBETA
RADIO = 0.075 #7.5 cm
ALTURA = 0.3 #30 cm
radio_particulas = 0.005 #5 mm
radio_fuzz = 0.001 #1 mm
# default parameters or from table
readParamsFromTable(noTableOk=True, # unknownOk=True,
young=24e9,
poisson=.2,
sigmaT=3.5e6,
frictionAngle=atan(0.8),
epsCrackOnset=1e-4,
relDuctility=30,
intRadius=1.5,
dtSafety=.8,
damping=0.4,
strainRateTension=.5,
strainRateCompression=.5,
setSpeeds=True,
doModes=2,
specimenLength=.15,
isoPrestress=0,
)
from yade.params.table import *
concreteId=O.materials.append(CpmMat(young=young,frictionAngle=frictionAngle,poisson=poisson,density=4800,sigmaT=sigmaT,relDuctility=relDuctility,epsCrackOnset=epsCrackOnset,isoPrestress=isoPrestress))
sps=SpherePack()
sp=pack.randomDensePack(pack.inCylinder((0,0,0),(0,0,ALTURA),radius=RADIO),spheresInCell=2000,radius=radio_particulas,rRelFuzz=radio_fuzz/radio_particulas,memoizeDb='/home/anibal/esferas.sqlite',returnSpherePack=True)
sp.toSimulation(material=concreteId)
bb=uniaxialTestFeatures()
negIds,posIds,axis,crossSectionArea=bb['negIds'],bb['posIds'],bb['axis'],bb['area']
O.dt=dtSafety*PWaveTimeStep()
mm,mx=[pt[axis] for pt in aabbExtrema()]
coord_25,coord_50,coord_75=mm+.25*(mx-mm),mm+.5*(mx-mm),mm+.75*(mx-mm)
area_25,area_50,area_75=approxSectionArea(coord_25,axis),approxSectionArea(coord_50,axis),approxSectionArea(coord_75,axis)
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(aabbEnlargeFactor=intRadius,label='is2aabb'),],verletDist=.05*sphereRadius),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intRadius,label='ss2sc')],
[Ip2_CpmMat_CpmMat_CpmPhys()],
[Law2_ScGeom_CpmPhys_Cpm()],
),
NewtonIntegrator(damping=damping,label='damper'),
CpmStateUpdater(realPeriod=.5),
UniaxialStrainer(strainRate=strainRateTension,axis=axis,asymmetry=0,posIds=posIds,negIds=negIds,crossSectionArea=crossSectionArea,blockDisplacements=False,blockRotations=False,setSpeeds=setSpeeds,label='strainer')
]
O.saveTmp('initial');
O.timingEnabled=False
def initTest():
strainer.strainRate=-abs(strainRateCompression)
from yade import qt
renderer=qt.Renderer()
renderer.dispScale=(100,100,100)
O.step();
ss2sc.interactionDetectionFactor=1.
is2aabb.aabbEnlargeFactor=1.
initTest()
waitIfBatch()
Thanks in advance
--
You received this question notification because your team yade-users is
an answer contact for Yade.
_______________________________________________
Mailing list: https://launchpad.net/~yade-users
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yade-users
More help : https://help.launchpad.net/ListHelp