fix insert achieved volume fraction depending on particle size?

PaulWinkler's picture
Submitted by PaulWinkler on Wed, 08/07/2013 - 10:40

Hi,

I am inserting particles via fix insert/pack in a region using volumefraction_region to specify the amount of particles inserted. I understand the volume fraction as percentage of volume, which is covered by particles. But if I compare the given volume fraction and the reached particles volume, there is a linear deviation. For large particles (diameter equal 1/10 of width/height/depth of volume) there is only 50% of the aimed volume fraction (0,1 – 0,5) reached. There is no Warning, all particles are inserted. For smaller particles (diameter 1/100 of w/h/d of volume) the deviation between volumefraction_region and the actual percentage of covered volume is getting smaller.

For example:

d=1/10 * x
given volume fraction: 0.5
reached volume coverage: 0.255
deviation: ~0.5

d=1/100 * x
given volume fraction: 0.5
reached volume coverage: 0.47
deviation: ~0.94

Has anybody an idea what could be the reason?

Regards,
Paul

Edit: add values for deviation

keepfit | Wed, 08/07/2013 - 16:38

Hi paul,

yes, you are right. i tested the "fix insert/pack" with volumefraction_region option.

When the vol fraction is higher (<=0.6), you get less particles inserted. I tested with vol = 0.2 and get actual vol=0.1999.

So I would recommend using "particles_in_region" and calculate the number of particles according to vol_fraction and radii, if the desired vol_fraction is about ~0.5. Or alternatively, do Not use "insert_every once" instead of "insert_every N", and let the previously inserted particles set down. I hope it is of help.

If the vol_fraction is small, "volumefraction_region" seems working.

Cheers,
David Long

PaulWinkler's picture

PaulWinkler | Thu, 08/08/2013 - 12:09

Hi David,

If the vol_fraction is small, "volumefraction_region" seems working."
Maybe for small particles. As I mentioned in the start posting, die deviation is linear and there are could all particles be inserted Liggghts calculated and wants to insert. I also run it in a fix with insert_every once.
The amount of particles seems to be scaled down by a factor dependend on particle size from the wanted volume fraction. The bigger the particles the smaller the factor. For small particles (less than 1/100 of one dimension of the volume) I got a scalar (for volume fraction 0.1 - 0.5) of 0.94, particles 1/10 of the width differ 0.5 from the given volume fraction. Means you want a volume fraction of 0.1, bur you got just 0.05, even for small volume fraction (0.1 - 0.5) and no particles which couldn't be inserted.
This is a problem for instance in the example "packing", where the growrate is calculated on much to big volume fraction and the calculated dense (volume fraction target) can not be reached.

Regards,
Paul

ckloss's picture

ckloss | Fri, 08/30/2013 - 15:47

Hi Paul and David,

just a general comment: all the fix insert/* commands use "brute force" insertion. So a mono-disperse packing won't go beyond 0.2 without tricks, a poly-disperse one can maybe go up to 0.35. What you should consider is to either grow the particles with fix adapt or to inserting with no overlapcheck and then relaxing the packing with fix nve/limit

My 2nd comment concerns the ratio between volume of a single particle and the desired total particle volume. If the ratio is e.g. 1.05 : 2, LIGGGHTS will not give a warning and just insert 1 particle

Anyway, Paul, can you please post one of these cases where a big discrepancy arises so that I can have a look?

Cheers
Christoph

PaulWinkler's picture

PaulWinkler | Sun, 09/01/2013 - 20:05

Hi Christoph,

I cut out the part with fix insert and wrote a little test script around it. There are some PSD included and a file with some results (volfracrat.prn). The file collects the results of every run.
The main problem is the given volume fraction is not achieved. The deviation depends slightly on PSD and differs minimal on given volume fraction. The upper values for volume fraction given by you is 0.35, but there's no problem to go up to 0.6 without warnings of dropped particles (also in Liggghts 1.5.3). Actually in the tests with this script I got even volume fractions of 1.0 without any notice. First I thought it may be an failure in calculating the particle volume as a result of an approximation of particle shape or mixing up radius and diameter, but I don't get the correlation. There might be an error in my script to, since I am evolved in Liggghts, and DEM in general, just for a short time.
Enclosed the input script and the file of results.

To create dense packings I tried growing and overlapping. Growing is easier to control (contact numbers, pressure...), since we don't want to predetermine porosity.

Best wishes,

Paul

The attachment function disappeared.

volfracrat.prn:
psd vf_ins vf_achieved volfracratio atoms mass poro
semar1 0.1 0.0538733114 1.856206671 18 0.1346832785 0.9461266886
semar1 0.2 0.1107395845 1.806038924 37 0.2768489613 0.8892604155
semar1 0.3 0.1646128959 1.822457459 55 0.4115322398 0.8353871041
semar1 0.4 0.221479169 1.806038924 74 0.5536979226 0.778520831
semar1 0.5 0.2753524804 1.815854352 92 0.6883812011 0.7246475196

semar2 0.1 0.05611803268 1.781958405 80 0.1402950817 0.9438819673
semar2 0.2 0.1122360654 1.781958404 160 0.2805901635 0.8877639346
semar2 0.3 0.1683540981 1.781958404 240 0.4208852452 0.8316459019
semar2 0.4 0.2218532892 1.802993327 320 0.5546332231 0.7781467108
semar2 0.5 0.2783454422 1.796329036 401 0.6958636054 0.7216545578
semar2 0.6 0.3344634749 1.793917857 481 0.8361586872 0.6655365251
semar2 0.7 0.387962666 1.804297324 561 0.9699066651 0.612037334

semar3 0.1 0.0563982642 1.773104216 516 0.1409956605 0.9436017358
semar3 0.2 0.1124529921 1.778520929 1032 0.2811324803 0.8875470079
semar3 0.3 0.1688512563 1.776711684 1548 0.4221281408 0.8311487437
semar3 0.4 0.2223177267 1.799226746 2065 0.5557943168 0.7776822733
semar3 0.5 0.2783724546 1.796154726 2581 0.6959311366 0.7216275454
semar3 0.6 0.3347707188 1.792271445 3097 0.8369267971 0.6652292812
semar3 0.7 0.3882371892 1.803021502 3614 0.970592973 0.6117628108
semar3 0.8 0.4446354536 1.799226745 4130 1.111588634 0.5553645464
semar3 0.9 0.5006901812 1.797518773 4646 1.251725453 0.4993098188

semar4 0.1 0.05641267412 1.772651298 2999 0.1410316853 0.9435873259
semar4 0.2 0.1124858764 1.778000994 5999 0.2812146909 0.8875141236
semar4 0.3 0.1688760953 1.776450358 8999 0.4221902382 0.8311239047
semar4 0.4 0.222330456 1.799123733 11999 0.55582614 0.777669544
semar4 0.5 0.2787471945 1.793740026 14999 0.6968679863 0.7212528055
semar4 0.6 0.3347938772 1.79214747 17999 0.8369846929 0.6652061228
semar4 0.7 0.3882482379 1.802970192 20999 0.9706205947 0.6117517621
semar4 0.8 0.4446649764 1.799107289 23999 1.111662441 0.5553350236
semar4 0.9 0.5007116592 1.797441668 26999 1.251779148 0.4992883408
semar4 1.0 0.5571283976 1.794918378 29999 1.392820994 0.4428716024

kgv106 0.1 0.04831379516 2.06980221 29002 0.1207844879 0.9516862048
kgv106 0.2 0.09414476544 2.124387894 58005 0.2353619136 0.9058552346
kgv106 0.3 0.1399757358 2.143228598 87008 0.3499393394 0.8600242642
kgv106 0.4 0.1880514274 2.127077712 116010 0.4701285684 0.8119485726
kgv106 0.5 0.2359956595 2.118683035 145013 0.5899891487 0.7640043405
kgv106 0.6 0.2818266298 2.128968439 174016 0.7045665745 0.7181733702

in.fixinsert:
echo log

variable psdname string semar4
variable insvfrac equal 0.1

variable modelname string ${psdname}_${insvfrac}

## Variablen
print "## Variablen"
variable timersteps equal 1e6
variable timesteplength equal 1/${timersteps}
variable timesteps equal 1
variable dumpsteps equal ${timesteps}/1

## Systembefehle
print ""
print "## Systembefehle"
shell "rm -rf" ${modelname}
shell "mkdir" ${modelname}
shell "mkdir" ${modelname}/vtk
log ${modelname}/tmp.log
shell mv log.liggghts ${modelname}/${modelname}.log

## Modellinitialisierung
print ""
print "## Modellinitialisierung"
units si
atom_style granular
atom_modify map array
boundary p p p
newton off
communicate single vel yes
neighbor 0.002 bin
neigh_modify check yes

region region_box block 0 0.1 0 0.1 0 0.1 units box
create_box 1 region_box

variable catoms equal atoms
variable cstep equal step
variable cvol equal vol
variable cporo equal (${cvol}-(mass(all)/2500))/${cvol}
variable cmass equal mass(all)

## Materialeigenschaften
print ""
print "## Materialeigenschaften"
fix m1 all property/global youngsModulus peratomtype 7.e10
fix m2 all property/global poissonsRatio peratomtype 0.35
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.9 #Stoßzahl
fix m4 all property/global coefficientFriction peratomtypepair 1 0.1 #Gleitreibung
fix m5 all property/global coefficientRollingFriction peratomtypepair 1 0.5 #Rollreibung
fix m6 all property/global cohesionEnergyDensity peratomtypepair 1 300000 #Kohäsion

## Partikeleigenschaften
print ""
print "## Partikeleigenschaften"
pair_style gran/hertz/history #rolling_friction = 'off' cohesion = 'off' tangential_damping = 'on' absolute_damping = 'off' store_force = 'no'viscous = 'off'
pair_coeff * *
# kgv10, kleinere Fraktionen zu letzter aufaddiert
# fracrat ~2.07
fix kgv10_f1 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.01118
fix kgv10_f2 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00894
fix kgv10_f3 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00447
fix kgv10_f4 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00194
fix kgv10_f5 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00099
fix kgv10_f6 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00049
fix kgv10_f7 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00031
fix kgv10_f8 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00018
fix kgv10_f9 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00009
fix kgv106 all particledistribution/discrete 42 6 kgv10_f1 0.030 kgv10_f2 0.062 kgv10_f3 0.416 kgv10_f4 0.157 kgv10_f5 0.037 kgv10_f6 0.298
fix kgv107 all particledistribution/discrete 42 7 kgv10_f1 0.030 kgv10_f2 0.062 kgv10_f3 0.416 kgv10_f4 0.157 kgv10_f5 0.037 kgv10_f6 0.010 kgv10_f7 0.288
fix kgv108 all particledistribution/discrete 42 8 kgv10_f1 0.030 kgv10_f2 0.062 kgv10_f3 0.416 kgv10_f4 0.157 kgv10_f5 0.037 kgv10_f6 0.010 kgv10_f7 0.002 kgv10_f8 0.286
fix kgv109 all particledistribution/discrete 42 9 kgv10_f1 0.030 kgv10_f2 0.062 kgv10_f3 0.416 kgv10_f4 0.157 kgv10_f5 0.037 kgv10_f6 0.010 kgv10_f7 0.002 kgv10_f8 0.004 kgv10_f9 0.282
# kgv10_, KGV neu normalisiert
fix kgv10_6 all particledistribution/discrete 42 6 kgv10_f1 0.042 kgv10_f2 0.087 kgv10_f3 0.584 kgv10_f4 0.221 kgv10_f5 0.052 kgv10_f6 0.014
fix kgv10_7 all particledistribution/discrete 42 7 kgv10_f1 0.042 kgv10_f2 0.087 kgv10_f3 0.582 kgv10_f4 0.220 kgv10_f5 0.052 kgv10_f6 0.014 kgv10_f7 0.003
fix kgv10_8 all particledistribution/discrete 42 8 kgv10_f1 0.042 kgv10_f2 0.086 kgv10_f3 0.579 kgv10_f4 0.219 kgv10_f5 0.052 kgv10_f6 0.014 kgv10_f7 0.003 kgv10_f8 0.005
# Semar,kleinere Fraktionen zu letzter aufaddiert
# fracrat ~1.77
fix semar_f1 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00894
fix semar_f2 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00447
fix semar_f3 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00194
fix semar_f4 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00099
fix semar_f5 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00049
fix semar_f6 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00031
fix semar_f7 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00018
fix semar_f8 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00009
fix semar1 all particledistribution/discrete 42 1 semar_f1 1.0
fix semar2 all particledistribution/discrete 42 2 semar_f1 0.524 semar_f2 0.476
fix semar3 all particledistribution/discrete 42 3 semar_f1 0.524 semar_f2 0.214 semar_f3 0.262
fix semar4 all particledistribution/discrete 42 4 semar_f1 0.524 semar_f2 0.214 semar_f3 0.052 semar_f4 0.210
fix semar5 all particledistribution/discrete 42 5 semar_f1 0.524 semar_f2 0.214 semar_f3 0.052 semar_f4 0.040 semar_f5 0.170
fix semar6 all particledistribution/discrete 42 6 semar_f1 0.524 semar_f2 0.214 semar_f3 0.052 semar_f4 0.040 semar_f5 0.020 semar_f6 0.150
fix semar7 all particledistribution/discrete 42 7 semar_f1 0.524 semar_f2 0.214 semar_f3 0.052 semar_f4 0.040 semar_f5 0.020 semar_f6 0.020 semar_f7 0.130
fix semar8 all particledistribution/discrete 42 8 semar_f1 0.524 semar_f2 0.214 semar_f3 0.052 semar_f4 0.040 semar_f5 0.020 semar_f6 0.020 semar_f7 0.070 semar_f8 0.060
# Semar_,KGV neu normalisiert
fix semar_1 all particledistribution/discrete 42 1 semar_f1 1.0
fix semar_2 all particledistribution/discrete 42 2 semar_f1 0.711 semar_f2 0.289
fix semar_3 all particledistribution/discrete 42 3 semar_f1 0.665 semar_f2 0.271 semar_f3 0.064
fix semar_4 all particledistribution/discrete 42 4 semar_f1 0.632 semar_f2 0.258 semar_f3 0.061 semar_f4 0.049
fix semar_5 all particledistribution/discrete 42 5 semar_f1 0.616 semar_f2 0.252 semar_f3 0.060 semar_f4 0.048 semar_f5 0.024
fix semar_6 all particledistribution/discrete 42 6 semar_f1 0.603 semar_f2 0.246 semar_f3 0.058 semar_f4 0.047 semar_f5 0.023 semar_f6 0.023
fix semar_7 all particledistribution/discrete 42 7 semar_f1 0.558 semar_f2 0.227 semar_f3 0.054 semar_f4 0.044 semar_f5 0.021 semar_f6 0.021 semar_f7 0.075
# Dinger,kleinere Fraktionen zu letzter aufaddiert
fix dinger_f1 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.01118
fix dinger_f2 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00894
fix dinger_f3 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00447
fix dinger_f4 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00194
fix dinger_f5 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00099
fix dinger_f6 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00049
fix dinger_f7 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00031
fix dinger_f8 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00018
fix dinger6 all particledistribution/discrete 42 6 dinger_f1 0.116 dinger_f2 0.289 dinger_f3 0.239 dinger_f4 0.131 dinger_f5 0.096 dinger_f6 0.129
fix dinger7 all particledistribution/discrete 42 7 dinger_f1 0.116 dinger_f2 0.289 dinger_f3 0.239 dinger_f4 0.131 dinger_f5 0.096 dinger_f6 0.049 dinger_f7 0.080
fix dinger8 all particledistribution/discrete 42 8 dinger_f1 0.116 dinger_f2 0.289 dinger_f3 0.239 dinger_f4 0.131 dinger_f5 0.096 dinger_f6 0.049 dinger_f7 0.044 dinger_f8 0.036
# Dinger, KGV neu berechnet
fix dinger_6 all particledistribution/discrete 42 6 dinger_f1 0.142 dinger_f2 0.335 dinger_f3 0.242 dinger_f4 0.133 dinger_f5 0.098 dinger_f6 0.050
fix dinger_7 all particledistribution/discrete 42 7 dinger_f1 0.121 dinger_f2 0.300 dinger_f3 0.247 dinger_f4 0.136 dinger_f5 0.100 dinger_f6 0.051 dinger_f7 0.045
# Fuller, kleinere Fraktionen zu letzter aufaddiert = Neuberechnung
fix fuller_f1 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.01118
fix fuller_f2 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00894
fix fuller_f3 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00447
fix fuller_f4 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00194
fix fuller_f5 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00099
fix fuller_f6 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00049
fix fuller_f7 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.00031
fix fuller6 all particledistribution/discrete 42 6 fuller_f1 0.106 fuller_f2 0.262 fuller_f3 0.216 fuller_f4 0.119 fuller_f5 0.087 fuller_f6 0.210
fix fuller7 all particledistribution/discrete 42 7 fuller_f1 0.106 fuller_f2 0.262 fuller_f3 0.216 fuller_f4 0.119 fuller_f5 0.087 fuller_f6 0.045 fuller_f7 0.165

## Modell
print ""
print "## Modell"
#fix gravi all gravity 9.81 vector 0.0 0.0 -1.0
fix ins_pack all insert/pack seed 42 distributiontemplate ${psdname} verbose yes maxattempt 2000 insert_every once overlapcheck yes all_in yes random_distribute exact region region_box volumefraction_region ${insvfrac}
fix nve_sphere all nve/sphere

## Berechnungseinstellungen
print ""
print "## Berechnungseinstellungen"
timestep ${timesteplength}
fix ts_check all check/timestep/gran 1000 0.2 0.2
#compute 1 all erotate/sphere # basics
#compute 2 all laguerre/atom # Laguerre Cells
#compute 3 all pair/gran/local pos id force contactArea # contactforces
#compute 4 all contact/atom # coordination number

variable atoms0 equal ${catoms}
variable mass0 equal ${cmass}
variable volfrac0 equal (${mass0}/2500)/vol
variable poro0 equal (vol-${mass0}/2500)/vol

## Ausgabeeinstellungen
print ""
print "## Ausgabeeinstellungen"
dump dmp_lpp all custom ${dumpsteps} ${modelname}/vtk/${modelname}.dmp id type x y z ix iy iz vx vy vz fx fy fz omegax omegay omegaz radius
dump_modify dmp_lpp first yes pad 7 sort id format "%d %d %.9f %.9f %.9f %.9f %.9f %.9f %.9f %.9f %.9f %.9f %.9f %.9f %.9f %.9f %.9f %.9f"

## Berechnung
print ""
print "## Berechnung"
run ${timesteps} post no

variable atoms1 equal ${catoms}
variable mass1 equal ${cmass}
variable volfrac1 equal (${mass1}/2500)/vol
variable poro1 equal (vol-${mass1}/2500)/vol
variable fracrat equal ${insvfrac}/${volfrac1}

print ""
print "---------------------------------------------------------------------"
print "atoms0: ${atoms0} mass0: ${mass0} volfrac0: ${volfrac0} poro0: ${poro0}"
print "atoms1: ${atoms1} mass1: ${mass1} volfrac1: ${volfrac1} poro1: ${poro1}"
print "---------------------------------------------------------------------"
print "volume fraction to insert: ${insvfrac}"
print "volume fraction achieved : ${volfrac1}"
print "volume fractions ratio : ${fracrat} (deviation for specific psd over given volume fraction to insert until particles are dropped)"
print "---------------------------------------------------------------------"

shell echo ${psdname} ${insvfrac} ${volfrac1} ${fracrat} ${atoms1} ${mass1} ${poro1} >> fracrat.prn

## Ende
print ""
print "## Ende"

################################################ Liggghts abgeschlossen - Postprocessing #####################################################
shell cd ${modelname}
shell cat tmp.log ">>" ${modelname}.log

shell grep INFO: tmp.log > tmp.infos
shell sort -o tmp.infoss tmp.infos
shell uniq -c -f4 tmp.infoss tmp.info

shell grep WARNING: tmp.log > tmp.warnings
shell sort -o tmp.warningss tmp.warnings
shell uniq -c -f4 tmp.warningss tmp.warning

## VTK
print ""
print "## Konvertieren von dump zu vtk"
shell echo "" >> ${modelname}.log
shell echo lpp - dmp -">" vtk >> ${modelname}.log
shell cd vtk
shell "python $HOME/LPP/src/lpp.py" ${modelname}.dmp
shell cd ..
shell mv vtk/${modelname}.dmp ${modelname}.dmp

## KGV
print ""
print "## KGV"
shell tail -n ${atoms1} ${modelname}.dmp > tmp.tail
shell "cut -d' ' -f18 tmp.tail > tmp.cut"
shell uniq -c tmp.cut > ${modelname}.kgv

## Aufräumen
print ""
print "## Aufräumen"
shell echo "" >> ${modelname}.log
shell cat tmp.info >> ${modelname}.log
shell echo "" >> ${modelname}.log
shell cat tmp.warning >> ${modelname}.log
shell "rm tmp.*"
shell cd ..

ckloss's picture

ckloss | Wed, 09/04/2013 - 11:30

Hi Paul,

thanks for posting this!
I appreciate your effort very much, but I am afraid it would take me longer to understand your script and automation than to fix the issue itself. Could you maybe break it down to _one_ minimalist, simple example (LIGGGHTS input script) that shows the issue?

Thanks
Christoph

PaulWinkler's picture

PaulWinkler | Wed, 09/04/2013 - 17:46

Hi Christoph,

I minimized the script, just left one PSD with one particle size. The given volumefraction_region is defined at the beginning of the script. The reached volume fraction is calculated from the mass of the inserted particles divided by particle density and set in relation to the box volume (G.1&G.2). The results from the special function mass(all) and the calculated volume fraction are checked and ok. The gained volume fraction of the particles is smaller then the aimed and depends on particle size. For very small particles the ratio from given to reached volume fraction approaches 1.0, for taller particles (e.g. 1/10 of box dimension, common for max particle size in geotechnical PSD) the ratio goes up to 2.0. Thats why I reckoned that the particle volume for the volumefraction_region check is just approximated, but I didn't take a look at the code. Since PSD is not changed (I proved growing just moving it), it's no problem reading the actual parameters from current state.
You may vary volumefraction_region and particle radius in PSD, the results are printed in vfrat.prn.

Regards,

Paul

in.fixins:

variable insvfrac equal 0.1 # volumefraction_region for fix insert

echo none
units si
atom_style granular
atom_modify map array
boundary p p p
newton off
communicate single vel yes
neighbor 0.002 bin
neigh_modify check yes

region region_box block 0 0.1 0 0.1 0 0.1 units box
create_box 1 region_box

## Materialeigenschaften
fix m1 all property/global youngsModulus peratomtype 7.e10
fix m2 all property/global poissonsRatio peratomtype 0.35
fix m3 all property/global coefficientRestitution peratomtypepair 1 0.9
fix m4 all property/global coefficientFriction peratomtypepair 1 0.1

## Partikeleigenschaften
pair_style gran/hertz/history
pair_coeff * *

## Modell
fix semar_f1 all particletemplate/sphere 1 atom_type 1 density constant 2500 radius constant 0.01
fix semar1 all particledistribution/discrete 42 1 semar_f1 1.0
fix ins_pack all insert/pack seed 42 distributiontemplate semar1 verbose yes maxattempt 2000 insert_every once overlapcheck yes all_in yes random_distribute exact region region_box volumefraction_region ${insvfrac}
fix nve_sphere all nve/sphere

## Berechnung
timestep 1e-6
fix ts_check all check/timestep/gran 1000 0.2 0.2
run 1 post no

variable volfrac1 equal mass(all)/2500/vol # particle volume = mass/desnsity, volume fraction of particles = Vp / V G.1
variable fracrat equal ${insvfrac}/${volfrac1} # rate of volumefraction_region and volume fractions of particles (G.1) G.2

print "---------------------------------------------------------------------"
print "volume fraction to insert: ${insvfrac}"
print "volume fraction achieved : ${volfrac1}"
print "volume fractions ratio : ${fracrat}"
print "---------------------------------------------------------------------"

shell echo semar1 ${insvfrac} ${volfrac1} ${fracrat} >> vfrat.prn

ckloss's picture

ckloss | Wed, 09/04/2013 - 19:01

Hi Paul,

thank you very much - I isolated the problem. I'll think about how to solve this for the next release!

Cheers
Christoph