diff --git a/sPuReMD/src/driver.c b/sPuReMD/src/driver.c index 8e48dc1b353228f84df28297ab572dbb2ab44f22..db8e939d02d1ad81f6c8485483955b637772a66a 100644 --- a/sPuReMD/src/driver.c +++ b/sPuReMD/src/driver.c @@ -1,4 +1,3 @@ - /*---------------------------------------------------------------------- SerialReax - Reax Force Field Simulator @@ -30,16 +29,21 @@ static void usage( char * argv[] ) { - fprintf( stderr, "usage: ./%s geometry_file force_field_file control_file\n", argv[0] ); + fprintf( stderr, "usage: ./%s geo_file ffield_param_file control_file [geo_file2 ffield_param_file2 control_file2 ...]\n", + argv[0] ); + fprintf( stderr, " geo_file, geo_file2, ... Geometry files containing simulation information. Format\n" + " specified via geo_format keyword in respective simulation control file\n" ); + fprintf( stderr, " ffield_param_file, ffield_param_file2, ... ReaxFF parameter files.\n" ); + fprintf( stderr, " control_file, control_file2, ... PuReMD control files for simulation parameters.\n" ); } int main( int argc, char* argv[] ) { + int i, ret; void *handle; - int ret; - if ( argc != 4 ) + if ( argc < 4 || argc % 3 != 1 ) { usage( argv ); exit( INVALID_INPUT ); @@ -53,6 +57,19 @@ int main( int argc, char* argv[] ) ret = simulate( handle ); } + for ( i = 1; i < argc / 3; ++i ) + { + if ( ret == SPUREMD_SUCCESS ) + { + ret = reset( handle, argv[3 * i + 1], argv[3 * i + 2], argv[3 * i + 3] ); + } + + if ( ret == SPUREMD_SUCCESS ) + { + ret = simulate( handle ); + } + } + if ( ret == SPUREMD_SUCCESS ) { ret = cleanup( handle );