Difference between revisions of "Adding a model to OPTIM"
import>Jmc49 |
import>Jmc49 |
||
Line 1: | Line 1: | ||
− | Adding a potential |
+ | Adding a potential to the OPTIM geometry optimization program requires at least |
− | coordinates, energies and gradients. |
+ | coordinates, energies and gradients. Hessians can also be used in some |
of the algorithms. |
of the algorithms. |
||
The program must know the number of atoms of the system at the onset |
The program must know the number of atoms of the system at the onset |
||
to allocate the correct amount of memory. This is a list of the minimum |
to allocate the correct amount of memory. This is a list of the minimum |
||
− | number of routines you may need to change. |
+ | number of routines you may need to change/check. |
− | 1. ''' |
+ | 1. '''getparams.f''' starts the program opens input file odata, set NATOMS |
+ | 1.5 '''OPTIM.F''' calls keywords. Be sure to edit OPTIM.F, which is preprocessed to give OPTIM.f at compile time. |
||
− | 1.5 '''optim.f''' calls keyword |
||
− | 2. '''key.f90''' module for keywords |
+ | 2. '''key.f90''' data module for keywords |
− | 3. '''keywords.f''' reads odata and |
+ | 3. '''keywords.f''' reads odata and initializes energy functions/other stuff |
− | 4. '''fetchz.f''' read structure for |
+ | 4. '''fetchz.f''' read the "finish" structure for double-ended (NEWCONNECT) runs. Calls pertable |
5. '''pertable.f''' add model ID e.g (AM ATSYM) to symbol table, assigns atomic mass |
5. '''pertable.f''' add model ID e.g (AM ATSYM) to symbol table, assigns atomic mass |
||
Line 21: | Line 21: | ||
6. '''potential.f''' Main interface between OPTIM and external potential |
6. '''potential.f''' Main interface between OPTIM and external potential |
||
⚫ | |||
− | 7. '''finailio.f''' output |
||
− | |||
⚫ | |||
first line |
first line |
||
Line 31: | Line 29: | ||
coordinates in X,Y,Z |
coordinates in X,Y,Z |
||
− | 9. '''CONNECT/ncutils.f90''' input path.info files for pathsample |
+ | 9. '''CONNECT/ncutils.f90''' produces input path.info files for pathsample |
10. '''NEB/nnutils.f90''' in RWG subroutine for outputing the correct neb.xyz.<a> |
10. '''NEB/nnutils.f90''' in RWG subroutine for outputing the correct neb.xyz.<a> |
||
+ | |||
+ | 11. '''minpermdist.f90''' optimally superimposes structure 2 onto structure 1 with respect to whichever are applicable of: overall translation, overall rotation and permutational isomerization. Check that it's doing the right thing for your system! |
||
Latest revision as of 12:53, 4 February 2014
Adding a potential to the OPTIM geometry optimization program requires at least coordinates, energies and gradients. Hessians can also be used in some of the algorithms.
The program must know the number of atoms of the system at the onset to allocate the correct amount of memory. This is a list of the minimum number of routines you may need to change/check.
1. getparams.f starts the program opens input file odata, set NATOMS
1.5 OPTIM.F calls keywords. Be sure to edit OPTIM.F, which is preprocessed to give OPTIM.f at compile time.
2. key.f90 data module for keywords
3. keywords.f reads odata and initializes energy functions/other stuff
4. fetchz.f read the "finish" structure for double-ended (NEWCONNECT) runs. Calls pertable
5. pertable.f add model ID e.g (AM ATSYM) to symbol table, assigns atomic mass
6. potential.f Main interface between OPTIM and external potential
8. geopt.f controls single-ended geometry optimizations. Produces min.data.info files for pathsample
first line
energy, log product positive hessian eigen values, order point group, prime moments of inertia, order parameters (CHARMM)
coordinates in X,Y,Z
9. CONNECT/ncutils.f90 produces input path.info files for pathsample
10. NEB/nnutils.f90 in RWG subroutine for outputing the correct neb.xyz.<a>
11. minpermdist.f90 optimally superimposes structure 2 onto structure 1 with respect to whichever are applicable of: overall translation, overall rotation and permutational isomerization. Check that it's doing the right thing for your system!
--mp466 15:28, 1 July 2008 (BST)