1 |
< |
#include <cstdlib> |
2 |
< |
#include <cstdio> |
3 |
< |
#include <cstring> |
1 |
> |
#include <stdlib.h> |
2 |
> |
#include <stdio.h> |
3 |
> |
#include <string.h> |
4 |
|
|
5 |
|
#include <iostream> |
6 |
|
using namespace std; |
32 |
|
double mass; |
33 |
|
double epslon; |
34 |
|
double sigma; |
35 |
+ |
double charge; |
36 |
|
double dipole; |
37 |
|
double w0; |
38 |
|
double v0; |
42 |
|
double rlp; |
43 |
|
double rup; |
44 |
|
int isSSD; |
45 |
+ |
int isCharge; |
46 |
|
int isDipole; |
47 |
|
int ident; |
48 |
|
int last; // 0 -> default |
456 |
|
char* ffPath_env = "FORCE_PARAM_PATH"; |
457 |
|
char* ffPath; |
458 |
|
char temp[200]; |
457 |
– |
char errMsg[1000]; |
459 |
|
|
460 |
|
headAtomType = NULL; |
461 |
|
currentAtomType = NULL; |
477 |
|
// Init the atomStruct mpi type |
478 |
|
|
479 |
|
atomStruct atomProto; // mpiPrototype |
480 |
< |
int atomBC[3] = {15,6,4}; // block counts |
480 |
> |
int atomBC[3] = {15,11,4}; // block counts |
481 |
|
MPI_Aint atomDspls[3]; // displacements |
482 |
|
MPI_Datatype atomMbrTypes[3]; // member mpi types |
483 |
|
|
659 |
|
|
660 |
|
void DUFF::readParams( void ){ |
661 |
|
|
661 |
– |
int i, a, b, c, d; |
662 |
|
int identNum; |
663 |
– |
char* atomA; |
664 |
– |
char* atomB; |
665 |
– |
char* atomC; |
666 |
– |
char* atomD; |
663 |
|
|
664 |
|
atomStruct atomInfo; |
665 |
|
bondStruct bondInfo; |
781 |
|
int isGB = 0; |
782 |
|
int isLJ = 1; |
783 |
|
int isEAM =0; |
784 |
< |
double GB_dummy = 0.0; |
785 |
< |
|
786 |
< |
|
784 |
> |
int isCharge = 0; |
785 |
> |
double charge=0.0; |
786 |
> |
|
787 |
|
currentAtomType = headAtomType->next;; |
788 |
|
while( currentAtomType != NULL ){ |
789 |
|
|
790 |
< |
if(currentAtomType->isDipole) entry_plug->useDipole = 1; |
790 |
> |
if(currentAtomType->isDipole) entry_plug->useDipoles = 1; |
791 |
|
if(currentAtomType->isSSD) { |
792 |
|
entry_plug->useSticky = 1; |
793 |
|
set_sticky_params( &(currentAtomType->w0), &(currentAtomType->v0), |
804 |
|
&(currentAtomType->isDipole), |
805 |
|
&isGB, |
806 |
|
&isEAM, |
807 |
+ |
&isCharge, |
808 |
|
&(currentAtomType->epslon), |
809 |
|
&(currentAtomType->sigma), |
810 |
+ |
&charge, |
811 |
|
&(currentAtomType->dipole), |
812 |
|
&isError ); |
813 |
|
if( isError ){ |
1308 |
|
} |
1309 |
|
|
1310 |
|
gBend = new GhostBend( *the_atoms[a], |
1311 |
< |
*the_atoms[b] ); |
1311 |
> |
*the_atoms[b]); |
1312 |
> |
|
1313 |
|
gBend->setConstants( currentBendType->k1, |
1314 |
|
currentBendType->k2, |
1315 |
|
currentBendType->k3, |
1325 |
|
currentBendType->k3, |
1326 |
|
currentBendType->t0 ); |
1327 |
|
bendArray[i] = qBend; |
1328 |
< |
} |
1328 |
> |
} |
1329 |
|
} |
1330 |
|
} |
1331 |
|
} |
1637 |
|
else{ |
1638 |
|
sprintf( painCave.errMsg, |
1639 |
|
"Unknown DUFF bond type \"%s\" at line %d\n", |
1640 |
< |
info.type, |
1640 |
> |
bondType, |
1641 |
|
lineNum ); |
1642 |
|
painCave.isFatal = 1; |
1643 |
|
simError(); |