How to make a cube concrete specimen with polyhedrons and small balls?

Asked by weijie

Dear all,

I want to do a concrete uniaxial compression experiment, where the concrete cube specimen is composed of polyhedrons and balls. Is there a way to complete this specimen or make the balls and polyhedrons bond into a cube?

Thanks in advance.
Jie

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
Jan Stránský (honzik) said :
#1

Hello,

1) create a loose packing with spheres and polyhedrons (see e.g. [1,2,3] discussions with similar topic)
2) compress them

> Is there a way to complete this specimen or make the balls and polyhedrons bond into a cube?

what does "complete" mean?
what does "bond into" mean?

cheers
Jan

[1] https://answers.launchpad.net/yade/+question/294529
[2] https://answers.launchpad.net/yade/+question/691171
[3] https://answers.launchpad.net/yade/+question/686692

Revision history for this message
weijie (amandajoe) said :
#2

Hi Jan,

I want to create a dense pack with polyhedrons and spheres within a cube.I found that randomDensePack may be useful, but it is filled with balls.

>what does "bond into" mean?

I want to form cohesive bond in polyhedron and spherical aggregate.The aggregates using in the simulation are essentially individual particles glued with cohesive bonds and the bonds can break depending on the load.Just like CpmMat in this example[1].

Best regards
weijie

[1]https://gitlab.com/yade-dev/trunk/-/blob/master/examples/concrete/uniax.py#L78

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

Hello,

1) follow instructions from my 1st answer

2) thanks for more info. Have a look at this MWE:
###
O.materials.append(CpmMat())

O.engines = [
    ForceResetter(),
    InsertionSortCollider([Bo1_Sphere_Aabb(),Bo1_Polyhedra_Aabb()]),
    InteractionLoop(
        [
            Ig2_Sphere_Sphere_ScGeom(),
            Ig2_Sphere_Polyhedra_ScGeom(),
            Ig2_Polyhedra_Polyhedra_ScGeom(),
        ],
        [Ip2_CpmMat_CpmMat_CpmPhys()],
        [Law2_ScGeom_CpmPhys_Cpm()],
    ),
    NewtonIntegrator(),
]

sph1 = sphere((3,0,0),1)
sph2 = sphere((3,0,3),1)
poly1 = polyhedron(((0,0,0),(1,0,0),(0,1,0),(0,0,1)))
poly2 = polyhedron(((0,0,3),(1,0,3),(0,1,3),(0,0,4)))
O.bodies.append((sph1,sph2,poly1,poly2))

createInteraction(sph1.id,sph2.id)
createInteraction(sph1.id,poly1.id)
createInteraction(poly1.id,poly2.id)
###

The problem is that currently (AFAIK) you cannot create interactions for non-overlapping polyhedron-polyhedron [1] and sphere-polyhedron [2] couples.
It would need modification of source code and proper implementation of interactionDetectionFactor, see [3].

cheers
Jan

[1] https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/Polyhedra_Ig2.cpp#L557
[2] https://gitlab.com/yade-dev/trunk/-/blob/master/pkg/dem/Polyhedra_Ig2.cpp#L497
[3] https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Ig2_Sphere_Sphere_ScGeom.interactionDetectionFactor

Revision history for this message
weijie (amandajoe) said :
#4

Hi Jan,

I'm going to start this work again. How to modify the source code to get the correct interactionDetectionFactor? For example, where should I change the code.Besides, can CpmMat be used for polyhedron in this case?

Best regards
Jie

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

> How to modify the source code to get the correct interactionDetectionFactor? For example, where should I change the code

have a look how sphere-sphere is solved and do something similar for other cases..

> can CpmMat be used for polyhedron in this case?

in principle yes. I am not sure if fully with current implementation, but definitely yes if are going to modify the source code.

Anyway, for broader discussion, please open a new question for a new question (https://www.yade-dem.org/wiki/Howtoask)

cheers
Jan

Revision history for this message
weijie (amandajoe) said :
#6

Hi Jan, and thank you again.

> have a look how sphere-sphere is solved and do something similar for other cases.

I'll try to do it

>Anyway, for broader discussion, please open a new question for a new question

I'll open a new question.

Best regards
Jie

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

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