24小时热门版块排行榜    

CyRhmU.jpeg
查看: 963  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

zyj8119

木虫 (著名写手)

[交流] 【原创】除了汪文川那本书以外, computer simulation of liquids这本书也很好已有1人参与

这本书的代码和汪文川的书上的代码都可以一起讨论讨论,这样大家才能进步很快。
回复此楼
好好学习,天天向上。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

★ ★
lei0736(金币+2):谢谢分享 2010-09-09 09:11:51
引用回帖:
Originally posted by zyj8119 at 2010-09-08 20:02:33:


[code]********************************************************************************
** FICHE F.2.  GEAR 5-VALUE PREDICTOR-CORRECTOR ALGORITHM                     **
** This FORTRAN code is ...

http://d.namipan.com/d/b6a16929d ... 3dfc225d0300960900:所有程序已经上传到此
好好学习,天天向上。
4楼2010-09-08 20:28:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

zyj8119

木虫 (著名写手)

引用回帖:
Originally posted by zyj8119 at 2010-09-08 19:59:05:
这本书的代码和汪文川的书上的代码都可以一起讨论讨论,这样大家才能进步很快。

CODE:
********************************************************************************
** FICHE F.1.   PERIODIC BOUNDARY CONDITIONS IN VARIOUS GEOMETRIES            **
** This FORTRAN code is intended to illustrate points made in the text.       **
** To our knowledge it works correctly.  However it is the responsibility of  **
** the user to test it, if it is to be used in a research application.        **
********************************************************************************


C    *******************************************************************
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

这是第一个程序
好好学习,天天向上。
2楼2010-09-08 20:01:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

[quote]Originally posted by zyj8119 at 2010-09-08 20:01:21:
CODE:
********************************************************************************
** FICHE F.1.   PERIODIC BOUNDARY CONDITIONS IN VARIOUS GEOMETRIES            **
** This FORTRAN code is ... [/quote]

[code]********************************************************************************
** FICHE F.2.  GEAR 5-VALUE PREDICTOR-CORRECTOR ALGORITHM                     **
** This FORTRAN code is intended to illustrate points made in the text.       **
** To our knowledge it works correctly.  However it is the responsibility of  **
** the user to test it, if it is to be used in a research application.        **
********************************************************************************

C    *******************************************************************
C    ** GEAR 5-VALUE PREDICTOR-CORRECTOR ALGORITHM FOR TRANSLATION.   **
C    **                                                               **
C    ** REFERENCE:                                                    **
C    **                                                               **
C    ** GEAR, NUMERICAL INITIAL VALUE PROBLEMS IN ORDINARY            **
C    ** DIFFERENTIAL EQUATIONS (PRENTICE-HALL,1971).                  **
C    **                                                               **
C    ** SUPPLIED ROUTINES:                                            **
C    **                                                               **
C    ** SUBROUTINE PREDIC ( DT )                                      **
C    **    PREDICTS THE NEW POSITIONS, VELOCITIES, ETC.               **
C    ** SUBROUTINE CORREC ( DT, M, K )                                **
C    **    CORRECTS THE POSITIONS, VELOCITIES ETC. USING GEAR METHOD  **
C    **                                                               **
C    ** PRINCIPAL VARIABLES:                                          **
C    **                                                               **
C    ** INTEGER N                  NUMBER OF MOLECULES                **
C    ** REAL    DT                 TIMESTEP                           **
C    ** REAL    RX(N),RY(N),RZ(N)  POSITIONS                          **
C    ** REAL    VX(N),VY(N),VZ(N)  VELOCITIES                         **
C    ** REAL    AX(N),AY(N),AZ(N)  ACCELERATIONS                      **
C    ** REAL    BX(N),BY(N),BZ(N)  THIRD DERIVATIVES                  **
C    ** REAL    CX(N),CY(N),CZ(N)  FOURTH DERIVATIVES                 **
C    ** REAL    FX(N),FY(N),FZ(N)  FORCES                             **
C    **                                                               **
C    ** USAGE:                                                        **
C    **                                                               **
C    ** AT EACH TIMESTEP, CALL PREDIC, FORCE, CORREC IN ORDER         **
C    ** FOLLOWED BY ACCUMULATION OF THERMODYNAMIC QUANTITIES.         **
C    ** THE FORCE ROUTINE (NOT SUPPLIED HERE: SEE F.17) CALCULATES    **
C    ** POTENTIAL ENERGY AND FORCES ON ALL ATOMS.                     **
C    *******************************************************************



        SUBROUTINE PREDIC ( DT )

        COMMON / BLOCK1 / RX, RY, RZ, VX, VY, VZ, AX, AY, AZ,
     :                    BX, BY, BZ, CX, CY, CZ, FX, FY, FZ

C    *******************************************************************
C    ** PREDICTOR ROUTINE                                             **
C    **                                                               **
C    ** IN TIMESTEP-SCALED VARIABLES THE PREDICTOR IS THE PASCAL      **
C    ** TRIANGLE MATRIX.  IN UNSCALED VARIABLES IT IS A TAYLOR SERIES **
C    **                                                               **
C    ** USAGE:                                                        **
C    **                                                               **
C    ** PREDIC IS CALLED TO ADVANCE THE COORDINATES, VELOCITIES ETC.  **
C    ** BY ONE TIMESTEP DT, PRIOR TO FORCE EVALUATION.                **
C    *******************************************************************

        INTEGER     N
        PARAMETER ( N = 108 )

        REAL        DT
        REAL        RX(N), RY(N), RZ(N)
        REAL        VX(N), VY(N), VZ(N)
        REAL        AX(N), AY(N), AZ(N)
        REAL        BX(N), BY(N), BZ(N)
        REAL        CX(N), CY(N), CZ(N)
        REAL        FX(N), FY(N), FZ(N)

        INTEGER     I
        REAL        C1, C2, C3, C4

C    *******************************************************************

        C1 = DT
        C2 = C1 * DT / 2.0
        C3 = C2 * DT / 3.0
        C4 = C3 * DT / 4.0

        DO 100 I = 1, N

           RX(I) = RX(I) + C1*VX(I) + C2*AX(I) + C3*BX(I) + C4*CX(I)
           RY(I) = RY(I) + C1*VY(I) + C2*AY(I) + C3*BY(I) + C4*CY(I)
           RZ(I) = RZ(I) + C1*VZ(I) + C2*AZ(I) + C3*BZ(I) + C4*CZ(I)
           VX(I) = VX(I) + C1*AX(I) + C2*BX(I) + C3*CX(I)
           VY(I) = VY(I) + C1*AY(I) + C2*BY(I) + C3*CY(I)
           VZ(I) = VZ(I) + C1*AZ(I) + C2*BZ(I) + C3*CZ(I)
           AX(I) = AX(I) + C1*BX(I) + C2*CX(I)
           AY(I) = AY(I) + C1*BY(I) + C2*CY(I)
           AZ(I) = AZ(I) + C1*BZ(I) + C2*CZ(I)
           BX(I) = BX(I) + C1*CX(I)
           BY(I) = BY(I) + C1*CY(I)
           BZ(I) = BZ(I) + C1*CZ(I)

100     CONTINUE

        RETURN
        END



        SUBROUTINE CORREC ( DT, M, K )

        COMMON / BLOCK1 / RX, RY, RZ, VX, VY, VZ, AX, AY, AZ,
     :                    BX, BY, BZ, CX, CY, CZ, FX, FY, FZ

C    *******************************************************************
C    ** CORRECTOR ROUTINE                                             **
C    **                                                               **
C    ** CORRECTS POSITIONS, VELOCITIES ETC. AFTER FORCE EVALUATION.   **
C    ** IN TIMESTEP-SCALED VARIABLES THE NUMERICAL COEFFICIENTS ARE   **
C    ** GIVEN BY GEAR (REF ABOVE): 19/120, 3/4, 1, 1/2, 1/12.         **
C    ** IN UNSCALED FORM THESE MUST BE MULTIPLIED BY FACTORS          **
C    ** INVOLVING THE TIMESTEP AS SHOWN HERE.                         **
C    **                                                               **
C    ** PRINCIPAL VARIABLES:                                          **
C    **                                                               **
C    ** REAL    M                        ATOMIC MASS                  **
C    ** REAL    K                        KINETIC ENERGY PER ATOM      **
C    ** REAL    GEAR0,GEAR1,GEAR2,GEAR3  GEAR COEFFICIENTS            **
C    **                                                               **
C    ** USAGE:                                                        **
C    **                                                               **
C    ** IT IS ASSUMED THAT INTERMOLECULAR FORCES HAVE BEEN CALCULATED **
C    ** AND STORED IN FX,FY,FZ. CORREC SIMPLY APPLIES THE CORRECTOR   **
C    ** EQUATIONS BASED ON THE DIFFERENCES BETWEEN PREDICTED AND      **
C    ** EVALUATED ACCELERATIONS.  IT ALSO CALCULATES KINETIC ENERGY.  **
C    *******************************************************************

        INTEGER     N
        PARAMETER ( N = 108)
        REAL        DT
        REAL        RX(N), RY(N), RZ(N)
        REAL        VX(N), VY(N), VZ(N)
        REAL        AX(N), AY(N), AZ(N)
        REAL        BX(N), BY(N), BZ(N)
        REAL        CX(N), CY(N), CZ(N)
        REAL        FX(N), FY(N), FZ(N)
        REAL        M, K

        INTEGER     I
        REAL        AXI, AYI, AZI
        REAL        CORRX, CORRY, CORRZ
        REAL        C1, C2, C3, C4
        REAL        CR, CV, CB, CC
        REAL        GEAR0, GEAR1, GEAR3, GEAR4
        PARAMETER ( GEAR0 = 19.0 / 120.0, GEAR1 = 3.0 / 4.0,
     :              GEAR3 = 1.0 / 2.0,    GEAR4 = 1.0 / 12.0 )

C    *******************************************************************

        C1 = DT
        C2 = C1 * DT / 2.0
        C3 = C2 * DT / 3.0
        C4 = C3 * DT / 4.0

        CR = GEAR0 * C2
        CV = GEAR1 * C2 / C1
        CB = GEAR3 * C2 / C3
        CC = GEAR4 * C2 / C4

        K = 0.0

        DO 100 I = 1, N

           AXI = FX(I) / M
           AYI = FY(I) / M
           AZI = FZ(I) / M
           CORRX = AXI - AX(I)
           CORRY = AYI - AY(I)
           CORRZ = AZI - AZ(I)

           RX(I) = RX(I) + CR * CORRX
           RY(I) = RY(I) + CR * CORRY
           RZ(I) = RZ(I) + CR * CORRZ
           VX(I) = VX(I) + CV * CORRX
           VY(I) = VY(I) + CV * CORRY
           VZ(I) = VZ(I) + CV * CORRZ
           AX(I) = AXI
           AY(I) = AYI
           AZ(I) = AZI
           BX(I) = BX(I) + CB * CORRX
           BY(I) = BY(I) + CB * CORRY
           BZ(I) = BZ(I) + CB * CORRZ
           CX(I) = CX(I) + CC * CORRX
           CY(I) = CY(I) + CC * CORRY
           CZ(I) = CZ(I) + CC * CORRZ

           K = K + VX(I) ** 2 + VY(I) ** 2 + VZ(I) ** 2

100     CONTINUE

        K = 0.5 * M * K

        RETURN
        END

第二段程序
好好学习,天天向上。
3楼2010-09-08 20:02:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复(可上传附件)
信息提示
请填处理意见