Re: [Yade-users] [Question #699030]: How to set the particle size when generating particles

2021-10-18 Thread 黎犴dada
Question #699030 on Yade changed:
https://answers.launchpad.net/yade/+question/699030

Status: Needs information => Open

黎犴dada gave more information on the question:
Thank you for your answer. This is the code of my three-axis generation.
When creating particles, I want to use the grading curve I already have
to create particles with specific data, but I am confused about how to
modify this code.

# unicode: UTF-8
# For 2D biaxial simulation
# 21/10/2016
# Yade version 2016.06a-24-0557faf~trusty

#
### Defining parameters and variables ###
#

#Material constants 
Density = 3000
FrictionAngle = 35
PoissonRatio = 0.5
Young = 300e6
Damp = 0.5
AvgRadius = 0.0027
N_particles = 25000

#Wall constants
WDensity = 0
WFrictionAngle = 0.0
WPoissonRatio = 0.5
WYoung = 50e9

#Packing variables
mn = Vector3(0.,0.,0.)
mx = Vector3(1.5,1.5,1.5)
targetPorosity = 0.2
Porosity = 0.

#Confining variables
ConfPress1 = -9  #pre-compression
ConfPress = -1.0e5

#Loading control
LoadRate = -0.01

#time calculation
startT = O.time
endT = O.time
timeSpent = endT - startT


#import necessary packages
from yade import pack,plot,os,timing
import matplotlib; matplotlib.rc('axes',grid=True)
import pylab


### Sample Preparing ###


#Create materials for spheres and plates
SphereMat = O.materials.append(FrictMat(young = Young, poisson = PoissonRatio, 
frictionAngle = radians(FrictionAngle), density = Density))
WallMat = O.materials.append(FrictMat(young = WYoung, poisson = WPoissonRatio, 
frictionAngle = radians(WFrictionAngle), density = WDensity))

#Create walls for packing
wallIds = O.bodies.append(aabbWalls([mn,mx],thickness=0.001,material=WallMat))

#Use SpherePack object to generate a random loose particles packing
#O.periodic = True
#O.cell.setBox(8,3,8)

sp = pack.SpherePack()

#psdSizes,psdCumm=[.003,0.0035,0.004,0.0045,0.005,0.0055,0.006,0.0065,0.007,0.0075,0.008,0.0085,0.009],[0.,0.003,0.025,0.081,0.182,0.325,0.493,0.660,0.8,0.890,0.957,0.984,1.]
#pylab.plot(psdSizes,psdCumm,label='precribed PSD')
sp.makeCloud(Vector3(0,0,0.0),Vector3(1.5,1.5,1.5) ,-1,0.33,N_particles,False, 
0.75)
#pylab.plot(*sp.psd(bins=30,mass=True),label='PSD of (free) %d random 
spheres'%len(sp))

#pylab.legend()

#pylab.show()
sp.toSimulation(material = SphereMat)


O.usesTimeStepper=True
O.trackEnerty=True
#
#Defining triaxil engines
#

###first step: compression###
triax1=TriaxialStressController(
#define wall ids
#wall_bottom_id = wallIds[4],
#wall_top_id = wallIds[5],
#wall_left_id = wallIds[1],
#wall_right_id = wallIds[0],
#wall_back_id = wallIds[2],
#wall_front_id = wallIds[3],
#wall_back_activated = False, #for 2d simulation
#wall_front_activated = False,
thickness = 0.001,
maxMultiplier=1.+1.5e5/Young, # spheres growing factor (fast growth)
finalMaxMultiplier=1.+4e3/Young,
#maxMultiplier = 1.002,
internalCompaction = True, # If true the confining pressure is generated by 
growing particles
#max_vel = 1.5,
stressMask = 7,
computeStressStrainInterval = 10,

goal1 = ConfPress1,
goal2 = ConfPress1,
goal3 = ConfPress1,

)


#O.dt=0.5*PWaveTimeStep()

newton=NewtonIntegrator(damping=Damp)


###engine
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,
 defaultDt=4*utils.PWaveTimeStep()),
triax1,
newton,
PyRunner(realPeriod=10,command='checkUnbalanced()',label='check'),
PyRunner(command='addPlotData()',iterPeriod=2000,label='record'),
TriaxialStateRecorder(iterPeriod=2000,file='WallStresses')
]
# Simulation stop conditions defination
def checkUnbalanced():
unb=unbalancedForce()
mStress = 
(triax1.stress(triax1.wall_right_id)[0]+triax1.stress(triax1.wall_top_id)[1]+triax1.stress(triax1.wall_front_id)[2])/3.
s1 = triax1.stress(triax1.wall_right_id)[0]
s2 = triax1.stress(triax1.wall_top_id)[1]
s3 = triax1.stress(triax1.wall_front_id)[2]

if unb<0.01 and abs(ConfPress1-mStress)/(-ConfPress1)<0.01:
   O.pause()
   O.save('initial.yade.bz2')
   ## postprocessing for simulation 
##
   f = open("particleinfo.dat",'w')
   f.write('# This is the result data of 2D simulation\n\n')
   f.write('# There are 8 types of varibles in this data as follows:\n\n')
   

Re: [Yade-users] [Question #699135]: How to reduce average particle velocity of a packing

2021-10-18 Thread Jan Stránský
Question #699135 on Yade changed:
https://answers.launchpad.net/yade/+question/699135

Status: Open => Answered

Jan Stránský proposed the following answer:
>>b.state.vel *= someFactor # possibly 0
> Yes, if I understand correctly, using this way can fully control the velocity 
> of particles

yes

> but the velocity of these particles will not be affected (i.e., the
velocity is unchanged), which is not suitable for the case I described
above.

this I do not understand.
You can set particle velocities to whatever value.
You can also set selectively velocities according to different rules based on 
different regions/groups of particles.

> Do you have any ideas to remove kinetic energy/ reduce velocity of
particles?

you can remove kinetic energy by:
- reducing mass
- reducing velocity

as discussed above, you can set velocities to whatever values.
Since you want to preserve interactions, i.e. you want no running, I see no 
other option than modifying state.vel

Cheers
Jan

-- 
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 : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #699135]: How to reduce average particle velocity of a packing

2021-10-18 Thread Leonard
Question #699135 on Yade changed:
https://answers.launchpad.net/yade/+question/699135

Status: Answered => Open

Leonard is still having a problem:
Hi Jan,

Thanks for your reply.

>>Why do you want to reduce average particle velocity?
I want to make an attempt to look at the wave propagation on a sand packing, by 
modelling bender element test. I.e., a part of particles are treated as the 
transducer (whose velocity is controlled by the input signal), and a part of 
particles are treated as receiver (whose velocity are monitored during the 
process). 

As it is generally mentioned, for instance see section 3.2 in [1] and
section 2.2 in [2], the input amplitude velocity is a small value (e.g.,
1e-3 m/s) which preserves a very small strain regime, reducing average
particle velocity allows us investigating the wave propagation with less
effect from the original velocity of particles. Thereby, before the wave
propagation test,a relaxation stage was conducted to remove kinetic
energy of particles and hold the stress state stably.


>>b.state.vel *= someFactor # possibly 0
Yes, if I understand correctly, using this way can fully control the velocity 
of particles, but the velocity of these particles will not be affected (i.e., 
the velocity is unchanged), which is not suitable for the case I described 
above.

Do you have any ideas to remove kinetic energy/ reduce velocity of
particles?

Thanks

Leonard


[1]Tang, X., and J. Yang. "Wave propagation in granular material: What is the 
role of particle shape?." Journal of the Mechanics and Physics of Solids 157 
(2021): 104605.

[2]Li, Yang, Masahide Otsubo, and Reiko Kuwano. "DEM analysis on the
stress wave response of spherical particle assemblies under triaxial
compression." Computers and Geotechnics 133 (2021): 104043.

-- 
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 : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #699138]: Parameter setting problem of heating rock sample

2021-10-18 Thread Robert Caulk
Question #699138 on Yade changed:
https://answers.launchpad.net/yade/+question/699138

Status: Open => Answered

Robert Caulk proposed the following answer:
Hello,

>>The pore here refers to the space between particles, right?

We have detailed this very carefully with figures and descriptions in
our paper [1]. Yes, it is the space between the particles.

>>if so, do the pore boundary conditions and particle boundary
conditions refer to the state of pores and particles on the boundary
(such as near the wall)?

Currently, the boundary cells can be visualized using the
withBoundaries=True argument of flow.saveVTK(). In paraview they are
distinguished using "isFictious" flag.

The boundary particles are the particles incident to those flow cells.

Cheers,

Robert

[1]https://www.sciencedirect.com/science/article/abs/pii/S0045782520304771

-- 
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 : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


[Yade-users] [Question #699138]: Parameter setting problem of heating rock sample

2021-10-18 Thread Ziyu Wang
New question #699138 on Yade:
https://answers.launchpad.net/yade/+question/699138

Hello,
I want to simulate the mechanical properties of rock under high temperature in 
deep underground,so I tried to use FlowEngine and ThermalEngine.But I am 
unclear about some of the parameters(Mainly the temperature-related part)
1.I have known that FlowEngine.thermalBndCondValue represents the pore boundary 
condition and ThermalEngine.thermalBndCondValue represents the particle 
boundary condition.
My question is :The pore here refers to the space between particles, right? If 
so, do the pore boundary conditions and particle boundary conditions refer to 
the state of pores and particles on the boundary (such as near the wall)?
2.I want to simulate the heating process of a sample that is initially at room 
temperature,so I set the following parameters:

##
flow.tZero=298.15
flow.bndCondIsTemperature=[1,1,1,1,1,1]
flow.thermalBndCondValue=[573.15,573.15,573.15,573.15,573.15,573.15]
thermal.bndCondIsTemperature=[0,0,0,0,0,0]
thermal.thermalBndCondValue=[0,0,0,0,0,0]
thermal.particleT0=298.15
#

Is it correct to set the parameters like this for my purpose?If there is 
something inappropriate, how to modify it.

Best regards.

-- 
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 : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #699072]: About the examples/ThermalEngine

2021-10-18 Thread Robert Caulk
Question #699072 on Yade changed:
https://answers.launchpad.net/yade/+question/699072

Robert Caulk posted a new comment:
Hello,

Although you have not specified what value you changed flow.useSolver
to, I can tell you that anything besides 4 will not solve for advection.
Hence why it is important to make sure the example scripts run as is.

Cheers,

Robert

-- 
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 : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp


Re: [Yade-users] [Question #699135]: How to reduce average particle velocity of a packing

2021-10-18 Thread Jan Stránský
Question #699135 on Yade changed:
https://answers.launchpad.net/yade/+question/699135

Status: Open => Answered

Jan Stránský proposed the following answer:
Hello,

firstly, WHY do you want to reduce average particle velocity?

of course, if you call O.run in calmDown, the model evolves, possibly
changing the interactions (as the particle move).

Why not simply
###
for b in O.bodies:
b.state.vel *= someFactor # possibly 0
###
?

Cheers
Jan

-- 
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 : yade-users@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-users
More help   : https://help.launchpad.net/ListHelp