24小时热门版块排行榜    

查看: 1054  |  回复: 3

zyj8119

木虫 (著名写手)

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

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

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的回帖

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的回帖
相关版块跳转 我要订阅楼主 zyj8119 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 材料专硕326求调剂 +6 墨煜姒莘 2026-03-15 7/350 2026-03-17 17:10 by ruiyingmiao
[考研] 26考研求调剂 +6 丶宏Sir 2026-03-13 6/300 2026-03-17 16:13 by 醉在风里
[考研] 东南大学364求调剂 +5 JasonYuiui 2026-03-15 5/250 2026-03-16 21:28 by 木瓜膏
[考研] 304求调剂 +5 素年祭语 2026-03-15 5/250 2026-03-16 17:00 by 我的船我的海
[考研] 318求调剂 +3 Yanyali 2026-03-15 3/150 2026-03-16 16:41 by houyaoxu
[考研] 311求调剂 +5 26研0 2026-03-15 5/250 2026-03-16 16:21 by a不易
[考研] 070303 总分349求调剂 +3 LJY9966 2026-03-15 5/250 2026-03-16 14:24 by xwxstudy
[考研] 材料工程327求调剂 +3 xiaohe12w 2026-03-11 3/150 2026-03-14 20:20 by ms629
[考研] 本科南京大学一志愿川大药学327 +3 麦田耕者 2026-03-14 3/150 2026-03-14 20:04 by 外星文明
[基金申请] 现在如何回避去年的某一个专家,不知道名字 +3 zk200107 2026-03-12 6/300 2026-03-14 17:13 by zk200107
[考研] 材料工程调剂 +9 咪咪空空 2026-03-12 9/450 2026-03-13 22:05 by 星空星月
[考研] [0860]321分求调剂,ab区皆可 +4 宝贵热 2026-03-13 4/200 2026-03-13 22:01 by 星空星月
[考研] (081700)化学工程与技术-298分求调剂 +12 11啦啦啦 2026-03-11 35/1750 2026-03-13 21:25 by JourneyLucky
[考研] 315求调剂 +9 小羊小羊_ 2026-03-11 10/500 2026-03-13 21:13 by SXNU李老师
[考研] 【考研调剂求收留】 +3 Ceciilia 2026-03-11 3/150 2026-03-13 20:18 by JourneyLucky
[考研] 求调剂 +7 18880831720 2026-03-11 7/350 2026-03-13 16:10 by JourneyLucky
[考研] 307求调剂 +5 超级伊昂大王 2026-03-12 5/250 2026-03-13 15:56 by 棒棒球手
[考研] 314求调剂 +7 无懈可击的巨人 2026-03-12 7/350 2026-03-13 15:40 by JourneyLucky
[考研] 0856化学工程280分求调剂 +4 shenzxsn 2026-03-11 4/200 2026-03-13 11:55 by ymwdoctor
[考博] 26读博 +4 Rui135246 2026-03-12 10/500 2026-03-13 07:15 by gaobiao
信息提示
请填处理意见