         ***************************
	 * TESTS FOR SMD WITH ORAC *
         ***************************

This README decuments the regular, non-parallel ("serial")
implementation of Steered MD in ORAC

For the parallel implementation of SMD, see README_PARALLEL


------------------------------------------------------------------------
BEFORE RUNNING THE TESTS
------------------------------------------------------------------------

* Build the appropriate executable of the ORAC program, e.g. :

   cd <orac6-root-dir>
   ./configure -INTEL -FFTW -OMP -MPI
   make   ! create an hybrid OMP/MPI executable in  INTEL-FFTW-OMP-MPI dir    
   ./configure -INTEL -FFTW -OMP 
   make  ! create an hybrid OMP executable in  INTEL-FFTW-OMP dir    

* Adjust the variables in the first section of ./Makefile :

  O_BIN

and possibly

  O_ROOT 
  O_SRC  
  ORAC   


------------------------------------------------------------------------
TO RUN THE TESTS
------------------------------------------------------------------------

Tests are preferably run through `make'.


* to run all the serial tests in sequence:

  `make'
  
  this will run the script `run_serial_tests.bash' from this
  directory, which in turn will call the following scripts:

    forward_trajectories.bash
	script for producing non equilibrium forward trajectories

    reverse_trajectories.bash 
	script for producing non equilibrium reverse trajectories

  as well as the ancillary program 

    bennett
        (see ${O_ROOT}/tools/bennett for more info)
  

* to run individual tests (for example):

   `make 2b.out'



The tests will create several output files, and a collection of
selected output lines in OUT_TEST; this file is to be compared to
the reference file OUT.

NOTE that even small differences of numerical origin will soon drive a
trajectory away from the reference path. Thus, the work distribution
may differ significantly from the reference data.
 

------------------------------------------------------------------------
SHORT DESCRIPTION OF TESTS
------------------------------------------------------------------------

- Please read the manual ( ${O_ROOT}/doc/orac-manual.pdf ) for a
  detailed description of the program and its input


- The input examples do the following operations:  

1a.in -> 1a.out   Run a single NVT steerd molecular dynamics simulation:
                  stretching helix 10-ala in vacuo 
1b.in -> 1b.out   Run a single NVT steerd molecular dynamics simulation:
                  bending of helix decaalanine in vacuo 
1c.in -> 1c.out   Run a single NVT steerd molecular dynamics simulation:
                  torque of helix decaalanine in vacuo 
1d.in -> 1d.out   Run a single NVT steerd molecular dynamics simulation:
                  stretching, bending and torque at the same time of helix decalanaine in vacuo
Testing thermal_changes_GCT.in ->  Testing thermal_changes_GCT.out    Run a single GCT test with varying T 
steer_path.in -> steer_path.out  Run a single NVT SMD test with a general path defined on
                                 a bi-dimensional reaction coordinates space

#    The following tests are designed to produce bidirectional non equilibrium work distribution 
#    for the case of the folding/unfolding of decaalanine. 
 
2a.in -> 2a.out   produces canonically distributed configurations
                in the a-helix state in the RESTART_A dir.    
2b.in -> 2b.out   produces canonically distributed configurations
                in the unfolded state in the RESTART_B dir.   
4a.in -> 4a.out   Template input to produce a non equilibrium forward (unfolding) trajectory form restart;     
                  The template is processed by the script run_forward_trajectories in bin dir. 
4b.in -> 4b.out   Template input to produce a non equilibrium reverse (folding) trajectory form restart;     
                  The template is processed by the script run_reverse_trajectories in bin dir. 

