454 |
|
|
455 |
|
DUFF::DUFF(){ |
456 |
|
|
457 |
< |
char fileName[200]; |
458 |
< |
char* ffPath_env = "FORCE_PARAM_PATH"; |
459 |
< |
char* ffPath; |
460 |
< |
char temp[200]; |
457 |
> |
string fileName; |
458 |
> |
string tempString; |
459 |
|
|
460 |
|
headAtomType = NULL; |
461 |
|
currentAtomType = NULL; |
565 |
|
|
566 |
|
// generate the force file name |
567 |
|
|
568 |
< |
strcpy( fileName, "DUFF.frc" ); |
568 |
> |
fileName = "DUFF.frc"; |
569 |
|
// fprintf( stderr,"Trying to open %s\n", fileName ); |
570 |
|
|
571 |
|
// attempt to open the file in the current directory first. |
572 |
|
|
573 |
< |
frcFile = fopen( fileName, "r" ); |
573 |
> |
frcFile = fopen( fileName.c_str(), "r" ); |
574 |
|
|
575 |
|
if( frcFile == NULL ){ |
576 |
|
|
577 |
|
// next see if the force path enviorment variable is set |
578 |
< |
|
579 |
< |
ffPath = getenv( ffPath_env ); |
580 |
< |
if( ffPath == NULL ) { |
581 |
< |
STR_DEFINE(ffPath, FRC_PATH ); |
582 |
< |
} |
585 |
< |
|
586 |
< |
|
587 |
< |
strcpy( temp, ffPath ); |
588 |
< |
strcat( temp, "/" ); |
589 |
< |
strcat( temp, fileName ); |
590 |
< |
strcpy( fileName, temp ); |
591 |
< |
|
592 |
< |
frcFile = fopen( fileName, "r" ); |
578 |
> |
|
579 |
> |
tempString = ffPath + "/" + fileName; |
580 |
> |
fileName = tempString; |
581 |
> |
|
582 |
> |
frcFile = fopen( fileName.c_str(), "r" ); |
583 |
|
|
584 |
|
if( frcFile == NULL ){ |
585 |
|
|
588 |
|
"\t%s\n" |
589 |
|
"\tHave you tried setting the FORCE_PARAM_PATH environment " |
590 |
|
"variable?\n", |
591 |
< |
fileName ); |
591 |
> |
fileName.c_str() ); |
592 |
|
painCave.severity = OOPSE_ERROR; |
593 |
|
painCave.isFatal = 1; |
594 |
|
simError(); |
767 |
|
if( currentAtomType->name[0] != '\0' ){ |
768 |
|
|
769 |
|
if (currentAtomType->isSSD || currentAtomType->isDipole) |
770 |
< |
DirectionalAtomType* at = new DirectionalAtomType(); |
770 |
> |
at = new DirectionalAtomType(); |
771 |
|
else |
772 |
< |
AtomType* at = new AtomType(); |
772 |
> |
at = new AtomType(); |
773 |
|
|
774 |
|
if (currentAtomType->isSSD) { |
775 |
|
((DirectionalAtomType*)at)->setSticky(); |
786 |
– |
entry_plug->useSticky = 1; |
776 |
|
} |
777 |
|
|
778 |
|
if (currentAtomType->isDipole) { |
779 |
|
((DirectionalAtomType*)at)->setDipole(); |
791 |
– |
entry_plug->useDipoles = 1; |
780 |
|
} |
781 |
|
|
782 |
|
at->setIdent(currentAtomType->ident); |
1083 |
|
MPIcheckPoint(); |
1084 |
|
|
1085 |
|
#endif // is_mpi |
1098 |
– |
|
1099 |
– |
entry_plug->useLennardJones = 1; |
1086 |
|
} |
1087 |
|
|
1088 |
|
|
1141 |
|
|
1142 |
|
the_atoms[i]->setMass( currentAtomType->mass ); |
1143 |
|
the_atoms[i]->setIdent( currentAtomType->ident ); |
1144 |
+ |
|
1145 |
+ |
if (currentAtomType->isSSD) entry_plug->useSticky = 1; |
1146 |
+ |
if (currentAtomType->isDipole) entry_plug->useDipoles = 1; |
1147 |
+ |
// Fix this later. We'll set it a bunch of times. |
1148 |
+ |
entry_plug->useLennardJones = 1; |
1149 |
|
|
1150 |
+ |
|
1151 |
|
if( bigSigma < currentAtomType->sigma ) bigSigma = currentAtomType->sigma; |
1152 |
|
|
1153 |
|
if( currentAtomType->isDipole ){ |