Conversion from cartesian to fractional coordinates

Click For Summary
SUMMARY

The discussion centers on converting Cartesian coordinates to fractional coordinates, specifically addressing issues related to axis orientation and transformation matrices. The user references Wikipedia for the conversion method and acknowledges potential problems with the alignment of lattice vectors. The correct approach involves using a transformation matrix formed by lattice vectors and inverting it to derive fractional coordinates. The user seeks validation of their code and data adherence to the specified coordinate system.

PREREQUISITES
  • Understanding of Cartesian and fractional coordinate systems
  • Familiarity with matrix operations and transformations
  • Knowledge of lattice vectors in crystallography
  • Basic programming skills to validate and run code
NEXT STEPS
  • Study the properties of lattice vectors in crystallography
  • Learn about matrix inversion techniques in linear algebra
  • Explore Python libraries for numerical computations, such as NumPy
  • Review examples of Cartesian to fractional coordinate conversions
USEFUL FOR

Researchers in crystallography, physicists working with coordinate transformations, and developers implementing coordinate conversion algorithms in software applications.

pushkalcodes
Messages
2
Reaction score
0
Hi all,

I have been trying to write code to convert from cartesian to fractional coordinates. I think everything is correct in my code (i have used wikipedia as reference - http://en.wikipedia.org/wiki/Fractional_coordinates), but still, the code doesn't work for some test values. The code is here http://codepad.org/sOV5ws5R. The code has the test data in there, if you want to check.

Could there be something wrong with the orientation of the axes? In wikipedia it has been assumed that cartesian coordinate axes X is in line with the lattice vector 'a'. It might be that the data I have doesn't correspond to this scheme (that the lattice vector 'a' is taken along x-axis). How to check if this the data which I have adheres to this scheme or is some other axis is directional along x-axis?

Other references that might be helpful -
http://www.angelfire.com/linux/myp/FracCor/fraccor.html
http://cci.lbl.gov/cctbx/frac_cart.html

I have really tried hard to find a solution for this, but couldn't find out where I am going wrong.

Thanks for your time.
 
Last edited by a moderator:
Physics news on Phys.org
It seems like you're doing a lot more work than necessary. You want something like:

[tex]\vec{R} = x_1 \vec{a}_1 + x_2 \vec{a}_2 + x_3 \vec{a}_3[/tex]

which can be written in matrix form as

[tex]\vec{R} = A \cdot<br /> \left( \begin{array}{c} x_1 \\ x_2 \\ x_3 \end{array}\right)[/tex]

where the matrix A is formed with the vectors a_i as its columns. Then you just need to invert the matrix to find the x's.
 
Hi,
Thanks for your reply. I have done the conversion exactly as you have described, using the inverse transformation matrix for conversion from cartesian to fractional coordinates.
The problem is with the axes I am choosing. In the conversion, one has to choose one of the lattice vectors being parallel to either of the x,y or z axis (x,y,z axis of cartesian or orthonormal coordinates). I might be going wrong there.

If anyone else can kindly validate the code with any other data they have, or can post data here, it'd be great.

Thanks
 

Similar threads

  • · Replies 6 ·
Replies
6
Views
3K
  • · Replies 2 ·
Replies
2
Views
2K
  • · Replies 1 ·
Replies
1
Views
3K
Replies
24
Views
4K
  • · Replies 2 ·
Replies
2
Views
4K
  • · Replies 1 ·
Replies
1
Views
3K
  • · Replies 2 ·
Replies
2
Views
1K
  • · Replies 1 ·
Replies
1
Views
1K
  • · Replies 4 ·
Replies
4
Views
2K
Replies
1
Views
2K