Sunday, December 20, 2009

Update: smooth indenter & analytical calculation of velocity & hessian

Smooth Indenter: Wrote a new class in smoothIndenter.py which encapsulates all information about the smooth indenter. This class produces the correct LAMMPS script needed on "moving" the indenter. The file minimizeWithIndenter.py was suitably modified for this type of indenter.
On running the indenter I found that, x-quadruple gives the
expected nucleation pattern BUT x-triple nucleates 2 dislocations even after moving the indenter (horizontally) some 5-6 times.


Analytical Velocity: This has the advantage that the indenter needn't be given a small perturbation to measure the velocity field. The equation used is in another post. In order to make solution of the linear system seamless and not involve any MATLAB use, I have decided to adopt the scipy sparse.dok_matrix format for all matrices and vectors. The newTheoHessian.py file has all the changes but is yet to be tested. More results on this will be posted here when available.
Fig1: 'Crystal response forces' are the analytically calculated forces in the crystal due to an infinitesimal downward motion of the indenter. The displacement field is computed from 2 configurations 1e-6 apart in indenter depth. Numerical velocity is computed by moving the indenter by 1e-7 and calculating the resulting crystal displacement.


Analytical Hessian: is finally working for LJ smooth (& LJ cut) potential. In fig 2. (below) are the lowest mode of x-triple. Also quoted below are the 4 lowest eigenvalues (calculate from full hessians using Lanczos). There is very close agreement between the analytical and numerical results.

4 lowest Eigenvalues of full hessian of x-triple :-
Numerical : -0.0058792, -0.24143, -0.59427, -0.77723
Analytical: 0.0058764, 0.24143, 0.59427, 0.77723


Fig 2: Lowest eigenmodes of x-triple.

Wednesday, December 16, 2009

Analytical velocity field and hessian for 2-body potentials


Fig 1: 'Velocity' is defined as the rate of change of positions of crystal atoms with respect to downward motion of the indenter. The above expression assumes that the system is in mechanical equilibrium so that the response is essentially linear.



Fig 2: Derivation of elements of the Hessian matrix for a 2-body potential in a Cartesian coordinate system.

Tuesday, December 8, 2009

Evolution of lowest eigenvalues near dislocation nucleation


Fig 1: Plot of 4 lowest eigenvalues for 4 system geometries. The 4 'lowest' eigenvalues of the full system are plotted against indenter depth.

Fig 2: Fitted functions of the form y=-A*sqrt(B-x) - the cyan curves -to the tails of the eigenvalue ~ Depth plots (where they approach zero); A & B are constants. Except for x-triple, all systems show the existence of 1 critical mode whose eigenvalue seems to go to zero as the square root of (Dc - D) & for all systems, the parameter B was the critical depth. (in accord with expectations from a 'saddle node bifurcation' based nucleation mechanism).


Fig 3: The 4 lowest modes from the system x-triple corresponding to the last configuration before nucleation (roughly del_D ~ 1e-6). This image shows that more than 1 normal mode is active during nucleation partially accounting for different character of xtriple's eigenvalue plots. Mode 1 corresponds to the lowest eigenvalue (the one closest to zero).
Fig 4: The 4 lowest modes for the system x-quadruple corresponding a configuration with (Dc-D) ~ 1e-6. Notice the strong contrast with the modes of x-triple. Mode 1 is again the lowest.

Plotting Info: Used my numerical hessian routine to compute negative-definite hessian matrices. An ARPACK based Lanczos implementation built into matlab was used to diagonalize the hessian matrices. Only configurations with max_force <= 1e-8 were for the computation of hessians. And the minimizations were done with the pre-MR minimizer, ie. backtrack_quadratic.