Re: [Yade-users] [Question #707913]: Stress remains 0 during the simulation of a direct shear test

2023-09-15 Thread Karol Brzezinski
Question #707913 on Yade changed:
https://answers.launchpad.net/yade/+question/707913

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi,

I noticed you already asked this question in Gitlab (which is now
recommended). So, please note that I posted the full answer only there.

https://gitlab.com/yade-dev/answers/-/issues/3876

Cheers,
Karol

-- 
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 #707888]: Why do particles in the concrete cube compression test disperse directly?

2023-09-11 Thread Karol Brzezinski
Question #707888 on Yade changed:
https://answers.launchpad.net/yade/+question/707888

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Antonia,

1) Macro behavior is a result of microparameters, particle size, and
shape, constitutive laws, etc. For example, rock may have a stiffness of
70 GPa, while a sand sample has a stiffness of around 150 MPa.
Calibration is the best solution [1].

2) Timestep is overestimated for this model, although I am not sure why.
Please change dtSafety  to 0.1

Cheers,
Karol


[1] 
https://yade-dem.org/doc/formulation.html?highlight=calibration#normal-stiffness

-- 
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 #707885]: Create arbitrary ellipsoid using level set

2023-09-11 Thread Karol Brzezinski
Question #707885 on Yade changed:
https://answers.launchpad.net/yade/+question/707885

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi,

Quaternion is composed of axis direction (three components) followed by
angle of rotation:

###
lsb1 = levelSetBody(
'superellipsoid', center=(0, 0, 0), extents=(0.05, 0.05, 0.15), 
epsilons=(1.1, 0.2), spacing=0.01, nSurfNodes=2502, nodesPath=1, dynamic=False, 
orientation=Quaternion((1, 0, 0), 0),
)

lsb2 = levelSetBody(
'superellipsoid', center=(0, 0, 0.25), extents=(0.05, 0.05, 0.15), 
epsilons=(1.1, 0.2), spacing=0.01, nSurfNodes=2502, nodesPath=1, dynamic=False, 
orientation=Quaternion((1, 0, 0), pi/2),# rotated 90 degrees around 
x-axis
)

lsb3 = levelSetBody(
'superellipsoid', center=(0, 0, 0.5), extents=(0.05, 0.05, 0.15), 
epsilons=(1.1, 0.2), spacing=0.01, nSurfNodes=2502, nodesPath=1, dynamic=False, 
 
orientation=Quaternion((0, 1, 0), pi/2),# rotated 90 degrees around 
y-axis
)
O.bodies.append([lsb1,lsb2,lsb3])


Cheers,
Karol

-- 
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 #707875]: Servo control of cylindrical triaxial test

2023-09-10 Thread Karol Brzezinski
Question #707875 on Yade changed:
https://answers.launchpad.net/yade/+question/707875

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Ruidong,

In this loop, you iterated over the wall but denoted elements 'f', while
in the loop you referred to 'b', so you did not prescribe velocity to
wall facets. Should be:

###
 for b in wall:
  x,y,z = O.bodies[b].state.pos
  dist = math.sqrt(x*x+y*y)
  n = Vector3(x/dist,y/dist,0)
  O.bodies[b].state.vel = rvel*n

###

Cheers,
Karol

PS. Please note, that **Yade Answers has now migrated to gitlab, please
direct all your questions to https://gitlab.com/yade-
dev/answers/-/issues, where we are waiting to help you**

-- 
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 #707788]: Porosity in rotated measuring area

2023-08-30 Thread Karol Brzezinski
Question #707788 on Yade changed:
https://answers.launchpad.net/yade/+question/707788

Status: Open => Needs information

Karol Brzezinski requested more information:
Hi Paul,

Do you need to measure the porosity on the fly (required to trigger some
actions in the simulation)? If it can be done in postprocessing, the
simplest way would be using axis aligned porosity function and rotating
the sample.

Cheers,
Karol

-- 
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 #707167]: ModuleNotFoundError: No module named 'pandas'

2023-06-30 Thread Karol Brzezinski
Question #707167 on Yade changed:
https://answers.launchpad.net/yade/+question/707167

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Kyle,

Just install pandas before running the script:
sudo apt install python3-pandas

Cheers 
Karol

-- 
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 #707090]: How to generate a cylinder?

2023-06-27 Thread Karol Brzezinski
Question #707090 on Yade changed:
https://answers.launchpad.net/yade/+question/707090

Karol Brzezinski posted a new comment:
Hi William,

You can clump the facets as well.

Cheers,
Karol

-- 
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 #707088]: Dynamic Compaction Can't Repeat

2023-06-25 Thread Karol Brzezinski
Question #707088 on Yade changed:
https://answers.launchpad.net/yade/+question/707088

Status: Open => Needs information

Karol Brzezinski requested more information:
Hi,

Honestly, I don't understand the question. Could you please rephrase it?

Secondly, I thought that running the code would be helpful, but I the
packing is stored in the external file 'packing8.txt'.

Please try to simplify your example (MWE[1])


Cheers,
Karol

[1] https://www.yade-dem.org/wiki/Howtoask

-- 
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 #707090]: How to generate a cylinder?

2023-06-25 Thread Karol Brzezinski
Question #707090 on Yade changed:
https://answers.launchpad.net/yade/+question/707090

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi William,

Maybe try facetCylinder [1] (a prism made of facets that approximates a
cylinder):

###
import geom
O.bodies.append(geom.facetCylinder(center = (0,0,0), radius=1, height=2, 
orientation=Quaternion((1, 0, 0), 0), segmentsNumber=20))
###


Cheers,
Karol

[1] https://yade-
dem.org/doc/yade.geom.html?highlight=facetcylinder#yade.geom.facetCylinder

-- 
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 #706976]: Reconstruct particles from ct images

2023-06-18 Thread Karol Brzezinski
Question #706976 on Yade changed:
https://answers.launchpad.net/yade/+question/706976

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Kyle,

If you use ymport.text() function, you don't have to append bodies (it
is included in the function).

If you want to differentiate between clump properties, you can do it in two 
ways (at least):
1) put each clump in a separate file and load it with different keyword 
arguments passed to  ymport.text() function.
2) put all the clumps in one file, and load them at once. Next, iterate over 
bodies in the simulation and apply required properties.

Please see example of using the second approach below:

### input file with clumps "clumps.txt"
0.068037 0.02416 0.0017637 0.0011423 1
0.068615 0.022601 0.0014278 0.00077244 1
0.069542 0.023528 0.0017906 0.00071539 1
0.066801 0.025141 0.0019788 0.0006786 1
0.049731 0.03499 0.0017112 0.00070436 10
0.048747 0.034309 0.0013637 0.00063928 10
0.047719 0.034628 0.0014651 0.00056027 10
0.047299 0.035323 0.0020008 0.00052311 10

# Yade script
from yade import ymport

spheres = ymport.textClumps('clumps.txt')

currentClumpId = O.bodies[0].clumpId 
color = randomColor()
for b in O.bodies:
if b.clumpId != currentClumpId:#change color each time clumpId changes
currentClumpId = b.clumpId
color = randomColor()

if isinstance(b.shape,Sphere):#colorize spheres
b.shape.color = color

###

Cheers,
Karol

-- 
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 #706976]: Reconstruct particles from ct images

2023-06-15 Thread Karol Brzezinski
Question #706976 on Yade changed:
https://answers.launchpad.net/yade/+question/706976

Status: Open => Answered

Karol Brzezinski proposed the following answer:
I can also recommend Matlab code for clumo generation developed by
Angelidakis et al. It is described in [3].


[3] Angelidakis et al. 2021 CLUMP: A Code Library to generate Universal 
Multi-sphere Particles, Softwarex

-- 
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 #706976]: Reconstruct particles from ct images

2023-06-15 Thread Karol Brzezinski
Question #706976 on Yade changed:
https://answers.launchpad.net/yade/+question/706976

Status: Open => Needs information

Karol Brzezinski requested more information:
Are the particles somehow bonded (I mean grains in the sample)? If not, I think 
that particles rearrange and change the height of the sample. 
If you want to adjust the size of the particles, you can expand spheres in the 
packing a little bit after generation.

Cheers,
Karol

-- 
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 #706976]: Reconstruct particles from ct images

2023-06-15 Thread Karol Brzezinski
Question #706976 on Yade changed:
https://answers.launchpad.net/yade/+question/706976

Karol Brzezinski posted a new comment:
Hi Kyle,

I think that you need to be much more specific. For example, is each of
the 800 gts files modelling a single particle? Do you try to reproduce
the exact shape of the sample (particles in their corresponding
locations from the very beginning)? What code do you use to generate
clumps? Can you prepare the MVE[1]? If not possible, please describe
your workflow. What do you mean that the sample shrinks in the height
direction? Smaller than expected after deposition, or did something
actually shrink?


Best wishes,
Karol

[1] https://www.yade-dem.org/wiki/Howtoask

-- 
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 #706883]: The particle deposition rate is too slow

2023-06-03 Thread Karol Brzezinski
Question #706883 on Yade changed:
https://answers.launchpad.net/yade/+question/706883

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi,

I checked that decreasing young parameter of wall to WYoung = 500e7,
increases timestep (hence the speed of the simulation) ten times. So it
is a significant difference in my opinion.

If blenders are problematic, I would try to model it differently (e.g.
cylinders/ facet cylinders).

Cheers,
Karol

-- 
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 #706883]: The particle deposition rate is too slow

2023-06-03 Thread Karol Brzezinski
Question #706883 on Yade changed:
https://answers.launchpad.net/yade/+question/706883

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi William,

First of all I need to tell you how to slow down your simulation. In the
last line, you should change the timestep to be smaller than
PWaveTimeStep() (e.g. 0.8**PWaveTimeStep()). Otherwise, the simulation
will become unstable after the particles start to touch each other.

Secondly, you can decrease the young modulus of walls. Usually, a
modulus 10-20  times bigger than for spheres is enough to prevent
particle "leakage".

If applicable, you can try to scale up the particles.

BTW do you take advantage of multithread computing (by simply running
the simulation with -j parameter)?

Cheers,
Karol

-- 
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 #706854]: Code availability of Yuan2016, Sweijen2016

2023-06-02 Thread Karol Brzezinski
Question #706854 on Yade changed:
https://answers.launchpad.net/yade/+question/706854

Karol Brzezinski proposed the following answer:
If there is only a single sphere involved, I don't see the point in
coupling anything. So, yes - it is just using the swelling model only.

Of course, I can imagine a single particle that is modeled by multiple
bonded spheres. And in such a case it could be interesting to use a
coupled simulation to 'observe' water infiltrating the particle, while
the sub-particles start swelling after contacting water. (it is just
conceptual, don't ask me how to do this).

First, you need to state your problem clearly.

Regarding your original question, I have found out that this was
discussed six years ago and the answer was negative. I suspect that the
authors of the article didn't have enough spare time to polish the code
and upload it to the repository. Consider asking directly the
corresponding author of the paper.

Cheers,
Karol


[2] https://answers.launchpad.net/yade/+question/403166

-- 
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 #706854]: Code availability of Yuan2016, Sweijen2016

2023-06-02 Thread Karol Brzezinski
Question #706854 on Yade changed:
https://answers.launchpad.net/yade/+question/706854

Karol Brzezinski requested more information:
What kind of coupling do you mean? Do you have a particular
theory/equation that you want to apply?

Best wishes,
Karol

-- 
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 #706854]: Code availability of Yuan2016, Sweijen2016

2023-06-01 Thread Karol Brzezinski
Question #706854 on Yade changed:
https://answers.launchpad.net/yade/+question/706854

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Sebastian,

For a single particle, you can change its radius. You can write a Python
function and run it in PyRunner (an additional engine for executing
Python code periodically). A similar problem is discussed in those
topics:

https://answers.launchpad.net/yade/+question/679196
https://answers.launchpad.net/yade/+question/697479

Cheers,
Karol

-- 
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 #706854]: Code availability of Yuan2016, Sweijen2016

2023-06-01 Thread Karol Brzezinski
Question #706854 on Yade changed:
https://answers.launchpad.net/yade/+question/706854

Karol Brzezinski posted a new comment:
Hello Sebastian,

I don't have a video and I don't think that there is one. But you could
try to run the example and see what it looks like.

Cheers,
Karol

-- 
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 #706854]: Code availability of Yuan2016, Sweijen2016

2023-05-31 Thread Karol Brzezinski
Question #706854 on Yade changed:
https://answers.launchpad.net/yade/+question/706854

Karol Brzezinski posted a new comment:
Hi Sebastian,

Hehe you looked in the examples? I checked the examples in the main repository, 
and
this one seem to be the closest to your problem [1].

Cheers,
Karol

[1] https://gitlab.com/yade-
dev/trunk/-/blob/master/examples/FluidCouplingPFV/drainage-2PFV-
Yuan_and_Chareyre_2017.py

-- 
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 #706766]: How to get Micro-strain field from a 2D simulation in YADE

2023-05-24 Thread Karol Brzezinski
Question #706766 on Yade changed:
https://answers.launchpad.net/yade/+question/706766

Karol Brzezinski proposed the following answer:
Hi Leonard,

Try this (please note that I am using python 3, so the call pf print function 
is modified):
##
### 2D MWE #
from __future__ import division
from yade import pack, plot, export, ymport

num_spheres=1000

rate=-0.01
damp=0.6
stabilityThreshold=0.001
young=5e6
confinement=6.7e3

mn,mx=Vector3(0,0,0.02),Vector3(1,2,0.02)

O.materials.append(FrictMat(young=young, poisson=0.5, 
frictionAngle=radians(30), density=2600, label='spheres'))
O.materials.append(FrictMat(young=young, poisson=0.5, frictionAngle=0, 
density=0, label='walls'))
walls=aabbWalls([Vector3(0,0,0),Vector3(1,2,0.04)],thickness=0,material='walls')
wallIds=O.bodies.append(walls)

sp=pack.SpherePack()
sp.makeCloud(mn,mx,-1,0.,num_spheres,False, 0.75,seed=1)

O.bodies.append([sphere(center,rad,material='spheres') for center,rad in
sp])

Gl1_Sphere.quality=3

for b in O.bodies:
if isinstance(b.shape,Sphere):
b.state.blockedDOFs='zXY'
b.shape.color=[1,1,1]

triax=TriaxialStressController(
thickness = 0,
stressMask = 7,
internalCompaction=False,
)

newton=NewtonIntegrator(damping=damp)

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,
newton
]

triax.goal1=triax.goal2=triax.goal3=-confinement

while 1:
  O.run(1000, True)
  unb=unbalancedForce()
  print('unbF:',unb,' meanStress: 
',-triax.meanStress,'top:',-triax.stress(triax.wall_top_id)[1],'left:',-triax.stress(triax.wall_left_id)[0],'front:',-triax.stress(triax.wall_front_id)[2])
  if unbhttps://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 #706766]: How to get Micro-strain field from a 2D simulation in YADE

2023-05-24 Thread Karol Brzezinski
Question #706766 on Yade changed:
https://answers.launchpad.net/yade/+question/706766

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Leonard,

The algorithm in Yade builds a 3D tesselation. It is hard for the
algorithm to build it if all the particles lie on the same plane. Maybe
you could add some 'thickness' to your simulation by creating three
identical sets of particles on three parallel planes.

Of course, it is not efficient to do the simulation this way. But you
can store the information about your particles ("one layer") in separate
files during simulation [1]. After this, you could prepare another
script just for loading the particles into the simulation at certain
positions. However, in the second script, you can load the previously
stored 'layer' three times (two times with shifted position, using the
shift option [2]). That way, you will have some "thickness" of the
sample.

Cheers,
Karol

[1] https://yade-dem.org/doc/yade.export.html?highlight=export#yade.export.text
[2] 
https://yade-dem.org/doc/yade.ymport.html?highlight=ymport#module-yade.ymport

-- 
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 #706768]: Difference between CundallStrack and HertzMindlin

2023-05-23 Thread Karol Brzezinski
Question #706768 on Yade changed:
https://answers.launchpad.net/yade/+question/706768

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Senel,

In the Cundall-Strack model, the contact stiffness is linear (does not
depend on the contact force or particles' overlap). On the other hand,
the Hertz-Mindlin law is exponential [1], and stiffness increases with
load. In other words - those are different models, so they give
different results.

BTW: Your void ratio definition is very strange. If you achieved Vr = 1
in the experiment (by your definition Vr=volume of particles/volume of
container), you actually had zero porosity. It doesn't look like this in
the simulation, because the particles highly overlap, hence some of the
particle volume is counted twice.


Best wishes,
Karol


[1] https://en.wikipedia.org/wiki/Contact_mechanics

-- 
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 #706766]: How to get Micro-strain field from a 2D simulation in YADE

2023-05-23 Thread Karol Brzezinski
Question #706766 on Yade changed:
https://answers.launchpad.net/yade/+question/706766

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hello Leonard,

I think that the main problem is 2D formulation. I would try to prepare
thicker samples (artificially replicate your 2D "layers").

Cheers,
Karol

-- 
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 #706652]: Running code with 4 threads

2023-05-16 Thread Karol Brzezinski
Question #706652 on Yade changed:
https://answers.launchpad.net/yade/+question/706652

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Carine,

I could not run your example, because I don't have
'PotentialParticleVTKRecorder', but I am pretty sure that you don't have
to modify the code. Just run the script with '-j' parameter. For example

yade -j4 yourscript.py

Cheers,
Karol

-- 
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 #706653]: Modifying the size of potential particles

2023-05-16 Thread Karol Brzezinski
Question #706653 on Yade changed:
https://answers.launchpad.net/yade/+question/706653

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Carine,

I could not run your example, because I don't have
'PotentialParticleVTKRecorder', but I am pretty sure that you don't have
to modify the code. Just run the script with '-j' parameter. For example

yade -j4 yourscript.py

Cheers,
Karol

-- 
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 #706654]: Position of particles become NaN after using Break Function

2023-05-16 Thread Karol Brzezinski
Question #706654 on Yade changed:
https://answers.launchpad.net/yade/+question/706654

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hello Ketian,

As you noticed the real problem is that NaN interactions are produced
during your simulation. The breakage function needs to know the forces
acting on the particle in order to evaluate its strength. It is not
related to the particle breakage. If you want to test it, just remove
'cbcontroller' from engines and comment out the mainlogic() command.
Then just run the simulation. You will get a similar error, because of
NaN interactions. It is because TriaxialController also needs to get
proper (not the NaN) interactions to compute stress.

Most likely it is related to the rolling friction because I could
proceed with the whole simulation after turning off the 'IncludeMoment'.
I am not sure what is wrong with the rolling friction in this
simulation, but it is another issue (maybe you could try with nonzero
eta [1]).

Best wishes,
Karol

PS. I noticed that you have 10% of clumps in simulation, and you
evaluate only the clumps so the spheres cannot break. Consider
evaluating both spheres and clumps as in this example [2].


[1] 
https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_MindlinPhys.eta
[2] 
https://gitlab.com/yade-dev/trunk/blob/master/examples/clumps-breakage/oedometric.py

-- 
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 #706626]: attach force to a certain point of the box

2023-05-13 Thread Karol Brzezinski
Question #706626 on Yade changed:
https://answers.launchpad.net/yade/+question/706626

Status: Open => Needs information

Karol Brzezinski requested more information:
Hi Ramin,

Could you elaborate a little bit more on what you want to achieve in your 
simulation?  Right now I have some remarks:
- I think you could replace ForceEngine with just prescribing a permanent force 
to the box [1]
- You can add torque to the body so it pretends that the force is shifted. 
Initially, its value should be Force * boxHeight/2. But the torque needs to be 
updated when the body rotates (the distance between force and body center 
changes).

Cheers,
Karol


https://yade-dem.org/doc/yade.wrapper.html?highlight=permf#yade.wrapper.ForceContainer.setPermF

-- 
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 #706573]: Troble with porosity calculation

2023-05-11 Thread Karol Brzezinski
Question #706573 on Yade changed:
https://answers.launchpad.net/yade/+question/706573

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Huanm

it should be 
top = abs(plate.state.pos[2] + height/2)

Cheers,
Karol

-- 
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 #706553]: About simulating constant volume condition in a triaxial test

2023-05-09 Thread Karol Brzezinski
Question #706553 on Yade changed:
https://answers.launchpad.net/yade/+question/706553

Karol Brzezinski posted a new comment:
After second thought I think that I misunderstood the problem. Because you are 
actually checking if the obtained strain is equall to the value expected from 
the prescribed rate.
Maybe strainDamping is [1] is the source of the error... I cannot check right 
now, but it looks like a good clue, since affects the change in strain rate.

Cheers,
Karol

[1] https://yade-
dem.org/doc/yade.wrapper.html?highlight=triaxialstresscontroller#yade.wrapper.TriaxialStressController.strainDamping

-- 
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 #706553]: About simulating constant volume condition in a triaxial test

2023-05-09 Thread Karol Brzezinski
Question #706553 on Yade changed:
https://answers.launchpad.net/yade/+question/706553

Karol Brzezinski proposed the following answer:
After some 'gymnastics', I would propose:

triax.goal2=-(2*rate+rate**2)/(1+2*rate+rate**2)
triax.goal1=rate
triax.goal3=rate

Cheers,
Karol

-- 
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 #706553]: About simulating constant volume condition in a triaxial test

2023-05-09 Thread Karol Brzezinski
Question #706553 on Yade changed:
https://answers.launchpad.net/yade/+question/706553

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Leonard,

triax.goal2=rate
triax.goal1=-0.5*rate
triax.goal3=-0.5*rate

Comes from the fact that volumetric strain is equal to e11+e22+e33 for
small deformations. One assumes e22=e33  and wants  e11+e22+e33 = 0. So
2*e22 = -e11, hence e22=e33=0.5*e11.

The error comes from the inaccuracy of the formula for large strains
(apparently, your strains are large if the error is not acceptable). You
can propose your own triax.goals by taking into account that the actual
volumetric strain is (1+e11)*(1+e22)*(1+e33).

Cheers,
Karol

-- 
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 #706540]: Trouble in generating sphere packing

2023-05-09 Thread Karol Brzezinski
Question #706540 on Yade changed:
https://answers.launchpad.net/yade/+question/706540

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Huan,

For each radius, I prescribed some 'spread', so the radii of particles
fall between given sieve sizes (rRelFuzz1 = (0.019-0.0125)/4/rMean1).

If you want to have all the particles in a given size to have equal
radius, set rRelFuzz = 0 everywhere.  In such a case, your colouring
method should work.

As Jan said, please open a new topic for the new question.

Cheers,
Karol

-- 
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 #706533]: Visualise forcechain in paraview

2023-05-08 Thread Karol Brzezinski
Question #706533 on Yade changed:
https://answers.launchpad.net/yade/+question/706533

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Leonard,

OK, I get it. You need to apply the 'tube' filter to the
"CellDatatoPointData1', not directly to the 'example.vtk'.

Cheers,
Karol

-- 
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 #706533]: Visualise forcechain in paraview

2023-05-08 Thread Karol Brzezinski
Question #706533 on Yade changed:
https://answers.launchpad.net/yade/+question/706533

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Leonard,

Exactly, it is the list that you pointed to in [3]. Your example file
[2] works well on my computer. Maybe there is something wrong with the
previous filter... so you don't see the proper data.  Generally,
external links are not recommended... but we are discussing some
already. So, could you save and upload the Paraview state file as well?

Cheers,
Karol

-- 
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 #706533]: Visualise forcechain in paraview

2023-05-08 Thread Karol Brzezinski
Question #706533 on Yade changed:
https://answers.launchpad.net/yade/+question/706533

Status: Open => Answered

Karol Brzezinski proposed the following answer:
I mean that you should have selected the 'forceN' from the drop-down
list at the top of the 'tube' filter settings (it is not selected on the
screen that you attached). This point is not mentioned in the
instructions because Paraview usually does this part automatically (I
tested it on versions 5.7.0 and 5.10.1).

Cheers,
Karol

-- 
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 #706540]: Trouble in generating sphere packing

2023-05-08 Thread Karol Brzezinski
Question #706540 on Yade changed:
https://answers.launchpad.net/yade/+question/706540

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Huan,

The good news is that you can cal makeCloud() multiple times with
different radii and new spheres are added to the SpherePack.

Cheers,
Karol

import random
import math
from yade import geom, pack, utils, plot, ymport

# Define material properties
youngModulus = 1e7
poissonRatio = 0.25
density = 2000

# Create material
material = O.materials.append(FrictMat(young=youngModulus, 
poisson=poissonRatio, density=density))

# Define cylinder with funnel parameters
center = (0, 0, 0)
diameter = 0.102
height = 0.064

# create cylindrical body with radius 0.102 m and height 0.064 m
cylinder = geom.facetCylinder(center=center, radius=diameter/2, height=height, 
segmentsNumber=80, wallMask=6)

# assign material to each body in the cylinder
for body in cylinder:
body.bodyMat = material

# add cylinder to simulation
O.bodies.append(cylinder)

# Define cylinder with funnel parameters
center1 = (0,0,height/2)
dBunker = 0.2
dOutput = 0.102
hBunker = 0
hOutput = 0.08
hPipe = 0

# create funnel as a bunker with diameter 0.102 m, height 0.064 m
funnel = geom.facetBunker(center=center1, dBunker=dBunker, dOutput=dOutput, 
hBunker=hBunker,hOutput=hOutput, hPipe=hPipe, segmentsNumber=80, wallMask=4)

# assign material to each body in the funnel
for body in funnel:
body.bodyMat = material

# add funnel to simulation
O.bodies.append(funnel)

## new part
rMean1 = (0.0125+0.019)/4
rRelFuzz1 = (0.019-0.0125)/4/rMean1 
num1 = 28

# (other sizes) 

rMean4 = (0.00475+0.00236)/4
rRelFuzz4 = (0.00475-0.00236)/4/rMean4 
num4 = 18997


sp = pack.SpherePack()
## just call makeCloud() multiple times before sending to simulation
sp.makeCloud((-dBunker/3,-dBunker/3,2*height),(dBunker/3,dBunker/3,10*height), 
rMean = rMean1, rRelFuzz = rRelFuzz1, num = num1)
#(...)
sp.makeCloud((-dBunker/3,-dBunker/3,2*height),(dBunker/3,dBunker/3,10*height), 
rMean = rMean4, rRelFuzz = rRelFuzz4, num = num4)
sp.toSimulation()

-- 
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 #706529]: Seeking any guidance on beginning using yade

2023-05-08 Thread Karol Brzezinski
Question #706529 on Yade changed:
https://answers.launchpad.net/yade/+question/706529

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Hongwei,

I guess that Yade should work more stable on LST Ubuntu versions (e.g.
22.04), since it is tested for those versions when a new feature is
merged in the master branch.

Cheers,
Karol

-- 
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 #706533]: Visualise forcechain in paraview

2023-05-08 Thread Karol Brzezinski
Question #706533 on Yade changed:
https://answers.launchpad.net/yade/+question/706533

Karol Brzezinski posted a new comment:
I noticed that instructions don't mention this part, but it is usually
selected automatically (e.g., I didn't have to do this in my Paraview).

Karol

-- 
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 #706533]: Visualise forcechain in paraview

2023-05-08 Thread Karol Brzezinski
Question #706533 on Yade changed:
https://answers.launchpad.net/yade/+question/706533

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Leonard,

Please select 'forceN' from 'Scalar' list at the top of the tubÄ™ filter
settings.

Cheers,
Karol

-- 
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 #706533]: Visualise forcechain in paraview

2023-05-07 Thread Karol Brzezinski
Question #706533 on Yade changed:
https://answers.launchpad.net/yade/+question/706533

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Leonard,

If you follow the instructions it should be OK. Try to play with Radous
and Radius Factor parameters.

Cheers, 
Karol

-- 
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 #706494]: Spherical packing of binary mixtures in a cylindrical container

2023-05-05 Thread Karol Brzezinski
Question #706494 on Yade changed:
https://answers.launchpad.net/yade/+question/706494

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Soheil,

As you can find in the documentation [1]
"distributeMass (bool) – if True, given distribution will be used to distribute 
sphere’s mass rather than radius of them."

So if you set distributeMass=True , you obtain PSD based on the
particles' weight.

The makeCloud() can only create loose packing inside a box shape. So you
need to create a container much higher than your expected sample. Then
generate a cloud inside this container and allow the particles to fall.

Since you are beginning with Yade, I recommend reading first chapters of
documentation (Introduction, Tutorial, DEM formulation, User's Manual),
at least the Tutorial [3].  You can find there most of the answers
(e.e., gravity deposition example [4]).

Cheers,
Karol

[3] https://yade-dem.org/doc/tutorial.html
[4] https://yade-dem.org/doc/tutorial-examples.html

-- 
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 #706494]: Spherical packing of binary mixtures in a cylindrical container

2023-05-04 Thread Karol Brzezinski
Question #706494 on Yade changed:
https://answers.launchpad.net/yade/+question/706494

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Soheil,

I recommend using the makeCloud() [1] method which allows you to create
packing with a prescribed size distribution (see the example [2[).
Please note to set distributeMass=True in your case.

This method creates loose packing, so you need to create 'higher'
packing, and allow the particles to fall under gravity.

Cheers,
Karol


[1] 
https://yade-dem.org/doc/yade.pack.html?highlight=psd#yade._packSpheres.SpherePack.makeCloud
[2] https://answers.launchpad.net/yade/+question/681691

-- 
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 #706506]: How to output volumetric strain (micro strain field) in vtk file

2023-05-04 Thread Karol Brzezinski
Question #706506 on Yade changed:
https://answers.launchpad.net/yade/+question/706506

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi,

MWE would be appreciated [1].

Using the' calculator filter', you can always compute anything in
ParaView from matrix components.

Load the VTK file, and then use the calculator filter. You can type the
formula:

"Strain_matrix_0"+"Strain_matrix_4"+"Strain_matrix_8"

or select other components using the "Scalar" button. Next, you can
visualize the 'Result'.

The MWE that I used to generate the file is as follows:

centers = []
for x in range(2):
 for y in range(2):
  for z in range(2):
   centers.append((x,y,z))

O.bodies.append([
 sphere(center=center,radius=1,) for center in centers
])

sp = SpherePack()
sp.fromSimulation()

TW=TesselationWrapper()
TW.triangulate()
TW.computeVolumes()


TW.setState(0)

shiftBodies([4,5,6,7],(1,0,0)) # move spheres without engines (I am just being 
lazy)
shiftBodies([2,3,6,7],(0,1,0)) 
shiftBodies([1,3,5,7],(0,0,1)) 

TW.setState(1)
TW.defToVtk("strain.vtk")

###


Cheers, 
Karol 

[1]https://www.yade-dem.org/wiki/Howtoask

-- 
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 #706106]: Load the data to plot

2023-04-09 Thread Karol Brzezinski
Question #706106 on Yade changed:
https://answers.launchpad.net/yade/+question/706106

Status: Needs information => Answered

Karol Brzezinski proposed the following answer:
Hi Przemek,

MVE always makes it easier for everyone[1].

Do you mean something like this?

# MVE
from yade import plot
import matplotlib.pyplot as plt

s =sphere((0,0,0),0.001)
O.bodies.append(s)
s.state.vel = (0,0,1)

O.engines += [PyRunner(command = "plot.addData(t = O.time, z =
s.state.displ()[2])", virtPeriod = 10)]

O.dt = 1e-8

plot.plots = {'t':'z'}
plot.plot()

### adding own data
ax = plt.gcf().gca()# get current 'plot' by using standard Python library
ax.plot((10,20,30,40,50,60,70),(s10,20,30,40,50,60,70),'o', linewidth = 3)# add 
own data

O.run(int(1e7))


Cheers,
Karol


[1] https://www.yade-dem.org/wiki/Howtoask

-- 
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 #705760]: How to get the runtime or CPU time?

2023-03-08 Thread Karol Brzezinski
Question #705760 on Yade changed:
https://answers.launchpad.net/yade/+question/705760

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Danny,

It may be a little bit of a workaround, but every periodic engine (e.g. 
PyRunner) stores the information about the time of the last run. You could use 
it to track the time of the simulation. For example, if the last engine in the 
list is PyRunner, you can check:
O.engines[-1].realLast

Cheers,
Karol

-- 
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 #705642]: Workstation

2023-02-28 Thread Karol Brzezinski
Question #705642 on Yade changed:
https://answers.launchpad.net/yade/+question/705642

Karol Brzezinski posted a new comment:
Hi,

Consider cloud computing if you need a machine for running some scripts
once. There is a tutorial on how to use Yade with Amazon EC2 [1].

Cheers,
Karol


[1] https://yade-dem.org/doc/amazonEC2.html?highlight=amazon

-- 
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 #705075]: replace by clump

2023-02-16 Thread Karol Brzezinski
Question #705075 on Yade changed:
https://answers.launchpad.net/yade/+question/705075

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi,

The size of the clump is adjusted to balance the mass (~volume for the same 
material) of the replaced sphere. Every figure with the same mass would stick 
out of the sphere. You have a relatively flat shape, hence its dimensions need 
to be much larger than the sphere.
For sphere with diameter D:
Vs = pi*D^3/2
For a prism (more or less similar to your clump, with edges equal to A, 4A/9, 
and A/9:
Vp = 4*A^3/81

So if Vp=Va
A/D = (81*pi/8)^(1/3) 


So the clumps should be more than three times longer than spheres.

Cheers,
Karol

-- 
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 #705016]: Can we generate randomly particles shape in yade eg.rocks?

2023-02-10 Thread Karol Brzezinski
Question #705016 on Yade changed:
https://answers.launchpad.net/yade/+question/705016

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hello,

I think that polyhedra_utils.fillBox()[1] could be helpful. It generates
random polyhedral particles according to the algorithm described in [2].

Cheers,
Karol


[1] 
https://yade-dem.org/doc/yade.polyhedra_utils.html?highlight=polyhedra%20fill#yade.polyhedra_utils.fillBox
[2] Eliáš, J. (2014). Simulation of railway ballast using crushable polyhedral 
particles. Powder Technology, 264, 458-465.

-- 
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 #705007]: contact model for overlappped part of a clump

2023-02-08 Thread Karol Brzezinski
Question #705007 on Yade changed:
https://answers.launchpad.net/yade/+question/705007

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Guo,

Yade is really well-documented. I recommend reading the Guided Tour, DEM
Formulation, and User's Manual. There is a section about clumps as well
[1].

You can find there that "In Yade (class Clump), clump members behave as
stand-alone particles during simulation for purposes of collision
detection and contact resolution, except that they have no contacts
created among themselves within one clump. "

Hence, there are no interactions between the clump members. Clump
members' arrangement is rigid.

Cheers,
Karol


[1] https://yade-dem.org/doc/formulation.html#clumps-rigid-aggregates

-- 
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 #705005]: problem of erasing particle

2023-02-08 Thread Karol Brzezinski
Question #705005 on Yade changed:
https://answers.launchpad.net/yade/+question/705005

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Guo,

You are removing particles while the simulation is still in process. You
need to make the script wait, units the simulation pauses:

O.run(20, wait=True)

Cheers,
Karol

-- 
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 #704485]: bodies which are controlled by "setPermF" does not move. Is it right?

2023-01-29 Thread Karol Brzezinski
Question #704485 on Yade changed:
https://answers.launchpad.net/yade/+question/704485

Karol Brzezinski posted a new comment:
Hi,

Please open separate threads for new questions [1]. Also, remember about
MVE (especially for the sphere-facet interaction question because there
are no spheres in your first MVE ). Regarding your second question - it
depends. Try to describe your problem in more detail when you open a new
topic.


Cheers, 
Karol
[1] https://www.yade-dem.org/wiki/Howtoask

-- 
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 #704551]: How to make VTK file of relative particle rotation angle from state1 to state2

2023-01-27 Thread Karol Brzezinski
Question #704551 on Yade changed:
https://answers.launchpad.net/yade/+question/704551

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Leonard,

I think that you can use 'rot()' method of body state or Jan's proposal
in VTKExporter.

 MVE
from yade import export
exporter = export.VTKExporter('tmp-')
s = O.bodies.append(sphere((0,0,0),1))

#set current state as reference
setRefSe3()
# set angular velocity
O.bodies[s].state.angVel = (0,0,1)

# rotate
O.run(1000,wait = True)

# export
exporter.exportSpheres(ids='all',what=dict(rotation_method_1 = 
'b.state.rot()',rotation_method_2 = 
'(b.state.refOri.conjugate()*b.state.ori).toRotationVector() '))
##

Cheers,
Karol

-- 
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 #704485]: bodies which are controlled by "setPermF" does not move. Is it right?

2023-01-20 Thread Karol Brzezinski
Question #704485 on Yade changed:
https://answers.launchpad.net/yade/+question/704485

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Jinsun,

The major issue is not the setPermF function but the fact that facets
are massless and not dynamic bodies by default. You can move such bodies
by applying velocity to them. If you want to move them with force, they
should have mass and be freed. You can achieve it by the following
(example) code placed right before O.run():

for i in [-2,-1]:
b = O.bodies[i]
b.state.mass = 1# set 1 kg of mass to the facet
b.state.blockedDOFs = 'xyXYZ'# block all the degrees of freedom except for 
z (by default everything is blocked, even z)

Please note, that the movement of the facets will also be affected by
gravity. Also, it is strange that there is no particles in your
simulation yet ;)

Cheers, 
Karol

-- 
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 #704389]: Problem with OpenMP

2023-01-17 Thread Karol Brzezinski
Question #704389 on Yade changed:
https://answers.launchpad.net/yade/+question/704389

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Roxana,

Please note that this was discussed in this forum several times, and you
can find more information on other topics (e.g., [1]).

Very briefly, I would summarise it in two points:
- First, parallelization efficiency depends on the simulation. If one person 
can paint the room in eight hours, it doesn't mean that 48 people would paint 
the room in ten minutes :) 
- Secondly, the source code needs to be prepared for OpenMP parallelization. In 
Yade, it is usually realized by "#pragma omp parallel for" directive [2]. It 
tells the program where computations can be split in several threads without 
causing problems. It is usually used for long loops of independent operations 
(e.g. newtonIntegrator). So, if your engine does not have such a directive 
inside, your simulation will use one core most of the time. 

Best wishes
Karol

[1] https://answers.launchpad.net/yade/+question/699458
[2] https://yade-dem.org/doc/prog.html#parallel-execution

-- 
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 #704293]: How to use TW.triangulate() to calculate strain between two states by importing samples

2023-01-05 Thread Karol Brzezinski
Question #704293 on Yade changed:
https://answers.launchpad.net/yade/+question/704293

Karol Brzezinski posted a new comment:
Sorry, but I am 'computerless' right now, and I cannot check it to confirm.
Can you please take the above example, comment out the triangulation part and 
see if you get the same results?

Cheers,
Karol

-- 
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 #704293]: How to use TW.triangulate() to calculate strain between two states by importing samples

2023-01-05 Thread Karol Brzezinski
Question #704293 on Yade changed:
https://answers.launchpad.net/yade/+question/704293

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Leonard,

Regarding your questions:

1. Yes - the order of spheres in files must be identical.

2. You still need to triangulate and compute volumes. Sorry, if it was
not clear previously linked topic. Please see the example provided here
[2]. Two approaches are compared on one example, but the code should be
self-explanatory.

Cheers,
Karol

[2] https://answers.launchpad.net/yade/+question/696150

-- 
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 #704293]: How to use TW.triangulate() to calculate strain between two states by importing samples

2023-01-04 Thread Karol Brzezinski
Question #704293 on Yade changed:
https://answers.launchpad.net/yade/+question/704293

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Leonard,

How about strings the packing at different states in external txt files,
and computing strains between pairs of files? [1]

Best wishes, 
Karol

[1] https://answers.launchpad.net/yade/+question/700439

-- 
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 #703735]: Bonded (CohFrictMat) particles freeze during collision

2022-12-20 Thread Karol Brzezinski
Question #703735 on Yade changed:
https://answers.launchpad.net/yade/+question/703735

Karol Brzezinski posted a new comment:
Thank you for your comment. Maybe it is a particular example where
damping oscillations 'inside agglomerate' can affect its movement as a
whole. This would have to be a strong numerical artifact since it occurs
even though the gravity acceleration is not damped.


I prepared another example. Only agglomerate of two grains is free falling, 
hence there is no impact. The oscillations are introduced after 1e6 of 
iterations. Adding very small damping causes freezing of the particle. So 
indeed the oscillations cause the problem. 

Cheers,
Karol

 MWE
### MVE
from yade import plot
### params
# default parameters or from table
readParamsFromTable(noTableOk=True,
youngGrain = 7e9,
poisson = .3,
frictionAngle = atan(0.8),
grainDensity = 2504,
dtSafetyCohFrictMat = 0.9,
sphereRadius = 0.15e-2,
normalCohesion = 1e10,
shearCohesion = 1e10,

)
from yade.params.table import *
global introducedOscillations
introducedOscillations = False

def addPlotData():
global introducedOscillations
if not(introducedOscillations) and O.iter>1e6:
O.bodies[grain1[0]].state.pos += Vector3(0,0,1e-5)
introducedOscillations = True
v1 = O.bodies[grain1[0]].state.vel[2]
plot.addData(t = O.time, i = O.iter, v1=v1)

# material
cfmId = O.materials.append(CohFrictMat(
young = youngGrain,
poisson = poisson,
frictionAngle = frictionAngle,
density = grainDensity,
normalCohesion = normalCohesion,
shearCohesion = shearCohesion,
))

## spheres

# grain 1
grain1=O.bodies.append([sphere(center=(0,0,1.5*i*sphereRadius),radius=sphereRadius,material
 = O.materials[cfmId],color=(0,1,0)) for i in [0,1]])


# engines
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Box_Sphere_ScGeom()],
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(label = 'phys')],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(label = 'law', 
creep_viscosity = 100.)],
),
NewtonIntegrator(damping=0.0, gravity = (0,0,-9.81), dampGravity = False),
PyRunner(command = 'addPlotData()', virtPeriod=0.01),
]

phys.setCohesionNow = True # to create cohesive contacts in the next step
## grow particles to create overlap
O.dt = 0
O.step() # do one step in zero timestep just to create interaction

# cancel out the force between the bonded particles
for i in O.interactions:
i.phys.unp = i.geom.penetrationDepth

# time step
O.dt = dtSafetyCohFrictMat*PWaveTimeStep()

 prepare plots
plot.plots={'t':('v1')}
plot.plot()

###
O.run(int(5e6))

-- 
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 #704035]: O.save/O.load problem

2022-12-08 Thread Karol Brzezinski
Question #704035 on Yade changed:
https://answers.launchpad.net/yade/+question/704035

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Roxana,
 
I don't have your full code, so I cannot run exactly the same example. But 
maybe you could try my previous idea to store only the parameters you need, and 
then load it in the second script. I prepared an example for storing Fv and Fn, 
but you can add the parameters you need.

## put this at the end of the first script
import pandas as pd

intrState = pd.DataFrame(columns = ['id1','id2','Fn','Fv'])

for ii in O.interactions:
iiState = 
pd.DataFrame({'id1':[ii.id1],'id2':[ii.id2],'Fn':[ii.phys.Fn],'Fv':[ii.phys.Fv]})
intrState = intrState.append(iiState,ignore_index = True)

intrState.to_csv('tmpIntrState.csv')

### put this in the second script before run
import pandas as pd
intrState = pd.read_csv('tmpIntrState.csv')

for i in range(len(intrState)):
iiSaved = intrState.iloc[i]
ii = O.interactions[int(iiSaved.id1), int(iiSaved.id2)]
ii.phys.Fn = iiSaved.Fn
ii.phys.Fv = iiSaved.Fv



Cheers,
Karol

-- 
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 #704065]: particle size distribution

2022-12-08 Thread Karol Brzezinski
Question #704065 on Yade changed:
https://answers.launchpad.net/yade/+question/704065

Karol Brzezinski proposed the following answer:
Hi,

First of all, please remember to create MVE to support your question, to save 
some time for people who are trying to help you [1].
Secondly, note that particle size in psdSizes should be provided as diameters - 
not radii (hence you need to double the values).

There are multiple ways to solve your problem.
1) If you know the exact number of particles you can simply run makeCloud() 
twice, before appending particles to simulation;

from yade import pack

sp = pack.SpherePack()

sp.makeCloud((0,0,0),(0.05,0.05,0.05), rMean = 0.002, num = 80)
sp.makeCloud((0,0,0),(0.05,0.05,0.05), rMean = 0.001, num = 20)

sp.toSimulation()

2) The makeCloud() method is rather dedicated to continuous size
distributions. But you can pass a "stepwise" distribution:

from yade import pack

psdSizes = [0.002,0.002,0.004,0.004]# you have to pass here diameter, not radius
psdCumm = [0,0.2,0.2,1.0]

sp = pack.SpherePack()

sp.makeCloud((0,0,0),(0.05,0.05,0.05), psdCumm = psdCumm, psdSizes =
psdSizes, distributeMass = False)

sp.toSimulation()

# Note, that this "trick" doesn't work very well with distributeMass =
True. In the example above, the NUMBER of smaller particles is 20% of
the total number of particles.

3) I had to "manually" compute the proper content to obtain the
prescribed mass distribution. Modification of the above example is as
follows:

from yade import pack

massContentOfSmallerParticles = 0.2
smallRadius = 0.001
bigRadius = 0.002

volumeProportion = (bigRadius/smallRadius)**3
tmpNumberOfSmallerParticles = massContentOfSmallerParticles*volumeProportion
tmpNumberOfBiggerParticles = 1-massContentOfSmallerParticles
tmpTotalNumber = tmpNumberOfSmallerParticles+tmpNumberOfBiggerParticles

newContentOfSmallerParticles = tmpNumberOfSmallerParticles /
tmpTotalNumber


psdSizes = [smallRadius*2,smallRadius*2,bigRadius*2,bigRadius*2]# you have to 
pass here diameter not radius
psdCumm = [0,newContentOfSmallerParticles,newContentOfSmallerParticles,1.0]

sp = pack.SpherePack()

sp.makeCloud((0,0,0),(0.1,0.1,0.1), psdCumm = psdCumm, psdSizes =
psdSizes, distributeMass = False)

sp.toSimulation()

 just checking the distribution
smallerParticlesMass = 0
biggerParticlesMass = 0
otherParticlesMass = 0

for b in O.bodies:
r = b.shape.radius
m = b.state.mass
if r == smallRadius:
smallerParticlesMass += m
elif r == bigRadius:
biggerParticlesMass += m
else:
otherParticlesMass += m

totalMass = smallerParticlesMass + biggerParticlesMass +
otherParticlesMass

print("Content of particles with radius r = {:.3f} equals {:.1f}%
[m/m].".format(smallRadius,100*smallerParticlesMass/totalMass))


Cheers,
Karol

[1] https://www.yade-dem.org/wiki/Howtoask

-- 
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 #704048]: aabbDim() and Triax.box volume difference ?

2022-12-06 Thread Karol Brzezinski
Question #704048 on Yade changed:
https://answers.launchpad.net/yade/+question/704048

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Ahmad,

could you provide the MWE (Minimum Working Example)[1] that shows the
difference that you are talking about?

1 - aabbDim() computes dimensions of a minimum axis aligned bounding box 
containing all the spheres from the simulation.
2 - triax.boxvolume probably computes volume from periodic cell dimensions.

There are multiple reasons to get different results (e.g using non-
spherical particles in the simulation, the cell is not fully filled with
spheres, particles are 'outside' the cell, etc.).

Cheers,
Karol 

[1] https://www.yade-dem.org/wiki/Howtoask

-- 
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 #704035]: O.save/O.load problem

2022-12-06 Thread Karol Brzezinski
Question #704035 on Yade changed:
https://answers.launchpad.net/yade/+question/704035

Karol Brzezinski posted a new comment:
Hi Roxana,

I wanted to try to store the interaction state separately and load it in the 
second script. But there is something wrong with the serialization of 
interaction physics.  For example, if ii is an interaction, calling 
'ii.phys.dict()' returns an error:
"No to_python (by-value) converter found for C++ type: yade::CapType"

If you can do your own modifications in the source code, you could try to 
investigate this line:
https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/ViscoelasticCapillarPM.hpp#L31

Best wishes,
Karol

-- 
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 #704035]: O.save/O.load problem

2022-12-06 Thread Karol Brzezinski
Question #704035 on Yade changed:
https://answers.launchpad.net/yade/+question/704035

Karol Brzezinski posted a new comment:
Hi,

In my opinion there is something wrong with saving the interactions. I
don't know how to fix the source. If you inspect interactions right
after loading the simulation (before running it) you will notice that
many parameters have 'nan' values.  After running the simulation you can
observe that some spheres just disappear. You can prevent this by
resetting the interactions 'O.interactions.clear()', but I guess that is
not a solution that you are looking for...

Cheers,
Karol

-- 
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 #704035]: O.save/O.load problem

2022-12-05 Thread Karol Brzezinski
Question #704035 on Yade changed:
https://answers.launchpad.net/yade/+question/704035

Status: Open => Needs information

Karol Brzezinski requested more information:
Hi,

Are you sure it is a working example? ViscElCapMat has no attribute
'eta'.

Cheers,
Karol

-- 
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 #703735]: Bonded (CohFrictMat) particles freeze during collision

2022-11-28 Thread Karol Brzezinski
Question #703735 on Yade changed:
https://answers.launchpad.net/yade/+question/703735

Status: Expired => Open

Karol Brzezinski is still having a problem:
Hi,

thank you for your comments. I believe you are talking about this
equation (https://gitlab.com/yade-
dev/trunk/-/blob/master/pkg/dem/NewtonIntegrator.cpp#L34 ) in a slightly
different form. It is hard to imagine how it could have such an effect
on the simulation, but it is my strongest lead.

The simulation is more or less predictable when I use the same material
for standalone spheres. The same for the case with no damping (or very
small <1e-5). However, the damping used in the example (0.01) stops the
free-falling aggregates as soon as they touch each other. Moreover, even
after the separation, they do not start to fall again.

Cheers,
Karol 

PS. I noticed that indentations are broken when the example is copied
back to the editor from the launchpad. It was probably poorly formatted
in the first place (guilty of using tabs). Sorry for that.

-- 
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 #703940]: How can I remove Somengines from the existing O.engines?

2022-11-27 Thread Karol Brzezinski
Question #703940 on Yade changed:
https://answers.launchpad.net/yade/+question/703940

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi,

To remove the last engine from the list do this:

O.engines = O.engines[:-1]

That means take all the engines from the existing list, except of the
last one.

Cheers, 
Karol

-- 
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 #703735]: Bonded (CohFrictMat) particles freeze during collision

2022-11-10 Thread Karol Brzezinski
Question #703735 on Yade changed:
https://answers.launchpad.net/yade/+question/703735

Karol Brzezinski gave more information on the question:
Hi,

I haven't found out the solution, but I wanted to comment that using
very small damping ( <1e-5) seems to give decent results. For some
reason, the damping effect is exaggerated for this type of material. Do
you have any clue why?

Cheers,
Karol

-- 
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 #703626]: How does yade import models externally

2022-11-06 Thread Karol Brzezinski
Question #703626 on Yade changed:
https://answers.launchpad.net/yade/+question/703626

Status: Open => Needs information

Karol Brzezinski requested more information:
Hi,

would you mind sharing with us how the problem was solved?

Cheers,
Karol

-- 
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 #703734]: Get force on Facet

2022-11-06 Thread Karol Brzezinski
Question #703734 on Yade changed:
https://answers.launchpad.net/yade/+question/703734

Status: Open => Needs information

Karol Brzezinski requested more information:
Hi Ginna,

Are you sure that you provided the working example (except for the
plotting issue of course)?

- There are no spheres in your simulation, so there won't be any forces acting 
on your facet.
- Module plot is not imported from yade.
- While defining plots you use 'O.energy.keys', but I think it should be 
'O.energy.keys()'.
- Also you want to plot 'Fz' vs 'w', but 'w' is not added to the plot data.
- BTW, why do you sum all the components of the force acting on the facet? 


Regarding my previous guess, I see now that the "Barrera1" stores the id of the 
facet. So the previous version was ok 'O.force.f(Barrera1)".

Best wishes,
Karol

-- 
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 #703734]: Get force on Facet

2022-11-06 Thread Karol Brzezinski
Question #703734 on Yade changed:
https://answers.launchpad.net/yade/+question/703734

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi,

please provide more information (e.g., MVE [1]). Do you have any errors,
or just nothing happens? You need to pass body id to the O.forces.f()
function. If 'barrier' is references directly to your facet (body) you
should try something like this:

F = O.forces.f(barrier.id)
print(F)

Cheers,
Karol

[1] https://www.yade-dem.org/wiki/Howtoask

-- 
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 #703735]: Bonded (CohFrictMat) particles freeze during collision

2022-11-06 Thread Karol Brzezinski
New question #703735 on Yade:
https://answers.launchpad.net/yade/+question/703735

Hi,

Recently I encountered I strange behavior of bonded particles (CohFrictMat). I 
wanted to simulate gravity deposition, and I noticed that if two agglomerates 
touch, their velocity drops to zero. This problem occurs if damping > 0 is 
applied.

Please find MVE below. There are two grains one above another. One of them has 
prescribed velocity, so it "chases" another one. As soon as they touch, their 
speed suddenly drops to zero (even though they move in the same direction). 
I am using Ubuntu 20.04 and yadedaily 20221027-6847~7952bc1~focal1.

Cheers,
Karol

### MVE
from yade import plot
### params
# default parameters or from table
readParamsFromTable(noTableOk=True, 
youngGrain = 7e9,
poisson = .3,
frictionAngle = atan(0.8),
grainDensity = 2504,
dtSafetyCohFrictMat = 0.9,
sphereRadius = 0.15e-2,
normalCohesion = 1e99,
shearCohesion = 1e99,

)
from yade.params.table import *

def addPlotData():
v1 = O.bodies[grain1[0]].state.vel[2]
v2 = O.bodies[grain2[0]].state.vel[2]
plot.addData(t = O.time, i = O.iter, v1=v1,v2=v2)


# material
cfmId = O.materials.append(CohFrictMat(
young = youngGrain,
poisson = poisson,
frictionAngle = frictionAngle,
density = grainDensity,
normalCohesion = normalCohesion,
shearCohesion = shearCohesion, 
))

## spheres

# grain 1 
grain1=O.bodies.append([sphere(center=(0,0,1.5*i*sphereRadius),radius=sphereRadius,material
 = O.materials[cfmId],color=(0,1,0)) for i in [0,1]])

# grain 2 
grain2=O.bodies.append([sphere(center=(0,0,0.1+1.5*i*sphereRadius),radius=sphereRadius,material
 = O.materials[cfmId],color=(0,0,1)) for i in [0,1]])

# prescribe vel of grain 2
for sp in grain2:
O.bodies[sp].state.vel = (0,0,-0.2)

# engines
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Box_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom6D(),Ig2_Box_Sphere_ScGeom()],
[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(label = 'phys')],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(label = 'law')],
),
NewtonIntegrator(damping=0.01, gravity = (0,0,-9.81)),
PyRunner(command = 'addPlotData()', virtPeriod=0.01),
]

phys.setCohesionNow = True # to create cohesive contacts in the next step
## grow particles to create overlap
O.dt = 0
O.step() # do one step in zero timestep just to create interaction

# cancel out the force between the bonded particles
for i in O.interactions:
i.phys.unp = i.geom.penetrationDepth

# time step
O.dt = dtSafetyCohFrictMat*PWaveTimeStep()

 prepare plots
plot.plots={'t':('v1','v2')}
plot.plot()

###
O.run(int(2e6))



-- 
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 #703498]: Young's modulus or the effect of the wall on the test

2022-10-16 Thread Karol Brzezinski
Question #703498 on Yade changed:
https://answers.launchpad.net/yade/+question/703498

Status: Open => Needs information

Karol Brzezinski requested more information:
Hi,

Please provide the MVE [1]. If the results are not symmetric, the
simulation is not symmetric either. You described symmetric boundary
conditions, but we don't know anything about loading or granular packing
in your simulation.

Best wishes,
Karol


[1] https://www.yade-dem.org/wiki/Howtoask

-- 
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 #703446]: Feasibility of deep-sea mining simulation using Yade

2022-10-11 Thread Karol Brzezinski
Question #703446 on Yade changed:
https://answers.launchpad.net/yade/+question/703446

Status: Open => Needs information

Karol Brzezinski requested more information:
Hi Ziyu,

I would call Yade a multibody dynamics software :)

What effects do you want to include? Does it need to be a coupled
simulation? Maybe you can start with a kinematically driven tool made of
facets. Next step of complexity would  be making a dynamic clump of
facets and drive the tool with force controlling function (programmed in
Python). Alternatively, one can add such a function in the C++ source
code to speed up the simulation.

Cheers, 
Karol

-- 
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 #703351]: Simulation of Dynamic compaction

2022-10-02 Thread Karol Brzezinski
Question #703351 on Yade changed:
https://answers.launchpad.net/yade/+question/703351

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Sirasak,


As previously mentioned, you should open separate questions for separate 
problems [1]. 

You are at an early stage of the simulation, and it is hard to tell what
will work out the best for you. I would start with modeling the footing
with a dynamic clump of facets (see the first answer in this [3] topic
to see how to clump facets). The footing can be loaded by dropping a
single sphere on it. There are multiple ways to 'move the weigh up', for
example, using function shiftBodies() [4].

Good luck!
Karol


[3] https://answers.launchpad.net/yade/+question/696056#1
[4] 
https://yade-dem.org/doc/yade.utils.html?highlight=shift%20bodies#yade._utils.shiftBodies

-- 
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 #703351]: Simulation of Dynamic compaction

2022-10-01 Thread Karol Brzezinski
Question #703351 on Yade changed:
https://answers.launchpad.net/yade/+question/703351

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Sirasak,

As Jan said you should try to explain better how you imagine your code
should work.

Your code is a little bit messy, but I will focus only on major issues:

- You can pass sphere properties when the sphere pack is added to the 
simulation by the sp.toSimulation() command. You can follow the first couple of 
lines of this example [2]
- Since your 'soil' particles are relatively soft (default young=1.0MPa), so 
the computed timestep is big. After you add stiff, steel elements, you should 
change the timestep again. Otherwise, your simulation becomes unstable, and 
bodies 'disappear'.
- You add PyRunner with the 'compaction()' command twice. First time when 
setting up the simulation. Secondly, when 'checkUnbalanced()' changes to the 
'compaction()' . Also, are you sure you want to add weights all the time? Or 
rather move the same weight up, and then drop again.

Cheers,
Karol

[2] https://yade-dem.org/doc/tutorial-short-course-fluids.html

-- 
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 #703169]: Energy conservation of clump

2022-09-17 Thread Karol Brzezinski
Question #703169 on Yade changed:
https://answers.launchpad.net/yade/+question/703169

Karol Brzezinski posted a new comment:
Hi Xu,

Thank you for your MWE. It looks like it is not what I thought at the 
beginning. I don't know what is the reason. 
My last clue is that 'utils.getStress()' may give slightly different results 
for clumps and spheres. I modified oedometric test example [1] to check this. 
But the results for different simulations are scattered.

from yade import pack, plot

useClumps = True

readParamsFromTable(rMean=.075, rRelFuzz=.3, maxLoad=1e6)

from yade.params.table import *

# create box with free top, and ceate loose packing inside the box
O.bodies.append(geom.facetBox((.5, .5, 1), (.5, .5, 1), wallMask=31))
sp = pack.SpherePack()
sp.makeCloud((0, 0, 0), (1, 1, 2), rMean=rMean, rRelFuzz=rRelFuzz)
sp.toSimulation()
# make material frictionless to avoid force acting on vert walls
O.materials[0].frictionAngle = 0   

# I just make spheres smaller to avoid overlapping after replacing by clumps
for b in O.bodies:
if isinstance(b.shape, Sphere):
b.shape.radius*=0.8

if useClumps:

relRadList2 = [1,1]
relPosList2 = [[0.5,0,0],[-0.5,0,0]]
templates= []

templates.append(clumpTemplate(relRadii=relRadList2,relPositions=relPosList2))
O.bodies.replaceByClumps(templates,[1.],discretization=10)

O.engines = [
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Facet_Aabb(), 
Bo1_Wall_Aabb()]),
InteractionLoop(
[Ig2_Sphere_Sphere_ScGeom(), Ig2_Facet_Sphere_ScGeom(), 
Ig2_Wall_Sphere_ScGeom()],
[Ip2_FrictMat_FrictMat_FrictPhys()],
[Law2_ScGeom_FrictPhys_CundallStrack()]
),
NewtonIntegrator(gravity=(0, 0, 0), damping=0.1),
PyRunner(command='checkUnbalanced()', virtPeriod=1, label='checker'),
]
O.dt = .5 * PWaveTimeStep()

def checkUnbalanced():
# at the very start, unbalanced force can be low as there is only few 
contacts, but it does not mean the packing is stable
if O.iter < 5000:
return
# the rest will be run only if unbalanced is < .1 (stabilized packing)
if unbalancedForce() > .1:
return
# add plate at the position on the top of the packing
# the maximum finds the z-coordinate of the top of the topmost particle
O.bodies.append(wall(max([b.state.pos[2] + b.shape.radius for b in 
O.bodies if isinstance(b.shape, Sphere)]), axis=2, sense=-1))
global plate  # without this line, the plate variable would only exist 
inside this function
plate = O.bodies[-1]  # the last particles is the plate
# Wall objects are "fixed" by default, i.e. not subject to forces
# prescribing a velocity will therefore make it move at constant 
velocity (downwards)
plate.state.vel = (0, 0, -.01)
# start plotting the data now, it was not interesting before
O.engines = O.engines + [PyRunner(command='addPlotData()', 
iterPeriod=200)]
# next time, do not call this function anymore, but the next one 
(unloadPlate) instead
checker.command = 'unloadPlate()'


def unloadPlate():
# if the force on plate exceeds maximum load, start unloading
if abs(O.forces.f(plate.id)[2]) > maxLoad:
plate.state.vel *= -1
O.pause()
print('Stress underestimated by the factor 
{:.2f}'.format(max(plot.data['Fz'])/max(plot.data['szz'])))


def addPlotData():
if not isinstance(O.bodies[-1].shape, Wall):
plot.addData()
return
Fz = O.forces.f(plate.id)[2]
szz=-1*utils.getStress()[2,2]
plot.addData(Fz=Fz,szz=szz, w=plate.state.pos[2] - 
plate.state.refPos[2], unbalanced=unbalancedForce(), i=O.iter)


# besides unbalanced force evolution, also plot the displacement-force diagram
plot.plots = {'w': ('Fz','szz')}
plot.plot()

O.run()



Best wishes,
Karol

[1] https://yade-dem.org/doc/tutorial-examples.html#oedometric-test

PS Jan, sorry for suggesting this 'interaction inside clump' issue, but
I can swear I encountered this some time ago.

-- 
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 #703169]: Energy conservation of clump

2022-09-16 Thread Karol Brzezinski
Question #703169 on Yade changed:
https://answers.launchpad.net/yade/+question/703169

Karol Brzezinski posted a new comment:
Hi,

Sorry, but I cannot run this. There are some syntax errors and the
script requires loading external files. Please try to prepare MWE [2]:

"Do your best to send it as a MWE (Minimal Working Exampleâ„¢). The MWE
should actually be the smallest script possible showing the same problem
you faced probably in a much longer script, initially. It must be:

- minimal = short. It is difficult to find mistakes in long pieces of code and 
it is usually much more annoying. Any post-processing command should for 
instance be banned.
- working = before sending, test it to be sure it is working (it has no syntax 
errors etc.)."

Cheers,
Karol 

[2] https://www.yade-dem.org/wiki/Howtoask

-- 
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 #703169]: Energy conservation of clump

2022-09-16 Thread Karol Brzezinski
Question #703169 on Yade changed:
https://answers.launchpad.net/yade/+question/703169

Status: Open => Needs information

Karol Brzezinski requested more information:
Hi,

If you provided MWE, I could show what I mean based on your example.

The simplest approach is to create a single clump of two overlapping
spheres (no other bodies, no gravity). Run one iteration of the
simulation. What is the energy state in such a simulation?

Cheers,
Karol

-- 
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 #703169]: Energy conservation of clump

2022-09-15 Thread Karol Brzezinski
Question #703169 on Yade changed:
https://answers.launchpad.net/yade/+question/703169

Karol Brzezinski posted a new comment:
Hi,

I endorse all the comments from Jan. I can add one more. It is very
likely that there are some interactions between clump members. Those
interactions do not affect the simulation. However, they may contribute
to the potential energy if you are taking them into account.

Cheers,
Karol

-- 
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 #703130]: How to integrate motion in only one direction?

2022-09-13 Thread Karol Brzezinski
Question #703130 on Yade changed:
https://answers.launchpad.net/yade/+question/703130

Karol Brzezinski posted a new comment:
It is because you can give a new attribute to the body this way. For
example, if you want to discriminate between groups of bodies, you can
do something like this.

###
if b.state.pos[2]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 #703130]: How to integrate motion in only one direction?

2022-09-12 Thread Karol Brzezinski
Question #703130 on Yade changed:
https://answers.launchpad.net/yade/+question/703130

Karol Brzezinski proposed the following answer:
Hi,

Try 
PPClump.state.blockedDOFs='xyXYZ'

Instead of 
PPClump.state.blockDOFs='xyXYZ'

Cheers, 
Karol

-- 
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 #703130]: How to integrate motion in only one direction?

2022-09-12 Thread Karol Brzezinski
Question #703130 on Yade changed:
https://answers.launchpad.net/yade/+question/703130

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Guo,

You can block all degrees of freedom, except for 'z'. Let's say 'b' is
your body, so:

b.state.blockedDOFs='xyXYZ'

the above code constrains body, and allows only for vertical movement
(capital letters control rotation).

Best wishes, 
Karol

-- 
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 #703121]: Torque output for STL

2022-09-11 Thread Karol Brzezinski
Question #703121 on Yade changed:
https://answers.launchpad.net/yade/+question/703121

Karol Brzezinski posted a new comment:
Hi,

I cannot test it right now on the computer, but it would be something
like this:

clumpId = O.bodies.appendClumped(EO)

You, can drive this clump as one body by changing velocity, and angular
velocity (angVel).

O.bodies[clumpId].state.angVel = (0,0,1)

All the degrees of freedom should stay blocked. This way you obtain
kinematic boundary condition. If you want to have constant force or
moment, you will need to program a servo.

You can alternatively make clump dynamic, apply mass and inertia and
release degrees of freedom. In such a way, you will be able to controll
it by applying force.

Cheers,
Karol

PS I don't know if it works well with mpi.

-- 
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 #703121]: Torque output for STL

2022-09-11 Thread Karol Brzezinski
Question #703121 on Yade changed:
https://answers.launchpad.net/yade/+question/703121

Karol Brzezinski posted a new comment:
Just a comment: instead of using CombinedKinematicEngine, I would clump
all the facets together, and drive them as one body.

Cheers,
Karol

-- 
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 #703121]: Torque output for STL

2022-09-11 Thread Karol Brzezinski
Question #703121 on Yade changed:
https://answers.launchpad.net/yade/+question/703121

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Nima,

I guess that you want to compute 'global' torque acting on your 'vane' (driving 
torque of your tool/probe). So you need to include the torque from all the 
forces:
Moment of force = F x d
F is the force applied, d is the distance from the fixed axis (vane axis).

Cheers,
Karol

-- 
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 #703098]: Trying to pass on property from python to shape

2022-09-09 Thread Karol Brzezinski
Question #703098 on Yade changed:
https://answers.launchpad.net/yade/+question/703098

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Danny,

are you sure that you need to modify the *.hpp file? You can add a new
property to the body directly from Yade (Python) console. Since you are
modifying the utils file, I guess that your function is pure Python. Try
this:


bid = O.bodies.append(sphere((0,0,0),1)) 
b = O.bodies[bid]
b.shape.myProperty = Vector3(1,2,3) 
print(b.shape.myProperty)


The disadvantage of this approach is that the property won't be saved by
O.save function.

Cheers,
Karol

-- 
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 #703024]: Particles in the middle of the cylinder disappeared after adding the thermal engine

2022-09-03 Thread Karol Brzezinski
Question #703024 on Yade changed:
https://answers.launchpad.net/yade/+question/703024

Karol Brzezinski posted a new comment:
Hi,

I don't know whether such a coupling can be used for your problem. I
noticed that the example from tutorial  [1] uses extremely high density.
Maybe someone else could provide a better answer...

Cheers,
Karol

[1] https://gitlab.com/yade-
dev/trunk/-/blob/master/examples/ThermalEngine/thermoHydroMechanical_coupling.py

-- 
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 #703024]: Particles in the middle of the cylinder disappeared after adding the thermal engine

2022-09-03 Thread Karol Brzezinski
Question #703024 on Yade changed:
https://answers.launchpad.net/yade/+question/703024

Status: Open => Needs information

Karol Brzezinski requested more information:
Hi Ziyu,

I tried to run your example but it requires loading sphere packing from
an external file:

>OSError: packing-cylinder.spheres not found.

Cheers,
Karol

-- 
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 #703030]: run yade

2022-09-03 Thread Karol Brzezinski
Question #703030 on Yade changed:
https://answers.launchpad.net/yade/+question/703030

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi,

maybe it is just a typo? I see in the error that you have an extra space
in the filename: 'script .py' instead of 'script.py'.

You just need to Navigator with your terminal to the directory where
script is save and then type 'yade script.py' (just as you typed in
question).

Cheers,
Karol

-- 
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 #702962]: How to disable function in PyRunner

2022-08-29 Thread Karol Brzezinski
Question #702962 on Yade changed:
https://answers.launchpad.net/yade/+question/702962

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi,

You can set some lab for a specific PyRunner, and at some point of
simulation use this label as reference to your PyRunner, e.g
PyRunner(..., label="myEngine")

For example you can disable this engine by setting myEngine.dead = True
[1]


Best wishes, 
KB
[1] 
https://yade-dem.org/doc/yade.wrapper.html?highlight=pyrunner#yade.wrapper.PyRunner

-- 
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 #702665]: How to calculate the height of particle accumulation?

2022-08-11 Thread Karol Brzezinski
Question #702665 on Yade changed:
https://answers.launchpad.net/yade/+question/702665

Karol Brzezinski posted a new comment:
If you use


(xmin,ymin,zmin),(xmax,ymax,zmax) = aabbExtrema() 


zmax is the highest point.

If you use


(xdim,ydim,zdim)= aabbDim()


zdim is packing height (the highest point minus the lowest)

Karol

-- 
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 #702665]: How to calculate the height of particle accumulation?

2022-08-10 Thread Karol Brzezinski
Question #702665 on Yade changed:
https://answers.launchpad.net/yade/+question/702665

Karol Brzezinski proposed the following answer:
Hi,

The information about the height is printed. It is just between "initial
lines".

If you want to know the height anytime later during the simulation, you
need to run those two lines again:

###
(xdim,ydim,zdim)= aabbDim()
print("Height is ",zdim)
###

Cheers,
Karol

-- 
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 #702665]: How to calculate the height of particle accumulation?

2022-08-09 Thread Karol Brzezinski
Question #702665 on Yade changed:
https://answers.launchpad.net/yade/+question/702665

Karol Brzezinski posted a new comment:
Are you sure? What is the console output after running this code?

-- 
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 #702665]: How to calculate the height of particle accumulation?

2022-08-09 Thread Karol Brzezinski
Question #702665 on Yade changed:
https://answers.launchpad.net/yade/+question/702665

Karol Brzezinski posted a new comment:
aabbDim() gives you dimensions (three values), so it should rather be:

#
O.bodies.append(geom.facetBox((0.05, 3, 4), (0.1, 3, 4), wallMask=63))
sp = pack.SpherePack()
sp.makeCloud(Vector3(0.05,0,0),Vector3(0.05,6,8), rMean=0.05, rRelFuzz=0)
sp.toSimulation()

(xdim,ydim,zdim) = aabbDim()

print("Height is ",zdim)


Cheers,
Karol

-- 
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 #702665]: How to calculate the height of particle accumulation?

2022-08-08 Thread Karol Brzezinski
Question #702665 on Yade changed:
https://answers.launchpad.net/yade/+question/702665

Karol Brzezinski proposed the following answer:
Hi,

Yes, first you generate facets, next particles. I only meant that
facetbox() function creates facets, not particles (as stated in the
first post).

Referring to your question, this is how you can obtain the height of spherical 
particle packing:
#
O.bodies.append(geom.facetBox((0.05, 3, 4), (0.1, 3, 4), wallMask=63))
sp = pack.SpherePack()
sp.makeCloud(Vector3(0.05,0,0),Vector3(0.05,6,8), rMean=0.05, rRelFuzz=0)
sp.toSimulation()
O.engines[4].gravity = (0,0,-10)
O.run(3000,True)

(xmin,ymin,zmin),(xmax,ymax,zmax) = aabbExtrema() # you can use aabbDim() 
instead in those two lines if you only need height
height = zmax-zmin
print("Height is ",height) 


Cheers,
Karol

-- 
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 #702665]: How to calculate the height of particle accumulation?

2022-08-07 Thread Karol Brzezinski
Question #702665 on Yade changed:
https://answers.launchpad.net/yade/+question/702665

Karol Brzezinski posted a new comment:
And one more comment 
Are you sure that you generate particles with this function  geom.facetbox 
((,), (,), wallmask=)?

You generate bodies (facets), but I wouldn't call them particles by
default.

Cheers, 
Karol

-- 
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 #702665]: How to calculate the height of particle accumulation?

2022-08-04 Thread Karol Brzezinski
Question #702665 on Yade changed:
https://answers.launchpad.net/yade/+question/702665

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi,

Function aabbExtrema() returns boundary box of particle packing (min and
max corner positions).

If you are only interested in dimension, you can use aabbDim().

Both functions work for spherical bodies.

Cheers 
Karol

[1] 
https://yade-dem.org/doc/yade.utils.html?highlight=aabbextrema#yade._utils.aabbExtrema
[2] 
https://yade-dem.org/doc/yade.utils.html?highlight=aabbdim#yade.utils.aabbDim

-- 
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 #702205]: facet disappear when adding flowengine to the examples/concrete/triax.py

2022-06-20 Thread Karol Brzezinski
Question #702205 on Yade changed:
https://answers.launchpad.net/yade/+question/702205

Status: Needs information => Answered

Karol Brzezinski proposed the following answer:
Hi,

your example still needs some patching before working at all ('damp' not 
defined etc.). However, the issue is that the facets have zero mass (any force 
divided by zero mass gives infinite acceleration). You try to prescribe some 
mass:
>mass = O.bodies[0].state.mass
but unfortunatelly O.bodies[0] is a wall that has no mass either.

Cheers,
Karol

-- 
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 #702229]: yade and terminal

2022-06-19 Thread Karol Brzezinski
Question #702229 on Yade changed:
https://answers.launchpad.net/yade/+question/702229

Status: Open => Answered

Karol Brzezinski proposed the following answer:
Hi Haoding,

when you create a function in 'live' terminal Yade doesn't see it. It is always 
better tonrun scripts. However, you can make it work in the terminal. After 
creating functions run the line:
globals().update(locals())

Cheers,
Karol

-- 
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


  1   2   3   >