Simulating a free surface under vacuum (for indentation)


I was originally interested in indenting one of the faces of a cube and wanted to be able to simulate this effect without interactions from the alternative face of the simulation box (periodic BCs).

My primary focus has been trying to simulate a cube of pure copper adjacent to a volume of vacuum at 50K (which, to my knowledge, should not be even close to the melting or boiling temperature). However, if I use NPT, the volume stretches to crazy dimensions. Even if I use NVT, the atoms do volatise and/or penetate the vacuum (especially from the bottom periodic boundary). AND YES, I do use fixed boundaries, with fix setforce 0 0 0…

I have also tried a number of other options, including shrink-wrapping the dimension along the axis of indentation. This resulted in massive shift in the simulation geometry, and did not produce the desire effect.

Anyway, I could rant for a long time, but perhaps it is best to let you see my code:

units metal
dimension 3
boundary p p p
#boundary p s p
atom_style atomic
lattice fcc 3.615

#-------- Define region dimensions
region Total block 0 40 0 80 0 40 units box
region Substrate block 0 40 0 40 0 40 units box
region Vacuum block 0 40 40 80 0 40 units box
region surface1 block 0 40 0 2 0 40 units box
region surface2 block 0 40 38 40 0 40 units box
create_box 1 Total
#create_box 1 Substrate
create_atoms 1 region Substrate units box

group Boundary region surface1
group Boundary2 region surface2

pair_style eam/alloy
pair_coeff * * Cu.set Cu

compute csym all centro/atom fcc
compute pe all pe/atom

timestep 0.0005
thermo 1000
thermo_style custom temp press lx ly lz vol etotal pe

#----------------- create finite temperature
timestep 0.0005
velocity all create 50 12345 mom yes rot no

#--------------- Equilibrate
fix 1 all nvt temp 50 50 1 drag 1.0
#fix 1 all npt temp 50 50 1 iso 0 0 10 drag 1.0
fix 3 Boundary setforce 0.0 0.0 0.0
fix 4 Boundary2 setforce 0.0 0.0 0.0

dump 1 all cfg 1000 dump.Nanoindent_*.cfg id type xs ys zs c_csym c_pe fx fy fz
shell mkdir Dump1
shell cd Dump1

run 30000

unfix 1
undump 1

#--------Indent at constant volume
reset_timestep 0
fix 1 all nvt temp 50 50 1 drag 1.0

#------- Set indent velocity
variable y equal 42
variable yInd equal “ylat-0.005*step”

fix 2 all indent 50.0 sphere 20.0 v_yInd 20.0 5.0 side out units box
fix_modify 2 energy yes

shell mkdir Dump2
shell cd Dump2
dump 1 all cfg 250 dump.Nanoindent_*.cfg id type xs ys zs c_csym c_pe fx fy fz

run 10000

#------- relax
unfix 2

run 2000

Does anyone know if this is even possible? Has anyone got an example of a good nano-indentation script which can be achieved in 3D, and at finite temperature?