On Wednesday 12 May 2010 05:38:50 Mark Abraham wrote: > On 12/05/2010 2:27 AM, Sai Kumar Ramadugu wrote: > > Dear Gromacs Users, > > I have a simulation of a protein in Truncated Octahedron box. I want > > to calculate the water residence times and mean square displacements (of > > water) around the active site residues. We developed our own algorithm > > for doing the same. > > In earlier simulations I had cubic box and anint() function was working > > Never heard of "aninit" and it's not in GROMACS. > > > for the periodic boundary conditions. Now that I have truncated > > octahedron box, is there any function to my rescue? I searched the > > gromacs forum and could not find any function. Is there any way to > > circumvent this problem? > > There are various functions that deal with periodic boundary conditions. > Search for pbc in the code. > > Mark > Dear Mark, anint() refers to an intrinsic Fortran function which is used to apply PBC like RX(I) = RX(I) - BOXL * ANINT( RX(I) / BOXL)
ANINT(X) returns the nearest integer to X converted to REAL. The book of Allen & Tildesley shows how to use it for cubic boxes. The program F.1 from it has code for PBC in various geometries. The subroutine TOBOUND could be the one Sai is looking for. Best regards, Rafael -- Dr. Rafael R. Pappalardo Dept. of Physical Chemistry, Univ. de Sevilla (Spain) e-mail: raf...@us.es
C ******************************************************************* C ** THIS FORTRAN CODE IS INTENDED TO ILLUSTRATE POINTS MADE IN ** C ** THE TEXT. TO OUR KNOWLEDGE IT WORKS CORRECTLY. HOWEVER IT IS ** C ** THE RESPONSIBILITY OF THE USER TO TEST IT, IF IT IS USED IN A ** C ** RESEARCH APPLICATION. ** C ******************************************************************* C ******************************************************************* C ** FICHE F.1 ** C ** THREE ROUTINES ILLUSTRATING THE IMPLEMENTATION OF PERIODIC ** C ** BOUNDARY CONDITIONS FOR SIMULATIONS IN DIFFERENT GEOMETRIES. ** C ** ** C ** REFERENCES: ** C ** ** C ** ADAMS DJ, CCP5 QUARTERLY, 10, 30, 1983. ** C ** SMITH W, CCP5 QUARTERLY, 10, 37, 1983. ** C ** TALBOT J, PRIVATE COMMUNICATION, 1987. ** C ** ** C ** SUPPLIED ROUTINES: ** C ** ** C ** SUBROUTINE TOBOUN ( I ) ** C ** IMPLEMENTS THE PERIODIC BOUNDARY CONDITIONS FOR MOLECULE ** C ** I IN A TRUNCATED OCTAHEDRAL BOX ** C ** SUBROUTINE RDBOUN ( I ) ** C ** IMPLEMENTS THE PERIODIC BOUNDARY CONDITIONS FOR MOLECULE ** C ** I IN A RHOMBIC DODECAHEDRAL BOX ** C ** SUBROUTINE RHBOUN ( I ) ** C ** IMPLEMENTS THE PERIODIC BOUNDARY CONDITIONS FOR MOLECULE ** C ** I IN A TWO DIMENSIONAL RHOMBOIDAL BOX. ** C ** ** C ** PRINCIPAL VARIABLES: ** C ** ** C ** INTEGER N THE NUMBER OF ATOMS ** C ** INTEGER I A PARTICULAR ATOM ** C ** REAL RX(N),RY(N),RZ(N) POSITIONS ** C ** ** C ** USAGE: ** C ** ** C ** THESE SUBROUTINES ARE CALLED AFTER THE ATOMS HAVE BEEN MOVED ** C ** IN AN MC OR MD CODE. IF AN ATOM HAS MOVED OUT OF THE BOX, IT ** C ** WILL BE REPLACED IN THE CENTRAL BOX ACCORDING TO THE PERIODIC ** C ** BOUNDARY CONDITIONS. THIS CODE HAS BEEN WRITTEN AS SEPARATE ** C ** SUBROUTINES FOR CONVENIENCE. IN YOUR PARTICULAR APPLICATION ** C ** IT MAY NOT BE APPROPRIATE TO CALL IT AS A SUBROUTINE. ** C ** SIMILAR CODE MAY BE USED TO CALCULATE THE MINIMUM IMAGE ** C ** DISTANCE BETWEEN A PAIR I, J. IN THIS CASE RX(I) SHOULD ** C ** BE REPLACED BY RXIJ, RY(I) BY RYIJ, AND RZ(I) BY RZIJ. ** C ******************************************************************* SUBROUTINE TOBOUN ( I ) COMMON / BLOCK1 / RX, RY, RZ C ******************************************************************* C ** PERIODIC BOUNDARY CONDITIONS FOR A TRUNCATED OCTAHEDRON ** C ** ** C ** THE BOX IS CENTRED AT THE ORIGIN. THE AXES PASS THROUGH THE ** C ** CENTRES OF THE SIX SQUARE FACES OF THE TRUNCATED OCTAHEDRON ** C ** (SEE F1G. 1.10(A)). THE CONTAINING CUBE IS OF UNIT LENGTH ** C ******************************************************************* INTEGER N PARAMETER ( N = 108 ) INTEGER I REAL RX(N), RY(N), RZ(N) REAL CORR, R75 PARAMETER ( R75 = 4.0 / 3.0 ) C ******************************************************************* RX(I) = RX(I) - ANINT ( RX(I) ) RY(I) = RY(I) - ANINT ( RY(I) ) RZ(I) = RZ(I) - ANINT ( RZ(I) ) CORR = 0.5 * AINT ( R75 * ( ABS ( RX(I) ) + : ABS ( RY(I) ) + : ABS ( RZ(I) ) ) ) RX(I) = RX(I) - SIGN ( CORR, RX(I) ) RY(I) = RY(I) - SIGN ( CORR, RY(I) ) RZ(I) = RZ(I) - SIGN ( CORR, RZ(I) ) RETURN END SUBROUTINE RDBOUN ( I ) COMMON / BLOCK1 / RX, RY, RZ C ******************************************************************* C ** PERIODIC BOUNDARY CONDITIONS FOR A RHOMBIC DODECAHEDRON ** C ** ** C ** THE BOX IS CENTRED AT THE ORIGIN. THE X AND Y AXES JOIN THE ** C ** CENTRES OF OPPOSITE FACES OF THE DODECAHEDRON. THE Z AXIS ** C ** JOINS OPPOSITE VERTICES OF THE RHOMBIC DODECAHEDRON (SEE FIG. ** C ** 1.10(B)). THE DIAGONAL OF THE RHOMBIC FACE IS OF UNIT LENGTH ** C ** AND THE SIDE OF THE CONTAINING CUBE IS SQRT(2.0). ** C ** NOTE THAT THE X AND Y AXES PASS THROUGH THE CUBE EDGES, WHILE ** C ** THE Z AXIS PASSES THROUGH THE CUBE FACES. ** C ** ** C ** PRINCIPAL VARIABLES: ** C ** ** C ** REAL RT2 SQRT(2.0) TO MACHINE ACCURACY ** C ** REAL RRT2 1.0/SQRT(2.0) ** C ******************************************************************* INTEGER N PARAMETER ( N = 108 ) INTEGER I REAL RX(N), RY(N), RZ(N) REAL RT2, RRT2, CORR PARAMETER ( RT2 = 1.4142136, RRT2 = 1.0 / RT2 ) C ******************************************************************* RX(I) = RX(I) - ANINT ( RX(I) ) RY(I) = RY(I) - ANINT ( RY(I) ) RZ(I) = RZ(I) - RT2 * ANINT ( RRT2 * RZ(I) ) CORR = 0.5 * AINT ( ( ABS ( RX(I) ) + : ABS ( RY(I) ) + : RT2 * ABS ( RZ(I) ) ) RX(I) = RX(I) - SIGN ( CORR, RX(I) ) RY(I) = RY(I) - SIGN ( CORR, RY(I) ) RZ(I) = RZ(I) - SIGN ( CORR, RZ(I) ) * RT2 RETURN END SUBROUTINE RHBOUN ( I ) COMMON / BLOCK1 / RX, RY, RZ C ******************************************************************* C ** PERIODIC BOUNDARY CONDITIONS FOR A RHOMBIC BOX. ** C ** ** C ** PERIODIC CORRECTIONS ARE APPLIED IN TWO DIMENSIONS X, Y. ** C ** IN MOST APPLICATIONS THE MOLECULES WILL BE CONFINED IN THE ** C ** Z DIRECTION BY REAL WALLS RATHER THAN BY PERIODIC BOUNDARIES. ** C ** THE BOX IS CENTRED AT THE ORIGIN. THE X AXIS LIES ALONG THE ** C ** SIDE OF THE RHOMBUS, WHICH IS OF UNIT LENGTH. ** C ** ** C ** PRINCIPAL VARIABLES: ** C ** ** C ** REAL RT3 SQRT(3.0) TO MACHINE ACCURACY ** C ** REAL RT32 SQRT(3.0)/2.0 ** C ** REAL RRT3 1.0/SQRT(3.0) ** C ** REAL RRT32 2.0/SQRT(3.0) ** C ******************************************************************* INTEGER N PARAMETER ( N = 108 ) INTEGER I REAL RX(N), RY(N), RZ(N) REAL RT3, RRT3, RT32, RRT32 PARAMETER ( RT3 = 1.7320508, RRT3 = 1.0 / RT3 ) PARAMETER ( RT32 = RT3 / 2.0, RRT32 = 1.0 / RT32 ) C ******************************************************************* RX(I) = RX(I) - ANINT ( RX(I) - RRT3 * RY(I) ) : - ANINT ( RRT32 * RY(I) ) * 0.5 RY(I) = RY(I) - ANINT ( RRT32 * RY(I) ) * RT32 RETURN END
-- gmx-users mailing list gmx-users@gromacs.org http://lists.gromacs.org/mailman/listinfo/gmx-users Please search the archive at http://www.gromacs.org/search before posting! Please don't post (un)subscribe requests to the list. Use the www interface or send it to gmx-users-requ...@gromacs.org. Can't post? Read http://www.gromacs.org/mailing_lists/users.php