Setting up the frozen_cartesian in the input file

Say, I would like to fix the x,y,z cartesian coordinates of oxygen in water during geometry optimization. How can I do so? The following input gives an error, saying “Frozen atom cannot be translated into a whole number. Segmentation fault (core dumped)”.

molecule h2o {
H 0.63109 -0.02651 0.47485
O 0.14793 0.02998 -0.34219
H -0.77901 -0.00348 -0.13266
}

set {
basis dz
frozen_cartesian = O XYZ
opt_coordinates = cartesian
geom_maxiter 100
}

optimize(‘scf’)

I’d consider this feature still in testing mode, but here’s an input.

# Examples of how to freeze Cartesian coordinates.

molecule h2o {
  O  0.0    0.00   -0.10
  H  0.0   -0.80    0.55
  H  0.0    0.80    0.55
  no_com
  no_reorient
  symmetry c1
}

set globals {
  basis dz
  opt_coordinates cartesian
}

# Allow only oxygen to move.
freeze_list = """
  2 xyz
  3 xyz
"""

# Allow only the hydrogens to move.
# freeze_list = """
#   1 xyz
# """

# Allow motion only in the +/- z-direction for any atom.
# freeze_list = """
#   1 xy
#   2 xy
#   3 xy
# """

set optking frozen_cartesian $freeze_list

optimize('scf')
1 Like

It works! Thank you for your help.