--- trunk/OOPSE/libmdtools/calc_LJ_FF.F90 2004/06/01 21:44:54 1216 +++ trunk/OOPSE/libmdtools/calc_LJ_FF.F90 2004/06/01 21:45:22 1217 @@ -2,7 +2,7 @@ !! Corresponds to the force field defined in lj_FF.cpp !! @author Charles F. Vardeman II !! @author Matthew Meineke -!! @version $Id: calc_LJ_FF.F90,v 1.21 2004-05-27 00:48:12 tim Exp $, $Date: 2004-05-27 00:48:12 $, $Name: not supported by cvs2svn $, $Revision: 1.21 $ +!! @version $Id: calc_LJ_FF.F90,v 1.22 2004-06-01 21:45:22 gezelter Exp $, $Date: 2004-06-01 21:45:22 $, $Name: not supported by cvs2svn $, $Revision: 1.22 $ module lj use definitions @@ -122,6 +122,7 @@ contains real ( kind = dp ) :: mySigma_i,mySigma_j real ( kind = dp ) :: myEpsilon_i,myEpsilon_j real ( kind = dp ) :: rcut6 + logical :: I_isLJ, J_isLJ status = 0 nAtypes = getSize(atypes) @@ -139,56 +140,66 @@ contains ! This loops through all atypes, even those that don't support LJ forces. do i = 1, nAtypes - call getElementProperty(atypes, i, "lj_epsilon", myEpsilon_i) - call getElementProperty(atypes, i, "lj_sigma", mySigma_i) - ! do self mixing rule - ljMixed(i,i)%sigma = mySigma_i - - ljMixed(i,i)%sigma6 = (ljMixed(i,i)%sigma) ** 6 + call getElementProperty(atypes, i, "is_LJ", I_isLJ) - ljMixed(i,i)%tp6 = (ljMixed(i,i)%sigma6)/rcut6 + if (I_isLJ) then - ljMixed(i,i)%tp12 = (ljMixed(i,i)%tp6) ** 2 - - - ljMixed(i,i)%epsilon = myEpsilon_i - - ljMixed(i,i)%delta = -4.0_DP * ljMixed(i,i)%epsilon * & - (ljMixed(i,i)%tp12 - ljMixed(i,i)%tp6) - - do j = i + 1, nAtypes - call getElementProperty(atypes,j,"lj_epsilon",myEpsilon_j) - call getElementProperty(atypes,j,"lj_sigma", mySigma_j) + call getElementProperty(atypes, i, "lj_epsilon", myEpsilon_i) + call getElementProperty(atypes, i, "lj_sigma", mySigma_i) + ! do self mixing rule + ljMixed(i,i)%sigma = mySigma_i - ljMixed(i,j)%sigma = & - calcLJMix("sigma",mySigma_i, & - mySigma_j) + ljMixed(i,i)%sigma6 = (ljMixed(i,i)%sigma) ** 6 - ljMixed(i,j)%sigma6 = & - (ljMixed(i,j)%sigma)**6 + ljMixed(i,i)%tp6 = (ljMixed(i,i)%sigma6)/rcut6 + ljMixed(i,i)%tp12 = (ljMixed(i,i)%tp6) ** 2 - ljMixed(i,j)%tp6 = ljMixed(i,j)%sigma6/rcut6 - ljMixed(i,j)%tp12 = (ljMixed(i,j)%tp6) ** 2 + ljMixed(i,i)%epsilon = myEpsilon_i + ljMixed(i,i)%delta = -4.0_DP * ljMixed(i,i)%epsilon * & + (ljMixed(i,i)%tp12 - ljMixed(i,i)%tp6) - ljMixed(i,j)%epsilon = & - calcLJMix("epsilon",myEpsilon_i, & - myEpsilon_j) - - ljMixed(i,j)%delta = -4.0_DP * ljMixed(i,j)%epsilon * & - (ljMixed(i,j)%tp12 - ljMixed(i,j)%tp6) - - - ljMixed(j,i)%sigma = ljMixed(i,j)%sigma - ljMixed(j,i)%sigma6 = ljMixed(i,j)%sigma6 - ljMixed(j,i)%tp6 = ljMixed(i,j)%tp6 - ljMixed(j,i)%tp12 = ljMixed(i,j)%tp12 - ljMixed(j,i)%epsilon = ljMixed(i,j)%epsilon - ljMixed(j,i)%delta = ljMixed(i,j)%delta - - end do + do j = i + 1, nAtypes + + call getElementProperty(atypes, j, "is_LJ", J_isLJ) + + if (J_isLJ) then + + call getElementProperty(atypes,j,"lj_epsilon",myEpsilon_j) + call getElementProperty(atypes,j,"lj_sigma", mySigma_j) + + ljMixed(i,j)%sigma = & + calcLJMix("sigma",mySigma_i, & + mySigma_j) + + ljMixed(i,j)%sigma6 = & + (ljMixed(i,j)%sigma)**6 + + + ljMixed(i,j)%tp6 = ljMixed(i,j)%sigma6/rcut6 + + ljMixed(i,j)%tp12 = (ljMixed(i,j)%tp6) ** 2 + + + ljMixed(i,j)%epsilon = & + calcLJMix("epsilon",myEpsilon_i, & + myEpsilon_j) + + ljMixed(i,j)%delta = -4.0_DP * ljMixed(i,j)%epsilon * & + (ljMixed(i,j)%tp12 - ljMixed(i,j)%tp6) + + + ljMixed(j,i)%sigma = ljMixed(i,j)%sigma + ljMixed(j,i)%sigma6 = ljMixed(i,j)%sigma6 + ljMixed(j,i)%tp6 = ljMixed(i,j)%tp6 + ljMixed(j,i)%tp12 = ljMixed(i,j)%tp12 + ljMixed(j,i)%epsilon = ljMixed(i,j)%epsilon + ljMixed(j,i)%delta = ljMixed(i,j)%delta + endif + end do + endif end do end subroutine createMixingList