Constrained geometry optimization - completely fixing cartesian xyz coordinates

I’m trying to run constrained geometry optimizations on water dimers and despite trying to freeze the oxygen coordinates, the oxygens continue to move between steps. Is there a way to completely fix atoms such that their x y and z don’t move at all? Here’s the input file I’m running:

“”"
memory 100 GB

molecule dimer {
0 1
O -0.322491728604 -1.449698681735 0.000000000000
H -1.294298318655 -1.499217896132 -0.000000049766
H 0.070000000000 0.450000000000 -0.000000001890
O 0.307683235515 1.381106500213 0.000000000000
H 0.847010220520 1.366108464365 0.789332099005
H 0.847010199703 1.366108476049 -0.789332112058
}

freeze_list = “”"
1 xyz
4 xyz
“”"
set optking frozen_cartesian $freeze_list

set optking {
dynamic_level = 1
ranged_distance = ("
4 3 0.9 1.0
4 5 0.9 1.0
4 6 0.9 1.0
")
}

set {
freeze_core False
scf_type df
mp2_type df
cc_type df
pcg_convergence 9
hessian_write true
geom_maxiter 100
maxiter 1000
g_convergence gau_verytight
e_convergence 13
}

optimize(name=‘ccsd(t)/aug-cc-pVDZ’, engine=‘optking’)
dimer.save_xyz_file(‘h3o-oh.xyz’, False)
“”"

The oxygens are at a distance of about 2.900 Å initially. After just a few steps the geometry becomes:

“”"
Structure for next step:
Molecular point group: c1
Full point group: C1

Geometry (in Angstrom), charge = 0, multiplicity = 1:

O           -0.322577505988    -1.437216430406     0.000000001810
H           -1.292293273792    -1.476031952481    -0.000000024209
H            0.004451839791     0.377499902775     0.000000001055
O            0.294635770621     1.335363632710     0.000000001810
H            0.864016991197     1.423925761095     0.789227605750
H            0.864016988735     1.423925762881    -0.789227603663

“”"

Not only have the oxygen coordinates changed but the oxygens are now at a distance of 2.840 Å. Any help would be greatly appreciated!

Greetings. I’ve reproduced the particular problem of the Cartesian constraints not being fully imposed. This used to work, but sometimes supporting new things breaks older (simpler!) ones. I’m working on fixing it. Sorry it took so long to respond.

1 Like