Author Topic: Synchronous optimization  (Read 690 times)

Amin

  • Newbie
  • *
  • Posts: 4
  • Karma: +0/-0
Synchronous optimization
« on: November 01, 2024, 03:54:40 PM »
Hi all,

I’m working on a constrained optimization in TURBOMOLE where I want to fix certain dihedral angles, but instead of setting them to a static value, I’d like them to be tied to a variable that can change during the optimization. Essentially, I want the constraint to be dynamic, allowing the dihedrals to update automatically based on the optimization progress.

Is there a way in TURBOMOLE to define a variable that updates during the optimization process and applies consistently to multiple internal coordinates (such as dihedrals or bond angles)? Or, is there an alternative approach for achieving dynamically constrained internal coordinates that could adjust with each optimization step?

Additionally, I am considering running this scan with xTB as the backend. Is it possible to perform a scan in TURBOMOLE that interfaces with xTB, while allowing the constrained coordinates to change in sync? If so, what would the setup look like, or are there any alternative methods to achieve this?

I have attached an example file on how I set this up in another software for reference.

Any help would be much appreciated.
 

uwe

  • Global Moderator
  • Hero Member
  • *****
  • Posts: 577
  • Karma: +0/-0
Re: Synchronous optimization
« Reply #1 on: November 02, 2024, 06:04:07 PM »
Hello,

shall the dihedral angles be changed in every single geometry optimization step? And to what value, i.e. where do those stem from?

Sorry, I think I am not 100% sure what you are planning to do. The Gaussian input file is a simple z-matrix as input with variables which just define the input coordinates. If you run that job a normal geometry optimization will be done. In Gaussian this input file is read just once at the beginning of a job (as far as I know), so there is no way to change variables during an optimization.

You can set constraints by defining e.g. dihedral angles and set those to a certain value and then run a normal geometry optimization. During the relaxation step of the optimization, those angles are not changed if set to fixed.

In Turbomole the input file and the definition of the internal coordinates is read in each step of the optimization. So you can technically modify the values of the dihedral angles and set them to a different fixed value in each step.

To do that you have to modify the jobex script and add a step which replaces the value of the fixed dihedral angles. See update_coord() in jobex, it calls statpt_step() which is the default for geometry optimizations. That's the place where you can call another script which does what is needed to replace the data before the relaxation step is happening (the statpt call).

While this can be done, it is not necessarily a simple scripting task unless you know how Turbomole technically runs a geometry optimization. But once modified, this new jobex version of your own can the be applied to all jobs of that kind without further modification.

Not sure if that is of any help, though...