← Back to team overview

yade-users team mailing list archive

Re: [Question #240167]: FuncG in ConcretePM.cpp

 

Question #240167 on Yade changed:
https://answers.launchpad.net/yade/+question/240167

    Status: Answered => Open

Hicham BENNIOU is still having a problem:
Here is the script :

from yade import pack, qt, plot

# Vars definition
specimenLength = 15.0
spheresInCell = 2000
sphereRadius= 3.5e-3
intRadius = 1.5 #Interaction Radius

sigmaT=3.5e6,
epsCrackOnset=1e-4,
relDuctility=30,
isoPrestress=-50000000, #isotropic confinment

strainRateTension=0.5,
strainRateCompression=.5,

youngConcrete = 24e9
youngWalls = 0.5

poissonConcrete = 0.2
poissonWalls = 0.5

frictionAngleConcrete = atan(0.8)
frictionAngleWalls = 0

densityConcrete = 4800
densityWalls = 0

damping=0.4

#Create walls around the packing of spheres
min = Vector3(-.5*specimenLength,-.5*specimenLength,-.5*specimenLength)
max = Vector3(.5*specimenLength,.5*specimenLength,.5*specimenLength)

Walls =aabbWalls([min,max], thickness = 0)
wallIds = O.bodies.append(Walls)

#Definig Concrete material and packing spheres
concreteId=O.materials.append(CpmMat(young=youngConcrete,frictionAngle=frictionAngleConcrete,poisson=poissonConcrete,density=densityConcrete,sigmaT=sigmaT,relDuctility=relDuctility,epsCrackOnset=epsCrackOnset,isoPrestress=isoPrestress))
sp=pack.randomDensePack(pack.inAlignedBox(min,max),spheresInCell=spheresInCell,radius=sphereRadius,returnSpherePack=True)
sp.toSimulation(material=concreteId)

# Defining Engines
TriaxEngine = TriaxialStressController(
      maxMultiplier=1.+2e4/youngConcrete,
      finalMaxMultiplier=1.+2e3/youngConcrete,
      thickness = 0,
      stressMask = 7, # 7=111, 1->x, 1->y and 1->z, which means stress is controlled on xyz
      internalCompaction=True,
)

O.engines=[
	ForceResetter(),
	InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()],verletDist=.05*sphereRadius),
	InteractionLoop(
		[Ig2_Sphere_Sphere_ScGeom(interactionDetectionFactor=intRadius),Ig2_Box_Sphere_ScGeom()],
		[Ip2_CpmMat_CpmMat_CpmPhys()],
		[Law2_ScGeom_CpmPhys_Cpm()],
	),
	
	TriaxEngine,
	GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
	PyRunner(iterPeriod=10,initRun=True,command='history()'),
	TriaxialStateRecorder(iterPeriod=100,file='~/Bureau/WallStresses'),

	NewtonIntegrator(damping=damping,gravity=(0.,0.,-10.)),
]

# record and plot data

def history():
  plot.addData(e11=TriaxEngine.strain[0], e22=TriaxEngine.strain[1], e33=TriaxEngine.strain[2], 
		ev=-TriaxEngine.strain[0]-TriaxEngine.strain[1]-TriaxEngine.strain[2],
		s11=TriaxEngine.stress(TriaxEngine.wall_right_id)[0],
		s22=TriaxEngine.stress(TriaxEngine.wall_top_id)[1],
		s33=TriaxEngine.stress(TriaxEngine.wall_front_id)[2],
		i=O.iter
	)

O.run(10000)

plot.plots={'e22':('s11','s22','s33','ev')}
plot.plot()

-- 
You received this question notification because you are a member of
yade-users, which is an answer contact for Yade.