mirror of
https://github.com/cp2k/cp2k.git
synced 2026-07-29 06:35:28 -04:00
1st step for natively supporting AMBER files: reading coordinates in amber format.
added 1 regtest. svn-origin-rev: 7861
This commit is contained in:
parent
70503f1159
commit
6d82685d1c
11 changed files with 611 additions and 11 deletions
|
|
@ -582,6 +582,7 @@ OBJECTS_GENERIC =\
|
|||
timings.o\
|
||||
timings_mp.o\
|
||||
topology.o\
|
||||
topology_amber.o\
|
||||
topology_coordinate_util.o\
|
||||
topology_connectivity_util.o\
|
||||
topology_constraint_util.o\
|
||||
|
|
|
|||
|
|
@ -274,7 +274,8 @@ MODULE input_constants
|
|||
do_coord_pdb=0,&
|
||||
do_coord_xyz=1,&
|
||||
do_coord_g96=2,&
|
||||
do_coord_off=3
|
||||
do_coord_crd=3,&
|
||||
do_coord_off=4
|
||||
|
||||
INTEGER, PARAMETER, PUBLIC :: do_ff_undef=0,&
|
||||
do_ff_quartic=1,&
|
||||
|
|
|
|||
|
|
@ -365,6 +365,11 @@ CONTAINS
|
|||
default_l_val=.FALSE.,lone_keyword_l_val=.TRUE.,error=error)
|
||||
CALL section_add_keyword(print_key,keyword,error=error)
|
||||
CALL keyword_release(keyword,error=error)
|
||||
CALL keyword_create(keyword,"crd_info",&
|
||||
description="if the printkey is active prints information regarding CRD",&
|
||||
default_l_val=.FALSE.,lone_keyword_l_val=.TRUE.,error=error)
|
||||
CALL section_add_keyword(print_key,keyword,error=error)
|
||||
CALL keyword_release(keyword,error=error)
|
||||
CALL keyword_create(keyword,"gtop_info",&
|
||||
description="if the printkey is active prints information regarding GROMOS Topology",&
|
||||
default_l_val=.FALSE.,lone_keyword_l_val=.TRUE.,error=error)
|
||||
|
|
@ -1245,12 +1250,13 @@ CONTAINS
|
|||
CALL keyword_create(keyword, name="COORD_FILE_FORMAT",&
|
||||
variants=s2a("COORDINATE"),&
|
||||
description="Set up the way in which coordinates will be read.",&
|
||||
usage="COORD_FILE_FORMAT (PDB||XYZ||G96||OFF)", &
|
||||
enum_c_vals=s2a( "PDB","XYZ","G96","OFF"),&
|
||||
enum_i_vals=(/do_coord_pdb, do_coord_xyz, do_coord_g96, do_coord_off/),&
|
||||
usage="COORD_FILE_FORMAT (PDB|XYZ|G96|CRD|OFF)", &
|
||||
enum_c_vals=s2a( "PDB","XYZ","G96","CRD","OFF"),&
|
||||
enum_i_vals=(/do_coord_pdb, do_coord_xyz, do_coord_g96, do_coord_crd, do_coord_off/),&
|
||||
enum_desc=s2a("Coordinates provided through a PDB file format",&
|
||||
"Coordinates provided through an XYZ file format",&
|
||||
"Coordinates provided through a GROMOS96 file format",&
|
||||
"Coordinates provided through an AMBER file format",&
|
||||
"Coordinates read in the &COORD section of the input file"),&
|
||||
default_i_val=do_coord_off,error=error)
|
||||
CALL section_add_keyword(section,keyword,error=error)
|
||||
|
|
|
|||
|
|
@ -20,8 +20,8 @@ MODULE topology
|
|||
USE f77_blas
|
||||
USE input_constants, ONLY: &
|
||||
do_conn_g87, do_conn_g96, do_conn_generate, do_conn_mol_set, &
|
||||
do_conn_off, do_conn_psf, do_conn_psf_u, do_coord_g96, do_coord_pdb, &
|
||||
do_coord_xyz
|
||||
do_conn_off, do_conn_psf, do_conn_psf_u, do_coord_crd, do_coord_g96, &
|
||||
do_coord_pdb, do_coord_xyz
|
||||
USE input_section_types, ONLY: section_vals_get,&
|
||||
section_vals_get_subs_vals,&
|
||||
section_vals_type,&
|
||||
|
|
@ -40,6 +40,7 @@ MODULE topology
|
|||
USE termination, ONLY: stop_program
|
||||
USE timings, ONLY: timeset,&
|
||||
timestop
|
||||
USE topology_amber, ONLY: read_coordinate_crd
|
||||
USE topology_connectivity_util, ONLY: topology_connectivity_pack
|
||||
USE topology_constraint_util, ONLY: topology_constraint_pack
|
||||
USE topology_coordinate_util, ONLY: topology_coordinate_pack
|
||||
|
|
@ -507,6 +508,10 @@ CONTAINS
|
|||
CALL read_coordinate_g96 (topology,para_env,subsys_section,error)
|
||||
CALL read_atoms_input ( topology, overwrite=.TRUE.,&
|
||||
subsys_section=subsys_section,save_mem=save_mem,error=error)
|
||||
CASE (do_coord_crd)
|
||||
CALL read_coordinate_crd (topology,para_env,subsys_section,error)
|
||||
CALL read_atoms_input ( topology, overwrite=.TRUE.,&
|
||||
subsys_section=subsys_section,save_mem=save_mem,error=error)
|
||||
CASE (do_coord_pdb)
|
||||
CALL read_coordinate_pdb (topology,para_env,subsys_section,error)
|
||||
CALL read_atoms_input ( topology, overwrite=.TRUE.,&
|
||||
|
|
|
|||
266
src/topology_amber.F
Normal file
266
src/topology_amber.F
Normal file
|
|
@ -0,0 +1,266 @@
|
|||
!-----------------------------------------------------------------------------!
|
||||
! CP2K: A general program to perform molecular dynamics simulations !
|
||||
! Copyright (C) 2000 - 2008 CP2K developers group !
|
||||
!-----------------------------------------------------------------------------!
|
||||
|
||||
! *****************************************************************************
|
||||
!> \brief Handles all functions used to read and interpret AMBER coordinates
|
||||
!> and topology files
|
||||
!> \author Teodoro Laino [tlaino] - University of Zurich 10.2008
|
||||
! *****************************************************************************
|
||||
MODULE topology_amber
|
||||
USE convert_units, ONLY: convert_to_cp2k_units
|
||||
USE cp_output_handling, ONLY: cp_print_key_finished_output,&
|
||||
cp_print_key_unit_nr
|
||||
USE cp_para_types, ONLY: cp_para_env_type
|
||||
USE cp_parser_methods, ONLY: parser_get_next_line,&
|
||||
parser_get_object
|
||||
USE cp_parser_types, ONLY: cp_parser_type,&
|
||||
parser_create,&
|
||||
parser_release
|
||||
USE f77_blas
|
||||
USE input_cp2k_restarts, ONLY: section_velocity_val_set
|
||||
USE input_section_types, ONLY: section_vals_get_subs_vals,&
|
||||
section_vals_type
|
||||
USE kinds, ONLY: default_string_length,&
|
||||
dp
|
||||
USE memory_utilities, ONLY: reallocate
|
||||
USE timings, ONLY: timeset,&
|
||||
timestop
|
||||
USE topology_types, ONLY: atom_info_type,&
|
||||
topology_parameters_type
|
||||
#include "cp_common_uses.h"
|
||||
|
||||
IMPLICIT NONE
|
||||
|
||||
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'topology_amber'
|
||||
REAL(KIND=dp), PARAMETER, PUBLIC :: amber_conv_factor = 20.455_dp
|
||||
|
||||
PRIVATE
|
||||
PUBLIC :: read_coordinate_crd
|
||||
|
||||
CONTAINS
|
||||
|
||||
! *****************************************************************************
|
||||
!> \brief Reads the `coord' version generated by the PARM or LEaP programs, as
|
||||
!> well as the `restrt' version, resulting from energy minimization or
|
||||
!> molecular dynamics in SANDER or GIBBS. It may contain velocity and
|
||||
!> periodic box information.
|
||||
!>
|
||||
!> Official Format from the AMBER homepage
|
||||
!> FORMAT(20A4) ITITL
|
||||
!> ITITL : the title of the current run, from the AMBER
|
||||
!> parameter/topology file
|
||||
!>
|
||||
!> FORMAT(I5,5E15.7) NATOM,TIME
|
||||
!> NATOM : total number of atoms in coordinate file
|
||||
!> TIME : option, current time in the simulation (picoseconds)
|
||||
!>
|
||||
!> FORMAT(6F12.7) (X(i), Y(i), Z(i), i = 1,NATOM)
|
||||
!> X,Y,Z : coordinates
|
||||
!>
|
||||
!> IF dynamics
|
||||
!>
|
||||
!> FORMAT(6F12.7) (VX(i), VY(i), VZ(i), i = 1,NATOM)
|
||||
!> VX,VY,VZ : velocities (units: Angstroms per 1/20.455 ps)
|
||||
!>
|
||||
!> IF constant pressure (in 4.1, also constant volume)
|
||||
!>
|
||||
!> FORMAT(6F12.7) BOX(1), BOX(2), BOX(3)
|
||||
!> BOX : size of the periodic box
|
||||
!>
|
||||
!>
|
||||
!> \author Teodoro Laino [tlaino] - University of Zurich 10.2008
|
||||
! *****************************************************************************
|
||||
SUBROUTINE read_coordinate_crd (topology,para_env,subsys_section,error)
|
||||
TYPE(topology_parameters_type) :: topology
|
||||
TYPE(cp_para_env_type), POINTER :: para_env
|
||||
TYPE(section_vals_type), POINTER :: subsys_section
|
||||
TYPE(cp_error_type), INTENT(inout) :: error
|
||||
|
||||
CHARACTER(len=*), PARAMETER :: routineN = 'read_coordinate_crd', &
|
||||
routineP = moduleN//':'//routineN
|
||||
|
||||
CHARACTER(LEN=default_string_length) :: string
|
||||
INTEGER :: handle, iw, j, natom, stat
|
||||
LOGICAL :: failure, my_end, &
|
||||
setup_velocities
|
||||
REAL(KIND=dp), DIMENSION(:, :), POINTER :: velocity
|
||||
TYPE(atom_info_type), POINTER :: atom_info
|
||||
TYPE(cp_logger_type), POINTER :: logger
|
||||
TYPE(cp_parser_type), POINTER :: parser
|
||||
TYPE(section_vals_type), POINTER :: velocity_section
|
||||
|
||||
NULLIFY(parser, logger, velocity)
|
||||
logger => cp_error_get_logger(error)
|
||||
iw = cp_print_key_unit_nr(logger,subsys_section,"PRINT%TOPOLOGY_INFO/CRD_INFO",&
|
||||
extension=".subsysLog",error=error)
|
||||
CALL timeset(routineN,handle)
|
||||
|
||||
atom_info => topology%atom_info
|
||||
IF (iw>0) WRITE(iw,*) " Reading in CRD file ",TRIM(topology%coord_file_name)
|
||||
|
||||
! Title Section
|
||||
IF(iw>0) WRITE(iw,'(T2,A)') 'CRD_INFO| Parsing the TITLE section'
|
||||
CALL parser_create(parser,topology%coord_file_name,para_env=para_env,error=error)
|
||||
CALL parser_get_next_line(parser,1,error=error)
|
||||
CALL parser_get_object(parser,string,string_length=default_string_length,error=error)
|
||||
IF(iw>0) WRITE(iw,'(T2,A)') 'CRD_INFO| '//TRIM(string)
|
||||
! Natom and Time (which we ignore)
|
||||
CALL parser_get_next_line(parser,1,error=error)
|
||||
CALL parser_get_object(parser,natom,error=error)
|
||||
topology%natoms = natom
|
||||
IF(iw>0) WRITE(iw,'(T2,A,I0)') 'CRD_INFO| Number of atoms: ',natom
|
||||
CALL reallocate(atom_info%label_molname, 1, natom)
|
||||
CALL reallocate(atom_info%label_resname, 1, natom)
|
||||
CALL reallocate(atom_info%label_resid, 1, natom)
|
||||
CALL reallocate(atom_info%label_atmname, 1, natom)
|
||||
CALL reallocate(atom_info%r, 1,3,1,natom)
|
||||
CALL reallocate(atom_info%atm_mass, 1, natom)
|
||||
CALL reallocate(atom_info%atm_charge, 1, natom)
|
||||
CALL reallocate(atom_info%occup, 1, natom)
|
||||
CALL reallocate(atom_info%beta, 1, natom)
|
||||
CALL reallocate(atom_info%element, 1, natom)
|
||||
! Coordinates
|
||||
topology%aa_element = .TRUE.
|
||||
topology%molname_generated = .TRUE.
|
||||
CALL parser_get_next_line(parser,1,at_end=my_end,error=error)
|
||||
DO j = 1, natom-MOD(natom,2), 2
|
||||
IF (my_end) EXIT
|
||||
READ(parser%input_line,*)atom_info%r(1,j ),atom_info%r(2,j ),atom_info%r(3,j ),&
|
||||
atom_info%r(1,j+1),atom_info%r(2,j+1),atom_info%r(3,j+1)
|
||||
! All these information will have to be setup elsewhere..
|
||||
! CRD file does not contain anything related..
|
||||
atom_info%label_atmname(j ) = "__UNDEF__"
|
||||
atom_info%label_molname(j ) = "__UNDEF__"
|
||||
atom_info%label_resname(j ) = "__UNDEF__"
|
||||
atom_info%element (j ) = "__UNDEF__"
|
||||
atom_info%label_resid (j ) = HUGE(0)
|
||||
atom_info%atm_mass (j ) = HUGE(0.0_dp)
|
||||
atom_info%atm_charge (j ) = -HUGE(0.0_dp)
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(1,j ))
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(2,j ))
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(3,j ))
|
||||
|
||||
atom_info%label_atmname(j+1) = "__UNDEF__"
|
||||
atom_info%label_molname(j+1) = "__UNDEF__"
|
||||
atom_info%label_resname(j+1) = "__UNDEF__"
|
||||
atom_info%element (j+1) = "__UNDEF__"
|
||||
atom_info%label_resid (j+1) = HUGE(0)
|
||||
atom_info%atm_mass (j+1) = HUGE(0.0_dp)
|
||||
atom_info%atm_charge (j+1) = -HUGE(0.0_dp)
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(1,j+1))
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(2,j+1))
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(3,j+1))
|
||||
|
||||
CALL parser_get_next_line(parser,1,at_end=my_end,error=error)
|
||||
END DO
|
||||
! Trigger error
|
||||
IF ((my_end).AND.(j/=natom-MOD(natom,2)+1)) THEN
|
||||
CALL cp_assert(j==natom,cp_fatal_level,cp_assertion_failed,routineP,&
|
||||
"Error while reading CRD file. Unexpected end of file."//&
|
||||
CPSourceFileRef,&
|
||||
only_ionode=.TRUE.)
|
||||
ELSE IF (MOD(natom,2)/=0) THEN
|
||||
! In case let's handle the last atom
|
||||
j = natom
|
||||
READ(parser%input_line,*)atom_info%r(1,j ),atom_info%r(2,j ),atom_info%r(3,j )
|
||||
! All these information will have to be setup elsewhere..
|
||||
! CRD file does not contain anything related..
|
||||
atom_info%label_atmname(j ) = "__UNDEF__"
|
||||
atom_info%label_molname(j ) = "__UNDEF__"
|
||||
atom_info%label_resname(j ) = "__UNDEF__"
|
||||
atom_info%element (j ) = "__UNDEF__"
|
||||
atom_info%label_resid (j ) = HUGE(0)
|
||||
atom_info%atm_mass (j ) = HUGE(0.0_dp)
|
||||
atom_info%atm_charge (j ) = -HUGE(0.0_dp)
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(1,j ))
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(2,j ))
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=atom_info%r(3,j ))
|
||||
|
||||
CALL parser_get_next_line(parser,1,at_end=my_end,error=error)
|
||||
END IF
|
||||
|
||||
IF (my_end) THEN
|
||||
CALL cp_assert(j==natom,cp_warning_level,cp_assertion_failed,routineP,&
|
||||
"No VELOCITY or BOX information found in CRD file. "//&
|
||||
CPSourceFileRef,&
|
||||
only_ionode=.TRUE.)
|
||||
ELSE
|
||||
! Velocities
|
||||
CALL reallocate(velocity,1,3,1,natom)
|
||||
DO j = 1, natom-MOD(natom,2), 2
|
||||
IF (my_end) EXIT
|
||||
READ(parser%input_line,*)velocity(1,j ),velocity(2,j ),velocity(3,j ),&
|
||||
velocity(1,j+1),velocity(2,j+1),velocity(3,j+1)
|
||||
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(1,j ))
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(2,j ))
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(3,j ))
|
||||
CALL convert_to_cp2k_units("PS",time=velocity(1,j ),t_power=-1)
|
||||
CALL convert_to_cp2k_units("PS",time=velocity(2,j ),t_power=-1)
|
||||
CALL convert_to_cp2k_units("PS",time=velocity(3,j ),t_power=-1)
|
||||
velocity(1:3,j ) = velocity(1:3,j )*amber_conv_factor
|
||||
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(1,j+1))
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(2,j+1))
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(3,j+1))
|
||||
CALL convert_to_cp2k_units("PS",time=velocity(1,j+1),t_power=-1)
|
||||
CALL convert_to_cp2k_units("PS",time=velocity(2,j+1),t_power=-1)
|
||||
CALL convert_to_cp2k_units("PS",time=velocity(3,j+1),t_power=-1)
|
||||
velocity(1:3,j+1) = velocity(1:3,j+1)*amber_conv_factor
|
||||
|
||||
CALL parser_get_next_line(parser,1,at_end=my_end,error=error)
|
||||
END DO
|
||||
setup_velocities = .TRUE.
|
||||
IF ((my_end).AND.(j/=natom-MOD(natom,2)+1)) THEN
|
||||
CALL cp_assert(j==natom,cp_warning_level,cp_assertion_failed,routineP,&
|
||||
"No VELOCITY information found in CRD file. Ignoring BOX information. "//&
|
||||
"Please provide the BOX information directly from the main CP2K input! "//&
|
||||
CPSourceFileRef,&
|
||||
only_ionode=.TRUE.)
|
||||
setup_velocities = .FALSE.
|
||||
ELSE IF (MOD(natom,2)/=0) THEN
|
||||
! In case let's handle the last atom
|
||||
j = natom
|
||||
READ(parser%input_line,*)velocity(1,j ),velocity(2,j ),velocity(3,j )
|
||||
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(1,j ))
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(2,j ))
|
||||
CALL convert_to_cp2k_units("ANGSTROM",length=velocity(3,j ))
|
||||
CALL convert_to_cp2k_units("PS",time=velocity(1,j ),t_power=-1)
|
||||
CALL convert_to_cp2k_units("PS",time=velocity(2,j ),t_power=-1)
|
||||
CALL convert_to_cp2k_units("PS",time=velocity(3,j ),t_power=-1)
|
||||
velocity(1:3,j ) = velocity(1:3,j )*amber_conv_factor
|
||||
|
||||
CALL parser_get_next_line(parser,1,at_end=my_end,error=error)
|
||||
END IF
|
||||
IF (setup_velocities) THEN
|
||||
velocity_section => section_vals_get_subs_vals(subsys_section,"VELOCITY",error=error)
|
||||
CALL section_velocity_val_set(velocity_section, velocity=velocity, &
|
||||
conv_factor=1.0_dp, error=error)
|
||||
END IF
|
||||
DEALLOCATE(velocity,STAT=stat)
|
||||
CPPostcondition(stat==0,cp_failure_level,routineP,error,failure)
|
||||
END IF
|
||||
IF (my_end) THEN
|
||||
CALL cp_assert(j==natom,cp_warning_level,cp_assertion_failed,routineP,&
|
||||
"BOX information missing in CRD file. "//&
|
||||
CPSourceFileRef,&
|
||||
only_ionode=.TRUE.)
|
||||
ELSE
|
||||
CALL cp_assert(j==natom,cp_warning_level,cp_assertion_failed,routineP,&
|
||||
"BOX information found in CRD file. They will be ignored."//&
|
||||
"Please provide the BOX information directly from the main CP2K input!"//&
|
||||
CPSourceFileRef,&
|
||||
only_ionode=.TRUE.)
|
||||
END IF
|
||||
CALL parser_release(parser,error=error)
|
||||
CALL cp_print_key_finished_output(iw,logger,subsys_section,&
|
||||
"PRINT%TOPOLOGY_INFO/CRD_INFO",error=error)
|
||||
CALL timestop(handle)
|
||||
|
||||
END SUBROUTINE read_coordinate_crd
|
||||
|
||||
END MODULE topology_amber
|
||||
|
||||
|
|
@ -977,14 +977,14 @@ CONTAINS
|
|||
! *****************************************************************************
|
||||
SUBROUTINE setup_g4x6_list(g4x6_list, ilist, cons_info, ng4x6_restraint, error)
|
||||
TYPE(g4x6_constraint_type), &
|
||||
DIMENSION(:), POINTER :: g4x6_list
|
||||
DIMENSION(:), POINTER :: g4x6_list
|
||||
INTEGER, DIMENSION(:), POINTER :: ilist
|
||||
TYPE(constraint_info_type), POINTER :: cons_info
|
||||
INTEGER, INTENT(OUT) :: ng4x6_restraint
|
||||
TYPE(cp_error_type), INTENT(inout) :: error
|
||||
|
||||
CHARACTER(len=*), PARAMETER :: routineN = 'setup_g4x6_list', &
|
||||
routineP = moduleN//':'//routineN
|
||||
routineP = moduleN//':'//routineN
|
||||
|
||||
INTEGER :: j, ng4x6
|
||||
LOGICAL :: failure
|
||||
|
|
@ -1123,14 +1123,14 @@ CONTAINS
|
|||
! *****************************************************************************
|
||||
SUBROUTINE setup_lg4x6(lg4x6, g4x6_list, first_atom, last_atom, error)
|
||||
TYPE(local_g4x6_constraint_type), &
|
||||
DIMENSION(:), POINTER :: lg4x6
|
||||
DIMENSION(:), POINTER :: lg4x6
|
||||
TYPE(g4x6_constraint_type), &
|
||||
DIMENSION(:), POINTER :: g4x6_list
|
||||
DIMENSION(:), POINTER :: g4x6_list
|
||||
INTEGER, INTENT(IN) :: first_atom, last_atom
|
||||
TYPE(cp_error_type), INTENT(inout) :: error
|
||||
|
||||
CHARACTER(len=*), PARAMETER :: routineN = 'setup_lg4x6', &
|
||||
routineP = moduleN//':'//routineN
|
||||
routineP = moduleN//':'//routineN
|
||||
|
||||
INTEGER :: kk
|
||||
LOGICAL :: failure
|
||||
|
|
|
|||
|
|
@ -23,3 +23,5 @@ water_2_TS.inp 25
|
|||
water_2_TS_CG.inp 25
|
||||
argon.inp 25
|
||||
2d_pot.inp 25
|
||||
#amber files
|
||||
ace_ala_nme.inp 7
|
||||
|
|
|
|||
53
tests/Fist/regtest-3/ace_ala_nme.inp
Normal file
53
tests/Fist/regtest-3/ace_ala_nme.inp
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
|
||||
&FORCE_EVAL
|
||||
METHOD FIST
|
||||
&MM
|
||||
&FORCEFIELD
|
||||
parm_file_name ../sample_pot/ace_ala_nme.pot
|
||||
parmtype CHM
|
||||
&SPLINE
|
||||
EMAX_SPLINE 1.0
|
||||
&END
|
||||
&END FORCEFIELD
|
||||
&POISSON
|
||||
&EWALD
|
||||
EWALD_TYPE ewald
|
||||
ALPHA .36
|
||||
GMAX 29
|
||||
&END EWALD
|
||||
&END POISSON
|
||||
&END MM
|
||||
&SUBSYS
|
||||
&CELL
|
||||
ABC 50.0 50.0 50.0
|
||||
UNIT ANGSTROM
|
||||
&END CELL
|
||||
&TOPOLOGY
|
||||
CHARGE_BETA
|
||||
CONN_FILE_NAME ../sample_psf/ace_ala_nme.psf
|
||||
CONNECTIVITY PSF
|
||||
COORD_FILE_NAME ../sample_crd/ace_ala_nme.crd
|
||||
COORDINATE CRD
|
||||
&DUMP_PDB
|
||||
&END
|
||||
&DUMP_PSF
|
||||
&END
|
||||
&END TOPOLOGY
|
||||
&END SUBSYS
|
||||
&END FORCE_EVAL
|
||||
&GLOBAL
|
||||
PRINT_LEVEL LOW
|
||||
PROJECT ace_ala_nme
|
||||
RUN_TYPE GEO_OPT
|
||||
&END GLOBAL
|
||||
&MOTION
|
||||
&GEO_OPT
|
||||
MAX_ITER 50
|
||||
&END
|
||||
&PRINT
|
||||
&TRAJECTORY
|
||||
&END
|
||||
&RESTART OFF
|
||||
&END
|
||||
&END
|
||||
&END MOTION
|
||||
13
tests/Fist/sample_crd/ace_ala_nme.crd
Normal file
13
tests/Fist/sample_crd/ace_ala_nme.crd
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
ACE
|
||||
22
|
||||
2.0000010 1.0000000 -0.0000013 2.0000010 2.0900000 0.0000001
|
||||
1.4862640 2.4538490 0.8898240 1.4862590 2.4538520 -0.8898200
|
||||
3.4274200 2.6407950 -0.0000030 4.3905800 1.8774060 -0.0000066
|
||||
3.5553754 3.9696488 -0.0000031 2.7331200 4.5561601 -0.0000013
|
||||
4.8532621 4.6139253 -0.0000043 5.4075960 4.3155388 0.8898151
|
||||
5.6613044 4.2208425 -1.2321480 5.1232615 4.5213630 -2.1312016
|
||||
6.6304840 4.7189354 -1.2057908 5.8085401 3.1408723 -1.2413850
|
||||
4.7126759 6.1294185 0.0000014 3.6006445 6.6527027 0.0000062
|
||||
5.8460533 6.8348833 0.0000025 6.7370014 6.3591620 -0.0000004
|
||||
5.8460551 8.2838837 0.0000062 4.8185761 8.6477349 0.0000104
|
||||
6.3597984 8.6477313 0.8898282 6.3597900 8.6477354 -0.8898188
|
||||
167
tests/Fist/sample_pot/ace_ala_nme.pot
Normal file
167
tests/Fist/sample_pot/ace_ala_nme.pot
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
*>>>>>>> AMBER FF Converted into CHARMM FF style <<<<<<<
|
||||
*>>>>>>> Generated on :: 20081028 191942.385 +0100 by :: teo <<<<<<<
|
||||
*>>>>>>> pcihopt3 <<<<<<<
|
||||
*>>>>>>> Leap Title :: ACE <<<<<<<
|
||||
*>>>>>>> Send all comments related to the FFs conversion to <<<<<<<
|
||||
*>>>>>>> teodoro.laino@gmail.com <<<<<<<
|
||||
|
||||
BONDS
|
||||
!
|
||||
!V(bond) = Kb(b - b0)**2
|
||||
!
|
||||
!Kb: kcal/mole/A**2
|
||||
!b0: A
|
||||
!
|
||||
!atom type Kb b0
|
||||
!
|
||||
CT1 HC1 340.000000000 1.090000000
|
||||
CT3 HC2 340.000000000 1.090000000
|
||||
CT2 H11 340.000000000 1.090000000
|
||||
N H 434.000000000 1.010000000
|
||||
CT4 H12 340.000000000 1.090000000
|
||||
C O 570.000000000 1.229000000
|
||||
C N 490.000000000 1.335000000
|
||||
CT1 C 317.000000000 1.522000000
|
||||
CT2 CT3 310.000000000 1.526000000
|
||||
CT2 C 317.000000000 1.522000000
|
||||
N CT2 337.000000000 1.449000000
|
||||
N CT4 337.000000000 1.449000000
|
||||
|
||||
ANGLES
|
||||
!
|
||||
!V(angle) = Ktheta(Theta - Theta0)**2
|
||||
!
|
||||
!V(Urey-Bradley) = Kub(S - S0)**2
|
||||
!
|
||||
!Ktheta: kcal/mole/rad**2
|
||||
!Theta0: degrees
|
||||
!Kub: kcal/mole/A**2 (Urey-Bradley)
|
||||
!S0: A
|
||||
!
|
||||
!atom types Ktheta Theta0 Kub S0
|
||||
!
|
||||
C N H 50.000000000 120.000051429
|
||||
HC1 CT1 C 50.000000000 109.500046929
|
||||
HC1 CT1 HC1 35.000000000 109.500046929
|
||||
HC2 CT3 HC2 35.000000000 109.500046929
|
||||
H11 CT2 CT3 50.000000000 109.500046929
|
||||
H11 CT2 C 50.000000000 109.500046929
|
||||
CT2 CT3 HC2 50.000000000 109.500046929
|
||||
H N CT2 50.000000000 118.040050474
|
||||
N CT2 H11 50.000000000 109.500046929
|
||||
H12 CT4 H12 35.000000000 109.500046929
|
||||
H N CT4 50.000000000 118.040050474
|
||||
N CT4 H12 50.000000000 109.500046929
|
||||
O C N 80.000000000 122.900052672
|
||||
C N CT2 50.000000000 121.900052243
|
||||
CT1 C O 80.000000000 120.400051601
|
||||
CT1 C N 70.000000000 116.600049972
|
||||
C N CT4 50.000000000 121.900052243
|
||||
CT3 CT2 C 63.000000000 111.100047615
|
||||
CT2 C O 80.000000000 120.400051601
|
||||
CT2 C N 70.000000000 116.600049972
|
||||
N CT2 CT3 80.000000000 109.700047015
|
||||
N CT2 C 63.000000000 110.100047186
|
||||
|
||||
DIHEDRALS
|
||||
!
|
||||
!V(dihedral) = Kchi(1 + cos(n(chi) - delta))
|
||||
!
|
||||
!Kchi: kcal/mole
|
||||
!n: multiplicity
|
||||
!delta: degrees
|
||||
!
|
||||
!atom types Kchi n delta
|
||||
!
|
||||
O C N H 2.000000000 1 0.000000000
|
||||
O C N H 2.500000000 2 180.000077144
|
||||
C N CT2 H11 0.000000000 2 0.000000000
|
||||
HC1 CT1 C O 0.800000000 1 0.000000000
|
||||
HC1 CT1 C O 0.080000000 3 180.000077144
|
||||
HC1 CT1 C N 0.000000000 2 0.000000000
|
||||
HC1 CT1 C O 0.000000000 2 0.000000000
|
||||
CT1 C N H 2.500000000 2 180.000077144
|
||||
C N CT4 H12 0.000000000 2 0.000000000
|
||||
HC2 CT3 CT2 C 0.155555556 3 0.000000000
|
||||
H11 CT2 CT3 HC2 0.155555556 3 0.000000000
|
||||
H11 CT2 C O 0.800000000 1 0.000000000
|
||||
H11 CT2 C O 0.080000000 3 180.000077144
|
||||
H11 CT2 C N 0.000000000 2 0.000000000
|
||||
CT2 C N H 2.500000000 2 180.000077144
|
||||
H N CT2 H11 0.000000000 2 0.000000000
|
||||
H N CT2 CT3 0.000000000 2 0.000000000
|
||||
H N CT2 C 0.000000000 2 0.000000000
|
||||
N CT2 CT3 HC2 0.155555556 3 0.000000000
|
||||
H N CT4 H12 0.000000000 2 0.000000000
|
||||
O C N CT2 2.500000000 2 180.000077144
|
||||
C N CT2 CT3 0.530000000 1 0.000000000
|
||||
C N CT2 CT3 0.150000000 3 180.000077144
|
||||
C N CT2 CT3 0.500000000 4 180.000077144
|
||||
C N CT2 C 0.800000000 1 0.000000000
|
||||
C N CT2 C 0.850000000 2 180.000077144
|
||||
CT1 C N CT2 2.500000000 2 180.000077144
|
||||
O C N CT4 2.500000000 2 180.000077144
|
||||
CT3 CT2 C O 0.000000000 2 0.000000000
|
||||
CT3 CT2 C N 0.070000000 2 0.000000000
|
||||
CT3 CT2 C N 0.100000000 4 0.000000000
|
||||
CT2 C N CT4 2.500000000 2 180.000077144
|
||||
N CT2 C O 0.000000000 2 0.000000000
|
||||
N CT2 C N 1.700000000 1 180.000077144
|
||||
N CT2 C N 2.000000000 2 180.000077144
|
||||
C CT2 N H 1.100000000 2 180.000077144
|
||||
C CT4 N H 1.100000000 2 180.000077144
|
||||
CT1 N C O 10.500000000 2 180.000077144
|
||||
CT2 N C O 10.500000000 2 180.000077144
|
||||
|
||||
IMPROPER
|
||||
!
|
||||
!V(improper) = Kpsi(psi - psi0)**2
|
||||
!
|
||||
!Kpsi: kcal/mole/rad**2
|
||||
!psi0: degrees
|
||||
!note that the second column of numbers (0) is ignored
|
||||
!
|
||||
!atom types Kpsi psi0
|
||||
!
|
||||
|
||||
NONBONDED
|
||||
!
|
||||
!V(Lennard-Jones) = Eps,i,j[(Rmin,i,j/ri,j)**12 - 2(Rmin,i,j/ri,j)**6]
|
||||
!
|
||||
!epsilon: kcal/mole, Eps,i,j = sqrt(eps,i * eps,j)
|
||||
!Rmin/2: A, Rmin,i,j = Rmin/2,i + Rmin/2,j
|
||||
!
|
||||
!atom ignored epsilon Rmin/2 ignored eps,1-4 Rmin/2,1-4
|
||||
!
|
||||
HC1 0.000000000 0.015700000 1.487000000
|
||||
CT1 0.000000000 0.109400000 1.908000000
|
||||
C 0.000000000 0.086000000 1.908000000
|
||||
O 0.000000000 0.210000000 1.661200000
|
||||
N 0.000000000 0.170000000 1.824000000
|
||||
H 0.000000000 0.015700000 0.600000000
|
||||
CT2 0.000000000 0.109400000 1.908000000
|
||||
H11 0.000000000 0.015700000 1.386999999
|
||||
CT3 0.000000000 0.109400000 1.908000000
|
||||
HC2 0.000000000 0.015700000 1.487000000
|
||||
CT4 0.000000000 0.109400000 1.908000000
|
||||
H12 0.000000000 0.015700000 1.386999999
|
||||
|
||||
END
|
||||
|
||||
!
|
||||
! This Section can be cutted & pasted into the Fist input file..
|
||||
!
|
||||
CHARGES
|
||||
HC1 0.143700000
|
||||
CT1 -0.518800000
|
||||
C 0.673099998
|
||||
O -0.585399999
|
||||
N -0.493700000
|
||||
H 0.301800000
|
||||
CT2 0.044800000
|
||||
H11 0.022800000
|
||||
CT3 -0.090900000
|
||||
HC2 0.042500000
|
||||
CT4 -0.007600000
|
||||
H12 0.066500000
|
||||
END CHARGES
|
||||
86
tests/Fist/sample_psf/ace_ala_nme.psf
Normal file
86
tests/Fist/sample_psf/ace_ala_nme.psf
Normal file
|
|
@ -0,0 +1,86 @@
|
|||
PSF EXT
|
||||
|
||||
1 !NTITLE
|
||||
Conversion from AMBER PARMTOP ::ACE
|
||||
|
||||
22 !NATOM
|
||||
1 MOL01 1 ACE HH31 HC1 0.143700 1.008 0
|
||||
2 MOL01 1 ACE CH3 CT1 -0.518800 12.010 0
|
||||
3 MOL01 1 ACE HH32 HC1 0.143700 1.008 0
|
||||
4 MOL01 1 ACE HH33 HC1 0.143700 1.008 0
|
||||
5 MOL01 1 ACE C C 0.673100 12.010 0
|
||||
6 MOL01 1 ACE O O -0.585400 16.000 0
|
||||
7 MOL01 2 ALA N N -0.493700 14.010 0
|
||||
8 MOL01 2 ALA H H 0.301800 1.008 0
|
||||
9 MOL01 2 ALA CA CT2 0.044800 12.010 0
|
||||
10 MOL01 2 ALA HA H11 0.022800 1.008 0
|
||||
11 MOL01 2 ALA CB CT3 -0.090900 12.010 0
|
||||
12 MOL01 2 ALA HB1 HC2 0.042500 1.008 0
|
||||
13 MOL01 2 ALA HB2 HC2 0.042500 1.008 0
|
||||
14 MOL01 2 ALA HB3 HC2 0.042500 1.008 0
|
||||
15 MOL01 2 ALA C C 0.673100 12.010 0
|
||||
16 MOL01 2 ALA O O -0.585400 16.000 0
|
||||
17 MOL01 3 NME N N -0.493700 14.010 0
|
||||
18 MOL01 3 NME H H 0.301800 1.008 0
|
||||
19 MOL01 3 NME CH3 CT4 -0.007600 12.010 0
|
||||
20 MOL01 3 NME HH31 H12 0.066500 1.008 0
|
||||
21 MOL01 3 NME HH32 H12 0.066500 1.008 0
|
||||
22 MOL01 3 NME HH33 H12 0.066500 1.008 0
|
||||
|
||||
21 !NBOND
|
||||
2 3 2 4 1 2 11 12
|
||||
11 13 11 14 9 10 7 8
|
||||
19 20 19 21 19 22 17 18
|
||||
5 6 5 7 2 5 15 16
|
||||
15 17 9 11 9 15 7 9
|
||||
17 19
|
||||
|
||||
36 !NTHETA
|
||||
5 7 8 4 2 5 3 2 4
|
||||
3 2 5 1 2 3 1 2 4
|
||||
1 2 5 15 17 18 13 11 14
|
||||
12 11 13 12 11 14 10 9 11
|
||||
10 9 15 9 11 12 9 11 13
|
||||
9 11 14 8 7 9 7 9 10
|
||||
21 19 22 20 19 21 20 19 22
|
||||
18 17 19 17 19 20 17 19 21
|
||||
17 19 22 6 5 7 5 7 9
|
||||
2 5 6 2 5 7 16 15 17
|
||||
15 17 19 11 9 15 9 15 16
|
||||
9 15 17 7 9 11 7 9 15
|
||||
|
||||
45 !NPHI
|
||||
6 5 7 8 5 7 9 10
|
||||
4 2 5 6 4 2 5 7
|
||||
3 2 5 6 3 2 5 7
|
||||
2 5 7 8 1 2 5 6
|
||||
1 2 5 7 16 15 17 18
|
||||
15 17 19 20 15 17 19 21
|
||||
15 17 19 22 14 11 9 15
|
||||
13 11 9 15 12 11 9 15
|
||||
10 9 11 12 10 9 11 13
|
||||
10 9 11 14 10 9 15 16
|
||||
10 9 15 17 9 15 17 18
|
||||
8 7 9 10 8 7 9 11
|
||||
8 7 9 15 7 9 11 12
|
||||
7 9 11 13 7 9 11 14
|
||||
18 17 19 20 18 17 19 21
|
||||
18 17 19 22 5 9 7 8
|
||||
15 19 17 18 6 5 7 9
|
||||
5 7 9 11 5 7 9 15
|
||||
2 5 7 9 16 15 17 19
|
||||
11 9 15 16 11 9 15 17
|
||||
9 15 17 19 7 9 15 16
|
||||
7 9 15 17 2 7 5 6
|
||||
9 17 15 16
|
||||
|
||||
0 !NIMPHI
|
||||
|
||||
0 !NDON
|
||||
|
||||
0 !NACC
|
||||
|
||||
0 !NNB
|
||||
|
||||
0 !NGRP
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue