Author Topic: Atomic Strain tensor  (Read 85 times)

Ma Yong

  • Newbie
  • *
  • Posts: 6
Atomic Strain tensor
« on: January 22, 2018, 04:35:11 AM »
Hi Alex,
I compared the strain field of the OVITO result and myself computing result for the same graphene blister. Just as the following figs shown, the results are different in some areas while are same in most areas, which is very confusing. The first fig is the OVITO result and the second is my result. I think either the OVITO's code or myself code is wrong. I want to compares the two codes and where I can find the OVITO's code of atomic strain.
Thanks
Ma Yong

Alexander Stukowski

  • Administrator
  • Sr. Member
  • *****
  • Posts: 284
Re: Atomic Strain tensor
« Reply #1 on: January 22, 2018, 08:11:24 AM »
Hi,

Yes, this a strange result indeed. Is this calculation done in 2d-mode in OVITO? If so, how did you implement the plane strain calculation? In OVITO, particular elements of the V and W matrices are set to special values at some point of the calculation and then OVITO continues as if the problem where 3d (see source code).

And did you also compare the atomic deformation gradient with your solution? The def gradient is an intermediate calculation results and could help locate the source for this deviation.

-Alex

Ma Yong

  • Newbie
  • *
  • Posts: 6
Re: Atomic Strain tensor
« Reply #2 on: January 22, 2018, 10:16:44 AM »
Hi Alex,

The caculation is conducted in 3d-mode in OVITO.

I have tried to search for the reason and I found the results from Ovito are indeed strange. As shown in the following Figs, Fig 1 is the bond length of the initial configure; Fig 2 is the bond lenght of the current configure; Fig 3 is the Strain Tensor.XX and Fig 4 is the Def Grandient.11 (All the figs are the top view). Although the stretch extent of bond length can not equal to the strain tensor, Fig 1 and Fig 2 show that all the bonds  along x-dimension are stretched so that the Strain Tensor.XX should be larger than 0, while the result is negative as shown in Fig 3.

From the above results, I doubt that some mistakes exist in the correspongding OVITO codes. Of course, I also checked my codes and compared the Def Grandient and I found it shows the same tendency with the Strain Tensor result, as shown in Fig 4. I also tried to search the reason in the origin codes of OVITO given by you, but I could not fully understand  the codes and do not find the source of the above problem.

I just found that the delta_cer is calculated via the equation Vector3 delta_cur = delta_ref + neigh_displacement - center_displacemen other than the coordination of the current configure. This is the only difference with my algorithm that I have found. (see row 180 in source code)

Thanks
Ma Yong
« Last Edit: January 22, 2018, 10:36:23 AM by Ma Yong »

Alexander Stukowski

  • Administrator
  • Sr. Member
  • *****
  • Posts: 284
Re: Atomic Strain tensor
« Reply #3 on: January 22, 2018, 06:58:50 PM »
What concerns me is that you conducted this analysis in 3d-mode. For a true 2d-system like a graphene sheet, which is exactly planar in the undeformed configuration (I assume), the strain tensor calculation in 3d-mode will yield in unpredictable results --or an error message if you are lucky.

The reason is that you cannot calculate a 3x3 deformation gradient from a 2d-system where all atomic z-coordinates are zero. Tensor components such as F_zz, which involve the derivate of the displacement field with respect to the z-coordinate, remain undefined in this case. The implementation should catch this kind of degenerate situation, but it might not always be able to do so due to numerical errors. If that happens, tensor components like F_zz may take on arbitrary values. Consequently, the strain tensor E calculated from F will also be arbitrary (all of its components, not just the ones involving z-coordinates).

Have you tried doing this calculation in 2d-mode? You can switch to 2d-mode in the properties panel of the simulation cell. In 2d-mode, OVITO does not try to calculate the z-coordinate elements of the F tensor. Instead, they are set to fixed values assuming a plane strain situation.

If you can, please also post the simulation files for the initial and deformed configurations. Then I can take a look at the displacements of the atoms myself and check the strain calculation. I particularly would like to know if there are any out-of-plane displacements.
« Last Edit: January 22, 2018, 07:02:30 PM by Alexander Stukowski »

Ma Yong

  • Newbie
  • *
  • Posts: 6
Re: Atomic Strain tensor
« Reply #4 on: January 23, 2018, 02:40:09 AM »
The friction1_1.txt is the initial configure and the friction6_1.txt is the deformed configure.

In my simulation, the graphene sheet is pressured by a z-coordinate pressure so that, in fact, the out-plane displacement exist both in the initial configure and the deformed configure.

The attachments failed to upload and I have send to you by email. Please check the mail.

Thanks
« Last Edit: January 23, 2018, 02:57:32 AM by Ma Yong »

Alexander Stukowski

  • Administrator
  • Sr. Member
  • *****
  • Posts: 284
Re: Atomic Strain tensor
« Reply #5 on: January 23, 2018, 08:14:19 AM »
I didn't receive any files via email, sorry.

Why did uploading to the online forum fail? Was it the file size (there is a 20MB limit, I think) or the file extension (.txt)? Maybe zipping the files would help.

Ma Yong

  • Newbie
  • *
  • Posts: 6
Re: Atomic Strain tensor
« Reply #6 on: January 23, 2018, 08:44:10 AM »
It is shows as following,

An Error Has Occurred!
The upload folder is full. Please try a smaller file and/or contact an administrator.

I changed my file extension as '.cfg' and zip them into zip file, and the total size is about 7Mb, but the above error still exist. So I don't know what this error means. Is this your email? stukowski@mm.tu-darmstadt.de

Thanks

Ma Yong

  • Newbie
  • *
  • Posts: 6
Re: Atomic Strain tensor
« Reply #7 on: January 23, 2018, 09:27:47 AM »
I just checked my code again and compared the Def Grandient Tensor of one strange atom. My result is F=[0.9827   -0.0000   -0.2297;  0.0011    0.9904    0.0208; -0.8467    0.0144   -2.7461] and the OVITO result is F=[0.9827 -0.0000 -0.1713; 0.0011 0.9904 0.0155; -0.8468 0.0143 -2.0475]. Only the DefG.31,  DefG.32 and DefG.33 are different. So I think over the difference again and I still think the difference is from the calculation of delta_cur (Vector3 delta_cur = delta_ref + neigh_displacement - center_displacemen). I am not very clear about the center_displacement and neigh_dispalcement, and why the deformed vector separation delta_cur canbe expressed as delta_cur=delta_ref +neigh_displacement-center_displacement.

Considering the final result is the Lagrangain Strain Tensor which describes the strain state of one point in the reference configure, so that for all those points shown in Reply #2, the x-dimensional bonds are stretched and the strain component Strain.XX should be positive. This is what confuses me.

Thanks,
Ma Yong
« Last Edit: January 23, 2018, 09:31:03 AM by Ma Yong »

Alexander Stukowski

  • Administrator
  • Sr. Member
  • *****
  • Posts: 284
Re: Atomic Strain tensor
« Reply #8 on: January 23, 2018, 01:17:35 PM »
I've received your data file now, but haven't found the time yet to take a look at it.

Regrading the calculation formula you asked about: delta_cur=delta_ref+neigh_displacement-center_displacement

Here, delta_ref denotes the vector connecting the central atom A, located at initial position x0(A), with its neighbour atom B, located at initial position x0(B):

delta_ref = x0(B) - x0(A)

Similarly, we have for the neighbour vector in the deformed (current) configuration:

delta_cur = x1(B) - x1(A)

Here, x1(A) and x1(B) denote the locations of the the two atoms in the deformed configuration. We also have the two atomic displacements:

u(A) = x1(A) - x0(A)  (= "center_displacement")
u(B) = x1(B) - x0(B)  (= "neigh_displacement")

Thus, we can express the neighbour vector in the deformed configuration in terms of the old neighbour vector and the displacements of the two atoms:

delta_cur = x1(B) - x1(A) = [x0(B) + u(B)] - [x0(A) + u(A)] = [x0(B) - x0(A)] + [u(B) - u(A)] = delta_ref + u(B) - u(A).

Ma Yong

  • Newbie
  • *
  • Posts: 6
Re: Atomic Strain tensor
« Reply #9 on: January 24, 2018, 02:42:58 AM »
Just a moment ago, I found the root cause of the above difference. I looked over the source code again and I found the delta_cur is rescaled by the refToCurTM. And then I reture to OVITO and tried to tick or untick the selective function. I found  untick the elimilate homogenous cell deformation then the result will be same with my calculation results. I think the function would effect the Lagrangain Strain Tensor in those large curvature areas and in my simulation it should be unticked.

Sincere thanks,
Ma Yong