0

I have a file with the atomic coordinates $(x, y, z)$ of each atom on a two-dimensional sheet. In the case of graphene, the atoms have a distance of approximately 1.42 angstroms.

The sheet is usually along the $x$ and $y$-axes.

My need is to transform the coordinates of the sheet atoms into archimedean spiral-shaped coordinates (usually $r = a + b\theta$).

I found in an article a program that performs this task and that performs the following transformation:

$ x_i' = \bigg( \sqrt{2s(x_i+s_0)} + z_i \bigg) \cdot\cos\bigg(\sqrt{\dfrac{2(x_i+s_0)}{s}} \bigg ) $

$ y_i' = \bigg( \sqrt{2s(x_i+s_0)} + z_i \bigg) \cdot\sin\bigg(\sqrt{\dfrac{2(x_i+s_0)}{s}} \bigg ) $

$ z_i' = -y_i $

where $s$ is the distance between two consecutive layers of the spiral, and $s_0 = r_0^2/2$ (which I didn't understand where it came from), being $r_0$ the internal radius of the spiral. In any case, this transformation alters the atomic distances, which cause the chemical bonds between the atoms to be taken into account. The images below are from the input to the script I am making and the output of the program according to the transformation above, in regards to the positioning of the axes everything is working well, the problem is that it alters the distances between the atoms. It can be seen in the output image that most of them I'm not with their respective covalent bonds.

enter image description here enter image description here

benjamin_ee
  • 3,825

1 Answers1

1

Indeed you’re distorting the sheets. You can see this by taking the derivatives of $(x_i',y_i',z_i')$ with respect to $x_i$, $y_i$ and $z_i$. Whereas the derivatives with respect to $y_i$ and $z_i$ are unit vectors (namely $(0,0,-1)$ and $(\cos\phi,\sin\phi,0)$ with $\phi=\sqrt{2(x_i+s_0)/s}$, respectively), the derivative with respect to $x_i$ has variable length $\ne1$.

Your basic form

\begin{eqnarray} x'&=&(s\phi+z)\cos\phi\;,\\ y'&=&(s\phi+z)\sin\phi\;,\\ z'&=&-y' \end{eqnarray}

is correct, but you need to choose $\phi$ such that the derivative of $(x',y',z')$ with respect to $x$ is a unit vector. This can’t be done in closed form, but the answers at find the arclength parametrization of the Archimedean spiral? and How to place objects equidistantly on an Archimedean spiral? show how to proceed. Here your $x$ should correspond to the arc length along the spiral (up to an additive constant). (Note that your arc-length parametrization will depend on $z$.)

joriki
  • 242,601