← Back to team overview

yade-users team mailing list archive

Re: reference sphere assembly

 

Ah... I almost forgot I had to reply to this one. Sorry for the delay Vaçlav.


Václav S(milauer a écrit :
On my side, I have tons of files with coordinates of sphere packings. But at the end, you will probably find something that you don't like in them, and you will want to generate your own packings. TriaxialStressController can be used for generating packings. It can either 1/ squeeze the packing by moving boxes or 2/ fill the volume by increasing the size of elements.
I will try to find out how it works... There is bunch of Triaxial*
classes and so far I am not quite sure how to use them. Would you mind
describing their interaction at wiki?


I typed few comments in TriaxialTest.h, I'm pasting them below and will add this into the wiki too.
Don't hesitate to ask more questions as it will help me to complete/clarify.

In TriaxialTest.h :

/"This preprocessor is designed to :
1/ generate random loose packings and compress them under isotropic confining stress, either squeezing the packing between moving rigid boxes or expanding the particles while boxes are fixed (depending on flag "InternalCompaction"). 2/ simulate all sorts triaxial loading path (there is however a default loading path corresponding to constant lateral stress in 2 directions and constant strain rate on the third direction) Essential engines : 1/ The TrixialCompressionEngine is used for controlling the state of the sample and simulating loading paths. TrixialCompressionEngine inherits from TriaxialStressController, which can compute stress- strain-like quantities in the packing and maintain a constant level of stress at each boundary. TriaxialCompressionEngine has few more members in order to impose constant strain rate and control the transition between isotropic compression and triaxial test. 2/ The class TriaxialStateRecorder is used to write to a file the history of stresses and strains. 3/ TriaxialTest is currently using a group of classes including GlobalStiffness (data), GlobalStiffnessCounter (updater) and GlobalStiffnessTimeStepper to compute an appropriate dt for the numerical scheme. The TriaxialTest is the only preprocessor using these classes in Yade because they have been developped AFTER most of preprocessor examples, BUT they can be used in principle in any situation and they have nothing specifically related to the triaxial test. @note TriaxialStressController::ComputeUnbalancedForce(...) returns a value that can be usefull for evaluating the stability of the packing. It is defined as (mean force on particles)/(mean contact force), so that it tends to 0 in a stable packing. This parameter is checked by TriaxialCompressionEngine to switch from one stage of the simulation to the next one (e.g. stop isotropic confinment and start axial loading)"/



There is also some details on the time step determination in GlobalStiffness.h :

/ "The minimum eignen-period in a collection of contacting bodies can be computed from the eigen values "ei" of the global stiffness matrix. An acceptable approximation of max(ei) may be obtained using the diagonal terms of the non-diagonalised matrix. This class contains two Vector3r where the components of the vector are the diagonal terms of the matrix Mk (3 components for translation + 3 components for rotation)."/



Can you send me a few (like 4) sphere packings so that I have something
to start with?

I attach a 5 spheres exemple to this email. Its created with the TriaxialTest exemple, and with flags internalCompaction=false (boxes will move during compaction stage) and autoCompressionActivation=true (up/down walls will start to move at constant speed in stage 2, after the packing is stabilized). It will generate a txt file called "WallStresses" with timestep / stress / strain in columns


Are you implementing periodic BC in yade? I had a few ideas how to do
that, it would not be too difficult: some changes to the collider and to
the interaction dispatcher, that would be able to handle "phantom"
elements (periodic copies of existing ones) and their interactions with
real elements. I was facing the question whether to have just
xyz-periodicity or something more generic, that would allow axisymmetry,
for example. But it is no relevant to decide now.
No, nobody is implementing periodic BC yet. But we have colleagues using this type of BC in their own codes. I'd like to understand how you can define a periodic axisymmetry... xyz-periodicity should be general enough IMHO.

And how about "minimum boundary conditions" we were discussing in Prague?
Well... yeah... one more interesting type of BC, but I'm not implementing this now. If you feel like you can do it, go ahead ;)

 Too bad that cgal is not as whole under (L)GPL, as some
of its modules are restricted to non-commercial apps IIRC.

Too bad indeed. I'm everything but expert in licence issues... is it a problem to use modules that are restricted to non-commercial apps, given that Yade is not? If you look for triangulation tools, make sure they have "weighted" Delaunay (also called "regular" Delaunay) which is for spheres, not for points. It can make a big difference in the final triangulation when you have a large spectrum of particles sizes.
Supposing "small displacements", the triangulation would be done very
rarely, perhaps every 1e4 iterations or even just at the beginning. We
would have to try whether it converges.
I agree, you don't have to update the triangulation very often. Triangulating 1e4 spheres takes less than 1sec with CGAL, so even updating it each 1e3 cycles would not hurt.

What is the principle of
membrane confinement? Isn't it the same as what I want to do?
In membrane confinment, you simulate the membrane itself, with its own rigidity and mass, and you apply a constant pressure on one side of it. So it's a bit more complex - mechanicaly speaking - than applying a constant pressure directly on the particles, it is also closer to the real triaxial tests on sands. Not sure if it's better or not for applying boundary conditions though.

Bruno

--

_______________
Chareyre Bruno
Maitre de conference

Institut National Polytechnique de Grenoble
Laboratoire 3S (Soils Solids Structures) - bureau E145
BP 53 - 38041, Grenoble cedex 9 - France
Tél : 33 4 56 52 86 21
Fax : 33 4 76 82 70 00
________________

Attachment: scene5spheres.xml.tar.gz
Description: GNU Zip compressed data

_______________________________________________
Yade-users mailing list
Yade-users@xxxxxxxxxxxxxxxx
https://lists.berlios.de/mailman/listinfo/yade-users

References