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 631 by chuckv, Thu Jul 17 19:25:51 2003 UTC vs.
Revision 829 by gezelter, Tue Oct 28 16:03:37 2003 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 35 | Line 35 | namespace DUFF_NS {  // restrict the access of the fol
35      double dipole;
36      double w0;
37      double v0;
38 +    double v0p;
39 +    double rl;
40 +    double ru;
41 +    double rlp;
42 +    double rup;
43      int isSSD;
44      int isDipole;
45      int ident;
# Line 138 | Line 143 | namespace DUFF_NS {  // restrict the access of the fol
143          next->dipole   = info.dipole;
144          next->w0       = info.w0;
145          next->v0       = info.v0;
146 +        next->v0p      = info.v0p;
147 +        next->rl       = info.rl;
148 +        next->ru       = info.ru;
149 +        next->rlp      = info.rlp;
150 +        next->rup      = info.rup;
151          next->ident    = info.ident;
152        }
153      }
# Line 154 | Line 164 | namespace DUFF_NS {  // restrict the access of the fol
164        info.dipole   = dipole;
165        info.w0       = w0;
166        info.v0       = v0;
167 +      info.v0p      = v0p;
168 +      info.rl       = rl;
169 +      info.ru       = ru;
170 +      info.rlp      = rlp;
171 +      info.rup      = rup;
172        info.ident    = ident;
173        info.last     = 0;
174      }
# Line 170 | Line 185 | namespace DUFF_NS {  // restrict the access of the fol
185      double dipole;
186      double w0;
187      double v0;
188 +    double v0p;
189 +    double rl;
190 +    double ru;
191 +    double rlp;
192 +    double rup;
193      int ident;
194      LinkedAtomType* next;
195    };
# Line 434 | Line 454 | DUFF::DUFF(){
454    char* ffPath_env = "FORCE_PARAM_PATH";
455    char* ffPath;
456    char temp[200];
437  char errMsg[1000];
457  
458    headAtomType       = NULL;
459    currentAtomType    = NULL;
# Line 456 | Line 475 | DUFF::DUFF(){
475    // Init the atomStruct mpi type
476  
477    atomStruct atomProto; // mpiPrototype
478 <  int atomBC[3] = {15,6,4};  // block counts
478 >  int atomBC[3] = {15,11,4};  // block counts
479    MPI_Aint atomDspls[3];           // displacements
480    MPI_Datatype atomMbrTypes[3];    // member mpi types
481  
# Line 638 | Line 657 | void DUFF::readParams( void ){
657  
658   void DUFF::readParams( void ){
659  
641  int i, a, b, c, d;
660    int identNum;
643  char* atomA;
644  char* atomB;
645  char* atomC;
646  char* atomD;
661    
662    atomStruct atomInfo;
663    bondStruct bondInfo;
# Line 765 | Line 779 | void DUFF::readParams( void ){
779    int isGB = 0;
780    int isLJ = 1;
781    int isEAM =0;
782 <  double GB_dummy = 0.0;
769 <  
770 <  
782 >    
783    currentAtomType = headAtomType->next;;
784    while( currentAtomType != NULL ){
785      
786      if(currentAtomType->isDipole) entry_plug->useDipole = 1;
787      if(currentAtomType->isSSD) {
788        entry_plug->useSticky = 1;
789 <      set_sticky_params( &(currentAtomType->w0), &(currentAtomType->v0));
789 >      set_sticky_params( &(currentAtomType->w0), &(currentAtomType->v0),
790 >                         &(currentAtomType->v0p),
791 >                         &(currentAtomType->rl), &(currentAtomType->ru),
792 >                         &(currentAtomType->rlp), &(currentAtomType->rup));
793      }
794  
795      if( currentAtomType->name[0] != '\0' ){
# Line 1287 | Line 1302 | void DUFF::initializeBends( int nBends, Bend** bendArr
1302          }
1303          
1304          gBend = new GhostBend( *the_atoms[a],
1305 <                               *the_atoms[b] );                        
1305 >                               *the_atoms[b]);
1306 >                                                                      
1307          gBend->setConstants( currentBendType->k1,
1308                               currentBendType->k2,
1309                               currentBendType->k3,
# Line 1303 | Line 1319 | void DUFF::initializeBends( int nBends, Bend** bendArr
1319                               currentBendType->k3,
1320                               currentBendType->t0 );
1321          bendArray[i] = qBend;
1322 <      }
1322 >      }      
1323      }
1324    }
1325   }
# Line 1496 | Line 1512 | int DUFF_NS::parseAtom( char *lineBuffer, int lineNum,
1512        }
1513        
1514        info.v0 = atof( the_token );
1515 +      if( ( the_token = strtok( NULL, " \n\t,;" ) ) == NULL ){
1516 +        sprintf( painCave.errMsg,
1517 +                 "Error parseing AtomTypes: line %d\n", lineNum );
1518 +        painCave.isFatal = 1;
1519 +        simError();
1520 +      }
1521 +      
1522 +      info.v0p = atof( the_token );
1523 +
1524 +      if( ( the_token = strtok( NULL, " \n\t,;" ) ) == NULL ){
1525 +        sprintf( painCave.errMsg,
1526 +                 "Error parseing AtomTypes: line %d\n", lineNum );
1527 +        painCave.isFatal = 1;
1528 +        simError();
1529 +      }
1530 +      
1531 +      info.rl = atof( the_token );
1532 +
1533 +      if( ( the_token = strtok( NULL, " \n\t,;" ) ) == NULL ){
1534 +        sprintf( painCave.errMsg,
1535 +                 "Error parseing AtomTypes: line %d\n", lineNum );
1536 +        painCave.isFatal = 1;
1537 +        simError();
1538 +      }
1539 +      
1540 +      info.ru = atof( the_token );
1541 +
1542 +      if( ( the_token = strtok( NULL, " \n\t,;" ) ) == NULL ){
1543 +        sprintf( painCave.errMsg,
1544 +                 "Error parseing AtomTypes: line %d\n", lineNum );
1545 +        painCave.isFatal = 1;
1546 +        simError();
1547 +      }
1548 +      
1549 +      info.rlp = atof( the_token );
1550 +
1551 +      if( ( the_token = strtok( NULL, " \n\t,;" ) ) == NULL ){
1552 +        sprintf( painCave.errMsg,
1553 +                 "Error parseing AtomTypes: line %d\n", lineNum );
1554 +        painCave.isFatal = 1;
1555 +        simError();
1556 +      }
1557 +      
1558 +      info.rup = atof( the_token );
1559      }
1560 <    else info.v0 = info.w0 = 0.0;
1560 >    else info.v0 = info.w0 = info.v0p = info.rl = info.ru = info.rlp = info.rup = 0.0;
1561  
1562      return 1;
1563    }
# Line 1543 | Line 1603 | int DUFF_NS::parseBond( char *lineBuffer, int lineNum,
1603        }
1604        
1605        info.d0 = atof( the_token );
1606 +      
1607 +      info.k0=0.0;
1608      }
1609      else if( !strcmp( bondType, "harmonic" ) ){
1610        info.type = HARMONIC_BOND;
# Line 1569 | Line 1631 | int DUFF_NS::parseBond( char *lineBuffer, int lineNum,
1631      else{
1632        sprintf( painCave.errMsg,
1633                 "Unknown DUFF bond type \"%s\" at line %d\n",
1634 <               info.type,
1634 >               bondType,
1635                 lineNum );
1636        painCave.isFatal = 1;
1637        simError();

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines