Commit 98b0619c authored by vmohles's avatar vmohles
Browse files

ECO Driving force

adds an energy to each atom depending on the surrounding crystal orientation, in order to drive grain boundaries
parent 315463e6
Loading
Loading
Loading
Loading
+130 −0
Changes for doc/src/fix_eco_force.rst: 130 added lines, 0 removed lines.
Original line number Diff line number Diff line
1 	fix eco/force command

fix ID group-ID eco/force u0 eta rcut file
• ID, group-ID are documented in fix command
• u0 = energy added to each atom (energy units)
• eta = cutoff value (usually 0.25)
• rcut = cutoff radius for orientation parameter calculation • file = file that specifies orientation of each grain
Examples: fix gb all eco/force 0.08 0.25 3.524 sigma5.ori 



1.1	Description:

The fix applies a synthetic driving force to a grain boundary which can 
be used for the investigation of grain boundary motion. The affiliation 
of atoms to either of the two grains forming the grain boundary is 
determined from an orientation-dependent order parameter as described 
in (Ulomek). The potential energy of atoms is either increased by an amount 
of 0.5*u0 or -0.5*u0 according to the orientation of the surrounding 
crystal. This creates a potential energy gradient which pushes atoms near 
the grain boundary to orient according to the energetically favorable 
grain orientation. This fix is designed for applications in bicrystal system 
with one grain boundary and open ends, or two opposite grain boundaries in 
a periodic system. In either case, the entire system can experience a 
displacement during the simulation which needs to be accounted for in the 
evaluation of the grain boundary velocity. While the basic method is 
described in (Ulomek), the implementation follows the efficient 
implementation from (Schratt & Mohles). The synthetic potential energy added to an 
atom j is given by the following formulas

\begin{eqnarray}
w(|\vec{r}_{jk}|)=w_{jk}=\left\{\begin{array}{lc}
\frac{|\vec{r}_{jk}|^{4}}{r_{\mathrm{cut}}^{4}}-2\frac{|\vec{r}_{jk}|^{2}}{r_{\mathrm{cut}}^{2}}+1, & |\vec{r}_{jk}|<r_{\mathrm{cut}} \\
0, & |\vec{r}_{jk}|\ge r_{\mathrm{cut}}
\end{array}\right.
\label{eq:envelope}
\end{eqnarray}
\begin{eqnarray}
\chi_{j} & = & \frac{1}{N}\sum_{l=1}^{3}\left\lbrack\left\vert\psi_{l}^{\mathrm{I}}(\vec{r}_{j})\right\vert^{2}-\left\vert\psi_{l}^{\mathrm{II}}(\vec{r}_{j})\right\vert^{2}\right\rbrack
\label{eq:force-long}
\end{eqnarray}
\begin{eqnarray}
\psi_{l}^{\mathrm{X}}(\vec{r}_{j})=\sum_{k\in\mathit{\Gamma}_{j}}w_{jk}\exp\left(\mathrm{i}\vec{r}_{jk}\cdot\vec{q}_{l}^{\mathrm{X}}\right)
\end{eqnarray}
\begin{eqnarray}
u(\chi_{j}) & = & \frac{u_{0}}{2}\left\{\begin{array}{lc}
1, & \chi_{j}\ge\eta\\
\sin\left(\frac{\pi\chi_{j}}{2\eta}\right), &  -\eta<\chi_{j}<\eta\\
-1, & \chi_{j}\le-\eta
\end{array}\right.
\label{eq:energy-mid}
\end{eqnarray}

which are fully explained in (Ulomek) and (Schratt & Mohles).

The force on each atom is the negative gradient of the synthetic potential energy. It 
depends on the surrounding of this atom. An atom far from the grain boundary does not 
experience a synthetic force as its surrounding is that of an oriented single crystal 
and thermal fluctuations are masked by the parameter eta. Near the grain boundary 
however, the gradient is nonzero and synthetic force terms are computed. 
The orientation file specifies the perfect oriented crystal basis vectors for the 
two adjoining crystals. The first three lines for the energetically penalized and the 
last three lines for the energetically favored grain assuming u0 is positive. For 
negative u0 this is reversed. With the rcut parameter, the size of the region around 
each atom which is used in the order parameter computation is defined. It should at 
least include the nearest neighbor shell. For high temperatures or low angle 
grain boundaries, it might be beneficial to increase rcut in order to get a more 
precise identification of the atoms surrounding. However, computation time will 
increase as more atoms considered in the order parameter and force computation. 
It is also worth noting that the cutoff radius must not exceed the communication 
distance for ghost atoms in LAMMPS. Currently however, the method stores results 
for order parameter and force computations in statically allocated arrays to 
increase efficiency such that the user is limited to 24 nearest neighbors. 
This is more than enough in most applications. With file, the input file for 
the 6 oriented crystal basis vectors is specified. Each line of the input file 
contains the three components of a primitive lattice vector oriented according to 
the grain orientation in the simulation box. The first (last) three lines correspond 
to the primitive lattice vectors of the first (second) grain. An example for 
a Σ5⟨001⟩ misorientation is given at the end.

If no synthetic energy difference between the grains is created, u0=0, the 
force computation is omitted. In this case, the order parameter of the 
driving force can be used to track the grain boundary motion throughout the 
simulation.



1.2	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 potential energy of 
atominteractions with the grain boundary driving force to the system's poten-
tial energy as part of thermodynamic output. 
The total sum of added synthetic potential energy is computed and can be accessed 
by various output options. The order parameter as well as the thermally masked 
output parameter are stored in per-atom arrays and can also be accessed by various 
output commands. 
No parameter of this fix
can be used with the start/stop keywords of the run command. This fix is
not invoked during energy minimization.



1.3	Restrictions:

This fix is part of the MISC package. It is only enabled if LAMMPS was
built with that package. See the Making LAMMPS section for more info.



1.4	Related commands:

fix_modify
Default: none
(Ulomek) Felix Ulomek et al. Modelling Simul. Mater. Sci. Eng. 23 (2015) 025007
(Schratt & Mohles) Adrian A. Schratt and Volker Mohles. Comp. Mat. Sci. 182 (2020) 109774

For illustration purposes, here is an example file that specifies a $\Sigma5\langle001\rangle$ tilt grain boundary. 
This is for a lattice constant of 3.52 Angs.



1.5	File:
    1.671685 0.557228 1.76212
    0.557228 -1.671685 1.76212
    2.228913 -1.114456 0.000000
    0.557228 1.671685 1.76212
    1.671685 -0.557228 1.76212
    2.228913 1.114456 0.000000
+6006 −0

File added.

Preview size limit exceeded, changes collapsed.

+17 −0
Changes for examples/eco_force/in.eco_force: 17 added lines, 0 removed lines.
Original line number Diff line number Diff line
log eam.log
dimension 3
boundary p p p
units metal
atom_style atomic
lattice fcc 3.5
read_data examples/eco_force/sigma5.lammps
pair_style eam/fs
pair_coeff * * examples/eco_force/Ni.eam.fs Ni
timestep 0.001
thermo 100
fix integrator all npt temp 750 750 0.1 iso 0 0 0.1
fix eco all eco/force 0.08 0.25 3.6 examples/eco_force/sigma5.ori
velocity all create 750 1
dump save all custom 100 nidata_eam.dump xs ys zs f_eco[1] f_eco[2]
dump_modify save sort id
run 1000
 No newline at end of file
+25615 −0

File added.

Preview size limit exceeded, changes collapsed.

+6 −0
Changes for examples/eco_force/sigma5.ori: 6 added lines, 0 removed lines.
Original line number Diff line number Diff line
1.671685 0.557228 1.76212
0.557228 -1.671685 1.76212
2.228913 -1.114456 0.000000
0.557228 1.671685 1.76212
1.671685 -0.557228 1.76212
2.228913 1.114456 0.000000
 No newline at end of file
Loading