# yade-users team mailing list archive

## [Question #670047]: Determining macro parameters in uniaxial compression

```New question #670047 on Yade:

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

import time, sys, os, copy

#DATOS PROBETA
ALTURA = 0.3  #30 cm

# default parameters or from table
young=24e9,
poisson=.2,

sigmaT=3.5e6,
frictionAngle=atan(0.8),
epsCrackOnset=1e-4,
relDuctility=30,

dtSafety=.8,
damping=0.4,
strainRateTension=.5,
strainRateCompression=.5,
setSpeeds=True,
doModes=2,
specimenLength=.15,
isoPrestress=0,
)

concreteId=O.materials.append(CpmMat(young=young,frictionAngle=frictionAngle,poisson=poisson,density=4800,sigmaT=sigmaT,relDuctility=relDuctility,epsCrackOnset=epsCrackOnset,isoPrestress=isoPrestress))

sps=SpherePack()
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(),
InteractionLoop(
[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)
renderer=qt.Renderer()
renderer.dispScale=(100,100,100)
O.step();
ss2sc.interactionDetectionFactor=1.
is2aabb.aabbEnlargeFactor=1.

initTest()
waitIfBatch()