# How to do model bearing capacity of soil

I need to make model bearing capacity of soil .By wanting to know the weight that can be received . What to do model ?

## Question information

Language:
English Edit question
Status:
Solved
For:
Assignee:
No assignee Edit question
Solved by:
Jan Stránský
Solved:
2020-02-20
Last query:
2020-02-20
2020-02-20

## This question was reopened

 Robert Caulk (rcaulk) said on 2020-02-10: #1

You could use Terzaghi's theory for bearing capacity :-)

 veerawat (suesan) said on 2020-02-11: #3

Yes . I use terzaghi’s theory .Can. you building model bearing ?

 Robert Caulk (rcaulk) said on 2020-02-11: #4

I am sorry, I do not understand what you are asking. Can you please rephrase your question?

 veerawat (suesan) said on 2020-02-12: #5

I want to make a model bearing capacity of soil . But I can’t resize the pressure wall. I want to resize the pressed wall, what to do?

This is my code#######

sp=pack.SpherePack()
## corners of the initial packing
mn,mx=Vector3(0,0,0),Vector3(10,10,10)

## box size, radius, number of ball
sp.makeCloud(minCorner=mn,maxCorner=mx,rRelFuzz=.1,num=1500)

## create material #0, which will be used as default
O.materials.append(FrictMat(young=15000000,poisson=.4,frictionAngle=0,density=0,label='frictionless'))

## copy spheres from the packing into the scene
## use default material, don't care about that for now
## create walls around the packing
walls=aabbWalls(thickness=1e-10,material='frictionless')
wallIds=O.bodies.append(walls)
# wall of each side
triax=TriaxialCompressionEngine(
wall_bottom_id=wallIds[2],
wall_top_id=wallIds[2],
wall_left_id=wallIds[0],
wall_right_id=wallIds[2],
wall_back_id=wallIds[2],
wall_front_id=wallIds[2],
internalCompaction=False,

sigmaIsoCompaction=-50000,
sigmaLateralConfinement=-50000,
max_vel=10,
strainRate=0.01,
label="triax"
)

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
GlobalStiffnessTimeStepper(active=1,timeStepUpdateInterval=100,timestepSafetyCoefficient=0.8),
triax,

NewtonIntegrator(damping=.4)
]

O.engines=O.engines[0:5]+[PyRunner(iterPeriod=20,command='history()',label='recorder')]+O.engines[5:7]
def history():
s11=-triax.stress(0)[0],
s22=-triax.stress(2)[1],
s33=-triax.stress(4)[2],
i=O.iter)

plot.plots={'i': ('e11','e22','e33',None,'s11','s22','s33')}

O.saveTmp()
plot.plot()

 veerawat (suesan) said on 2020-02-12: #6
 Robert Caulk (rcaulk) said on 2020-02-12: #7

>But I can’t resize the pressure wall. I want to resize the pressed wall, what to do?

What is the pressure/pressed wall? It would help to understand if you mention the methods you have already tried. (e.g. I tried to change _insert command here_ but I see that it doesn't change the size).

I think maybe you want to use facets [1] to model the application of weight, but I am still a bit unsure what you are asking.

 veerawat (suesan) said on 2020-02-13: #8

I want to make a model of soil weight bearing. Which the pressure that I use is needed as a square of various sizes.
but my code is not scalable. What should I do?

 Jan Stránský (honzik) said on 2020-02-13: #9

Hello,

> What should I do?

If you expect a help from us, you should try to formulate your problem both shortly but at the same time as specifically as possible. Also read [2].
It may happen that the formulation is not complete or too vague (like your description here). Then you should provide required information. E.g. answer:
- What is the pressure/pressed wall? (Robert's question)
- it would help to understand if you mention the methods you have already tried (Robert's info request)
- have you tried [1]? if yes, why is did not help?

Some other notes:

> I want to make a model of soil weight bearing.

yes, this is clear form the original post, you do not need to repeat this, rather focus on the information that are missing.

> But I can’t resize the pressure wall.

Yade wall is an infinite plate, is cannot be resized. Use a different type of a boundary (as already proposed by Robert), e.g. facet or box.

cheers
Jan

 veerawat (suesan) said on 2020-02-19: #10

ok sir, so i saw your video that you make" rod pressure soil" .I really want to make a pressure that you make . i try to use that code for my model but it is not working.i can not understand a code that you make and trying to run a code. it does not work too.can you please help me to make a pressure for my model. this is my model

# create rectangular box from facets

# create empty sphere packing
# sphere packing is not equivalent to particles in simulation, it contains only the pure geometry

# sphere packing is not equivalent to particles in simulation, it contains only the pure geometry
sp=pack.SpherePack()
# generate randomly spheres with uniform radius distribution

sp.makeCloud((0,0,0),(1,1,1),rMean=.03,rRelFuzz=.01,num=10000,seed=10000)
# add the sphere pack to the simulation
sp.toSimulation()

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
InteractionLoop(
# handle sphere+sphere and facet+sphere collisions
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
NewtonIntegrator(gravity=(0,0,-9.81),damping=0.4),
# call the checkUnbalanced function (defined below) every 2 seconds

]
O.dt=.5*PWaveTimeStep()

#
O.saveTmp()

 veerawat (suesan) said on 2020-02-19: #11

ok sir, so i saw your video that you make" rod pressure soil" .I really want to make a pressure that you make . i try to use that code for my model but it is not working.i can not understand a code that you make and trying to run a code. it does not work too.can you please help me to make a pressure for my model. this is my model

# create rectangular box from facets

# create empty sphere packing
# sphere packing is not equivalent to particles in simulation, it contains only the pure geometry

# sphere packing is not equivalent to particles in simulation, it contains only the pure geometry
sp=pack.SpherePack()
# generate randomly spheres with uniform radius distribution

sp.makeCloud((0,0,0),(1,1,1),rMean=.03,rRelFuzz=.01,num=10000,seed=10000)
# add the sphere pack to the simulation
sp.toSimulation()

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
InteractionLoop(
# handle sphere+sphere and facet+sphere collisions
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
NewtonIntegrator(gravity=(0,0,-9.81),damping=0.4),
# call the checkUnbalanced function (defined below) every 2 seconds

]
O.dt=.5*PWaveTimeStep()

#
O.saveTmp()

 veerawat (suesan) said on 2020-02-19: #12

if you don't understand that the meaning that i try to say please tell me . my English is not good . thank you

 Jan Stránský (honzik) said on 2020-02-19: #13

> i saw your video that you make" rod pressure soil"

> but it is not working.
> it does not work too

please be more specific. If it gives errors, provide the errors. If the results are not as expected, describe actual and expected results....

> i can not understand a code that you make

please provide the code (if you want help to understand it)

cheers
Jan

 veerawat (suesan) said on 2020-02-20: #14

Dear jan,

i want to put the compressin like this video for my script :

# create rectangular box from facets

# create empty sphere packing
# sphere packing is not equivalent to particles in simulation, it contains only the pure geometry

# sphere packing is not equivalent to particles in simulation, it contains only the pure geometry
sp=pack.SpherePack()
# generate randomly spheres with uniform radius distribution

sp.makeCloud((0,0,0),(1,1,1),rMean=.03,rRelFuzz=.01,num=10000,seed=10000)
# add the sphere pack to the simulation
sp.toSimulation()

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Facet_Aabb()]),
InteractionLoop(
# handle sphere+sphere and facet+sphere collisions
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Facet_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
NewtonIntegrator(gravity=(0,0,-9.81),damping=0.4),
# call the checkUnbalanced function (defined below) every 2 seconds

]
O.dt=.5*PWaveTimeStep()

#
O.saveTmp()

thank for helping me

 Jan Stránský (honzik) said on 2020-02-20: #15

Some notes:
- define material prior to creating bodies
- use box [1] for simple geometries instead of facets

a MWE:
###

# create rectangular box from boxes (maybe there is some library function, but I did not find it quickly)
cx,cy,cz = .5,.5,.5 # center of the box
dx,dy,dz = .5,.5,.5 # half-dimensions of the box
t = 0.025 # half-thickness of walls
topx,topy = 0.2, 0.3 # top box half-dimensions
left = box((cx-dx-t,cy,cz),(t,dy,dz),fixed=True,wire=True)
right = box((cx+dx+t,cy,cz),(t,dy,dz),fixed=True,wire=True)
front = box((cx,cy-dy-t,cz),(dx,t,dz),fixed=True,wire=True)
back = box((cx,cy+dy+t,cz),(dx,t,dz),fixed=True,wire=True)
bottom = box((cx,cy,cz-dz-t),(dx,dy,t),fixed=True,wire=True)
top = box((cx,cy,cz+dz+t),(topx,topy,t),fixed=True)
O.bodies.append((left,right,back,front,bottom,top))

sp=pack.SpherePack()
# generate randomly spheres with uniform radius distribution
sp.makeCloud((0,0,0),(1,1,1),rMean=.03,rRelFuzz=.01,num=10000,seed=10000)
# add the sphere pack to the simulation
sp.toSimulation()

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(),Ig2_Box_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
NewtonIntegrator(gravity=(0,0,-9.81),damping=0.4),
]
O.dt=.5*PWaveTimeStep()

top.state.vel = (0,0,-.5) # setting velocity is the simplest boundary condition, but you can also apply force or whatever...
###

cheers
Jan

 veerawat (suesan) said on 2020-02-20: #16

this is what i need thank you so much.

But i got a little bit problem. Some particles at the mid-bottom and a box of facet are got through the box. Is there anyway i can fix it?

here is video:

 Jan Stránský (honzik) said on 2020-02-20: #17

You can:
- stop the simulation before it occurs
- use somewhat sophisticated simulation control (then just prescribe velocity and let it run)

cheers
Jan

 veerawat (suesan) said on 2020-02-20: #18

thanks jan . you are the best

 veerawat (suesan) said on 2020-02-20: #19

Thanks Jan Stránský, that solved my question.

 Bowonchanok Maneerat (lnwnew5555) said on 2020-02-24: #20

Dear jan ,

I appreciate the things you do so much indeed. So now the top box drop down with velocity that set up, I would like to know that can the top box drop down by force.and How to change it ?

 Jan Stránský (honzik) said on 2020-02-24: #21

O.forces.setPermF(top.id,forceVector) # [1]