-
Notifications
You must be signed in to change notification settings - Fork 24
Description
Describe the bug
When converting a Z-matrix to XYZ coordinates using the zmat_to_xyz function, the angle A_8_2_1 is incorrectly calculated. It is defined as 77.4° in the Z-matrix, but after conversion and visualization in GaussView, it is shown as 51.93824°. All other parameters appear to be converted correctly.
This is just one example, but I’m encountering the same issue with other molecules as well, consistently with the angle A_8_2_1.
How to reproduce
zmat = {
'symbols': ('C', 'O', 'C', 'O', 'H', 'H', 'H', 'H', 'O', 'H', 'H'),
'coords': (
(None, None, None),
('R_1_0', None, None),
('R_2_1', 'A_2_1_0', None),
('R_3_2', 'A_3_2_1', 'D_3_2_1_0'),
('R_4_0', 'A_4_0_1', 'D_4_0_1_3'),
('R_5|6_0|0', 'A_5|6_0|0_1|1', 'D_5_0_1_4'),
('R_5|6_0|0', 'A_5|6_0|0_1|1', 'D_6_0_1_5'),
('R_7_2', 'A_7_2_3', 'D_7_2_3_6'),
('R_8_2', 'A_8_2_1', 'D_8_2_7_3'),
('R_9_8', 'A_9_8_2', 'D_9_8_2_1'),
('R_10_8', 'A_10_8_9', 'D_10_8_9_2')
),
'vars': {
'R_1_0': 1.4279748215793069, 'R_2_1': 1.7627308829567612, 'A_2_1_0': 113.78880933352458,
'R_3_2': 1.220223245519294, 'A_3_2_1': 126.68953118378808, 'D_3_2_1_0': 6.273929367455621e-06,
'R_4_0': 1.093536138062114, 'A_4_0_1': 108.0618680369275, 'D_4_0_1_3': 61.484528505772055,
'R_7_2': 1.1010626883230803, 'A_7_2_3': 124.35232167955662, 'D_7_2_3_6': 199.80067229824692,
'R_8_2': 1.85, 'A_8_2_1': 77.4, 'D_8_2_7_3': 140,
'R_9_8': 1.21, 'A_9_8_2': 70, 'D_9_8_2_1': 1.64,
'R_10_8': 0.97, 'A_10_8_9': 111, 'D_10_8_9_2': 103
},
'map': {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, 10: 10}
}
xyz = zmat_to_xyz(zmat)
print(xyz)
To reproduce the issue, convert the Z-matrix using the zmat_to_xyz function. Next, visualize the resulting XYZ coordinates in GaussView and examine the geometric structure. Compare the angle A_8_2_1 in the XYZ output to its defined value in the Z-matrix (77.4°) and note the discrepancy.
Expected behavior
The angle A_8_2_1 should match its defined value in the Z-matrix (77.4°).
Additional context
Gaussian successfully computes the correct angle using the same Z-matrix, so the discrepancy appears to be specific to ARC’s zmat_to_xyz function.
- Observed XYZ from zmat_to_xyz:
C -0.25870627 -0.85853197 -1.53345513
O -0.25870627 -0.85853197 -0.10548031
C -0.25870627 0.75443460 0.60554643
O -0.25870638 1.81623563 0.00427832
H 0.65482121 -0.36220752 -1.87249919
H -0.25870630 -1.88367885 -1.91708716
H -1.11876827 -0.30066148 -1.91708716
H -0.29397484 0.66137562 1.70210249
O 0.91829111 -0.63533633 0.93068322
H 0.10796546 -0.96617019 0.09520653
H 0.70717317 -1.02539152 1.79334547
- Observed XYZ from Gaussian:
C 0.00000000 0.00000000 0.00000000
O 0.00000000 0.00000000 1.42800000
C 1.61293842 0.00000000 2.13901402
O 2.67471880 0.00000000 1.53775661
H 0.49630837 -0.91349690 -0.33903344
H -1.02516826 -0.00000000 -0.38363940
H 0.55788139 0.86008042 -0.38363940
H 1.51987759 0.03526445 3.23560752
O 0.68578419 1.16051832 3.24177521
H -0.05359017 0.71661428 2.39302628
H 0.95208240 2.06894661 3.03024906