git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@8226 f3b2605a-c512-4ea7-a41b-209d697bcdaa
This commit is contained in:
184
src/lammps.cpp
184
src/lammps.cpp
@ -5,7 +5,7 @@
|
||||
|
||||
Copyright (2003) Sandia Corporation. Under the terms of Contract
|
||||
DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains
|
||||
certain rights in this software. This software is distributed under
|
||||
certain rights in this software. This software is distributed under
|
||||
the GNU General Public License.
|
||||
|
||||
See the README file in the top-level LAMMPS directory.
|
||||
@ -78,87 +78,87 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator)
|
||||
|
||||
int iarg = 1;
|
||||
while (iarg < narg) {
|
||||
if (strcmp(arg[iarg],"-partition") == 0 ||
|
||||
strcmp(arg[iarg],"-p") == 0) {
|
||||
if (strcmp(arg[iarg],"-partition") == 0 ||
|
||||
strcmp(arg[iarg],"-p") == 0) {
|
||||
universe->existflag = 1;
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
iarg++;
|
||||
while (iarg < narg && arg[iarg][0] != '-') {
|
||||
universe->add_world(arg[iarg]);
|
||||
iarg++;
|
||||
universe->add_world(arg[iarg]);
|
||||
iarg++;
|
||||
}
|
||||
} else if (strcmp(arg[iarg],"-in") == 0 ||
|
||||
strcmp(arg[iarg],"-i") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
} else if (strcmp(arg[iarg],"-in") == 0 ||
|
||||
strcmp(arg[iarg],"-i") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
inflag = iarg + 1;
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"-screen") == 0 ||
|
||||
strcmp(arg[iarg],"-sc") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
} else if (strcmp(arg[iarg],"-screen") == 0 ||
|
||||
strcmp(arg[iarg],"-sc") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
screenflag = iarg + 1;
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"-log") == 0 ||
|
||||
strcmp(arg[iarg],"-l") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
} else if (strcmp(arg[iarg],"-log") == 0 ||
|
||||
strcmp(arg[iarg],"-l") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
logflag = iarg + 1;
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"-var") == 0 ||
|
||||
strcmp(arg[iarg],"-v") == 0) {
|
||||
if (iarg+3 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
} else if (strcmp(arg[iarg],"-var") == 0 ||
|
||||
strcmp(arg[iarg],"-v") == 0) {
|
||||
if (iarg+3 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
iarg += 3;
|
||||
while (iarg < narg && arg[iarg][0] != '-') iarg++;
|
||||
} else if (strcmp(arg[iarg],"-echo") == 0 ||
|
||||
strcmp(arg[iarg],"-e") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
} else if (strcmp(arg[iarg],"-echo") == 0 ||
|
||||
strcmp(arg[iarg],"-e") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"-pscreen") == 0 ||
|
||||
strcmp(arg[iarg],"-ps") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
} else if (strcmp(arg[iarg],"-pscreen") == 0 ||
|
||||
strcmp(arg[iarg],"-ps") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
partscreenflag = iarg + 1;
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"-plog") == 0 ||
|
||||
strcmp(arg[iarg],"-pl") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
} else if (strcmp(arg[iarg],"-plog") == 0 ||
|
||||
strcmp(arg[iarg],"-pl") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
partlogflag = iarg + 1;
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"-cuda") == 0 ||
|
||||
strcmp(arg[iarg],"-c") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
} else if (strcmp(arg[iarg],"-cuda") == 0 ||
|
||||
strcmp(arg[iarg],"-c") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
if (strcmp(arg[iarg+1],"on") == 0) cudaflag = 1;
|
||||
else if (strcmp(arg[iarg+1],"off") == 0) cudaflag = 0;
|
||||
else error->universe_all(FLERR,"Invalid command-line argument");
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"-suffix") == 0 ||
|
||||
strcmp(arg[iarg],"-sf") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
} else if (strcmp(arg[iarg],"-suffix") == 0 ||
|
||||
strcmp(arg[iarg],"-sf") == 0) {
|
||||
if (iarg+2 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
delete [] suffix;
|
||||
int n = strlen(arg[iarg+1]) + 1;
|
||||
suffix = new char[n];
|
||||
strcpy(suffix,arg[iarg+1]);
|
||||
suffix_enable = 1;
|
||||
iarg += 2;
|
||||
} else if (strcmp(arg[iarg],"-reorder") == 0 ||
|
||||
strcmp(arg[iarg],"-r") == 0) {
|
||||
if (iarg+3 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
} else if (strcmp(arg[iarg],"-reorder") == 0 ||
|
||||
strcmp(arg[iarg],"-r") == 0) {
|
||||
if (iarg+3 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
if (universe->existflag)
|
||||
error->universe_all(FLERR,"Cannot use -reorder after -partition");
|
||||
error->universe_all(FLERR,"Cannot use -reorder after -partition");
|
||||
universe->reorder(arg[iarg+1],arg[iarg+2]);
|
||||
iarg += 3;
|
||||
} else if (strcmp(arg[iarg],"-help") == 0 ||
|
||||
strcmp(arg[iarg],"-h") == 0) {
|
||||
if (iarg+1 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
} else if (strcmp(arg[iarg],"-help") == 0 ||
|
||||
strcmp(arg[iarg],"-h") == 0) {
|
||||
if (iarg+1 > narg)
|
||||
error->universe_all(FLERR,"Invalid command-line argument");
|
||||
helpflag = 1;
|
||||
iarg += 1;
|
||||
} else error->universe_all(FLERR,"Invalid command-line argument");
|
||||
@ -197,19 +197,19 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator)
|
||||
universe->uscreen = NULL;
|
||||
else {
|
||||
universe->uscreen = fopen(arg[screenflag],"w");
|
||||
if (universe->uscreen == NULL)
|
||||
error->universe_one(FLERR,"Cannot open universe screen file");
|
||||
if (universe->uscreen == NULL)
|
||||
error->universe_one(FLERR,"Cannot open universe screen file");
|
||||
}
|
||||
if (logflag == 0) {
|
||||
universe->ulogfile = fopen("log.lammps","w");
|
||||
if (universe->ulogfile == NULL)
|
||||
error->universe_one(FLERR,"Cannot open log.lammps");
|
||||
if (universe->ulogfile == NULL)
|
||||
error->universe_one(FLERR,"Cannot open log.lammps");
|
||||
} else if (strcmp(arg[logflag],"none") == 0)
|
||||
universe->ulogfile = NULL;
|
||||
else {
|
||||
universe->ulogfile = fopen(arg[logflag],"w");
|
||||
if (universe->ulogfile == NULL)
|
||||
error->universe_one(FLERR,"Cannot open universe log file");
|
||||
if (universe->ulogfile == NULL)
|
||||
error->universe_one(FLERR,"Cannot open universe log file");
|
||||
}
|
||||
}
|
||||
|
||||
@ -234,9 +234,9 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator)
|
||||
if (inflag == 0) infile = stdin;
|
||||
else infile = fopen(arg[inflag],"r");
|
||||
if (infile == NULL) {
|
||||
char str[128];
|
||||
sprintf(str,"Cannot open input script %s",arg[inflag]);
|
||||
error->one(FLERR,str);
|
||||
char str[128];
|
||||
sprintf(str,"Cannot open input script %s",arg[inflag]);
|
||||
error->one(FLERR,str);
|
||||
}
|
||||
}
|
||||
|
||||
@ -271,14 +271,14 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator)
|
||||
if (screen == NULL) error->one(FLERR,"Cannot open screen file");
|
||||
}
|
||||
else if (strcmp(arg[partscreenflag],"none") == 0)
|
||||
screen = NULL;
|
||||
screen = NULL;
|
||||
else {
|
||||
char str[128];
|
||||
sprintf(str,"%s.%d",arg[partscreenflag],universe->iworld);
|
||||
screen = fopen(str,"w");
|
||||
if (screen == NULL) error->one(FLERR,"Cannot open screen file");
|
||||
char str[128];
|
||||
sprintf(str,"%s.%d",arg[partscreenflag],universe->iworld);
|
||||
screen = fopen(str,"w");
|
||||
if (screen == NULL) error->one(FLERR,"Cannot open screen file");
|
||||
} else screen = NULL;
|
||||
|
||||
|
||||
if (me == 0)
|
||||
if (partlogflag == 0)
|
||||
if (logflag == 0) {
|
||||
@ -295,46 +295,46 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator)
|
||||
if (logfile == NULL) error->one(FLERR,"Cannot open logfile");
|
||||
}
|
||||
else if (strcmp(arg[partlogflag],"none") == 0)
|
||||
logfile = NULL;
|
||||
logfile = NULL;
|
||||
else {
|
||||
char str[128];
|
||||
sprintf(str,"%s.%d",arg[partlogflag],universe->iworld);
|
||||
logfile = fopen(str,"w");
|
||||
if (logfile == NULL) error->one(FLERR,"Cannot open logfile");
|
||||
char str[128];
|
||||
sprintf(str,"%s.%d",arg[partlogflag],universe->iworld);
|
||||
logfile = fopen(str,"w");
|
||||
if (logfile == NULL) error->one(FLERR,"Cannot open logfile");
|
||||
} else logfile = NULL;
|
||||
|
||||
|
||||
if (me == 0) {
|
||||
infile = fopen(arg[inflag],"r");
|
||||
if (infile == NULL) {
|
||||
char str[128];
|
||||
sprintf(str,"Cannot open input script %s",arg[inflag]);
|
||||
error->one(FLERR,str);
|
||||
char str[128];
|
||||
sprintf(str,"Cannot open input script %s",arg[inflag]);
|
||||
error->one(FLERR,str);
|
||||
}
|
||||
} else infile = NULL;
|
||||
|
||||
|
||||
// screen and logfile messages for universe and world
|
||||
|
||||
|
||||
if (universe->me == 0) {
|
||||
if (universe->uscreen) {
|
||||
fprintf(universe->uscreen,"LAMMPS (%s)\n",universe->version);
|
||||
fprintf(universe->uscreen,"Running on %d partitions of processors\n",
|
||||
universe->nworlds);
|
||||
fprintf(universe->uscreen,"LAMMPS (%s)\n",universe->version);
|
||||
fprintf(universe->uscreen,"Running on %d partitions of processors\n",
|
||||
universe->nworlds);
|
||||
}
|
||||
if (universe->ulogfile) {
|
||||
fprintf(universe->ulogfile,"LAMMPS (%s)\n",universe->version);
|
||||
fprintf(universe->ulogfile,"Running on %d partitions of processors\n",
|
||||
universe->nworlds);
|
||||
fprintf(universe->ulogfile,"LAMMPS (%s)\n",universe->version);
|
||||
fprintf(universe->ulogfile,"Running on %d partitions of processors\n",
|
||||
universe->nworlds);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (me == 0) {
|
||||
if (screen) {
|
||||
fprintf(screen,"LAMMPS (%s)\n",universe->version);
|
||||
fprintf(screen,"Processor partition = %d\n",universe->iworld);
|
||||
fprintf(screen,"LAMMPS (%s)\n",universe->version);
|
||||
fprintf(screen,"Processor partition = %d\n",universe->iworld);
|
||||
}
|
||||
if (logfile) {
|
||||
fprintf(logfile,"LAMMPS (%s)\n",universe->version);
|
||||
fprintf(logfile,"Processor partition = %d\n",universe->iworld);
|
||||
fprintf(logfile,"LAMMPS (%s)\n",universe->version);
|
||||
fprintf(logfile,"Processor partition = %d\n",universe->iworld);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -352,11 +352,11 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator)
|
||||
MPI_Type_size(MPI_LMP_TAGINT,&mpisize);
|
||||
if (mpisize != sizeof(tagint))
|
||||
error->all(FLERR,
|
||||
"MPI_LMP_TAGINT and tagint in lmptype.h are not compatible");
|
||||
"MPI_LMP_TAGINT and tagint in lmptype.h are not compatible");
|
||||
MPI_Type_size(MPI_LMP_BIGINT,&mpisize);
|
||||
if (mpisize != sizeof(bigint))
|
||||
error->all(FLERR,
|
||||
"MPI_LMP_BIGINT and bigint in lmptype.h are not compatible");
|
||||
"MPI_LMP_BIGINT and bigint in lmptype.h are not compatible");
|
||||
|
||||
#ifdef LAMMPS_SMALLBIG
|
||||
if (sizeof(smallint) != 4 || sizeof(tagint) != 4 || sizeof(bigint) != 8)
|
||||
@ -371,7 +371,7 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator)
|
||||
error->all(FLERR,"Small, tag, big integers are not sized correctly");
|
||||
#endif
|
||||
|
||||
if (sizeof(tagint) == 8)
|
||||
if (sizeof(tagint) == 8)
|
||||
error->all(FLERR,"64-bit atom IDs are not yet supported");
|
||||
|
||||
// create CUDA class if USER-CUDA installed, unless explicitly switched off
|
||||
@ -390,7 +390,7 @@ LAMMPS::LAMMPS(int narg, char **arg, MPI_Comm communicator)
|
||||
cuda = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int me;
|
||||
MPI_Comm_rank(world,&me);
|
||||
if (cuda && me == 0) error->message(FLERR,"USER-CUDA mode is enabled");
|
||||
@ -496,7 +496,7 @@ void LAMMPS::post_create()
|
||||
void LAMMPS::init()
|
||||
{
|
||||
if (cuda) cuda->accelerator(0,NULL);
|
||||
|
||||
|
||||
update->init();
|
||||
force->init(); // pair must come after update due to minimizer
|
||||
domain->init();
|
||||
|
||||
Reference in New Issue
Block a user