[lammps-users] minimization of indent problem

Hi,

I have tried a minimization for indent problem. I have checked atom positions
after minimization with "fix indent", but it seemed that the box was not
indented at all. So I doubt that the minimization does not work at all for
"fix indent". Does the total energy printed in log file contain potential
energy between the indenter and the lattice box?

Any suggestions?

Wen

The following are log file of the simulation:

units metal
boundary p s p

atom_style atomic
neighbor 0.4 bin
neigh_modify delay 0 every 1 check yes

# create geometry

lattice fcc 4.08
region box block 0 1020 0 102 -2.04 2.04 units box
create_box 2 box
Created box = (0 0 -2.04) to (1020 102 2.04)
  2 by 1 by 1 processor grid
create_atoms 1
Created 25500 atoms

mass 1 196.97
mass 2 196.97

# EAM potentials

pair_style eam
pair_coeff * * auu3

# define groups

region 1 block INF INF INF 4.08 INF INF units box
region 4 block 489.6 530.4 73.44 INF INF INF units box
group lower region 1
1500 atoms in group lower
group mobile subtract all lower
24000 atoms in group mobile
group indentation_1 region 4
315 atoms in group indentation_1

set lower atom 2
  1500 settings made

# initial velocities

velocity all set 0.0 0.0 0.0 units box
fix 2 lower setforce 0.0 0.0 0.0

thermo 5

dump 1 all atom 500 atom_eam0.indent
dump_modify 1 scale no every 1
dump 3 indentation_1 custom 10 xyz_eam0.indent tag type x y z

# indenter

fix 4 all indent 100 fc0_0 10.0 sphere 510 111.5 0 20.0 units box
minimize 1.0e-10 100 2000
Memory usage per processor = 13.7778 Mbytes
Step Temp E_pair E_mol TotEng Press Volume
       0 0 -99707.829 0 -99707.829 -5795.8073
424484.03
       5 0 -99723.687 0 -99723.687 -4241.8479
424484.03
      10 0 -99723.742 0 -99723.742 -4098.808
424484.03
      15 0 -99723.749 0 -99723.749 -4044.7131
424484.03
      20 0 -99723.751 0 -99723.751 -4016.4633
424484.03
      25 0 -99723.752 0 -99723.752 -3999.0687
424484.03
      30 0 -99723.752 0 -99723.752 -3987.0947
424484.03
      35 0 -99723.753 0 -99723.753 -3978.9037
424484.03
      38 0 -99723.753 0 -99723.753 -3978.1623
424484.03
Loop time of 33.9962 on 2 procs for 38 steps with 25500 atoms

Minimization stats:
  E initial, next-to-last, final = -99707.8 -99723.8 -99723.8
  Gradient 2-norm init/final= 14.5198 0.00320448
  Gradient inf-norm init/final= 0.473057 5.13012e-05
  Iterations = 38
  Force evaluations = 118

Pair time (\) = 21\.6211 \(63\.5986\) Neigh time \() = 0 (0)
Comm time (\) = 0\.702662 \(2\.06689\) Outpt time \() = 8.39483 (24.6935)
Other time (%) = 3.27758 (9.64102)

Nlocal: 12750 ave 12750 max 12750 min
Histogram: 2 0 0 0 0 0 0 0 0 0
Nghost: 32767 ave 32767 max 32767 min
Histogram: 2 0 0 0 0 0 0 0 0 0
Neighs: 336750 ave 336750 max 336750 min
Histogram: 2 0 0 0 0 0 0 0 0 0

Total # of neighbors = 673500
Ave neighs/atom = 26.4118
Neighbor list builds = 0
Dangerous builds = 0
run 0
Memory usage per processor = 11.4909 Mbytes
Step Temp E_pair E_mol TotEng Press Volume
      38 0 -98686.939 0 -98686.939 -20158.383
424009.98
Loop time of 3.675e-06 on 2 procs for 0 steps with 25500 atoms

Pair time (\) = 0 \(0\) Neigh time \() = 0 (0)
Comm time (\) = 0 \(0\) Outpt time \() = 0 (0)
Other time (%) = 3.675e-06 (100)

Nlocal: 12750 ave 12751 max 12749 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Nghost: 32767 ave 32768 max 32766 min
Histogram: 1 0 0 0 0 0 0 0 0 1
Neighs: 326798 ave 327490 max 326105 min
Histogram: 1 0 0 0 0 0 0 0 0 1

Total # of neighbors = 653595
Ave neighs/atom = 25.6312
Neighbor list builds = 0
Dangerous builds = 0
# unfix 4

Not sure what problem you mean. Below is a slightly modified
version of examples/in.indent which does dynamics on an indentation.
Then it does minimization. The indenter forces stay in place
and the solid relaxes around the indenter.

These two lines can be altered:

fix 4 all indent 1000.0 sphere 10 11.2 0 5.0
#unfix 4

The 1st one resets the fix so it now has 0 velocity. Thus
it stays in place during the min. The 11.2 is its final y position
after the dynamics. Without this command, the indenter
will continue to move during the min. The unfix line can
be uncommented, which removes the fix, allowing the solid
to relax around the hole left by the indenter.

Simple viz of this 2d system shows that it is working as
I described.

Steve

Input script:

# 2d indenter simulation

dimension 2
boundary p s p

atom_style atomic
neighbor 0.3 bin
neigh_modify delay 5

# create geometry

lattice hex 0.9
region box block 0 20 0 10 -0.25 0.25
create_box 2 box
create_atoms 1

mass 1 1.0
mass 2 1.0

# LJ potentials

pair_style lj/cut 2.5
pair_coeff * * 1.0 1.0 2.5

# define groups

region 1 block INF INF INF 1.25 INF INF
group lower region 1
group mobile subtract all lower
set lower atom 2

# initial velocities

temperature new mobile full
velocity mobile create 0.2 482748 temp new
fix 1 all nve
fix 2 lower setforce 0.0 0.0 0.0
fix 3 all temp/rescale 100 0.1 0.1 0.01 1.0

# indenter

fix 4 all indent 1000.0 sphere 10 13 0 5.0 vel 0.0 -0.06 0.0
fix 5 all enforce2d

# Run with indenter

timestep 0.003
thermo 1000
thermo_modify temp new

dump 1 all atom 250 tmp.dump
run 10000

fix 4 all indent 1000.0 sphere 10 11.2 0 5.0
#unfix 4

dump_modify 1 every 1
minimize 1.0e-4 1000 1000

Hello everyone,

I have a question on the way temp/rescale scales the temperature. The
following is an extract from fix_temp_rescale.cpp

  if (iregion == -1) {
      energy += (t_current-t_target) * efactor;
  flag = 0;
      for (int i = 0; i < nlocal; i++) {
  if (mask[i] & groupbit) {
    v[i][0] *= factor;
    v[i][1] *= factor;
    v[i][2] *= factor;
        flag = 1;
  }
      }

I added the lines "flag = 0" and "flag = 1" and I recorded the variable in a
file just to check the fulfillment of the condition: (mask[i] & groupbit)
every time the scaling is performed. When I use 1 processor, flag = 1 all
the time; however, when using multiple processors flag = 0 all the time
meaning the "if" condition is never fulfilled. The log file does show
temperature rescaling.

Any suggestions on this apparent discrepancy?

Thanks
Jaime Sanchez

Hi Jamie. My guess is that the condition is fulfilled,
at least sometimes, even in the case of mulitple
processors. But the condition will only be fulfilled
if that processor owns atoms within the group. You
could put a print statement where you've got "flag =
1". I think you'd then see that the condition is
indeed fulfilled on at least one processor.

It's possible that the processor you're printing from
during the parallel run doesn't own any of the atoms
within your defined group, even if the group is all.

Paul

Hello everyone,

I have a question on the way temp/rescale scales the
temperature. The
following is an extract from fix_temp_rescale.cpp

  if (iregion == -1) {
      energy += (t_current-t_target) * efactor;
  flag = 0;
      for (int i = 0; i < nlocal; i++) {
  if (mask[i] & groupbit) {
    v[i][0] *= factor;
    v[i][1] *= factor;
    v[i][2] *= factor;
        flag = 1;
  }
      }

I added the lines "flag = 0" and "flag = 1" and I
recorded the variable in a
file just to check the fulfillment of the condition:
(mask[i] & groupbit)
every time the scaling is performed. When I use 1
processor, flag = 1 all
the time; however, when using multiple processors
flag = 0 all the time
meaning the "if" condition is never fulfilled. The
log file does show
temperature rescaling.

Any suggestions on this apparent discrepancy?

Thanks
Jaime Sanchez

Using Tomcat but need to do more? Need to support
web services, security?
Get stuff done quickly with pre-integrated
technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1
based on Apache Geronimo

http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642

_______________________________________________
lammps-users mailing list
[email protected]

https://lists.sourceforge.net/lists/listinfo/lammps-users