Author Topic: How to correlate info from WS with that of DXA modifier?  (Read 449 times)

Xtof

  • Jr. Member
  • **
  • Posts: 63
How to correlate info from WS with that of DXA modifier?
« on: April 11, 2018, 03:15:19 PM »
Dear Alex and OVITO users,

I managed to write, on the one hand, a Python script to analyse clusters with the Wigner-Seitz modifier, and, on the other hand, a Python script to analyse dislocations with the DXA modifier.
Both scripts work well separately.
With the first one, I get the size, nature (SIA or V) and coordinates of clusters. With the second one, I am able to determine, when clusters are sufficiently large, their Burgers vector. For n>=7 (in bcc Fe) the DXA modifier identifies very well 1/2<111> dislocation loops.
Now, what I would like to do is, when a cluster is sufficiently large and a dislocation loop is identified, correlate the Burgers vector given by the DXA modifier with the corresponding information obtained with the WS modifier in order to store in a file, the size of the cluster, its nature (SIA or V), its coordinates and its Burgers vector.

How to correlate the information obtained with the WS modifier with that obtained with the DXA modifier? Any idea how to do that?

Many thanks in advance and best regards,
Christophe

Alexander Stukowski

  • Administrator
  • Hero Member
  • *****
  • Posts: 515
Re: How to correlate info from WS with that of DXA modifier?
« Reply #1 on: April 11, 2018, 05:57:42 PM »
Hi Christophe,

can you post a typical picture of your defect structures, showing the point defect clusters and the corresponding dislocation loops (superimposed)? This would help us evaluate which kind of correlation strategies could work in your case.

-Alex

Xtof

  • Jr. Member
  • **
  • Posts: 63
Re: How to correlate info from WS with that of DXA modifier?
« Reply #2 on: April 12, 2018, 09:58:44 AM »
Hi Alex,

Here is a cascade of 150 keV in W. Red balls are SIAs and the white ones, vacancies. As you can see, relatively large clusters of SIAs form, with a dislocation line around. In this case, Ovito identifies 4 dislocs of type 1/2<111> (two of them are very close).

What I would like to do is to know the Burgers vector of the clusters obtained with the WS modifier.

What comes to my mind is to use the vertex coordinates given by the DXA modifier and compare them to the coordinates of clusters obtained with the WS modifier. I guess that by comparison, I could deduce that a certain dislocation with id i corresponds to a certain cluster with id j.

What do you think?
Many thanks in advance and best regards,
Christophe

Xtof

  • Jr. Member
  • **
  • Posts: 63
Re: How to correlate info from WS with that of DXA modifier?
« Reply #3 on: April 12, 2018, 01:11:45 PM »
Maybe a solution is to calculate the min and max coordinates of the vertexes for each dislocation line and then check for each cluster if its average coordinates (xmean, ymean, zmean) are such that:

xmin <= xmean <= xmax
ymin <= ymean <= ymax
zmin <= zmean <= zmax

When the average coordinates of a cluster fulfil these 3 conditions, then it means that the cluster is inside this dislocation line and we can say that the Burgers vector of the dislocation is the Burgers vector of this cluster.

Xtof

Alexander Stukowski

  • Administrator
  • Hero Member
  • *****
  • Posts: 515
Re: How to correlate info from WS with that of DXA modifier?
« Reply #4 on: April 12, 2018, 01:23:10 PM »
Yes, that sounds reasonable and simple and is something you should try first.

An alternative approach that came to my mind is this:

Keep a counter for every defect cluster in the system. Initialize all counters to zero. Then visit all vertices of a given dislocation loop. For every vertex, find the closest cluster atom (use OVITO's NearestNeighborFinder for this). Increment the counter for the cluster this atom belongs to by one. The cluster with the highest count wins and is associated with the dislocation loop.

Xtof

  • Jr. Member
  • **
  • Posts: 63
Re: How to correlate info from WS with that of DXA modifier?
« Reply #5 on: April 12, 2018, 02:12:59 PM »
The solution I proposed works. It was quite easy to implement.
I keep in mind your alternative solution in case of...

Thanks again and best regards,
Christophe