| 80 |
|
|
| 81 |
|
if( !strcmp( info.name, name ) ){ |
| 82 |
|
sprintf( painCave.errMsg, |
| 83 |
< |
"Duplicate LJ atom type \"%s\" found in " |
| 84 |
< |
"the LJ_FF param file./n", |
| 83 |
> |
"Duplicate EAM atom type \"%s\" found in " |
| 84 |
> |
"the EAM_FF param file./n", |
| 85 |
|
name ); |
| 86 |
|
painCave.isFatal = 1; |
| 87 |
|
simError(); |
| 155 |
|
// begins the actual forcefield stuff. |
| 156 |
|
//**************************************************************** |
| 157 |
|
|
| 158 |
+ |
EAM_FF::EAM_FF() { |
| 159 |
+ |
EAM_FF(""); |
| 160 |
+ |
} |
| 161 |
|
|
| 162 |
< |
EAM_FF::EAM_FF(){ |
| 162 |
> |
EAM_FF::EAM_FF(char* the_variant){ |
| 163 |
|
|
| 164 |
|
char fileName[200]; |
| 165 |
|
char* ffPath_env = "FORCE_PARAM_PATH"; |
| 204 |
|
if( worldRank == 0 ){ |
| 205 |
|
#endif |
| 206 |
|
|
| 207 |
< |
// generate the force file name |
| 208 |
< |
|
| 209 |
< |
strcpy( fileName, "EAM_FF.frc" ); |
| 210 |
< |
// fprintf( stderr,"Trying to open %s\n", fileName ); |
| 207 |
> |
// generate the force file name |
| 208 |
> |
|
| 209 |
> |
strcpy( fileName, "EAM" ); |
| 210 |
> |
|
| 211 |
> |
if (strlen(the_variant) > 0) { |
| 212 |
> |
has_variant = 1; |
| 213 |
> |
strcpy( variant, the_variant); |
| 214 |
> |
strcat( fileName, "."); |
| 215 |
> |
strcat( fileName, variant ); |
| 216 |
> |
|
| 217 |
> |
sprintf( painCave.errMsg, |
| 218 |
> |
"Using %s variant of EAM force field.\n", |
| 219 |
> |
variant ); |
| 220 |
> |
painCave.severity = OOPSE_INFO; |
| 221 |
> |
painCave.isFatal = 0; |
| 222 |
> |
simError(); |
| 223 |
> |
} |
| 224 |
> |
strcat( fileName, ".frc"); |
| 225 |
> |
|
| 226 |
> |
//fprintf( stderr,"Trying to open %s\n", fileName ); |
| 227 |
|
|
| 228 |
|
// attempt to open the file in the current directory first. |
| 229 |
|
|
| 247 |
|
frcFile = fopen( fileName, "r" ); |
| 248 |
|
|
| 249 |
|
if( frcFile == NULL ){ |
| 250 |
< |
|
| 250 |
> |
|
| 251 |
|
sprintf( painCave.errMsg, |
| 252 |
< |
"Error opening the force field parameter file: %s\n" |
| 253 |
< |
"Have you tried setting the FORCE_PARAM_PATH environment " |
| 254 |
< |
"vairable?\n", |
| 252 |
> |
"Error opening the force field parameter file:\n" |
| 253 |
> |
"\t%s\n" |
| 254 |
> |
"\tHave you tried setting the FORCE_PARAM_PATH environment " |
| 255 |
> |
"variable?\n", |
| 256 |
|
fileName ); |
| 257 |
+ |
painCave.severity = OOPSE_ERROR; |
| 258 |
|
painCave.isFatal = 1; |
| 259 |
|
simError(); |
| 260 |
|
} |
| 261 |
|
} |
| 262 |
+ |
|
| 263 |
|
|
| 264 |
|
#ifdef IS_MPI |
| 265 |
|
} |
| 289 |
|
|
| 290 |
|
void EAM_FF::calcRcut( void ){ |
| 291 |
|
|
| 292 |
< |
#ifdef IS_MPI |
| 292 |
> |
#ifdef IS_MPI |
| 293 |
|
double tempEamRcut = eamRcut; |
| 294 |
|
MPI_Allreduce( &tempEamRcut, &eamRcut, 1, MPI_DOUBLE, MPI_MAX, |
| 295 |
|
MPI_COMM_WORLD); |
| 339 |
|
// read in the atom types. |
| 340 |
|
|
| 341 |
|
headAtomType = new LinkedAtomType; |
| 342 |
< |
|
| 342 |
> |
|
| 343 |
|
fastForward( "AtomTypes", "eam atom readParams" ); |
| 344 |
|
|
| 345 |
|
// we are now at the AtomTypes section. |
| 429 |
|
MPIcheckPoint(); |
| 430 |
|
|
| 431 |
|
headAtomType = new LinkedAtomType; |
| 432 |
< |
recieveFrcStruct( &info, mpiAtomStructType ); |
| 432 |
> |
receiveFrcStruct( &info, mpiAtomStructType ); |
| 433 |
|
|
| 434 |
|
while( !info.last ){ |
| 435 |
|
|
| 455 |
|
|
| 456 |
|
MPIcheckPoint(); |
| 457 |
|
|
| 458 |
< |
recieveFrcStruct( &info, mpiAtomStructType ); |
| 458 |
> |
receiveFrcStruct( &info, mpiAtomStructType ); |
| 459 |
|
|
| 460 |
|
|
| 461 |
|
} |
| 570 |
|
|
| 571 |
|
the_atoms[i]->setMass( currentAtomType->mass ); |
| 572 |
|
the_atoms[i]->setIdent( currentAtomType->ident ); |
| 551 |
– |
the_atoms[i]->setEAM(); |
| 552 |
– |
the_atoms[i]->setEamRcut( currentAtomType->eam_rcut); |
| 573 |
|
|
| 574 |
|
if (eamRcut < currentAtomType->eam_rcut) eamRcut = currentAtomType->eam_rcut; |
| 575 |
< |
|
| 575 |
> |
|
| 576 |
|
} |
| 577 |
|
} |
| 578 |
|
|
| 749 |
|
sprintf( painCave.errMsg, |
| 750 |
|
"Error opening the EAM force parameter file: %s\n" |
| 751 |
|
"Have you tried setting the FORCE_PARAM_PATH environment " |
| 752 |
< |
"vairable?\n", |
| 752 |
> |
"variable?\n", |
| 753 |
|
eamPotFile ); |
| 754 |
|
painCave.isFatal = 1; |
| 755 |
|
simError(); |