ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/DUFF.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/DUFF.cpp (file contents):
Revision 635 by gezelter, Thu Jul 17 20:32:24 2003 UTC vs.
Revision 976 by chrisfen, Thu Jan 22 17:34:20 2004 UTC

# Line 1 | Line 1
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;
# Line 32 | Line 32 | namespace DUFF_NS {  // restrict the access of the fol
32      double mass;
33      double epslon;
34      double sigma;
35 +    double charge;
36      double dipole;
37      double w0;
38      double v0;
# Line 41 | Line 42 | namespace DUFF_NS {  // restrict the access of the fol
42      double rlp;
43      double rup;
44      int isSSD;
45 +    int isCharge;
46      int isDipole;
47      int ident;
48      int last;      //  0  -> default
# Line 454 | Line 456 | DUFF::DUFF(){
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;
# Line 476 | Line 477 | DUFF::DUFF(){
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,12,5};  // block counts
481    MPI_Aint atomDspls[3];           // displacements
482    MPI_Datatype atomMbrTypes[3];    // member mpi types
483  
# Line 658 | Line 659 | void DUFF::readParams( void ){
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;
# Line 735 | Line 731 | void DUFF::readParams( void ){
731      while( currentAtomType != NULL ){
732        currentAtomType->duplicate( atomInfo );
733  
738
739
734        sendFrcStruct( &atomInfo, mpiAtomStructType );
735  
736        sprintf( checkPointMsg,
# Line 754 | Line 748 | void DUFF::readParams( void ){
748    else{
749      
750      // listen for node 0 to send out the force params
751 <    
751 >
752      MPIcheckPoint();
753  
754      headAtomType = new LinkedAtomType;
755 <    recieveFrcStruct( &atomInfo, mpiAtomStructType );
755 >    receiveFrcStruct( &atomInfo, mpiAtomStructType );
756      
757      while( !atomInfo.last ){
758  
765
766
759        headAtomType->add( atomInfo );
760        
761        MPIcheckPoint();
762  
763 <      recieveFrcStruct( &atomInfo, mpiAtomStructType );
763 >      receiveFrcStruct( &atomInfo, mpiAtomStructType );
764      }
765    }
766  
# Line 785 | Line 777 | void DUFF::readParams( void ){
777    int isGB = 0;
778    int isLJ = 1;
779    int isEAM =0;
780 <  double GB_dummy = 0.0;
781 <  
782 <  
780 >  int isCharge = 0;
781 >  double charge=0.0;
782 >    
783    currentAtomType = headAtomType->next;;
784    while( currentAtomType != NULL ){
785      
786 <    if(currentAtomType->isDipole) entry_plug->useDipole = 1;
786 >    if(currentAtomType->isDipole) entry_plug->useDipoles = 1;
787      if(currentAtomType->isSSD) {
788        entry_plug->useSticky = 1;
789        set_sticky_params( &(currentAtomType->w0), &(currentAtomType->v0),
# Line 808 | Line 800 | void DUFF::readParams( void ){
800                   &(currentAtomType->isDipole),
801                   &isGB,
802                   &isEAM,
803 +                 &isCharge,
804                   &(currentAtomType->epslon),
805                   &(currentAtomType->sigma),
806 +                 &charge,
807                   &(currentAtomType->dipole),
808                   &isError );
809        if( isError ){
# Line 900 | Line 894 | void DUFF::readParams( void ){
894      MPIcheckPoint();
895  
896      headBondType = new LinkedBondType;
897 <    recieveFrcStruct( &bondInfo, mpiBondStructType );
897 >    receiveFrcStruct( &bondInfo, mpiBondStructType );
898      while( !bondInfo.last ){
899  
900        headBondType->add( bondInfo );
901 <      recieveFrcStruct( &bondInfo, mpiBondStructType );
901 >      receiveFrcStruct( &bondInfo, mpiBondStructType );
902      }
903    }
904  
# Line 983 | Line 977 | void DUFF::readParams( void ){
977      MPIcheckPoint();
978  
979      headBendType = new LinkedBendType;
980 <    recieveFrcStruct( &bendInfo, mpiBendStructType );
980 >    receiveFrcStruct( &bendInfo, mpiBendStructType );
981      while( !bendInfo.last ){
982  
983        headBendType->add( bendInfo );
984 <      recieveFrcStruct( &bendInfo, mpiBendStructType );
984 >      receiveFrcStruct( &bendInfo, mpiBendStructType );
985      }
986    }
987  
# Line 1068 | Line 1062 | void DUFF::readParams( void ){
1062      MPIcheckPoint();
1063  
1064      headTorsionType = new LinkedTorsionType;
1065 <    recieveFrcStruct( &torsionInfo, mpiTorsionStructType );
1065 >    receiveFrcStruct( &torsionInfo, mpiTorsionStructType );
1066      while( !torsionInfo.last ){
1067  
1068        headTorsionType->add( torsionInfo );
1069 <      recieveFrcStruct( &torsionInfo, mpiTorsionStructType );
1069 >      receiveFrcStruct( &torsionInfo, mpiTorsionStructType );
1070      }
1071    }
1072  
# Line 1310 | Line 1304 | void DUFF::initializeBends( int nBends, Bend** bendArr
1304          }
1305          
1306          gBend = new GhostBend( *the_atoms[a],
1307 <                               *the_atoms[b] );                        
1307 >                               *the_atoms[b]);
1308 >                                                                      
1309          gBend->setConstants( currentBendType->k1,
1310                               currentBendType->k2,
1311                               currentBendType->k3,
# Line 1326 | Line 1321 | void DUFF::initializeBends( int nBends, Bend** bendArr
1321                               currentBendType->k3,
1322                               currentBendType->t0 );
1323          bendArray[i] = qBend;
1324 <      }
1324 >      }      
1325      }
1326    }
1327   }
# Line 1610 | Line 1605 | int DUFF_NS::parseBond( char *lineBuffer, int lineNum,
1605        }
1606        
1607        info.d0 = atof( the_token );
1608 +      
1609 +      info.k0=0.0;
1610      }
1611      else if( !strcmp( bondType, "harmonic" ) ){
1612        info.type = HARMONIC_BOND;
# Line 1636 | Line 1633 | int DUFF_NS::parseBond( char *lineBuffer, int lineNum,
1633      else{
1634        sprintf( painCave.errMsg,
1635                 "Unknown DUFF bond type \"%s\" at line %d\n",
1636 <               info.type,
1636 >               bondType,
1637                 lineNum );
1638        painCave.isFatal = 1;
1639        simError();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines