[molpro-user] Bug report: out-of-plane constraint units, including incorrect conversion to radians using the angstrom-to-bohr factor

Lauria, Kshitij Kshitij.Lauria at DEShawResearch.com
Wed Jan 11 21:10:32 CET 2017


Hello Molpro users/developers,


Summary: When out-of-plane constraint angles are specified in radians and the unit is explicitly stated, Molpro incorrectly multiplies the input angle by 1/0.529, the Angstrom-to-Bohr conversion factor. Additionally, when the unit is left out, Molpro interprets angles as being in radians, in contradiction to the documentation (https://www.molpro.net/info/2015.1/doc/manual/node645.html​)


I am running three calculations, where everything is held constant except the units in the constraint line. Here are three variations:

{optg,maxit=50
method,slrf
constraint,-0.226874,outofplane,atoms=[7,6,8,9]
}


{optg,maxit=50
method,slrf
constraint,-0.226874,deg,outofplane,atoms=[7,6,8,9]
}


{optg,maxit=50
method,slrf
constraint,-0.226874,rad,outofplane,atoms=[7,6,8,9]
}

Here is how molpro interprets these three conditions:

CONDITION 1:
{optg,maxit=50
method,slrf
constraint,-0.226874,outofplane,atoms=[7,6,8,9]
}

********** USER DEFINED INT/FIX/CONSTRAINTS ****************

List of primitive internal coordinates

     N      Name     Type   Natoms   Atom list

     1    Ou0001     OutOfP      4      N6   C5   O7   O8

List of user defined internal/fixed coordinates and constraints

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    N      Name   Type      Pname     Coeff       Value   Unit
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1    Cns001    Con     Ou0001     1.000    -0.22687     Bohr
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -


******************************************************************

************************************************************************************************************************
OU0001 = OUTOFP     N6    C5    O7    O8
VALUES
OU0001 =     -0.22687400
************************************************************************************************************************


 *************************************************************
 * Values of the primitive constraints                       *
 *************************************************************
 OU0001   : Out of plane angle=    0.0011/degree,     0.0000/rad

 *******************************************
 * Values of the constraints   / au or rad *
 *******************************************
   Label        C         C0
 Cns001      0.000019 -0.226874


CONDITION 2:
{optg,maxit=50
method,slrf
constraint,-0.226874,deg,outofplane,atoms=[7,6,8,9]
}

********** USER DEFINED INT/FIX/CONSTRAINTS ****************

List of primitive internal coordinates

     N      Name     Type   Natoms   Atom list

     1    Ou0001     OutOfP      4      N6   C5   O7   O8

List of user defined internal/fixed coordinates and constraints

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    N      Name   Type      Pname     Coeff       Value   Unit
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1    Cns001    Con     Ou0001     1.000    -0.22687     Bohr
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ​
************************************************************************************************************************
OU0001 = OUTOFP     N6    C5    O7    O8
VALUES
OU0001 =     -0.22687400
************************************************************************************************************************


 *************************************************************
 * Values of the primitive constraints                       *
 *************************************************************
 OU0001   : Out of plane angle=    0.0011/degree,     0.0000/rad

 *******************************************
 * Values of the constraints   / au or rad *
 *******************************************
   Label        C         C0
 Cns001      0.000019 -0.226874

CONDITION 3:
{optg,maxit=50
method,slrf
constraint,-0.226874,rad,outofplane,atoms=[7,6,8,9]
}

********** USER DEFINED INT/FIX/CONSTRAINTS ****************

List of primitive internal coordinates

     N      Name     Type   Natoms   Atom list

     1    Ou0001     OutOfP      4      N6   C5   O7   O8

List of user defined internal/fixed coordinates and constraints

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    N      Name   Type      Pname     Coeff       Value   Unit
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    1    Cns001    Con     Ou0001     1.000    -0.22687 Angstrom
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

OU0001 = OUTOFP     N6    C5    O7    O8
VALUES
OU0001 =     -0.22687400 ANGSTROM
************************************************************************************************************************


 *************************************************************
 * Values of the primitive constraints                       *
 *************************************************************
 OU0001   : Out of plane angle=    0.0011/degree,     0.0000/rad

 *******************************************
 * Values of the constraints   / au or rad *
 *******************************************
   Label        C         C0
 Cns001      0.000019 -0.428730

So when no units are specified, molpro took the constraint to be -0.227 BOHRS (???) but then later also prints that it is -0.227 radians.

Okay, at this point I'm thinking "They have a silly little printing bug; they have quantities in either bohrs/radians or angstroms/degrees, and printed BOHR instead of RADIAN to mean that we're in the first regime."

But when degrees were specified, molpro again states that the constraint is -0.227 BOHRS, then prints -0.227 radians.

So now I'm thinking, "It just ignores the units on the constraint." Fine.

But in condition 3 (input says radians), we have -0.22687 Angstrom and the constraint value later printed as -0.428730 radians.

So the unit on the constraint is not being ignored. Even worse, that -0.42873 is suspiciously like 2 * -0.227, or more precisely 1/0.529 * -0.227.

In other words, molpro went and converted my radians into radians as if it were converting angstrom to bohrs.


Full input:

(You will probably need to replace the basis=desavdz-rev5 with some other basis to run this.)

***,nitrobenzene
memory,925,M​
gdirect
thrdscf=1e-12,thrdscf_max=1e-9
gthresh,throvl=1e-9,throrth=1e-7,energy=1e-8,optgrad=1e-4,optstep=1e-4,optenerg=1e-6
set,charge=0
set,spin=0
geomtyp=xyz
symmetry,nosym
orient,noorient
geometry=
{
14
No title
C0          1.8842800000   -1.0404400000   -0.1298200000
C1          0.8050200000   -0.4387900000    0.5477900000
C2          2.9451500000   -1.6111600000    0.6014600000
C3          0.7763200000   -0.4020600000    1.9543900000
C4          2.9373100000   -1.5857400000    2.0085900000
C5          1.8480500000   -0.9790600000    2.6553800000
N6          1.8287700000   -0.9463200000    4.1392300000
O7          0.8566600000   -0.4084700000    4.6891700000
O8          2.7859900000   -1.4587800000    4.7374200000
H9          1.8984500000   -1.0646300000   -1.2234200000
H10        -0.0190100000    0.0047500000   -0.0185500000
H11         3.7834600000   -2.0785800000    0.0768300000
H12        -0.0477300000    0.0578100000    2.5026300000
H13         3.7465200000   -2.0206400000    2.5977800000
}
basis=desavdz-rev5
spherical
core,9
{df-hf,accu=15,maxit=100
}
{df-lmp2
local,thrbp=0.980,mergedom=1
pipek,delete=2,method=3
}
{optg,maxit=50
method,slrf
constraint,-0.226874,outofplane,atoms=[7,6,8,9]
}
put,xyz
jobstep opt0_w_basis_d

​

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.molpro.net/pipermail/molpro-user/attachments/20170111/5d389b04/attachment-0001.html>


More information about the Molpro-user mailing list