# Concrete cube dimension, aggregate particle and peri3dController

Dear All,

I am new to YADE. I have studied some code from this forum. There are some of the questions related to concrete cube testing.

1. How to determine the dimensions of the concrete cube (150x150mm) in the modeling? In the code, there is an initial size = 1.2, but apparently, this is not the cube dimension.

2. How to determine the variation of aggregate granules if specified;

a. 0-4mm: 40%

b. 4-8 mm: 22%

c. 8-16mm: 38%

3. How to determine the value (goal, xxPath, yyPath, zzPath, zxPath, xyPath), I'm confused with the determination of the numbers . I have read it in YADE Book (pg.280), but i dont understand about it.

goal=(20e-

# the prescribed path (step,value of stress/strain) can be defined in absolute values

xxPath=

# or in relative values

yyPath=

# if the goal value is 0, the absolute stress/strain values are always considered (step values remain relative)

zzPath=

# if ##Path is not explicitly defined, it is considered as linear function between (0,0) and (nSteps,goal)

# as in yzPath and xyPath

# the relative values are really relative (zxPath gives the same - except of the sign from goal value - result as yyPath)

zxPath=

xyPath=

Could you please help me with this?. I'm writing a thesis and paper using YADE.

Regards,

Faqih Ma’arif

*******

the complete code as follows:

# peri3dControlle

# script, that explains funcionality and input parameters of Peri3dController

import string

from yade import pack, plot

from yade import plot,qt

from yade.pack import *

# create some material

#O.materials.

O.materials.

# create periodic assembly of particles

initSize=1.2 #old

sp=pack.

sp.toSimulation()

# plotting

#plot.live=False

plot.plots=

def plotAddData():

plot.addData(

progress=

sx=p3d.

syz=p3d.

ex=p3d.

eyz=p3d.

)

# in how many time steps should be the goal state reached

nSteps=4000 #new

O.dt=PWaveTimeS

EnlargeFactor=1.5

EnlargeFactor=1.0

O.engines=[

ForceResetter(),

InsertionSortC

InteractionLoop(

[Ig2_

[Ip2_

NewtonIntegrat

Peri3dController(

# after reaching nSteps do doneHook action

# the prescribed path (step,value of stress/strain) can be defined in absolute values

# or in relative values

# if the goal value is 0, the absolute stress/strain values are always considered (step values remain relative)

# if ##Path is not explicitly defined, it is considered as linear function between (0,0) and (nSteps,goal)

# as in yzPath and xyPath

# the relative values are really relative (zxPath gives the same - except of the sign from goal value - result as yyPath)

# variables used in the first step

label='p3d'

),

PyRunner(

]

O.step()

bo1s.aabbEnlarg

O.run(); #O.wait()

plot.plot(

*******

## Question information

- Language:
- English Edit question

- Status:
- Solved

- For:
- Yade Edit question

- Assignee:
- No assignee Edit question

- Solved by:
- Jan Stránský

- Solved:
- 2020-05-26

- Last query:
- 2020-05-26

- Last reply:
- 2020-05-26

Hi,

> there is an initial size = 1.2, but apparently, this is not the cube dimension

Why not?

> How to determine the value (goal, xxPath, yyPath, zzPath, zxPath, xyPath)

Could you explain the loading path you would like to impose? Then maybe understanding this part will be easier.

Regards

Bruno

Jan Stránský (honzik) said : | #2 |

Hello,

> I am new to YADE

welcome :-)

> There are some of the questions ...

next time please open separate "ask a question" for each question [1]

> 1...

> peri3dController

> How to determine the dimensions of the concrete cube

> there is an initial size = 1.2, but apparently, this is not the cube dimension.

there is no "cube", the simulation is periodic, simulating infinite space.

To get dimension of a periodic cell (which is in no way related to physical dimensions - as it is infinite), you can use O.cell.size [2].

The initSize is passed to randomPeriPack. It creates a loose packing using makeCloud using the initSize size, then compress it. The parameter basically control number of particles in the simulation.

Have a look at yade/examples/

> 2. How to determine the variation of aggregate granules if specified;

It is not possible "as is", randomPariPack [3] just supports uniform distribution (defined by radius and rRelFuzz parameters).

To use defined particle size distribution, one option is to "rewrite" the randomPeriPack function [4] with adjusted makeCloud call.

> in YADE Book (pg.280)

it is better to use links to online documentation, like [6]

> 3. How to determine the value (goal, xxPath, yyPath, zzPath, zxPath, xyPath), I'm confused with the determination of the numbers . I have read it in YADE Book (pg.280), but i dont understand about it.

Please describe more what you do not understand.

The path arguments are just a list of (time,value) pair, i.e. what value is prescribed at what time/iter.

In certain cases, the values may be relative (e.g. the time on scale [0,1], internally rescaling the values with nSteps argument)

The prescribed value is linearly interpolated between these defined points.

Have a look at comments in the example you have posted and compare them with the simulation results.

A note about modeling of concrete using periodic simulations: in case of strain localization, the periodicity has influence on cracks/strain localized area and therefore influence on overall response.

Which is not a problem "by default", one just need to (should) have this in mind while using it.

cheers

Jan

[1] https:/

[2] https:/

[3] https:/

[4] https:/

[5] https:/

[5] https:/

Faqih Maarif (faqih07) said : | #3 |

Dear All

First of all, permission, I say thank you for an enlightening answer, and I would like to apologize for not obeying the rules.

Thank you also for the answers to the concrete cube's dimensions and the variation of aggregate particles. I will ask separately as a rule in the forum.

My cases are the following:

I have tested the compressive strength of the concrete cube (150mmx150mm), and I will be modeling in YADE. In modeling, I will consider stress and strain periodically. I am still confused about how to determine the (xxPath, yyPath,

xxPath=

yyPath=

zzPath=

zxPath=

xyPath=

Can you please help?

Regards,

Faqih Ma’arif

Jan Stránský (honzik) said : | #4 |

> I have tested the compressive strength of the concrete cube (150mmx150mm)

> In modeling, I will consider stress and strain periodically.

Strain field in the post-peak range in uniaxial compression is not uniform, so using periodicity needs some caution (!)

> I am still confused about how to determine the (xxPath, yyPath,

the easiest is not to bother with paths at all :-) by default they are linear from zero to the goal value, which should be OK for uniaxial test - just define appropriate goal and stressMask.

cheers

Jan

Faqih Maarif (faqih07) said : | #5 |

Dear

Mr. Jan and Mr. Bruno

Thank you very much for your attention and cooperation

I already solve the problem.

Regards,

Faqih

Faqih Maarif (faqih07) said : | #6 |

Thanks Jan Stránský, that solved my question.