Re: [Yade-users] [Question #696480]: PFacet model - contact data mining

2021-05-31 Thread Paul Pircher
Question #696480 on Yade changed:
https://answers.launchpad.net/yade/+question/696480

Status: Answered => Open

Paul Pircher is still having a problem:
Hi there,
currently I am not sure whether to keep that question open or if I should close 
it.
Apparently, there are several issues with PFacets that will be worked on by the 
dev team. 
So how may I proceed? 
Was there already an update that I missed for PFacets?
Cheers, Paul

-- 
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 #696480]: PFacet model - contact data mining

2021-05-07 Thread Paul Pircher
Question #696480 on Yade changed:
https://answers.launchpad.net/yade/+question/696480

Paul Pircher posted a new comment:
Hi there,
now I got some details and screenshots ( https://imgur.com/a/3CQHT1G ).

I was right: All interactions were real. I plotted O.interactions.countReal() 
and it showed either 18 or 21 interactions. 
18 for no external interaction is clear as the cube I used should have 18 
interactions since each gridConnection enables one gridNode-gridNode 
interaction. 
Hence, the sphere contact leads to 3 interactions at that edge position. 

Also as seen on the screenshots, the interacting bodies are only PFacets
with one not even close to the contact.

I only did very few changes in the script but for completeness in paste
the script I used to generate these screenshots. Please note the
iteration period for the plot is an odd number.

###

from yade import plot, qt
import os, sys, time
from yade.gridpfacet import *
import numpy as np, math

""" All manual entries for the simulation """
O.dt = 1e-8 # timestep

node_mat_name = 'gridNodeMat'
node_r = 10 * 1e-3 # radius for the nodes, cylinders and pfacets
node_E = 52.*1e9 # (concrete)
node_poisson = 0.167
node_rho = 2750
node_phi = 35. 
node_normal_coh = 3e1000 # high values to not lose node interactions. total 
elasticity, no plasticity
node_shear_coh = 3e1000

pfacet_mat_name = 'pFacetMat' # this material has no influence on the beam 
stiffness, only for contacts
pfacet_E = node_E
pfacet_poisson = node_poisson
pfacet_rho = node_rho
pfacet_phi = node_phi

color = [0, 0, 1]   # color for certain bodies (PFacets)

sphere_mat_name = 'sphereMat'   
sphere_poisson = 0.2
sphere_phi = 24.   
sphere_E = 30.*1e6  
sphere_rho = 2660 

sphere_r = 40 * 1e-3 # radius of the penetrationg sphere
sphere_v = -0.1*100 # velocity of the penetrating sphere

dim_x = 0.5 # length in x-direction of the cuboid
dim_y = 0.6 # width of the cuboid
dim_z = 0.7 # height of the cuboid

# initial position of the penetrating sphere
sphere_x = (1/2) * dim_x 
sphere_y = 0
sphere_z = dim_z + sphere_r + node_r

engine_gravity = (0,0,0)# gravity acceleration
engine_damping = 0.0# general damping factor

plot_label = "plotter"
plotData_period = 51# iterations, uneven for changing nr of interactions

"""" The simulation engine """

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Node_Aabb(), 
Bo1_GridConnection_Aabb(), Bo1_PFacet_Aabb(), ]),
InteractionLoop(
[Ig2_GridNode_GridNode_GridNodeGeom6D(), 
Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),
Ig2_Sphere_PFacet_ScGridCoGeom(), Ig2_PFacet_PFacet_ScGeom(),
Ig2_Sphere_GridConnection_ScGridCoGeom(), Ig2_Sphere_Sphere_ScGeom(), 
],   

[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=True),
Ip2_FrictMat_FrictMat_FrictPhys() ],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), 
Law2_ScGeom_FrictPhys_CundallStrack(), 
Law2_ScGridCoGeom_FrictPhys_CundallStrack(), 
Law2_GridCoGridCoGeom_FrictPhys_CundallStrack(), ]
),
NewtonIntegrator(  gravity=engine_gravity,  damping=engine_damping),
PyRunner( command = 'addPlotData()', iterPeriod = plotData_period),
]

""" Materials """
O.materials.append( 
CohFrictMat( young = node_E, poisson = node_poisson, density = node_rho,
frictionAngle = radians(node_phi), normalCohesion = node_normal_coh,
shearCohesion = node_shear_coh, momentRotationLaw = True,
label = node_mat_name
) 
)
O.materials.append( 
FrictMat( 
young = pfacet_E, poisson = pfacet_poisson, density = pfacet_rho,
frictionAngle = radians(pfacet_phi),
label = pfacet_mat_name 
)
) 
O.materials.append( 
FrictMat( 
young = sphere_E , poisson = sphere_poisson, density = sphere_rho,
frictionAngle = radians(sphere_phi),
label = sphere_mat_name
) 
)

""" Bodies """
# adding the 8 corner nodes of the cuboid
nodesIds = [] # holds all gridnode ids
nodesIds.append( O.bodies.append( gridNode( [0,0,0], node_r, wire=False, 
fixed=True, material='gridNodeMat' ) ) )
nodesIds.append( O.bodies.append( gridNode( [dim_x,0,0], node_r, wire=False, 
fixed=True, material='gridNodeMat' ) ) )
nodesIds.append( O.bodies.append( gridNode( [0,dim_y,0], node_r, wire=False, 
fixed=True, material='gridNodeMat' ) ) )
nodesIds.append( O.bodies.append( gridNode( [dim_x,dim_y,0], node_r, 
wire=False, fixed=True, material='gridNodeMat' ) ) )
nodesIds.append( O.bodies.append( gridNode( [0,0,dim_z], node_r, wire=False, 
fixed=True, material='gridNodeMat' ) ) )
nodesIds.append( O.bodies.append( gridNode( [dim_x,0,dim_z], node_r, 
wire=False, fixed=True, material='gridNodeMat' ) ) )
nodesIds.append( O.bodies.append( gridNode( 

Re: [Yade-users] [Question #696480]: PFacet model - contact data mining

2021-05-07 Thread Paul Pircher
Question #696480 on Yade changed:
https://answers.launchpad.net/yade/+question/696480

Paul Pircher posted a new comment:
Hi Bruno,
thanks for your answer!
Only a short response from my side as well. 
The last time I checked all 3 interactions were real at the contact. 
The corresponding bodies in contact with the penetrating sphere were only 
pfacets. One of the pfacet wasn't even close to the contact location. No 
interaction with a grid-connection that might be expected. 

I found out that the case for zero interactions is more complex. 
At even iteration numbers there were 0 interactions, at odd iteration numbers 
there were 3 interactions. 

I noticed the post where general PFacet problems are discussed and had a look 
at it.
The thing is that I am often not sure if I found something of serious interest 
(bug, unintended feature, etc.) or my limited knowledge is the issue. I am not 
a software engineer and therefore I struggle with too complex code especially 
with C++. 
So I rather post general questions here. 

I will prepare my examples, get some screenshots and post them here
again. Maybe that helps.

> From the top of my head: if you assign another material to the PFacets
and to the spheres, and if you use the corresponding functors (just like
for changing the sphere-sphere contact model) then it should change the
contact model.

I need to try that again. If this works it would save me a ton of work. 
Although I am using a contact model that was developed at my departement. So it 
isn't implemented in YADE straight away and therefore might cause some issues. 

Best regards,
Paul

-- 
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 #696480]: PFacet model - contact data mining

2021-05-04 Thread Paul Pircher
Question #696480 on Yade changed:
https://answers.launchpad.net/yade/+question/696480

Status: Expired => Open

Paul Pircher is still having a problem:
Can someone give me more insight here? :)

-- 
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 #696480]: PFacet model - contact data mining

2021-04-12 Thread Paul Pircher
Question #696480 on Yade changed:
https://answers.launchpad.net/yade/+question/696480

Paul Pircher gave more information on the question:
Since I just had a look at more positions: 
It seems like that only the contact of the sphere at the position of a 
gridconnection at the edge of the cuboid is an issue. 
Depending from what direction the sphere penetrates the cuboid I either get 
zero or three interactions. 
At any other position on the cuboid (somewhere in the middle of a side of the 
cuboid or even at the corner) I receive the expected 1 interaction.

I am still clueless about that edge contact though. 
With zero interactions I don't know where my wanted data is stored (e.g. 
penetration depth).
With 3 interactions I don't know what interaction is the "right" one or how 
those multiple but similar contacts are handled. 
As always: The contact behaviour according to position and velocity of the 
sphere works perfectly fine at every location.

Cheers!

-- 
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 #696480]: PFacet model - contact data mining

2021-04-12 Thread Paul Pircher
Question #696480 on Yade changed:
https://answers.launchpad.net/yade/+question/696480

Status: Answered => Open

Paul Pircher is still having a problem:
Hi and thanks for your input!

I know how I am supposed to receive parameters of interactions.
In my case, as can be seen in the code in the "PyRunner Function" - section, I 
am using len( O.bodies[idSphere].intrs() ) to count the number of interactions 
(which should return the number of all interactions with the sphere).
Furthermore I am extracting the phys-norm-force from the first interaction with 
the sphere via O.bodies[idSphere].intrs()[0].phys.normalForce.norm(). Same 
method for the penetrationDepth. 
I also had a look at O.forces.f(idSphere)[2] to obtain the force on the sphere 
in Z-direction with a different method.

However, the problem that I am facing in this particular example with
PFacets is, that using this approach does NOT provide correct data that
are in accordance with the visual observations. NO INTERACTION can be
found in here. Which is why I do not receive a penetrationDepth
parameter.

Since I am using the same approach and functions as you mentioned, I
assume that I the data mining itself would be correct, but my data is
found somewhere else. And I don't know where.

Since the observation of position and velocity does show correct behaviour, 
somewhere the contact has to be computed. 
Although there seems to be no interaction for that. 

I hope that this is understandable.


> I do not see one that would properly fit YADE design.
Alright, thank you. This is also what I concluded. Seems like I am going to 
have a look at the pfacet source code in order to know what I need to adapt or 
add to obtain the behaviour of a different contact model.
Since the pfacet approach works fine for me so far (except that data mining 
issue mentioned above) I think, that only few adaptations need to be done to 
change the physical computations of the contact itself. 

Thanks!

-- 
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 #696480]: PFacet model - contact data mining

2021-04-12 Thread Paul Pircher
Question #696480 on Yade changed:
https://answers.launchpad.net/yade/+question/696480

Paul Pircher posted a new comment:
I assume that this is just spam, but I find nothing to report it.
Hopefully that message will get attention .Cheers.

-- 
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 #696480]: PFacet model - contact data mining

2021-04-09 Thread Paul Pircher
New question #696480 on Yade:
https://answers.launchpad.net/yade/+question/696480

Hello there!
Recently I've been working a lot with the PFacet approach to obtain an elastic 
model for bigger but simple bodies in DEM simulations. 
I managed to obtain correct mechanical behaviour of my elastic body. Now I am 
researching the contact with external particles.

I made up a simple example of a PFacet cuboid that is penetrated by a sphere. 
The goal is to do that at every different position on the cuboid (edge, corner, 
intersection...) to verify that at all positions the same contact behaviour 
(penetration depth, force etc.) appears. I do this in order to get a better 
understanding of how exactly the model works (coding wise) as I want to change 
the contact model to an adapted hertz-mindlin model afterwards. 

When I perform this penetration test e.g. within the area of a PFacet and on 
the intersection of 2 PFacets (so directly on a cylinder connection) I can see 
that the behaviour is according to the Cundall Strack law, which was expected, 
and that I only have 1 interaction on the sphere. 
However, if I perform this test on the very edge of the cuboid, like the 
following script shows, I get unexpected results. 

Mostly there is no interaction with the sphere, but according to the position 
and velocity of the sphere it behaves correctly and identical to other sphere 
positions (as mentioned before). 

If I go through the simulation step by step, at some timesteps 3 interactions 
are found. Those 3 interactions are between the sphere and 3 different PFacets, 
one of them should be not even close to the sphere. If 3 interactions are 
found, I would have expected that there are 2 interactions with PFacets and 1 
with the cylindrical connection. 
Still, this isn't in accordance with the other tests where the sphere is at a 
different position and I am still not able to extract the wanted data. 

So my question is: How can I correctly mine the contact parameters like 
penetration depth, force on the sphere and number of interactions for my 
penetration tests?
Am I using the wrong functions or am I looking at the wrong spot?

Thanks in advance!

P.S.: Since it will be needed in the future: If there is an "easy" way (only 
changing python code, not c++ source code) to change the contact law for the 
PFacet - external particles interactions, I would be happy to receive hints. 

Working with YADE 2020.01a on Ubuntu 20.04.2 LTS

##

from yade import plot, qt
import os, sys, time
from yade.gridpfacet import *
import numpy as np, math

""" All manual entries for the simulation """
O.dt = 1e-8 # timestep

node_mat_name = 'gridNodeMat'
node_r = 10 * 1e-3 # radius for the nodes, cylinders and pfacets
node_E = 52.*1e9 # (concrete)
node_poisson = 0.167
node_rho = 2750
node_phi = 35. 
node_normal_coh = 3e1000 # high values to not lose node interactions. total 
elasticity, no plasticity
node_shear_coh = 3e1000

pfacet_mat_name = 'pFacetMat' # this material has no influence on the beam 
stiffness, only for contacts
pfacet_E = node_E
pfacet_poisson = node_poisson
pfacet_rho = node_rho
pfacet_phi = node_phi

color = [0, 0, 1]   # color for certain bodies (PFacets)

sphere_mat_name = 'sphereMat'   
sphere_poisson = 0.2
sphere_phi = 24.   
sphere_E = 30.*1e6  
sphere_rho = 2660 

sphere_r = 40 * 1e-3 # radius of the penetrationg sphere
sphere_v = -0.1*100 # velocity of the penetrating sphere

dim_x = 0.5 # length in x-direction of the cuboid
dim_y = 0.6 # width of the cuboid
dim_z = 0.7 # height of the cuboid

# initial position of the penetrating sphere
sphere_x = (1/2) * dim_x 
sphere_y = 0
sphere_z = dim_z + sphere_r + node_r

engine_gravity = (0,0,0)# gravity acceleration
engine_damping = 0.0# general damping factor

plot_label = "plotter"
plotData_period = 50# iterations

 The simulation engine """

O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_Sphere_Aabb(), Bo1_Node_Aabb(), 
Bo1_GridConnection_Aabb(), Bo1_PFacet_Aabb(), ]),
InteractionLoop(
[Ig2_GridNode_GridNode_GridNodeGeom6D(), 
Ig2_GridConnection_GridConnection_GridCoGridCoGeom(),
Ig2_Sphere_PFacet_ScGridCoGeom(), Ig2_PFacet_PFacet_ScGeom(),
Ig2_Sphere_GridConnection_ScGridCoGeom(), Ig2_Sphere_Sphere_ScGeom(), 
],   

[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=True),
Ip2_FrictMat_FrictMat_FrictPhys() ],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment(), 
Law2_ScGeom_FrictPhys_CundallStrack(), 
Law2_ScGridCoGeom_FrictPhys_CundallStrack(), 
Law2_GridCoGridCoGeom_FrictPhys_CundallStrack(), ]
),
NewtonIntegrator(  gravity=engine_gravity,  damping=engine_damping),
PyRunner( command = 'addPlotData()', iterPeriod = plotData_period),
]

""" Materials """
O.materials.append( 
CohFrictMat( young = node_E, poisson = node_poisson, density = node_rho,
frictionAngle = 

Re: [Yade-users] [Question #695058]: Bending beams mass computation

2021-02-15 Thread Paul Pircher
Question #695058 on Yade changed:
https://answers.launchpad.net/yade/+question/695058

Paul Pircher posted a new comment:
>  The rotational and normal/shear springs are together in between two
nodes.

Alright, thanks for your input!

I am starting to get the hang of it.

Cheers,
Paul

-- 
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 #694945]: How to run deformableBodies examples

2021-02-02 Thread Paul Pircher
Question #694945 on Yade changed:
https://answers.launchpad.net/yade/+question/694945

Paul Pircher posted a new comment:
And I again forgot something:
[1] https://answers.launchpad.net/yade/+question/695058
[2] https://answers.launchpad.net/yade/+question/694146

-- 
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 #694945]: How to run deformableBodies examples

2021-02-02 Thread Paul Pircher
Question #694945 on Yade changed:
https://answers.launchpad.net/yade/+question/694945

Status: Open => Solved

Paul Pircher confirmed that the question is solved:
Hey there,

thanks Bruno for the insight information. That helps.

As you know from my other questions (bending beam mass computation [1] ) I am 
trying to model a simple elastic cuboid. On my way to find literature and 
possible methods I also wanted to try out the approach on this deformable 
elements, but I got stuck really quick. 
Knowing that this might be too experimental for my current project, I will 
remain on using the node - connection - pfacet approach for now. :)

I gave a little more insight into my application in this launchpad
question if anyone is interested [2].


> You are welcome to modify DeformableElement as you see fit, and become a new 
> expert in the field.

Haha thanks Janek. I am currently trying to do so, but I am still in my very 
beginning and focusing to progess in my project/master thesis, as I rely on 
that.
As mentioned above, I will remain with the "simplier" PFacet approach for 
deformable bodies for now. 
If the time and need allows it I will continue on deformable elements. 
I basically wanted to make sure I at least tried the examples of all approaches 
I found, so I can decide on what to focus. 
I hope that is understandable :)

> I just started examples/deformableelem/MinimalTensileTest.py and I see
that the box is getting deformed.

I see. I tried it with testDeformableBodies.py and I received that error at the 
preprocessing. 
I will give it another try.

Thanks to both of you for you input! 
Your help is very much appreciated!

I will definitely need some more help in the future on that topic so
stay tuned - I am gonna annoy you! :)

I will mark this thread as solved for now.

Cheers, Paul

-- 
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 #695058]: Bending beams mass computation

2021-02-02 Thread Paul Pircher
Question #695058 on Yade changed:
https://answers.launchpad.net/yade/+question/695058

Paul Pircher posted a new comment:
What I forgot:

> Currently the only option is to do that in your script. If you make it
in a python function we can include it to source alongside the
cylinderConnection().

I am totally happy for now if I am able to set the total mass of the body 
correctly so I do not need to consider the volume of the PFacets as I already 
know the total mass that the body should have. 
If it becomes important for me I will provide an helper function for that!

Cheers

-- 
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 #695058]: Bending beams mass computation

2021-02-02 Thread Paul Pircher
Question #695058 on Yade changed:
https://answers.launchpad.net/yade/+question/695058

Paul Pircher posted a new comment:
> You are welcome, nice to hear that someone is using it.

I can guarantee you that it will not be the last time I post questions
on this topic on the yade launchpad. For simple deformable bodies, my
team and I will most likely use it a lot in the future as soon as I know
exactly how to use it and managed to properly simulate correct beahviour
of a simple body. 

> Set the mass of its nodes. That's all.

Alright, thanks. Just applying the correct node density to achieve the
same total mass that I want it to have. Total node mass = wanted total
mass. Got it!

> I would say they are two alias for the same thing. Am I confused? have
seen one or the other in different scripts?

As far as I know they are multiple similar approaches in the “More examples” 
section of the yade documentation. Just to summarize:
-   Chained-cylinders
-   Cylinders (or cylinder-connections. The example I initially used to 
open this question thread.) 
-   Grids
-   PFacet (although this uses creators and gridNodes and gridConnections 
and only adds the PFacet)
 Since I am a newbie, I am not yet able to tell what the exact differences are, 
but they are more or less used for the same things (I believe). 

> if cohesion is small you can get get plastic deformation of the beam

Ah I see. So, it is kind of needed to apply resistance to pulling. As particles 
only “generate” a force when moving towards, but not when moving away from each 
other. 
Linear elastic behaviour is totally fine for my use for now. Let’s see where 
the journey goes. 

> Bending is defined for interactions, based on the differential
rotation of two nodes. It is not defined "per node".

Since I had a look in the paper you linked: Is it correct to imagine the
bending behaviour as a rotational spring like in figure 3 of [3]? This
what I initially meant when I proposed the question on how the bending
behaviour “in a node” is computed. As a node itself can’t bend it is
somewhat clear that it needs to happen in the interactions as this links
multiple nodes.

> Effeindzourou PhD dissertation

Nevertheless it is a good summary, thanks for the hint!

> There is an old 2D version of the same thing described in [3]

As in the question above this gave some basic insights (probably). So
this is still of value. Thanks for the suggestion!

Best regards and thanks again,
Paul

[3] https://www.yade-
dem.org/w/images/1/1b/Chareyre%26Villard2005_licensed.pdf

-- 
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 #695058]: Bending beams mass computation

2021-02-02 Thread Paul Pircher
Question #695058 on Yade changed:
https://answers.launchpad.net/yade/+question/695058

Status: Answered => Solved

Paul Pircher confirmed that the question is solved:
Thanks Bruno Chareyre, that solved my question.

-- 
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 #694945]: How to run deformableBodies examples

2021-02-01 Thread Paul Pircher
Question #694945 on Yade changed:
https://answers.launchpad.net/yade/+question/694945

Paul Pircher gave more information on the question:
Hi Robert,

I did recompile yade recently and also installed yadedaily to try out if the 
example for deformable elements now works.
Sadly I still receive the same error as in the original question. Details below:

In [1]: printAllVersions()

```
Yade version   :  20210124-4946~5bc75e5~focal1
Yade features  :  BoostLog RealHP mpmath PrecisionDouble Odeint VTK OpenMP GTS 
GUI-Qt5 CGAL PFVFLOW PFVFLOW LINSOLV MPI TWOPHASEFLOW FEMLIKE GL2PS LBMFLOW 
THERMAL PARTIALSAT PotentialParticles PotentialBlocks
Yade config dir:  ~/.yadedaily
Yade precision :  53 bits, 15 decimal places, with mpmath
Yade RealHP<…> :  (15, 33, 45, 60, 120, 150, 300) decimal digits in C++, (15, 
33) decimal digits accessible from python
```

Libraries used :

| library   | cmake| C++|
| - |  | -- |
| boost | 1.71.0   | 1.71.0 |
| cgal  |  | 5.0.2  |
| clp   | 1.17.5   | 1.17.5 |
| cmake | 3.16.3   ||
| coinutils | 2.11.4   | 2.11.4 |
| compiler  | /usr/bin/c++ 9.3.0   | gcc 9.3.0  |
| eigen | 3.3.7| 3.3.7  |
| freeglut  | 2.8.1||
| gl|  | 20190805   |
| ipython   | 7.13.0   ||
| metis |  | 5.1.0  |
| mpi   | 3.1  | ompi:4.0.3 |
| mpi4py| 3.0.3||
| mpmath| 1.1.0||
| openblas  |  |  OpenBLAS 0.3.8|
| python| 3.8.5| 3.8.5  |
| qglviewer |  | 2.6.3  |
| qt|  | 5.12.8 |
| sphinx| 1.8.5-final-0||
| sqlite|  | 3.31.1 |
| suitesparse   | 5.7.1| 5.7.1  |
| vtk   | 6.3.0| 6.3.0  |

```
Linux version  :  Ubuntu 20.04.1 LTS
Architecture   :  amd64
Little endian  :  True


 DeformableCohesiveElement:52 bool 
yade::DeformableCohesiveElement::nodepair::operator<(const 
yade::DeformableCohesiveElement::nodepair&) const: Incomplete 'if' sequence


Did you have a look into the code?

Thanks and best regards,
Paul

-- 
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 #695058]: Bending beams mass computation

2021-02-01 Thread Paul Pircher
Question #695058 on Yade changed:
https://answers.launchpad.net/yade/+question/695058

Status: Answered => Open

Paul Pircher is still having a problem:
Thanks for your detailed answer Bruno!
Nice to hear from one of the authors of the papers that build the foundation on 
my current research/work.

To make sure I understood it correctly:
The mass of the cylinders can be completely ignored. Only the mass of the nodes 
is relevant for the simulation and its results (total mass, deflection, 
deformation, forces etc). Hence, I only need to set the right density for the 
CohFrictMat for the nodes and I should be good to go in terms of correct body 
mass (if nodes have a different material than cylinders). To avoid confusion, 
setting the density of the cylinderConnection material to zero manually won’t 
do anything. Right?

Or do I need to set the density of both materials (for nodes and
connections) to the same value, so the computation does not get messed
up and I simply ignore cylinder-mass afterwards? I am reffering here to
one of the creator-functions e.g. gmshPFacet().

In other words, what do I need to do in order to set the mass of a body,
that is made out of nodes and cylinders (and maybe PFacets), to a
certain value?

Seems like I am overthinking this and it might be just a simple
comparison between wanted mass and mass of all nodes and setting the
density of all influenced bodies to corresponding value, but I just want
to be sure and safe about that.

For my application I want to simulate a beam with a rectangular cross-
section. So, I will be using many nodes, cylinder/grid connections and
PFacets. Hence it will not be a very short object and I should be “safe”
as small inaccuracies like the spherical caps won’t bother my results.

Furthermore, PFacets seem to never receive a mass, but also the mass of
the nodes does not increase as it did when connections were added.

Thanks again for you answer.

Since I work a lot with deformable structures in yade based on these to papers 
[1][2] I would have several more questions according that approach. 
Can you recommend or provide resources for that topic? Any further papers, 
examples or theory? That would help me a lot. 
As an example, what interests me I will write down some questions. 
Nevertheless, they have nothing to do with mass computation, so this is 
off-topic. 
-   What’s the difference between grid- and cylinder-connections.
-   Why is it important to set a cohesive material for the nodes with super 
high cohesive values?
-   How is the bending/mechanical behaviour in a node that connects 2 
cylinders computed? (Same thing along a connection that connects 2 PFacets)

Thanks Bruno and I hope I did not flood you with questions. 
Your help is and was very much appreciated!

Best regards,
Paul

[1] 
https://www.researchgate.net/publication/282996677_A_general_method_for_modelling_deformable_structures_in_DEM
[2] https://doi.org/10.1016/j.geotexmem.2015.07.015

-- 
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 #695058]: Bending beams mass computation

2021-01-28 Thread Paul Pircher
Question #695058 on Yade changed:
https://answers.launchpad.net/yade/+question/695058

Status: Answered => Open

Paul Pircher is still having a problem:
Hello,
thanks for you thoughts and sorry for the late reply. 
I tried several things to see how the mass is computed. It turns out there 
might be even more confusion.

If only nodes are added to the simulation, none of them have any mass at all 
(0.0kg).
As soon as CylinderConnections are added the nodes and the cylinders receive a 
mass, that is "incorrectly" computed as shown above. 

The point that they overlap is a good one. This might be the reason for
a higher mass in the simulation, but as you already have shown this
doesn't lead to a valid result either.

I found a paper that deals with those connections in yade [1]. 
In there it is told that "The mass of the cylinder element is lumped into its 
two nodes."
Which would explain the higher masses of the nodes, but on the other hand would 
mean that the cylinders don't have any mass at all. 
Did I intrepret that correctly? 
Is the paper acutally refering to this exact yade-functions or did they use 
something else? 
Since they used nodes and cylinder connections I thought this might be the same 
approach.

Would you mind sharing your thoughts on that?

Thanks for your help and best regards,
Paul

[1]
https://www.researchgate.net/publication/282996677_A_general_method_for_modelling_deformable_structures_in_DEM

-- 
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 #695058]: Bending beams mass computation

2021-01-18 Thread Paul Pircher
Question #695058 on Yade changed:
https://answers.launchpad.net/yade/+question/695058

Paul Pircher gave more information on the question:
Here the complete code for copy pasta:

# encoding: utf-8
"An example showing various bending beams."

from builtins import range
from yade.gridpfacet import *

 Parameter 
L=10.   # length of the beam
n=12# number of nodes used to generate the beam
r=L/50. # radius of the beam element

 Engines 
O.engines=[
ForceResetter(),
InsertionSortCollider([Bo1_GridConnection_Aabb()]),
InteractionLoop(
[Ig2_GridNode_GridNode_GridNodeGeom6D()],

[Ip2_CohFrictMat_CohFrictMat_CohFrictPhys(setCohesionNow=True,setCohesionOnNewContacts=False)],
[Law2_ScGeom6D_CohFrictPhys_CohesionMoment()]
),
NewtonIntegrator(gravity=(0,0,-10),damping=0.5,label='newton')
]

 Create materials and set different properties 
O.materials.append(CohFrictMat(young=1e6,poisson=0.3,density=1e1,frictionAngle=radians(10),normalCohesion=1e7,shearCohesion=1e7,momentRotationLaw=False,label='mat1'))
O.materials.append(CohFrictMat(young=1e6,poisson=0.3,density=1e1,frictionAngle=radians(10),normalCohesion=1e7,shearCohesion=1e7,momentRotationLaw=True,label='mat2'))
O.materials.append(CohFrictMat(young=3e6,poisson=0.3,density=1e1,frictionAngle=radians(10),normalCohesion=1e7,shearCohesion=1e7,momentRotationLaw=True,label='mat3'))
O.materials.append(CohFrictMat(young=1e7,poisson=0.3,density=1e1,frictionAngle=radians(10),normalCohesion=1e7,shearCohesion=1e7,momentRotationLaw=True,label='mat4'))

 Vertices 
vertices1=[]
vertices2=[]
vertices3=[]
vertices4=[]
for i in range(0,n):
  vertices1.append( [i*L/n,0,0] )
  vertices2.append( [i*L/n,1,0] )
  vertices3.append( [i*L/n,2,0] )
  vertices4.append( [i*L/n,3,0] )

 Create cylinder connections 
nodesIds=[]
cylIds=[]
cylinderConnection(vertices1,r,nodesIds,cylIds,color=[1,0,0],highlight=False,intMaterial='mat1')
cylinderConnection(vertices2,r,nodesIds,cylIds,color=[0,1,0],highlight=False,intMaterial='mat2')
cylinderConnection(vertices3,r,nodesIds,cylIds,color=[0,0,1],highlight=False,intMaterial='mat3')
cylinderConnection(vertices4,r,nodesIds,cylIds,color=[1,1,1],highlight=False,intMaterial='mat4')

 Set boundary conditions 
for i in range(0,4):
   O.bodies[nodesIds[i*n]].dynamic=False
#   O.bodies[nodesIds[i*n]].state.blockedDOFs='xyzXYZ'
#   O.bodies[nodesIds[i*n]].state.blockedDOFs='xyz'

 For viewing 
from yade import qt
qt.View()

 Set a time step 
O.dt=1e-05

 Allows to reload the simulation 
O.saveTmp()

 Added mass computation 
print(f"\nBody zero is a {O.bodies[0].shape} with a mass of 
{round(O.bodies[0].state.mass,3)}.")
ana_node_mass = (4/3)* r**3 * math.pi * O.bodies[0].material.density
print(f"The mass of a Node/sphere is {round(ana_node_mass,3)} if analytically 
computed.")

sim_total_mass = sum( [b.state.mass for b in O.bodies] ) 
print(f"\nSimulation total mass: {round(sim_total_mass,3)} kg.")
ana_beam_mass = r**2 * math.pi * L * O.bodies[0].material.density + 
ana_node_mass # because the cylinders/beam include a half-sphere at the top and 
bottom
ana_total_mass = 4*ana_beam_mass # because there are 4 beams
print(f"Analytic total mass: {round(ana_total_mass,3)} kg.\n")

-- 
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 #695058]: Bending beams mass computation

2021-01-18 Thread Paul Pircher
New question #695058 on Yade:
https://answers.launchpad.net/yade/+question/695058

Hi there,

I had a look at the bending beams example from the cylinder section in yade's 
"more examples". [1][2]

I was interested in the mechanical behaviour and analysed the mass of the beams 
to see if they are computed correctly. That is important if correct mechanical 
behaviour of the simulation is expected, because it has significant influence 
on the deflection of the beams. 

I just added the following lines at the end of the example code. I changed 
nothing in the code. I just added these lines at the very end: 

 Added mass computation 
print(f"\nBody zero is a {O.bodies[0].shape} with a mass of 
{round(O.bodies[0].state.mass,3)}.")
ana_node_mass = (4/3)* r**3 * math.pi * O.bodies[0].material.density
print(f"The mass of a Node/sphere is {round(ana_node_mass,3)} if analytically 
computed.")

sim_total_mass = sum( [b.state.mass for b in O.bodies] ) 
print(f"\nSimulation total mass: {round(sim_total_mass,3)} kg.")
ana_beam_mass = r**2 * math.pi * L * O.bodies[0].material.density + 
ana_node_mass # because the cylinders/beam include a half-sphere at the top and 
bottom
ana_total_mass = 4*ana_beam_mass # because there are 4 beams
print(f"Analytic total mass: {round(ana_total_mass,3)} kg.\n")
##


This led to the following output:

Body zero is a  with a mass of 0.524.
The mass of a Node is 0.335 if analytically computed.
Simulation total mass: 69.115 kg.
Analytic total mass: 51.606 kg.


Also printAllVersion() returns the following:

In [1]: printAllVersions()  

  

```
Yade version   :  2020.01a
Yade features  :  BoostLog Odeint VTK OpenMP GTS GUI-Qt5 CGAL MPI FEMLIKE GL2PS 
PotentialParticles PotentialBlocks
Yade config dir: ~/.yade-2020.01a
```

Libraries used :

| library   | cmake| C++|
| - |  | -- |
| boost | 1.71.0   | 1.71.0 |
| cgal  |  | 5.0.2  |
| clp   |  | 1.17.5 |
| cmake | 3.16.3   ||
| compiler  | /usr/bin/c++ 9.3.0   | gcc 9.3.0  |
| eigen | 3.3.7| 3.3.7  |
| freeglut  | 2.8.1||
| gl|  | 20190805   |
| ipython   | 7.13.0   ||
| metis |  | 5.1.0  |
| mpi   | 3.1  | ompi:4.0.3 |
| mpi4py| 3.0.3||
| openblas  |  |  OpenBLAS 0.3.8|
| python| 3.8.5| 3.8.5  |
| qglviewer |  | 2.6.3  |
| qt|  | 5.12.8 |
| sphinx| 1.8.5-final-0||
| sqlite|  | 3.31.1 |
| vtk   | 6.3.0| 6.3.0  |

Linux version: Ubuntu 20.04.1 LTS


Can someone explain to me how the mass is computed in the simulation and why it 
differs quite a lot to my analytical computation?
To ensure correct behavior (e.g. the deflection of the beam, forces acting on 
the beam like gravity) it would be necessary to obtain the correct mass of the 
whole body (and also the correct mass distribution). 

Thanks in advance! 
Best regards!


[1] 
https://gitlab.com/yade-dev/trunk/blob/master/examples/cylinders/bendingbeams.py
[2] https://yade-dem.org/doc/tutorial-more-examples-fast.html#cylinders



-- 
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 #694945]: How to run deformableBodies examples

2021-01-17 Thread Paul Pircher
Question #694945 on Yade changed:
https://answers.launchpad.net/yade/+question/694945

Status: Answered => Open

Paul Pircher is still having a problem:
Thank you for your answer and for your time!

Is there something I can do in the meantime?

The approach with deformable elements would be really interesting and helpful 
for my project.
Until now I tried playing around with Nodes, CylinderConnections and PFacets to 
model a simple deformable cantilever beam. Quite similar to one of the PFacets 
examples [1] [2].
Since it seams that it is not quite possible to achieve correct mechanical (or 
phyiscal) behaviour, I wanted to try out deformable elements to compare it with 
my previous approach. 

Thanks and best regards!

[1] https://gitlab.com/yade-dev/trunk/blob/master/examples/pfacet/mesh-pfacet.py
[2] 
https://yade-dem.org/doc/tutorial-more-examples-fast.html?highlight=more%20examples#pfacet

-- 
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 #694945]: How to run deformableBodies examples

2021-01-12 Thread Paul Pircher
Question #694945 on Yade changed:
https://answers.launchpad.net/yade/+question/694945

Status: Needs information => Open

Paul Pircher gave more information on the question:
Sorry, that I missed that. It works and here is the output:

In [1]: printAllVersions()

```
Yade version   :  2020.01a
Yade features  :  BoostLog Odeint VTK OpenMP GTS GUI-Qt5 CGAL MPI FEMLIKE GL2PS 
PotentialParticles PotentialBlocks
Yade config dir: ~/.yade-2020.01a
```

Libraries used :

| library   | cmake| C++|
| - |  | -- |
| boost | 1.71.0   | 1.71.0 |
| cgal  |  | 5.0.2  |
| clp   |  | 1.17.5 |
| cmake | 3.16.3   ||
| compiler  | /usr/bin/c++ 9.3.0   | gcc 9.3.0  |
| eigen | 3.3.7| 3.3.7  |
| freeglut  | 2.8.1||
| gl|  | 20190805   |
| ipython   | 7.13.0   ||
| metis |  | 5.1.0  |
| mpi   | 3.1  | ompi:4.0.3 |
| mpi4py| 3.0.3||
| openblas  |  |  OpenBLAS 0.3.8|
| python| 3.8.5| 3.8.5  |
| qglviewer |  | 2.6.3  |
| qt|  | 5.12.8 |
| sphinx| 1.8.5-final-0||
| sqlite|  | 3.31.1 |
| vtk   | 6.3.0| 6.3.0  |

Linux version: Ubuntu 20.04.1 LTS

-- 
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 #694945]: How to run deformableBodies examples

2021-01-12 Thread Paul Pircher
New question #694945 on Yade:
https://answers.launchpad.net/yade/+question/694945

Hi there,

lately I tried to run some of the examples for deformable elements from the 
more-examples section. 
To be precise: The testDeformableBodies.py file. [1]

Apparently something has to be done in order to run those examples as there is 
already a hint: 
"Did you compile yade with cmake option -DENABLE_FEMLIKE=1 ?"

It's is kinda straight forward, but I still some more detailed instruction for 
that. 
What exactly is that command doing?
Do I need to reinstall yade completely? Or just run the command?
Does running that command do anything that needs to be considered for future 
use? 

When I run the script without doing anything prior (like the cmake command) I 
receive the following error message multiple times:
 DeformableCohesiveElement:54 bool 
yade::DeformableCohesiveElement::nodepair::operator<(const 
yade::DeformableCohesiveElement::nodepair&) const: Incomplete 'if' sequence

Is that the error message to expect when running the script without recompiling 
it first or is this something different?

The simulation still builds up and the body is shown. It kinda looks like in 
the video of the example. 

When starting the simulation the following error occurs:

IndexErrorTraceback (most recent call last)
~/yade2020/install/bin/yade2020 in 
~/yade2020/install/bin/yade2020 in addplot()
104 
105 def addplot():
--> 106 
plot.addData(force=O.forces.f(forcebodies[1])[0],pos=(O.bodies[forcebodies[1]].state.pos[0]-initialpositions[forcebodies[1]][0]),vel=O.bodies[forcebodies[1]].state.vel[0],t=O.time,time=O.time,tm=O.time)
107 
108 for i in forcebodies:
IndexError: list index out of range



Can someone please help me to run that example? 
This could be really helpful to me if I understand that approach and can start 
to try out my own deformable element stuff. 




[1] https://yade-dem.org/doc/tutorial-more-examples-fast.html#deformableelem



-- 
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 #694146]: Simulating an elastic beam/cuboid

2020-12-22 Thread Paul Pircher
Question #694146 on Yade changed:
https://answers.launchpad.net/yade/+question/694146

Status: Expired => Open

Paul Pircher is still having a problem:
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:
 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://me

[Yade-users] [Question #694146]: Simulating an elastic beam/cuboid

2020-11-23 Thread Paul Pircher
New question #694146 on Yade:
https://answers.launchpad.net/yade/+question/694146

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

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