Syntax:
fix ID group-ID indent k keyword values ...
sphere args = x y z R x,y,z = initial position of center of indenter (distance units) R = sphere radius of indenter (distance units) cylinder args = dim c1 c2 R dim = x or y or z = axis of cylinder c1,c2 = coords of cylinder axis in other 2 dimensions (distance units) R = cylinder radius of indenter (distance units) plane args = dim pos side dim = x or y or z = plane perpendicular to this dimension pos = position of plane in dimension x, y, or z (distance units) side = lo or hi vel args = vx vy vz vx,vy,vz = velocity of center of indenter (velocity units) rstart value = R0 R0 = sphere or cylinder radius at start of run (distance units) R is value at end of run, so indenter expands/contracts over time side value = in or out in = the indenter acts on particles inside the sphere or cylinder out = the indenter acts on particles outside the sphere or cylinder units value = lattice or box lattice = the geometry is defined in lattice units box = the geometry is defined in simulation box units
Examples:
fix 1 all indent 10.0 sphere 0.0 0.0 15.0 3.0 vel 0.0 0.0 -1.0 fix 2 flow indent 10.0 cylinder z 0.0 0.0 10.0 units box
Description:
Insert an indenter within a simulation box. The indenter repels all atoms that touch it, so it can be used to push into a material or as an obstacle in a flow. Or it can be used as a constraining wall around a simulation; see the discussion of the side keyword below.
The indenter can either be spherical or cylindrical or planar. You must set one of those 3 keywords.
A spherical indenter exerts a force of magnitude
F(r) = - k (r - R)^2
on each atom where k is the specified force constant, r is the distance from the atom to the center of the indenter, and R is the radius of the indenter. The force is repulsive and F(r) = 0 for r > R. The calculation of distance to the indenter center accounts for periodic boundaries, which means the indenter can effectively straddle one or more periodic boundaries.
A cylindrical indenter exerts the same force, except that r is the distance from the atom to the center axis of the cylinder. The cylinder extends infinitely along its axis. The calculation of distance to the indenter axis accounts for periodic boundaries, which means the indenter can effectively straddle one or more periodic boundaries.
A planar indenter is really an axis-aligned infinite-extent wall exerting the same force on atoms in the system, where R is the position of the plane and r-R is the distance from the plane. If the side parameter of the plane is specified as lo then it will indent from the lo end of the simulation box, meaning that atoms with a coordinate less than the plane's current position will be pushed towards the hi end of the box and atoms with a coordinate higher than the plane's current position will feel no force. Vice versa if side is specified as hi.
If the vel keyword is specified, the center (or axis or position) of the spherical (or cylindrical or planar) indenter will move during the simulation, based on its initial position (x,y,z) and the specified (vx,vy,vz). Note that if you do multiple runs, the initial position of the indenter (x,y,z) does not change, so it will continue to move at the specified velocity. For periodic systems and spherical or cylindrical indenters, the new position of the center or axis is wrapped back into the periodic box as needed.
If the rstart keyword is specified, then the radius of the indenter is a time-dependent quantity. This only applies to spherical or cylindrical indenters. R0 is the value assigned at the start of the run; R is the value at the end. At intermediate times, the radius is linearly interpolated between these two values. This option can be used, for example, to grow/shrink a void within the simulation box.
If the side keyword is specified as out, which is the default, then particles outside the indenter are pushded away from its outer surface, as described above. This only applies to spherical or cylindrical indenters. If the side keyword is specified as in, the action of the indenter is reversed. Particles inside the indenter are pushed away from its inner surface. In other words, the indenter is now a containing wall that traps the particles inside it. If the radius shrinks over time, it will squeeze the particles.
The units keyword determines the meaning of the distance units used to define the indenter. A box value selects standard distance units as defined by the units command, e.g. Angstroms for units = real or metal. A lattice value means the distance units are in lattice spacings. The lattice command must have been previously used to define the lattice spacing. Note that the units choice affects not only the indenter's physical geometry, but also its velocity and force constant since they are defined in terms of distance as well.
Restart, fix_modify, output, run start/stop, minimize info:
No information about this fix is written to binary restart files.
The fix_modify energy option is supported by this fix to add the energy of interaction between atoms and the indenter to the system's potential energy as part of thermodynamic output. The energy of each particle interacting with the indenter is K/3 (r - R)^3.
This fix computes a scalar energy and a 3-vector of forces (on the indenter), which can be accessed by various output commands. The scalar and vector values calculated by this fix are "extensive", meaning they scale with the number of atoms in the simulation.
This fix can adjust the indenter position and radius over multiple runs, using the start and stop keywords of the run command. See the run command for details of how to do this.
The forces due to this fix are imposed during an energy minimization, invoked by the minimize command. The rstart keyword does not change the indenter radius during an energy minimization; the indenter always has a radius of its final value R in that case.
IMPORTANT NOTE: If you want the atom/indenter interaction energy to be included in the total potential energy of the system (the quantity being minimized), you must enable the fix_modify energy option for this fix.
Restrictions: none
Related commands: none
Default:
The option defaults are vel = 0,0,0, side = out, and units = lattice.