How to create a solid polyhedron capable of interacting with gridConnections?

Asked by Rohit John

Hello all,

I would like to model the interaction between an arbitrary shape(defined by a gts file) and a flexible rod. I am using gridNodes and gridConnections to model the flexible rod. I thought I could use pFacets to model the arbitrary shape. However, I found that this pfacet body is hollow. Moreover, when I scale the size of this shape (lets say its a cube and I scale the side length by 2), its mass is not scaling as expected (I expect the cube mass to increase 8 times, but I got 2). I thought I could use polyhedron [1], but I did not find an Ig2 functor for polyhedra and gridConnection. Do you know how to model a shape that is capable of interacting with a gridConnection?

kind regards,
Rohit John

[1] https://yade-dem.org/doc/yade.utils.html?highlight=polyhedron#yade.utils.polyhedron

Question information

Language:
English Edit question
Status:
Solved
For:
Yade Edit question
Assignee:
No assignee Edit question
Solved by:
Rohit John
Solved:
Last query:
Last reply:
Revision history for this message
Jan Stránský (honzik) said :
#1

Hello,

> I found that this pfacet body is hollow

is it a problem? why?

> its mass is not scaling as expected

you can set any arbitrary mass yourself

> but I did not find an Ig2 functor for polyhedra and gridConnection.

There is no such implemented. You can implement your own, but the PFacet approach is the easy way to go IMO

> Do you know how to model a shape that is capable of interacting with a gridConnection?

yes, using pfacets :-)

cheers
Jan

Revision history for this message
Rohit John (rohitkjohn) said :
#2

Dear Jan,

>> I found that this pfacet body is hollow
> is it a problem? why?
If it is possible to set an arbitrary mass to the pfacet, is it possible to assign an arbitrary mass moment of inertia (MMOI)? From what I understand I can set the mass and MMOI of each individual grid nodes. But is there a way to assign this value to the whole pfacet?

Correct me if I am wrong, I found that gridConnections are assigned mass. But the force acting on a gridConnection is linearly distributed to the grid nodes. This implies the gridConnections do not take part in dynamics. Then why do they have mass?

Kind regards,
Rohit K. John

Revision history for this message
Rohit John (rohitkjohn) said :
#3

Hello,

Is it possible to add the pFacet body to a clump and then assign the clump mass and MMOI? I tried using

O.bodies.appendClumped(
    [O.bodies[i] for i in node_id_list]
)

Node_id_list contains the IDs of the grid nodes. But I got the error
IndexError: Body already has id 3969 set; appending such body (for the second time) is not allowed.

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

Use O.bodies.appendClumped [1] for bodies that are not already in O.bodies.
For already added bodies, use O.bodies.clump [2]

I don't know pfacet stuff almost at all, but in principle you can set mass and inertia independently to any body. Try :-) or somebody else has to answer..

cheers
Jan

[1] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.BodyContainer.appendClumped
[2] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.BodyContainer.clump

Revision history for this message
Rohit John (rohitkjohn) said :
#5

Dear Jan,

Thanks for your answer, I tried that and it worked.

Kind regards,
Rohit K. John

Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#6

> This implies the gridConnections do not take part in dynamics. Then why do they have mass?

I can't tell precisely. There should be a way to build them with zero-mass by default but it wouldn't change anything in the output, so I guess nobody found interest in implementing it.

B

Revision history for this message
Bruno Chareyre (bruno-chareyre) said :
#7

> I found that this pfacet body is hollow.

Indeed, it is a sort of shell model.

It is always possible to add interactions between nodes across the hollow domain, emulating non-hollow solid somehow. But there are probably more efficient techniques to achieve such a thing if it is really the objective. For instance an actual decomposition into finite/difference/volume/whatever elements, so that there is a global stiffness matrix involving all nodes at once, and giving forces on them by a matrix*vector multiplication. PFacets could still be used to represent external shape and control interactions with other objects, but not for emulating a shell.

Bruno

Revision history for this message
Rohit John (rohitkjohn) said :
#8

Dear Bruno,

I pointed out the fact that pfacet bodies are hollow because I wanted to simulate the dynamics of a solid body as opposed to a hollow one. I could achieve this another way by changing the mass moment of inertia. The only way I know how to do that will change the mass of the pfacet body. The bottom line is I want to control the mass and the moment of inertia independently. I thought having hollow and solid bodies could be away to control the moment of inertia. I think it is a good idea to have interactions in the interior part of the pfacet body, but this is not what I want.

Kind regards,
Rohit K. John