Author Topic: frozen coordinates  (Read 20048 times)

juanjo

  • Jr. Member
  • **
  • Posts: 14
  • Karma: +0/-0
frozen coordinates
« on: March 19, 2008, 07:12:09 PM »
Hello!!
I want to do a optimization calculation but with some coordinates frozen. Is it possible do it in internal coordinates?

christof.haettig

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 291
  • Karma: +0/-0
    • Hattig's Group at the RUB
Re: frozen coordinates
« Reply #1 on: March 20, 2008, 01:47:41 PM »
This depends on the kind of variables you want to freeze. I you can define this variable with the types of internal coordinates known by TM (see the section about internal coordinates in the documentation), then it is possible. (Note that you can also define coordinates as linear combination of the 'generic' coodinate types known by TM.)
But if you want to freeze cartesian coordinates, you have to run the whole calculation in cartesian coordinates and you can only fix a whole nuclei, i.e. x, y and z, not individual coordinates.

Christof

juanjo

  • Jr. Member
  • **
  • Posts: 14
  • Karma: +0/-0
Re: frozen coordinates
« Reply #2 on: March 24, 2008, 05:12:20 PM »
I want to freeze bond distances and angles. For instance, could I freeze all the coordinates except one distance?

slackenerny

  • Jr. Member
  • **
  • Posts: 12
  • Karma: +0/-0
Re: frozen coordinates
« Reply #3 on: March 24, 2008, 06:01:20 PM »
But if you want to freeze cartesian coordinates, you have to run the whole calculation in cartesian coordinates and you can only fix a whole nuclei, i.e. x, y and z, not individual coordinates.

How can this be done? The TM manual isn't very inspiring on this subject...

juanjo

  • Jr. Member
  • **
  • Posts: 14
  • Karma: +0/-0
Re: frozen coordinates
« Reply #4 on: March 25, 2008, 08:34:01 AM »
Maybe it is not possible do it in TM. For instance, in the H2O molecule, is it possible to optimize the angle and to freeze de O-H distances?? I didnĀ“t find how to do it in the manual, maybe it is not possible.

antti_karttunen

  • Sr. Member
  • ****
  • Posts: 227
  • Karma: +1/-0
Re: frozen coordinates
« Reply #5 on: March 25, 2008, 10:41:04 AM »
I want to freeze bond distances and angles. For instance, could I freeze all the coordinates except one distance?

Constrained structure optimizations with (redundant) internal coordinates are described in the chapter 7.4 of the TURBOMOLE tutorial:
http://www.cosmologic.de/data/Turbomole_Tutorial_5_10.pdf

Basically, first you have to create fixed internal coordinates in the idef submenu of the geometry menu. Fix the distances/angles/torsions you want to constrain in the optimization. Then you can return to main geometry menu and call ired, and it takes the fixed coordinates into account when creating the set of redundant internal coordinates. This usually works quite nicely. The tutorial has a much more detailed explanation.

antti_karttunen

  • Sr. Member
  • ****
  • Posts: 227
  • Karma: +1/-0
Re: frozen coordinates
« Reply #6 on: March 25, 2008, 10:49:45 AM »
But if you want to freeze cartesian coordinates, you have to run the whole calculation in cartesian coordinates and you can only fix a whole nuclei, i.e. x, y and z, not individual coordinates.

How can this be done? The TM manual isn't very inspiring on this subject...

Before starting define, open coord file in editor and add 'f' after the atoms you want to fix. Example:

$coord
    0.43009648574821     -1.38229444233040      2.38968337239521  c
   -0.43009648574821      1.38229444233040      2.38968337239521  c
    0.45349087306344      2.75762178411703      0.00000000000000  n f
   -0.43009648574821      1.38229444233040     -2.38968337239521  n f
$end

- Start define
- Read in the coord file
- Do not create (redundant) internal coordinates in the geometry menu, just exit with '*'
- Answer no to the question "if YOU DO NOT WANT TO USE INTERNAL COORDINATES ENTER  no"
- Run define normally to the end.

Now the $optimize group in the control file should look like this:

$optimize
   internal   off
   cartesian  on
   global     off
   basis      off   logarithm

Now relax and statpt perform a cartesian optimization, fixing the atoms you have defined fixed in the coord file.

uwe

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 560
  • Karma: +0/-0
Re: frozen coordinates
« Reply #7 on: March 25, 2008, 10:51:01 AM »
Hi,

  • fixing an internal coordinate:

    • call define and enter the geometry menu,
    • say idef (or first i and then idef) and enter internal coordinate as it is described within define or the manual or the tutorial (a pdf file should be in $TURBODIR/DOC), e.g.

        f stre 1 2
        f stre 1 3

      fixes the distance between atom 1 and 2, and the one between atom 1 and 3. If you have H2O (O as the first atom), this will fix both distances but optimize the angle.
    • hit a few times <Enter> to get back to the geometry menu and
    • call
      ired
    • read what define prints out or look in the coord file after define has finished, and you will see that one internal coordinate is being fixed ($redundant keyword in the coord file):
      $redundant
           number_of_atoms             3
           degrees_of_freedom          3
           internal_coordinates        5
           frozen_coordinates          2
         Values of frozen coordinates
                1.78684502
                1.78684502

    • run jobex as usual, the fixed internal coordinates will be taken care of automatically
    • you can check the results on the command line quite fast with the Turbomole scripts 'dist' and 'bend'. If you prepare water with an angle of 100 deg, dist will give you the distances and bend the angles:

      Quote
      localhost> dist
      dist  1  o --  2  h =  1.7868 au = 94.56 pm
      dist  1  o --  3  h =  1.7868 au = 94.56 pm
      dist  2  h --  3  h =  2.7376 au = 144.87 pm
      localhost> bend 2 1 3
      bend 2 h -> 1 o <- 3 h =  100.00 deg

      and after the optimization:

      Quote
      localhost> dist
      dist  1  o --  2  h =  1.7868 au = 94.56 pm
      dist  1  o --  3  h =  1.7868 au = 94.56 pm
      dist  2  h --  3  h =  2.8342 au = 149.98 pm
      localhost> bend 2 1 3
      bend 2 h -> 1 o <- 3 h =  104.95 deg


  • fixing cartesian coordinates:

    • just append a f to the element name (with at least one blank in between), e.g.

      Quote
      $coord
          2.62524979696891      0.00000000000000      0.00000000000000      c f
          1.31262489848445      2.27353301545501      0.00000000000000      c
         -1.31262489848445      2.27353301545501      0.00000000000000      c f
         -2.62524979696891      0.00000000000000      0.00000000000000      c
         -1.31262489848445     -2.27353301545501      0.00000000000000      c
          1.31262489848445     -2.27353301545501      0.00000000000000      c
          4.66241737376797      0.00000000000000      0.00000000000000      h
          2.33120868688399      4.03777188872899      0.00000000000000      h
         etc.
    • and run jobex as usual. The atoms with an 'f' will be fixed.


If you run constrained optimizations, I would recommed to use the newer module statpt instead of the default. To do this, just run

jobex -statpt [...]

Uwe

juanjo

  • Jr. Member
  • **
  • Posts: 14
  • Karma: +0/-0
Re: frozen coordinates
« Reply #8 on: March 25, 2008, 12:51:37 PM »
Thank you very much!!!