Nanoindentation test of free standing film in Lammps

Dear All,

I want to perform nanoindentation test on a 2D monolayer material ( the structure is like graphene in the XY plane) along the thickness direction (Z direction) in Lammps. Initially, I could do the indentation test by using the “Fix Indent” command with spherical indenter and fixing a sublayer at the bottom by “Fix Setforce=0.0” command.

However, now I want to do a similar indentation test using somewhat different boundary conditions. Rather than fixing the bottom of the substrate, I want to clamp the film on both sides and then indent through the thickness direction. (please see the attached snapshot for a visualization of the boundary condition. Green atoms represent the clamped portion on both sides of the substrate). With that boundary condition in mind, I tried to apply “Fix set force =0.0” command on both sides of the film and “Fix indent” through the thickness. But, it seems that the structure just breaks away at the two clamped regions rather than indenting through the thickness. So, my question is that is it possible to use “Fix indent” without fixing atoms at the bottom in the indentation direction? It would be really helpful if anyone could provide any insight. I also copied here the main parts of the input script I used for reference.

Thank you so much.


Shoieb Ahmed Chowdhury

Graduate Student

Dept. of Mechanical Engineering

University of Rochester

Rochester, NY 14627

Input script:

#1 general
units metal
dimension 3
atom_style atomic
neighbor 0.3 bin

#2 structure
boundary p p s
read_data lammps.dat
#3 variables
variable temperature equal 1.0
variable pressure equal 0.1
variable tstep equal 0.001
#indenter radius
variable radius equal 20.0

#regions on side of the structure where it will be clamped

region clamped1 block 0 5 INF INF INF INF units box
region clamped2 block 92 INF INF INF INF INF units box

#define group of atoms on side of the substrate where it will be #clamped
group clamped1 region clamped1
group clamped2 region clamped2
group clamped union clamped1 clamped2 #side clamp boundary

#for visualization in Ovito whether the correct boundary is set
#set group clamped type 9

#4 potentials

#output the initial structure
write_data data_initial

#5 optimize at 0 K
dump 1 all custom 50000 dump.minimization id type x y z
min_style cg
minimize 0.0 1.0e-8 10000 1000000
undump 1
#unfix 1

#6 optimize at T
compute peratom all pe/atom
reset_timestep 0
timestep ${tstep}

#assign initial velocities
compute new all temp #id new computes temp of mobile group (indenter)
velocity all create 1.0 482748 temp new mom yes rot no
fix 1 all npt temp {temperature} {temperature} 1 x {pressure} {pressure} 1 y {pressure} {pressure} 1 drag 1.0
dump 1 all custom 1000 dump.optimize.*cfg id type x y z c_peratom fx fy fz
thermo 1000
thermo_style custom step lx ly lz press pxx pyy pzz pe temp
neigh_modify once yes
run 20000

reset_timestep 0

#output the optimized structure
write_data data_equilib

run with indenter

variable k equal 1.0
variable zdn equal “74.0 -(stepdt0.1)”
compute 1 all pressure thermo_temp

#zero out all the forces on the side boundary
fix 2 clamped setforce 0.0 0.0 0.0
fix 4 all indent k sphere 50 20 v_zdn {radius} units box#command for #creating an indenter with force k.

undump 1
dump 1 all custom 1000 dump.indentation*cfg id type x y z fx fy fz

#8 run MD
thermo 1000
#thermo 1000
thermo_modify temp new
thermo_style custom step temp f_4[3] elapsed lx ly lz zlo zhi
run 100000

free_standing film boundary condition0000.jpg

how elastic is your material? this doesn’t look like it is some kind of rubber. :wink:
so it is probably not very much, and you are possibly just indenting it too much and too quickly.
keep in mind, that you have set up a rather small sample, so even pushing it a little bit, may force it beyond the breaking point.


free_standing film boundary condition0000.jpg

Dr. Kohlmeyer,

No, the material is stiff and not like rubber at all. Thanks for the suggestion but I tried slower indentation speeds with having the same problem.

When I try indentation (at the same speed) by fixing the bottom layer of atoms, indentation works just fine. However, when I try fixing the film on the side rather than on the bottom, the structure just breaks and does not indent at all. I have attached a snapshot of how the broken structure looks like. So, I am wondering is it a problem with the boundary condition I am using? Although the Lammps documentation does not mention any such restriction, is it necessary that to use the “Fix indent” command the structure has to be fixed at the bottom in the indentation direction?



Shoieb Ahmed Chowdhury
clamped_indentation_not working.JPG

free_standing film boundary condition0000.jpg

if you immobilize the bottom layer, you prevent the system from breaking, if you immobilize the boundaries you don’t.

i cannot comment on the details of your system and your settings, but that is something for you to debug and figure out. your conclusion so far makes no sense, though.

please always keep in mind, that what you may think is reasonable, may not be that reasonable on the atomic scale.


free_standing film boundary condition0000.jpg

clamped_indentation_not working.JPG