I am simulating crack propagation in metals. I have a rectangular system and applied periodic boundary conditions say in y direction and I have free surfaces in x and z direction. I want to apply a uniaxial strain rate in z direction (two layers at the top and bottom in z direction being fixed). How can I apply a tensile strain rate in z direction which is non-periodic, since I can not use fix deform command for non-periodic dimensions.
I am aware of a displace_atoms command in lammps but not sure how to use it.
Can I use it for every time step and still get the dynamics correct. Will it be ok if I use displace_atoms command in z direction and do nve for 1 timestep. Again apply displace_atoms command in z direction and do nve for 1 time step and repeat.
You mean you are using displace_atoms command say in z direction and then do npt for 1 timestep. Again apply displace_atoms command in z direction and then do npt for 1 time step and repeat.
If yes, how you are repeating the above steps. (as you can’t write all the commands manually say for 100000 steps).
I am planning to use s for free surface boundary conditions.
You mean you are using displace_atoms command say in z direction and
then do npt for 1 timestep. Again apply displace_atoms command in z
direction and then do npt for 1 time step and repeat.
while lammps has an option to do loops in its script language,
in this case it seems pretty wasteful to do so.
if you want atoms to move with a constant velocity, all you
have to do is set an initial velocity, use fix setforce
to zero out all forces on them, and integrate their movements
with fix nve. pretty simple, if you think about it.
If you move boundary atoms at a constant velocity,
that is effectively inducing a strain on the atoms in between,
at least for a solid. You just need to convert velocity to strain.