Fix Indent

Dear all,

From what I read from the manual, it mentions that the force is impose during energy minimization and that its a bad idea for the indenter to change position during a minimization.

However, if I want to set an initial velocity for the indenter and let it move freely, can I still use the run command? If so, how would the force for the indenter be imposed? Is it enough to just have a minimization at the end of the run?

On the other hand, is it possible to set an a load for the indenter without giving it an initial velocity and lets it fall freely to measure the depth of penetration by the indenter as well as the force (where I think the measurement of the force on indenter can be done by fix ave/time command).

From the examples I have seen so far, it seems the indenter position is changed manually with minimization in between. Is this the only way to implement the fix indent for nanoindentation?

Thank you very much.

Replies below.

From what I read from the manual, it mentions that the force is impose
during energy minimization and that its a bad idea for the indenter to
change position during a minimization.

Yes, it is not a good idea to impose external forces during
minimizations, but neither indentation example script do this.

However, if I want to set an initial velocity for the indenter and let it
move freely, can I still use the run command? If so, how would the force for
the indenter be imposed? Is it enough to just have a minimization at the end
of the run?

You can set a velocity to the indenter by defining its position as a
function of timestep using equal-style variables - like the example
in.indent does. In this case it is a fixed rate indentation, and you
have to use "run" instead of "minimize". You should not use minimize
at the end of the run for fixed rate indentation - unless you hold the
indenter fixed at its position to carry out a so-called holding stage.

On the other hand, is it possible to set an a load for the indenter without
giving it an initial velocity and lets it fall freely to measure the depth
of penetration by the indenter as well as the force (where I think the
measurement of the force on indenter can be done by fix ave/time command).

You are describing another type of indentation here - a fixed load
indentation. This type of indentation is not trivial to implement in
simulations. Because you would need the indenter to press the sample
at an undefined rate only to achieve to certain load measured at the
indenter, and it is essentially the same as a fixed rate indentation.

From the examples I have seen so far, it seems the indenter position is
changed manually with minimization in between. Is this the only way to
implement the fix indent for nanoindentation?

No, this is only one way, the way used by example in.indent.min. In
this case, the indenter is advanced one small depth in one timestep,
held fixed at its position, allow the sample to relax, and measure the
load from the indenter.

The other way is the fixed rate indentation as seen in example in.indent.

Cheers,
Ray

Dear Ray,

Thank you very much for your detailed explanation. Your help is very much appreciated.

Thank you.

I'll just add that the fix indent command allows you to use
a variable you define, e.g. for the position of a spherical
indenter, which can be a function of time. So if you can
write a variable that responds to the force exerted on the indenter
you could do something like a constant load indentation.

Steve

Dear Steve,

Thank you very much for your explanation.

I have output the force on the indenter as explained from the manual and the previous threads from the mail list. In addition, I also calculated the force on the sample by calculating the sum of z component forces on each atoms using the equation,
F = -k ( r - R )^2 given in the manual. This can be done since the coordinates of each atoms are output in the XYZ file.

Am I correct to say that the two forces are action and reaction force and hence would have the same value? My calculation indicates that the values for both are several order of magnitude difference.

Thank you very much.

yes, the forces should be opposite and equal.

The thermo output may be normalized by the # of
atoms in your system.

Steve

Thank you very much for the explanation.

Dear Steve,

I am currently trying to simulate the vickers indentation test. I used 4 plane region to build the square pyramidal indenter and use the fix wall/region with lj126 command to create the indenter.

Then, the 4 separate plane region is moved using the vdisplace command. However, I still dont see any impression due to the indenter. The force on the indenter is also zero for all components. Another question would be how to calculate the load. The manual says that the force at the sharp edge is not accurately dealt with. Is there any way to improve on the accuracy?

The following is a code segment of the implementation of the indentation (The atoms are in block shaped region from z = 0 to z = 10).

variable vz equal ramp(26.2,7)

region p1 plane 15 15 26.2 10 0 25 side out move NULL NULL v_vz
region p2 plane 15 15 26.2 0 -10 25 side out move NULL NULL v_vz
region p3 plane 15 15 26.2 -10 0 25 side out move NULL NULL v_vz
region p4 plane 15 15 26.2 0 10 25 side out move NULL NULL v_vz

region indenter intersect 4 p1 p2 p3 p4

fix 1 all wall/region indenter lj126 -10000 1.0 2.5
fix 3 all ave/time 100 1 100 f_1 f_1[1] f_1[2] f_1[3] file forcevalue.txt

fix 2 all nve
run 10000

Thank you very much for your help.

Maybe the indenter is not where you think it is.
See the difference between units box vs lattice
for the region definintion. Lattice is the default.

Steve

Dear Ray,

The atoms of the sample is created using the command

region box block 0 30 0 30 0 10
create_atoms 1 region box

which means that the units for both the atoms of the sample and the indenter are the same which is using the default units lattice. Hence, the tip of the indenter should be at the center of sample albeit at a distance of 16.2 lattice constant on top of the sample atoms.

I tried for different strength of LJ and different values for the z component of move but the indentation still does not occur. Your help in this matter is very much appreciated.

Thank you very much.

It’s up to you to debug your own input script.

There are several things you could try.

(a) replace it with a spherical indenter, see if it works
as you expect

(b) have a single atom in your model and move it
into the indenter (or vice versa), print the forces on it

© put print statements in the code (e.g. for (b))
for the check of the overlap with the indenter and
the atom and see what is going wrong.

Steve

In addition to Steve’s comments below, I think Steve was also right that “the indenter is not where you think it is.”

I added “group indenter region indenter” after your “region indenter intersect 4 p1 p2 p3 p4” line, and the output shows that all atoms in the box are grouped as the indenter. If every atom is grouped as indenter and is moving at the same rate, you won’t see impressions and loads.

Ray