Simulating an elastic beam/cuboid

Asked by Paul Pircher

Dear Yade community,

I am kinda new to Yade and I am still learning about all the possibilities that Yade offers to simulation complex material behaviour. However, it seems I want to try something that was not used a lot before (or I am bad in researching) and I need some guidance on how to proceed.

What is my application:

I want to simulate an elastic beam in Yade with the discrete element method.

What I found out so far:

There are already examples for this like "fast bending beams" [1] which uses nodes and cylinderConnection together with high cohesion parameter values to simulate bending "sticks".
Other examples show the use of gridNodes and gridConnection like "simple_grid_falling" [2].
Furthermore there is a paper for deformable structures in yade aswell from the Particles2015 conference. [3]

What I want to achieve:

I want my elastic beam to be an actual cuboid with a cross-section of a rectangle and not a cylinder with spheres at the top and the bottom.
To be more precise: The surface of the beam has to be (kind of) flat and edges and corners should be somewhat accurate.
This beam or cuboid is then loaded with a force and presses onto a bed of particles.
The beam deformation and the particles displacement would be of interest.

Some ideas so far:

First thought: Coupling DEM with FEM, but this will consume way too much computational power (and time) that I don't have. Furthermore as I saw how fast these connection approaches could work in Yade I kind of want to stay in DEM solely.

I thought about building up my wanted beam with lots of gridNodes and gridConnections so it builds a 3D-mesh as commonly seen in finite element method simulations.
However, I won't achieve a smooth surface without any grooves where spherical particles will be pushed into as soon as force is applied. This effect would highly influence the simulation outcome as friction becomes higher, because of this geometrical effect.

The actual questions:

A. Are there further methods in yade on simulating deformable bodies that could work for that application?

B. What is the actual difference between the cylinder-connection approach and the grid-connection approach if there is any?

C. Why is cohesion/the connections so important here? I know that the particles aren't bonded, but if they stick together because of cohesion why do I need a connection between them? Or vice-versa. Where does the actual stiffness of the beam-element come from?

D. Is it possible to use boxes or cubes instead of spherical nodes and cylinders as connection? If yes, how?

[1] https://yade-dem.org/doc/tutorial-more-examples-fast.html#reffastbendingbeams
[2] https://yade-dem.org/doc/tutorial-more-examples-fast.html#reffastsimple-grid-falling
[3] https://www.researchgate.net/publication/282996677_A_general_method_for_modelling_deformable_structures_in_DEM

Question information

Language:
English Edit question
Status:
Expired
For:
Yade Edit question
Assignee:
No assignee Edit question
Last query:
Last reply:
Revision history for this message
Launchpad Janitor (janitor) said :
#1

This question was expired because it remained in the 'Open' state without activity for the last 15 days.

Revision history for this message
Jan Stránský (honzik) said :
#2

Hello,

> I am kinda new to Yade

welcome :-)
and sorry for late reply

> This beam or cuboid is then loaded with a force and presses onto a bed of particles.

what is "bed of particles"? spherical particles?

> A. Are there further methods in yade on simulating deformable bodies that could work for that application?

You can create cohesive packing of overlapping spheres. The overlapping would make the surface smoother than distinct spheres, but not perfectly flat

have a look at DeformableElement stuff [1]. I have no experience with it, but sounds relevant to your problem.

Also, as PFacets are present, something like PTetrahedron would solve your problem.

> D. Is it possible to use boxes or cubes instead of spherical nodes and cylinders as connection?

Theoretically yes. But I doubt it is currently implemented.

cheers
Jan

[1] https://gitlab.com/yade-dev/trunk/-/tree/master/examples/deformableelem

Revision history for this message
Paul Pircher (chabs300) said :
#3

Hi Jan,
thanks for your reply. Same as you I reply kinda late so no worries about that.
I read through your suggestions and tried several (new) approaches and extended my code versions in order to be able to formulate new questions.
But first let me answer to your points:

Q: what is "bed of particles"? spherical particles?
A: Yes the bed of particles consists of clumped spherical particles.

Q: You can create cohesive packing of overlapping spheres. The overlapping would make the surface smoother than distinct spheres, but not perfectly flat
A: It seems like I don't have to deal with the geometrical roughness since the approach with PFacets (from the paper I linked) builds a flat surface. Nevertheless, thanks for the suggestion!

Q: have a look at DeformableElement stuff [1]. I have no experience with it, but sounds relevant to your problem.
A: I had a first look at it and it seemed to be completely different to my approach so far. Therefore, I remained in modelling my elastic cuboid with Nodes, GridConnections and PFacets. Further down I explain my current modelling status.

Q: Also, as PFacets are present, something like PTetrahedron would solve your problem.
A: I just had a 2-minute search for PTetrahedron, but I did not find any information for that in the documentation or launchpad. Would you mind linking me something that explains your suggestion?

Q: Theoretically yes. But I doubt it is currently implemented.
A: Yes, I thought so, but right now it does not seem to be relevant.

My current modelling status:

General: I tried to model a simple beam that is fixed on one end and free on the other. That should lead to a bend beam like in [1] that can be compared to the analytic version. The only force acting on the beam is its own weight. What I exactly mean is shown in [1] in the section “Beam deflection tables” for a cantilever with uniform distributed load.

I followed the approach of the papers [2] and [3] in two different ways.
For the first one, I developed my own algorithms for creating my beam. First, all the nodes a created with given distance in between them. Then a grid is built up connecting them, but at first only a cuboid grid. This means that the complete beam is a big grid of little cubes. So, there are no cross-connections implemented yet that would divide the grid areas into triangles for putting PFacets in there.
In the next step I developed code for implementing cross-connections on the surfaces of the beam (so not inside) and creating PFacets in between them.
That leads to a beam, that has a smooth surface thanks to the PFacets and still has a grid structure inside (without PFacets, only grid connections).
According to my ideas that should lead to a simple but solid structure.
Right now, it only leads to an error message as follows:
<WARNING> InteractionLoop:135 virtual void yade::InteractionLoop::action(): IGeomFunctor returned false on existing interaction!
Segmentation fault (core dumped)
I did not research that error yet, but if someone has an idea where I might want to start looking for details, I would not mind.
Furthermore, I do not have a publishable code yet as it is not well commented, fuzzy and my comments are in german. I will upload the script if that error proceeds to exist.

For the second approach I designed a meshed beam in the software “gmsh”, meshed it there, exported it as a .mesh-file and imported it to yade via the gmshPFacet()-function. It works smoothly and leads to a fully working simulation. The only issue I have is that even if I create a 3D-mesh in gmsh, it will only form a surface-structure in yade. That means it will break it down to a 2D-surface mesh again.

For comparison, I plottet the deflection of the beam at the very end. Not surprisingly it does not lead to the same deflection as the analytical version, neither the mass nor mass-distribution is correct. Though these two points are other problems.
Right now, I am focusing to get my scripts to work and the beam to behave like it is supposed to be. Without PFacets on the surface the beam shows completely wrong mechanical behaviour that would not be acceptable. Furthermore, it only works for small forces and small deflections as for higher density or higher gravity (the two ways of increasing the load on the beam that I tried) the surface breaks down and/or starts to buckle. That is the reason why I want to have a volume grid/mesh with connections on the inside of the beam to prevent surface crashes and being able to load it with higher forces.
Hopefully, I will be able to collect some picture of the simulation soon. Together with a code sample I could image that I would be easier to understand what I am doing. I still wanted to answer “in time” and before holidays.
Best regards!

[1] https://mechanicalc.com/reference/beam-analysis
[2] https://www.researchgate.net/publication/282996677_A_general_method_for_modelling_deformable_structures_in_DEM
[3] https://doi.org/10.1016/j.geotexmem.2015.07.015

Revision history for this message
Jan Stránský (honzik) said :
#4

> Q: Also, as PFacets are present, something like PTetrahedron would solve your problem.
> A: I just had a 2-minute search for PTetrahedron, but I did not find any information for that in the documentation or launchpad. Would you mind linking me something that explains your suggestion?

would = if it is implemented :-) currently it is not (AFAIK), therefore you did not find it :-)

cheers
Jan

Revision history for this message
Launchpad Janitor (janitor) said :
#5

This question was expired because it remained in the 'Open' state without activity for the last 15 days.