next up previous contents index
Next: Periodic Boundary Conditions Up: Nonlinear Burnett Coefficients Previous: Equations of Motion

The Integrator

A far more efficient algorithm (by a factor of four) than the Runge-Kutta algorithm is due to Gear [1970]. This is a multistep method, requiring higher order derivatives of to be known. As a consequence, a second order Runge-Kutta algorithm must be used to evaluate the higher order derivatives at time t=0. This was tried for Gaussian systems, and was found to give the correct trajectory 99.5% of the time. The cause of the erroneous trajectories was never resolved. It was thought that the error involved in neglecting was statistically insignificant, however, the value calculated for colour conductivity disagreed with the accepted value by about 10%, or 2 standard errors. When the theory based on a single equilibrium trajectory was developed, it no longer mattered what the initial condition of the system are, so a self-starting method was no longer required.

  A listing of the Gear integrator which is 4 order in h follows. The SPM_quot1" in the name refers to the fact that a first order differential equation is being solved. Algorithms are listed in Gear's book for second and higher order equation. The SPM_quotZ" refers to the equations of motion being integrated as the current and thermo-statted system listed as SPM_quotNORTON". It was found that in order to efficiently vectorize the code on the Fujitsu VP100, each subroutine had to be expanded inline at the compilation stage in order to avoid any recursive data dependencies (procedure integration). Unfortunately, procedure integration could not be performed on functional   parameters, so the name of the equations of motion function had to be hard coded into the routine. For similar reasons, the phase space vector SPM_quotX" is now passed as a common block, so the only parameters left are SPM_quotH" and SPM_quotNTSTEP". To alter this routine to do anything else only requires the strings SPM_quotNORTON", SPM_quotGAMMAG" and SPM_quotDIMPS+2" to be globally changed with a text editor.

C Solve the equations of motion by the 4th order Gear predictor-                
C corrector method. Gear, C.W. (1971) Numerical Initial Value Problems          
C in Differential Equations. (Prentice Hall: Englewood Cliffs, N.J.)            
C This subroutine treats the equations of motion as a 1st order d.e.            
                                                                                
       SUBROUTINE GEAR1Z( H, NTSTEP )                                           
       INCLUDE (PARAM)                                                          
                                                                                
C XT = x(t) = final state after time t = H*NTSTEP.                              
C H = step size                                                                 
C NTSTEP = Number of time steps                                                 
C       n                                                                       
C      H    n   n                                                               
C Xn = -- (d /dt ) XT                                                           
C      n!                                                                       
C                                                                               
C XnPRED = the predicted values of the above using a truncated Taylor           
C series                                                                        
                                                                                
       INTEGER NTSTEP, I, T                                                     
       DOUBLE PRECISION H, CORR, NORTON                                         
       DOUBLE PRECISION XT(DIMPS+2), XTPRED(DIMPS+2), X3PRED(DIMPS+2)           
       DOUBLE PRECISION X2(DIMPS+2), X2PRED(DIMPS+2), X3(DIMPS+2)               
       DOUBLE PRECISION X4(DIMPS+2)                                             
       DOUBLE PRECISION X1(DIMPS+2), X1PRED(DIMPS+2)                            
C Local storage is shared with SETGEG, GEARN, SETGEN                            
       COMMON /GSTORE/ XTPRED,X1PRED,X2PRED,X3PRED                              
C Derivatives filled of SETGEG                                                  
       COMMON /GSTORZ/ X1,X2,X3,X4                                              
       COMMON /GAMMAG/ XT                                                       
                                                                                
C Gear coefficients                                                             
       DOUBLE PRECISION F0,F1,F2,F3,F4                                          
       PARAMETER( F0=251./720, F1=1, F2=11./12, F3=1./3, F4=1./24)              
                                                                                
C These statements are required for Procedure Integration on the FACOM          
       DOUBLE PRECISION F(D*NP),V                                               
       COMMON /FORCE/F,V                                                        
                                                                                
                                                                                
C Calculation loop                                                              
       DO 2 T=1,NTSTEP                                                          
                                                                                
C Predictor loop                                                                
*VOCL LOOP,NOVREC(XTPRED)                                                       
         DO 3 I=1,DIMPS+2                                                       
           XTPRED(I) = X1(I) + XT(I)+X2(I)+X3(I)+X4(I)                          
           X1PRED(I) = X1(I) +                                                  
     &           2 * X2(I) + 3 * X3(I) + 4 * X4(I)                              
           X2PRED(I) = X2(I) + 3*X3(I) + 6*X4(I)                                
           X3PRED(I) = X3(I) + 4*X4(I)                                          
3          CONTINUE                                                             
                                                                                
C Evaluation step                                                               
         CALL FORCES(XTPRED)                                                    
                                                                                
C Corrector loop                                                                
*VOCL LOOP,NOVREC(XT)                                                           
         DO 4 I=1,DIMPS+2                                                       
           CORR = NORTON(I,XTPRED) * H - X1PRED(I)                              
           XT(I) = XTPRED(I) + F0 * CORR                                        
           X1(I) = X1PRED(I) + F1 * CORR                                        
           X2(I) = X2PRED(I) + F2 * CORR                                        
           X3(I) = X3PRED(I) + F3 * CORR                                        
           X4(I) = X4(I) + F4 * CORR                                            
4          CONTINUE                                                             
                                                                                
2        CONTINUE                                                               
                                                                                
       CALL CUBE( XT)                                                           
       RETURN                                                                   
       END



next up previous contents index
Next: Periodic Boundary Conditions Up: Nonlinear Burnett Coefficients Previous: Equations of Motion



Russell Standish
Thu May 18 11:43:52 EST 1995