Noel: thanks for the reply. In fact the problem is slightly more
complicated than the description I gave.
What I'm actually trying to do is extract molecular coordinates from a
G09 surface scan.
I know that G09 publishes the cartesian coordinates of the molecule at the
end of the output file and, as you say, I could use that info to get build
the internal coordinates.
But the in which G09 does a scan calculation is this:
For each point to be calculated, G09 publishes the initial cartesian
coordinates of the molecule.
Having established a fixed distance bewteen two atoms (the scan
coordinate), G09 optimizes the rest of the coordinates and reports the
result... in internal coordinates!!!
Then it changes the scan coordinate, reports the new initial coordinates
in cartesian (Input orientation), and proceeds to optimize the rest,
reportin the optimized result again in internal coordinates. The output
doesn't report optimized cartesian coordinates for each point, only
internal coordinates.
It repeats this procedure for each of the scan values.
For each point the optimized geometry is always reported in internal
coordinates, which are not exactly the ones I need to further prepare a
barrierless calculation using another program (multiwell).
That is my problem: how can I use the internal coordinates information
given in G09 scan output to make useful (internal or cartesian)
coordinates I can use with multiwell.
The way G09 is reporting the dihedral angle, is not exactly the one I need
to build the input for the other program.
I reckon all the information is there: bond distances, bond angles and
dihedral angle. The problem is the way in which G09 particularly reports
the dihedral angle: 1,2,4,3 or 2,1,4,3 instead of 1,2,3,4
I havent' got a clue why G09 reports internal coodinates in this manner.
There must be a very good reason, but I haven't been able to find out.
If I can transform the dihedral angle value to the original numbering, I
would be able to solve the problem.
That's what I'm trying to find out. Or maybe I'm missing something quite
obvious. Any help is appreciated.
best regards
Kenneth
On Thu, 28 Feb 2019, Noel O'Boyle wrote:
Are the atoms in the cartesian gaussian output in the same order as your input
atoms? If so, then you could use the library to calculate
the dihedral angle yourself since you know which atom is which and their
cartesian coordinates.
On Wed, 27 Feb 2019 at 18:59, Kenneth Irving via OpenBabel-scripting
<[email protected]> wrote:
I have this simple molecule I'm studying: H2SCl
The Gaussian 2009 (G09) input file is this:
---------- cut here -------------
#ub2plyp/6-31g(d,p) freq OPT
adducto H2S--Cl
0 2
Cl
S, 1, r1
H, 2, r2, 1, a1
H, 2, r3, 1, a2, 3, d1
Variables:
r1=1.9
r2=1.0
r3=1.0
a1=120.0
a2=120.0
d1=120.0
---------- cut here -------------
After running g09, I get these internal coordinate values in the output
---------- cut here -------------
! Name Definition Value Derivative Info.
--------------------------------------------------------------------------------
! R1 R(1,2) 2.7341 -DE/DX = 0.0
! R2 R(2,3) 1.3401 -DE/DX = -0.0001
! R3 R(2,4) 1.3401 -DE/DX = -0.0001
! A1 A(1,2,3) 89.758 -DE/DX = 0.0
! A2 A(1,2,4) 89.758 -DE/DX = 0.0
! A3 A(3,2,4) 93.213 -DE/DX = 0.0
! D1 D(1,2,4,3) -89.744 -DE/DX = 0.0
--------------------------------------------------------------------------------
---------- cut here -------------
It's easy to see that G09 is not printing the same internal coordinates
I used in the input
If I redefine the initial internal coordinates, putting sulphur as
the first atom:
---------- cut here -------------
#ub2plyp/6-31g(d,p) freq OPT
adducto H2S--Cl
0 2
S
Cl, 1, r1
H, 1, r2, 2, a1
H, 1, r3, 2, a2, 3, d1
Variables:
r1=2.9
r2=1.0
r3=1.0
a1=120.0
a2=120.0
d1=120.0
---------- cut here -------------
...I get these final internal coordinates:
---------- cut here -------------
! Name Definition Value Derivative Info.
--------------------------------------------------------------------------------
! R1 R(1,2) 2.7349 -DE/DX = 0.0
! R2 R(1,3) 1.3399 -DE/DX = 0.0
! R3 R(1,4) 1.3399 -DE/DX = 0.0
! A1 A(2,1,3) 89.7451 -DE/DX = 0.0
! A2 A(2,1,4) 89.7451 -DE/DX = 0.0
! A3 A(3,1,4) 93.2202 -DE/DX = 0.0
! D1 D(2,1,4,3) -89.7303 -DE/DX = 0.0
---------- cut here -------------
Distances and bond angles are no problem. The problem I'm having is with
the dihedral angle.
In both cases the numbering in the dihedral angle is different from the
one I used in the input file.
In the first case the dihedral angle in the input is numbered: 4,2,1,3 but
in the output I get: 1,2,4,3
In the second case the dihedral angle in the input numbered: 4,1,2,3 but
in the output I get: 2,1,4,3
For a different calculation I need to take these internal coordinates
results from G09 output and recreate the geometry in internal coordinates
but with the original numbering. As I said, distances and bond angles are
no problem. The problem is getting the original dihedral angle from the
internal coordinates data provided in the output.
I was wondering whether I could do this with openbabel?
I haven't been able to find a way that works for all cases: depending on
the atomic numbers, G09 displays different numbering of dihedral angles.
Apparently it lists atoms from the highest to lowest atomic number.
Maybe there's a way I can use the internal coordinates in the output to
convert to cartesian coordinates and from there calculate the internal
coordinates with the original numbering.
Maybe there's a simple way to convert dihedral angles based on their
numbering, but I haven't been able to come up with a solution, nor have I
found any literature on this topic.
If someone could provide me with some guidance or has any idea, I'd be
very grateful. Thanks in advance.
Best regards
Kenneth
_______________________________________________
OpenBabel-scripting mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbabel-scripting
_______________________________________________
OpenBabel-scripting mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbabel-scripting