From bdfc9a57122569df6b09f2ed253306caaaa5f87d Mon Sep 17 00:00:00 2001 From: Teodoro Laino Date: Wed, 24 May 2006 20:41:46 +0000 Subject: [PATCH] bug fix for onfo for 5 and 6 membered rings.. introducing 2 specific regtests.. resetting loop.inp. svn-origin-rev: 5188 --- src/fist_force.F | 4 + src/topology_psf.F | 95 +++++++++++++++++++-- src/topology_util.F | 26 +++--- tests/Fist/regtest/TEST_FILES | 2 + tests/Fist/regtest/TEST_FILES_RESET | 2 + tests/Fist/regtest/cyhex.inp | 51 +++++++++++ tests/Fist/regtest/cyhex.psf | 86 +++++++++++++++++++ tests/Fist/regtest/pentadiene.inp | 51 +++++++++++ tests/Fist/regtest/pentadiene.psf | 55 ++++++++++++ tests/Fist/sample_pdb/cyhex.pdb | 20 +++++ tests/Fist/sample_pdb/pentadiene.pdb | 14 +++ tests/Fist/sample_pot/cyhex.pot | 123 +++++++++++++++++++++++++++ tests/Fist/sample_pot/pentadiene.pot | 108 +++++++++++++++++++++++ 13 files changed, 619 insertions(+), 18 deletions(-) create mode 100644 tests/Fist/regtest/cyhex.inp create mode 100644 tests/Fist/regtest/cyhex.psf create mode 100644 tests/Fist/regtest/pentadiene.inp create mode 100644 tests/Fist/regtest/pentadiene.psf create mode 100644 tests/Fist/sample_pdb/cyhex.pdb create mode 100644 tests/Fist/sample_pdb/pentadiene.pdb create mode 100644 tests/Fist/sample_pot/cyhex.pot create mode 100644 tests/Fist/sample_pot/pentadiene.pot diff --git a/src/fist_force.F b/src/fist_force.F index 4cc52cd6aa..1ae05a4059 100644 --- a/src/fist_force.F +++ b/src/fist_force.F @@ -312,6 +312,10 @@ SUBROUTINE fist_force_control ( fist_env, virial, globenv, debug ,error) ENDIF IF (iw>0) THEN + WRITE(iw,'(1x,"BOND = ",f13.4,2x,"ANGLE = ",f13.4,2x,'//& + '"DIHED = ",f13.4)')pot_bond, pot_bend,pot_torsion+pot_imptors + WRITE(iw,'(1x,"1-4 VDW + 1-4 EEL (SHORT RANGE) = ",f13.4,2x,'//& + '"UBRAD = ",f13.4)')pot_onef,pot_urey_bradley WRITE(iw,'(A)')" FIST:: CORRECTED BONDED ELECTROSTATIC FORCES + INTERNAL FORCES..." WRITE(iw,'(3f15.9)')((particle_set ( i ) % f ( j ),j=1,3), i = 1, SIZE(particle_set)) END IF diff --git a/src/topology_psf.F b/src/topology_psf.F index 13f99d1a88..cab3ed5c13 100644 --- a/src/topology_psf.F +++ b/src/topology_psf.F @@ -41,6 +41,8 @@ MODULE topology_psf USE topology_types, ONLY: atom_info_type,& connectivity_info_type,& topology_parameters_type + USE topology_util, ONLY: reorder_structure,& + atom_bond_list_type #include "cp_common_uses.h" IMPLICIT NONE @@ -157,12 +159,14 @@ CONTAINS CHARACTER(LEN=default_string_length) :: dummy_field, label INTEGER :: handle, i, iatom, ibond, index_now, iphi, itheta, iw, jatom, & natom, natom_prev, nbond, nbond_prev, nphi, nphi_prev, ntheta, & - ntheta_prev + ntheta_prev, nonfo, ionfo, nonfo_prev, stat, N LOGICAL :: failure, found TYPE(atom_info_type), POINTER :: atom_info TYPE(connectivity_info_type), POINTER :: conn_info TYPE(cp_logger_type), POINTER :: logger TYPE(cp_parser_type), POINTER :: parser + TYPE(atom_bond_list_type), DIMENSION(:), POINTER :: ex_bond_list,& + ex_bend_list NULLIFY(parser, logger) logger => cp_error_get_logger(error) @@ -310,15 +314,16 @@ CONTAINS ! ! PHI section ! - nphi_prev = 0 - IF(ASSOCIATED(conn_info%phi_a)) nphi_prev = SIZE(conn_info%phi_a) - + nphi_prev = 0 + nonfo_prev = 0 + IF(ASSOCIATED(conn_info%phi_a)) nphi_prev = SIZE(conn_info%phi_a) + IF(ASSOCIATED(conn_info%onfo_a)) nonfo_prev = SIZE(conn_info%onfo_a) IF(iw>0) WRITE(iw,'(T2,A)') 'PSF_INFO| Parsing the NPHI section' label = '!NPHI' CALL parser_search_string(parser,label,.TRUE.,found,begin_line=.TRUE.) IF ( .NOT. found ) THEN IF(iw>0) WRITE (iw,'(T2,A)') 'PSF_INFO| No NPHI section ' - nphi = 0 + nphi = 0 ELSE CALL parser_get_object (parser,nphi) IF(iw>0) WRITE(iw,'(T2,A,I8)') 'PSF_INFO| NPHI = ',nphi @@ -327,8 +332,8 @@ CONTAINS CALL reallocate(conn_info%phi_b,1,nphi_prev+nphi) CALL reallocate(conn_info%phi_c,1,nphi_prev+nphi) CALL reallocate(conn_info%phi_d,1,nphi_prev+nphi) - CALL reallocate(conn_info%onfo_a,1,nphi_prev+nphi) - CALL reallocate(conn_info%onfo_b,1,nphi_prev+nphi) + CALL reallocate(conn_info%onfo_a,1,nonfo_prev+nphi) + CALL reallocate(conn_info%onfo_b,1,nonfo_prev+nphi) !Read in the torsion info DO iphi=1,nphi,2 CALL parser_get_next_line(parser,1,error=error) @@ -346,9 +351,83 @@ CONTAINS END IF ! ! ONFO structure - ! + ! conn_info%onfo_a(:) = conn_info%phi_a(:) conn_info%onfo_b(:) = conn_info%phi_d(:) + ! Reorder bonds + ALLOCATE(ex_bond_list(natom),stat=stat) + CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) + DO I=1,natom + ALLOCATE(ex_bond_list(I)%bonds(0),stat=stat) + CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) + ENDDO + N = 0 + IF(ASSOCIATED(conn_info%bond_a)) N = SIZE(conn_info%bond_a) + CALL reorder_structure(ex_bond_list, conn_info%bond_a, conn_info%bond_b, N, error) + ! Reorder bends + ALLOCATE(ex_bend_list(natom),stat=stat) + CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) + DO I=1,natom + ALLOCATE(ex_bend_list(I)%bonds(0),stat=stat) + CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) + ENDDO + N = 0 + IF(ASSOCIATED(conn_info%theta_a)) N = SIZE(conn_info%theta_a) + CALL reorder_structure(ex_bend_list, conn_info%theta_a, conn_info%theta_c, N, error) + nonfo = 0 + DO ionfo=1, nphi + ! Check if the torsion is not shared between angles or bonds + IF ( ANY(ex_bond_list(conn_info%onfo_a(ionfo))%bonds==conn_info%onfo_b(ionfo)).OR.& + ANY(ex_bend_list(conn_info%onfo_a(ionfo))%bonds==conn_info%onfo_b(ionfo))) CYCLE + nonfo = nonfo + 1 + conn_info%onfo_a(nonfo) = conn_info%onfo_a(ionfo) + conn_info%onfo_b(nonfo) = conn_info%onfo_b(ionfo) + END DO + ! deallocate bends + DO I=1,natom + DEALLOCATE(ex_bend_list(I)%bonds,stat=stat) + CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) + ENDDO + DEALLOCATE(ex_bend_list,stat=stat) + CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) + ! deallocate bonds + DO I=1,natom + DEALLOCATE(ex_bond_list(I)%bonds,stat=stat) + CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) + ENDDO + DEALLOCATE(ex_bond_list,stat=stat) + CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) + ! Get unique onfo + ALLOCATE(ex_bond_list(natom),stat=stat) + CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) + DO I=1,natom + ALLOCATE(ex_bond_list(I)%bonds(0),stat=stat) + CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) + ENDDO + N = 0 + IF(ASSOCIATED(conn_info%onfo_a)) N = nonfo_prev+nonfo + CALL reorder_structure(ex_bond_list, conn_info%onfo_a, conn_info%onfo_b, N, error) + nonfo = 0 + DO I=1,natom + DO ionfo = 1, SIZE(ex_bond_list(I)%bonds) + IF (COUNT(ex_bond_list(I)%bonds==ex_bond_list(I)%bonds(ionfo))/=1) THEN + ex_bond_list(I)%bonds(ionfo) = 0 + ELSE + IF (ex_bond_list(I)%bonds(ionfo)<=I) CYCLE + nonfo = nonfo + 1 + conn_info%onfo_a(nonfo_prev+nonfo) = I + conn_info%onfo_b(nonfo_prev+nonfo) = ex_bond_list(I)%bonds(ionfo) + END IF + END DO + END DO + CALL reallocate(conn_info%onfo_a,1,nonfo_prev+nonfo) + CALL reallocate(conn_info%onfo_b,1,nonfo_prev+nonfo) + DO I=1,natom + DEALLOCATE(ex_bond_list(I)%bonds,stat=stat) + CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) + ENDDO + DEALLOCATE(ex_bond_list,stat=stat) + CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) ! ! IMPHI section ! diff --git a/src/topology_util.F b/src/topology_util.F index da68977634..edc5163066 100644 --- a/src/topology_util.F +++ b/src/topology_util.F @@ -107,7 +107,9 @@ MODULE topology_util topology_generate_onfo,& topology_generate_ub,& topology_molecules_check,& - check_subsys_element + check_subsys_element,& + reorder_structure,& + atom_bond_list_type !!***** !****************************************************************************** @@ -2393,7 +2395,7 @@ CONTAINS INTEGER :: counter, first, first_atom, handle, i, iatom, ibend, ibond, & ikind, imol_now, imolecule, itorsion, iw, j, k, handle3, kk, n,& last, last_atom, natom, nbend, nbond, ntorsion, position, stat, handle2 - INTEGER :: dim1, dim2, dim3 + INTEGER :: dim0, dim1, dim2, dim3 INTEGER, DIMENSION(:), POINTER :: atomkind, iatomlist, first_mol, kind_of, & last_mol, list, list2, wlist, molecule_list, natom_of_kind LOGICAL :: failure, found, my_qmmm @@ -2662,23 +2664,27 @@ CONTAINS CALL reorder_structure(ex_torsion_list, conn_info%phi_a, conn_info%phi_d, N, error) ! DO iatom = 1, SIZE(particle_set) - dim1 = 1 ! always exclude itself.. + dim0 = 1 ! always exclude itself + dim1 = 0 dim2 = 0 dim3 = 0 IF (topology%exclude_vdw==do_skip_vdw_12 .OR. & topology%exclude_vdw==do_skip_vdw_13 .OR. & - topology%exclude_vdw==do_skip_vdw_14) dim1 = dim1 + SIZE(ex_bond_list(iatom)%bonds) + topology%exclude_vdw==do_skip_vdw_14) dim1 = SIZE(ex_bond_list(iatom)%bonds) + dim1 = dim0 + dim1 IF (topology%exclude_vdw==do_skip_vdw_13 .OR. & - topology%exclude_vdw==do_skip_vdw_14) dim2 = dim1 + SIZE(ex_bend_list(iatom)%bonds) - IF (topology%exclude_vdw==do_skip_vdw_14) dim3 = dim2 + SIZE(ex_torsion_list(iatom)%bonds) + topology%exclude_vdw==do_skip_vdw_14) dim2 = SIZE(ex_bend_list(iatom)%bonds) + dim2 = dim1 + dim2 + IF (topology%exclude_vdw==do_skip_vdw_14) dim3 = SIZE(ex_torsion_list(iatom)%bonds) + dim3 = dim2 + dim3 IF (dim3 /= 0) THEN NULLIFY(list, wlist) ALLOCATE(wlist(dim3),stat=stat) CPPostcondition(stat==0,cp_failure_level,routineP,error,failure) - wlist( 1: 1) = iatom - wlist( 2:dim1) = ex_bond_list(iatom)%bonds - wlist(dim1+1:dim2) = ex_bend_list(iatom)%bonds - wlist(dim2+1:dim3) = ex_torsion_list(iatom)%bonds + wlist( dim0:dim0) = iatom + IF (dim1>dim0) wlist(dim0+1:dim1) = ex_bond_list(iatom)%bonds + IF (dim2>dim1) wlist(dim1+1:dim2) = ex_bend_list(iatom)%bonds + IF (dim3>dim2) wlist(dim2+1:dim3) = ex_torsion_list(iatom)%bonds ! Get a unique list DO i = 1, SIZE(wlist)-1 IF (wlist(i)==0)CYCLE diff --git a/tests/Fist/regtest/TEST_FILES b/tests/Fist/regtest/TEST_FILES index 469ab8ff11..df0af68955 100644 --- a/tests/Fist/regtest/TEST_FILES +++ b/tests/Fist/regtest/TEST_FILES @@ -88,3 +88,5 @@ ethene_colv2_npt.inp 2 H2O-32_SPME_fp.inp 2 # testing loops in topology loop.inp 2 +pentadiene.inp 2 +cyhex.inp 2 diff --git a/tests/Fist/regtest/TEST_FILES_RESET b/tests/Fist/regtest/TEST_FILES_RESET index b3a9eb3845..d14cd61bcb 100644 --- a/tests/Fist/regtest/TEST_FILES_RESET +++ b/tests/Fist/regtest/TEST_FILES_RESET @@ -168,3 +168,5 @@ water_3_dist.inp water_hbonds_dist.inp #new linear scaling setup algorithms.. numerics for loop.inp (10^-12) loop.inp +#bug fix for onfo +loop.inp diff --git a/tests/Fist/regtest/cyhex.inp b/tests/Fist/regtest/cyhex.inp new file mode 100644 index 0000000000..1a7c2f79aa --- /dev/null +++ b/tests/Fist/regtest/cyhex.inp @@ -0,0 +1,51 @@ + +&FORCE_EVAL + &MM + &FORCEFIELD + parmfile ../sample_pot/cyhex.pot + parmtype CHM + &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 cyhex.psf + CONNECTIVITY PSF + COORD_FILE_NAME ../sample_pdb/cyhex.pdb + COORDINATE PDB + EXCLUDE_EI 1-3 + EXCLUDE_VDW 1-3 + &END TOPOLOGY + &PRINT + &TOPOLOGY_INFO + UTIL_INFO + &END + &END + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + FFTLIB FFTSG + PRINT_LEVEL DEBUG + PROGRAM FIST + PROJECT mol + RUN_TYPE md +&END GLOBAL +&MOTION + &MD + ENSEMBLE NVE + STEPS 10 + TIMESTEP 2.5 + TEMPERATURE 0.0 + &END MD +&END MOTION diff --git a/tests/Fist/regtest/cyhex.psf b/tests/Fist/regtest/cyhex.psf new file mode 100644 index 0000000000..c312048ef2 --- /dev/null +++ b/tests/Fist/regtest/cyhex.psf @@ -0,0 +1,86 @@ +PSF + + 1 !NTITLE + Conversion from AMBER PARMTOP ::MOL + + 17 !NATOM + 1 MOL01 1 MOL O1 o -0.54137 16.00000 0 + 2 MOL01 1 MOL C2 c 0.45857 12.01000 0 + 3 MOL01 1 MOL C1 c31 0.00588 12.01000 0 + 4 MOL01 1 MOL H9 hc1 0.01000 1.00800 0 + 5 MOL01 1 MOL H10 hc1 0.01000 1.00800 0 + 6 MOL01 1 MOL C6 c32 0.01298 12.01000 0 + 7 MOL01 1 MOL H7 hc2 0.00415 1.00800 0 + 8 MOL01 1 MOL H8 hc2 0.00415 1.00800 0 + 9 MOL01 1 MOL C5 c33 -0.00517 12.01000 0 + 10 MOL01 1 MOL H5 hc3 -0.00317 1.00800 0 + 11 MOL01 1 MOL H6 hc3 -0.00317 1.00800 0 + 12 MOL01 1 MOL C4 c32 0.01298 12.01000 0 + 13 MOL01 1 MOL H3 hc2 0.00415 1.00800 0 + 14 MOL01 1 MOL H4 hc2 0.00415 1.00800 0 + 15 MOL01 1 MOL C3 c31 0.00588 12.01000 0 + 16 MOL01 1 MOL H1 hc1 0.01000 1.00800 0 + 17 MOL01 1 MOL H2 hc1 0.01000 1.00800 0 + + 17 !NBOND + 3 4 3 5 6 7 6 8 + 9 10 9 11 12 13 12 14 + 15 16 15 17 1 2 2 3 + 2 15 3 6 6 9 9 12 + 12 15 + + 33 !NTHETA + 2 3 4 2 3 5 2 15 16 + 2 15 17 3 6 7 3 6 8 + 4 3 5 4 3 6 5 3 6 + 6 9 10 6 9 11 7 6 8 + 7 6 9 8 6 9 9 12 13 + 9 12 14 10 9 11 10 9 12 + 11 9 12 12 15 16 12 15 17 + 13 12 14 13 12 15 14 12 15 + 16 15 17 1 2 3 1 2 15 + 2 3 6 2 15 12 3 2 15 + 3 6 9 6 9 12 9 12 15 + + 59 !NPHI + 1 2 3 4 1 2 3 4 + 1 2 3 5 1 2 3 5 + 1 2 15 16 1 2 15 16 + 1 2 15 16 1 2 15 17 + 1 2 15 17 1 2 15 17 + 2 3 6 7 2 3 6 8 + 2 15 12 13 2 15 12 14 + 3 2 15 16 3 2 15 17 + 3 6 9 10 3 6 9 11 + 4 3 2 15 4 3 6 7 + 4 3 6 8 4 3 6 9 + 5 3 2 15 5 3 6 7 + 5 3 6 8 5 3 6 9 + 6 9 12 13 6 9 12 14 + 7 6 9 10 7 6 9 11 + 7 6 9 12 8 6 9 10 + 8 6 9 11 8 6 9 12 + 9 12 15 16 9 12 15 17 + 10 9 12 13 10 9 12 14 + 10 9 12 15 11 9 12 13 + 11 9 12 14 11 9 12 15 + 13 12 15 16 13 12 15 17 + 14 12 15 16 14 12 15 17 + 1 2 3 6 1 2 15 12 + 2 3 6 9 2 15 12 9 + 3 2 15 12 3 6 9 12 + 3 6 9 12 3 6 9 12 + 6 3 2 15 6 9 12 15 + 6 9 12 15 6 9 12 15 + 1 2 15 3 + + 0 !NIMPHI + + 0 !NDON + + 0 !NACC + + 0 !NNB + + 0 !NGRP + diff --git a/tests/Fist/regtest/pentadiene.inp b/tests/Fist/regtest/pentadiene.inp new file mode 100644 index 0000000000..b6711921c6 --- /dev/null +++ b/tests/Fist/regtest/pentadiene.inp @@ -0,0 +1,51 @@ + +&FORCE_EVAL + &MM + &FORCEFIELD + parmfile ../sample_pot/pentadiene.pot + parmtype CHM + &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 pentadiene.psf + CONNECTIVITY PSF + COORD_FILE_NAME ../sample_pdb/pentadiene.pdb + COORDINATE PDB + EXCLUDE_EI 1-3 + EXCLUDE_VDW 1-3 + &END TOPOLOGY + &PRINT + &TOPOLOGY_INFO + UTIL_INFO + &END + &END + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + FFTLIB FFTSG + PRINT_LEVEL DEBUG + PROGRAM FIST + PROJECT mol + RUN_TYPE md +&END GLOBAL +&MOTION + &MD + ENSEMBLE NVE + STEPS 10 + TIMESTEP 2.5 + TEMPERATURE 0.0 + &END MD +&END MOTION diff --git a/tests/Fist/regtest/pentadiene.psf b/tests/Fist/regtest/pentadiene.psf new file mode 100644 index 0000000000..bd40db0779 --- /dev/null +++ b/tests/Fist/regtest/pentadiene.psf @@ -0,0 +1,55 @@ +PSF + + 1 !NTITLE + Conversion from AMBER PARMTOP ::MOL + + 11 !NATOM + 1 MOL01 1 MOL C1 c2 -0.23818 12.01000 0 + 2 MOL01 1 MOL H2 ha1 0.13221 1.00800 0 + 3 MOL01 1 MOL C2 c3 0.08869 12.01000 0 + 4 MOL01 1 MOL H5 hc 0.05151 1.00800 0 + 5 MOL01 1 MOL H6 hc 0.05151 1.00800 0 + 6 MOL01 1 MOL C3 c2 -0.23818 12.01000 0 + 7 MOL01 1 MOL H1 ha1 0.13221 1.00800 0 + 8 MOL01 1 MOL C4 ce -0.12914 12.01000 0 + 9 MOL01 1 MOL H4 ha2 0.13926 1.00800 0 + 10 MOL01 1 MOL C5 ce -0.12914 12.01000 0 + 11 MOL01 1 MOL H3 ha2 0.13926 1.00800 0 + + 11 !NBOND + 1 2 3 4 3 5 6 7 + 8 9 10 11 1 3 1 10 + 3 6 6 8 8 10 + + 18 !NTHETA + 1 3 4 1 3 5 1 10 11 + 2 1 3 2 1 10 3 6 7 + 4 3 5 4 3 6 5 3 6 + 6 8 9 7 6 8 8 10 11 + 9 8 10 1 3 6 1 10 8 + 3 1 10 3 6 8 6 8 10 + + 24 !NPHI + 1 3 6 7 1 10 8 9 + 2 1 3 4 2 1 3 5 + 2 1 3 6 2 1 10 8 + 2 1 10 11 3 1 10 11 + 3 6 8 9 10 1 3 4 + 4 3 6 7 4 3 6 8 + 10 1 3 5 5 3 6 7 + 5 3 6 8 6 8 10 11 + 7 6 8 9 7 6 8 10 + 9 8 10 11 1 3 6 8 + 1 10 8 6 3 1 10 8 + 3 6 8 10 10 1 3 6 + + 0 !NIMPHI + + 0 !NDON + + 0 !NACC + + 0 !NNB + + 0 !NGRP + diff --git a/tests/Fist/sample_pdb/cyhex.pdb b/tests/Fist/sample_pdb/cyhex.pdb new file mode 100644 index 0000000000..9c2dab46bf --- /dev/null +++ b/tests/Fist/sample_pdb/cyhex.pdb @@ -0,0 +1,20 @@ +REMARK MOL +ATOM 1 O1 MOL 1 3.537 1.423 0.000 +ATOM 2 C2 MOL 1 2.363 1.421 0.384 +ATOM 3 C1 MOL 1 1.612 0.145 0.651 +ATOM 4 H9 MOL 1 1.539 0.022 1.765 +ATOM 5 H10 MOL 1 2.192 -0.728 0.250 +ATOM 6 C6 MOL 1 0.228 0.168 0.042 +ATOM 7 H7 MOL 1 -0.337 -0.742 0.377 +ATOM 8 H8 MOL 1 0.310 0.118 -1.076 +ATOM 9 C5 MOL 1 -0.536 1.415 0.436 +ATOM 10 H5 MOL 1 -0.710 1.416 1.544 +ATOM 11 H6 MOL 1 -1.540 1.413 -0.064 +ATOM 12 C4 MOL 1 0.223 2.666 0.041 +ATOM 13 H3 MOL 1 -0.344 3.573 0.376 +ATOM 14 H4 MOL 1 0.307 2.716 -1.077 +ATOM 15 C3 MOL 1 1.609 2.693 0.651 +ATOM 16 H1 MOL 1 1.534 2.815 1.765 +ATOM 17 H2 MOL 1 2.186 3.567 0.251 +TER +END diff --git a/tests/Fist/sample_pdb/pentadiene.pdb b/tests/Fist/sample_pdb/pentadiene.pdb new file mode 100644 index 0000000000..855a525136 --- /dev/null +++ b/tests/Fist/sample_pdb/pentadiene.pdb @@ -0,0 +1,14 @@ +REMARK MOL +ATOM 1 C1 MOL 1 3.533 1.428 0.000 +ATOM 2 H2 MOL 1 3.855 0.389 0.000 +ATOM 3 C2 MOL 1 4.495 2.604 0.000 +ATOM 4 H5 MOL 1 5.125 2.605 -0.892 +ATOM 5 H6 MOL 1 5.125 2.605 0.893 +ATOM 6 C3 MOL 1 3.530 3.777 0.000 +ATOM 7 H1 MOL 1 3.849 4.817 0.000 +ATOM 8 C4 MOL 1 2.274 3.320 0.000 +ATOM 9 H4 MOL 1 1.354 3.905 0.000 +ATOM 10 C5 MOL 1 2.276 1.882 0.000 +ATOM 11 H3 MOL 1 1.358 1.294 0.000 +TER +END diff --git a/tests/Fist/sample_pot/cyhex.pot b/tests/Fist/sample_pot/cyhex.pot new file mode 100644 index 0000000000..23c6189620 --- /dev/null +++ b/tests/Fist/sample_pot/cyhex.pot @@ -0,0 +1,123 @@ +*>>>>>>> AMBER FF Converted into CHARMM FF style <<<<<<< +*>>>>>>> Generated on :: 20060524 214647.502 +0200 by :: teo <<<<<<< +*>>>>>>> pcihpc07 <<<<<<< +*>>>>>>> Leap Title :: MOL <<<<<<< +*>>>>>>> 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 +! +c31 hc1 337.300000000 1.092000000 +c32 hc2 337.300000000 1.092000000 +c33 hc3 337.300000000 1.092000000 +o c 648.000000000 1.214000000 +c c31 328.300000000 1.508000000 +c31 c32 303.100000000 1.535000000 +c32 c33 303.100000000 1.535000000 + +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 c31 hc1 47.200000000 109.680046777 +c31 c32 hc2 46.400000000 110.050047451 +hc1 c31 hc1 39.400000000 108.350046723 +hc1 c31 c32 46.400000000 110.050047451 +c32 c33 hc3 46.400000000 110.050047451 +hc2 c32 hc2 39.400000000 108.350046723 +hc2 c32 c33 46.400000000 110.050047451 +hc3 c33 hc3 39.400000000 108.350046723 +o c c31 68.000000000 123.110052590 +c c31 c32 63.800000000 110.530047428 +c31 c c31 62.800000000 116.050050023 +c31 c32 c33 63.200000000 110.630047471 +c32 c33 c32 63.200000000 110.630047471 + +DIHEDRALS +! +!V(dihedral) = Kchi(1 + cos(n(chi) - delta)) +! +!Kchi: kcal/mole +!n: multiplicity +!delta: degrees +! +!atom types Kchi n delta +! +o c c31 hc1 0.800000000 1 0.000000000 +o c c31 hc1 0.080000000 3 180.000077144 +o c c31 hc1 0.000000000 2 180.000077144 +c c31 c32 hc2 0.155555556 3 0.000000000 +c31 c c31 hc1 0.000000000 2 180.000077144 +c31 c32 c33 hc3 0.160000000 3 0.000000000 +hc1 c31 c32 hc2 0.150000000 3 0.000000000 +hc1 c31 c32 c33 0.160000000 3 0.000000000 +c32 c33 c32 hc2 0.160000000 3 0.000000000 +hc2 c32 c33 hc3 0.150000000 3 0.000000000 +o c c31 c32 0.000000000 2 180.000077144 +c c31 c32 c33 0.155555556 3 0.000000000 +c31 c c31 c32 0.000000000 2 180.000077144 +c31 c32 c33 c32 0.200000000 1 180.000077144 +c31 c32 c33 c32 0.250000000 2 180.000077144 +c31 c32 c33 c32 0.180000000 3 0.000000000 +o c c31 c31 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 +! +o 0.000000000 0.210000000 1.661200000 +c 0.000000000 0.086000000 1.908000000 +c31 0.000000000 0.109400000 1.908000000 +hc1 0.000000000 0.015700000 1.487000000 +c32 0.000000000 0.109400000 1.908000000 +hc2 0.000000000 0.015700000 1.487000000 +c33 0.000000000 0.109400000 1.908000000 +hc3 0.000000000 0.015700000 1.487000000 + +END + +! +! This Section can be cutted & pasted into the Fist input file.. +! +CHARGES +o -0.541370000 +c 0.458570000 +c31 0.005880000 +hc1 0.010000000 +c32 0.012980000 +hc2 0.004150000 +c33 -0.005170000 +hc3 -0.003170000 +END CHARGES diff --git a/tests/Fist/sample_pot/pentadiene.pot b/tests/Fist/sample_pot/pentadiene.pot new file mode 100644 index 0000000000..4a7458e7b1 --- /dev/null +++ b/tests/Fist/sample_pot/pentadiene.pot @@ -0,0 +1,108 @@ +*>>>>>>> AMBER FF Converted into CHARMM FF style <<<<<<< +*>>>>>>> Generated on :: 20060524 153444.174 +0200 by :: teo <<<<<<< +*>>>>>>> pcihpc07 <<<<<<< +*>>>>>>> Leap Title :: MOL <<<<<<< +*>>>>>>> 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 +! +c2 ha1 344.300000000 1.087000000 +c3 hc 337.300000000 1.092000000 +ce ha2 341.500000000 1.089000000 +c2 c3 328.300000000 1.508000000 +c2 ce 560.500000000 1.339000000 +ce ce 390.500000000 1.451000000 + +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 +! +c2 c3 hc 47.000000000 110.490047525 +c2 ce ha2 49.600000000 121.100051901 +ha1 c2 c3 45.700000000 117.300050272 +ha1 c2 ce 49.600000000 121.190052111 +hc c3 hc 39.400000000 108.350046723 +ce ce ha2 47.500000000 115.900049672 +c2 c3 c2 64.600000000 109.710046847 +c2 ce ce 65.700000000 123.080052520 +c3 c2 ce 65.700000000 117.400050315 + +DIHEDRALS +! +!V(dihedral) = Kchi(1 + cos(n(chi) - delta)) +! +!Kchi: kcal/mole +!n: multiplicity +!delta: degrees +! +!atom types Kchi n delta +! +c2 c3 c2 ha1 0.000000000 2 0.000000000 +c2 ce ce ha2 1.000000000 2 180.000077144 +ha1 c2 c3 hc 0.000000000 2 0.000000000 +ha1 c2 ce ce 6.650000000 2 180.000077144 +ha1 c2 ce ha2 6.650000000 2 180.000077144 +c3 c2 ce ha2 6.650000000 2 180.000077144 +ce c2 c3 hc 0.000000000 2 0.000000000 +ha2 ce ce ha2 1.000000000 2 180.000077144 +c2 c3 c2 ce 0.000000000 2 0.000000000 +c2 ce ce c2 1.000000000 2 180.000077144 +c3 c2 ce ce 6.650000000 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 +! +c2 0.000000000 0.086000000 1.908000000 +ha1 0.000000000 0.015000000 1.459000000 +c3 0.000000000 0.109400000 1.908000000 +hc 0.000000000 0.015700000 1.487000000 +ce 0.000000000 0.086000000 1.908000000 +ha2 0.000000000 0.015000000 1.459000000 + +END + +! +! This Section can be cutted & pasted into the Fist input file.. +! +CHARGES +c2 -0.238180000 +ha1 0.132210000 +c3 0.088690000 +hc 0.051510000 +ce -0.129140000 +ha2 0.139260000 +END CHARGES