[lammps-users] inhomogeneous system

Hi Everyone,
I am trying to set up a simulation of a 10-nm diameter silicon
nanosphere compressed between two rigid indenters (using reaxff).
The system is highly inhomogeneous, so if I increase the # of processors,
it may happen that some proc gets no atoms, and the simulation crashes
(because of some divide-by-zero errors).
Also changing the processor grid does not help much (when the number
of them is increased significantly).

Does anyone have any suggestion on how to set up such a simulation in
the optimal way?

Second, the fix indent command: is the influence of the indenter felt
only within the cutoff radius of the potential used?
The indenter exerts a force -k(r-R)^2. Does it have a cut-off?

Best regards,
Paolo Valentini

Please post an example (small as possible) of
a system that crashes due to some proc having
no atoms. This shouldn't happen.

For fix indent, the interaction range has nothing
to do with any pair potential you have defined. It
is the surface of the indenter (e.g. a sphere) which
is defined by the fix indent command. Atoms outside
the indenter experience 0 force.


OK. This is the script:

# REAX potential for Si nanosphere

units real
boundary f f f
#processors 1 8 4

atom_style charge
atom_modify map array
read_data data.indenter.sphere10

pair_style reax 10.0 1.0e-6
pair_coeff * * ffield.reax 6

neighbor 2.5 bin
neigh_modify delay 0 every 5 check no

thermo_style custom step temp evdwl ecoul pe ke etotal
thermo 1

# initial full minimization
minimize 1.0e-21 1.0e-6 20000 20000

dump 1 all xyz 10 sphere10_compr_MIN.xyz

# looping variable
variable a loop 100
label loopa

print "A = $a"

#dump 1 all xyz 10 sphere10_compr_MIN.$a.xyz

variable disp equal (v_a-1)*0.2
variable indL equal xlo+\{disp\} variable indR equal xhi\-{disp}

fix 1 all indent 10.0 plane x \{indL\} lo units box fix\_modify 1 energy yes fix 2 all indent 10\.0 plane x {indR} hi units box
fix_modify 2 energy yes

# some variables for output files
variable ifxL equal f_1[1]
variable ifxR equal f_2[1]
fix 3 all print 1 "\{disp\} {ifxL} ${ifxR}" append
loadvsdisp.dat screen no

minimize 1.0e-21 1.0e-4 20000 20000

timestep 0.0

run 1

#closing loop
next a
#undump 1
jump in.indenter.sphere10 loopa

and using these coordinates:

# Position data for Silicon sphere

10 atoms
1 atom types

0 128.0 xlo xhi
0 140.0 ylo yhi
0 140.0 zlo zhi


1 28.0


     1 1 0.00E+00 6.562080E+01 6.182350E+01
     2 1 0.00E+00 6.023800E+01 6.720820E+01
     3 1 0.00E+00 6.293320E+01 6.451300E+01
     4 1 0.00E+00 6.564680E+01 6.722600E+01
     5 1 0.00E+00 6.833770E+01 6.454070E+01
     6 1 0.00E+00 5.754850E+01 6.989580E+01
     7 1 0.00E+00 6.026570E+01 7.261270E+01
     8 1 0.00E+00 6.295100E+01 6.992180E+01
     9 1 0.00E+00 6.567800E+01 7.262530E+01
    10 1 0.00E+00 6.835030E+01 6.995300E+01

I get an fpe error, specifically a divide-by-zero. I was assuming
because some processes do not get any atoms.

Thanks for your help.

Best regards,
Paolo Valentini

Fixed this problem in the 3Apr09 patch.