yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #08703
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.