ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/branches/new_design/OOPSE-4/src/UseTheForce/LJFF.cpp
(Generate patch)

Comparing:
trunk/OOPSE-4/src/UseTheForce/LJFF.cpp (file contents), Revision 1628 by gezelter, Thu Oct 21 20:15:31 2004 UTC vs.
branches/new_design/OOPSE-4/src/UseTheForce/LJFF.cpp (file contents), Revision 1683, Thu Oct 28 22:34:02 2004 UTC

# Line 12 | Line 12 | using namespace std;
12   #include "UseTheForce/ForceFields.hpp"
13   #include "primitives/SRI.hpp"
14   #include "utils/simError.h"
15 < #include "UseTheForce/DarkSide/atype_interface.h"
15 > #include "types/AtomType.hpp"
16 > #include "UseTheForce/DarkSide/lj_interface.h"
17  
17 //#include "UseTheForce/fortranWrappers.hpp"
18  
19   #ifdef IS_MPI
20   #include "UseTheForce/mpiForceField.h"
# Line 118 | Line 118 | LJFF::LJFF(){
118   //****************************************************************
119  
120  
121 < LJFF::LJFF(){
121 > LJFF::LJFF() : ForceFields() {
122  
123 <  char fileName[200];
124 <  char* ffPath_env = "FORCE_PARAM_PATH";
125 <  char* ffPath;
126 <  char temp[200];
127 <
123 >  string fileName;
124 >  string tempString;
125 >    
126    headAtomType = NULL;
127    currentAtomType = NULL;
128  
# Line 160 | Line 158 | LJFF::LJFF(){
158    if( worldRank == 0 ){
159   #endif
160      
161 <    // generate the force file name
162 <    
163 <    strcpy( fileName, "LJFF.frc" );
161 >    // generate the force file name  
162 >
163 >    fileName = "LJFF.frc";
164      // fprintf( stderr,"Trying to open %s\n", fileName );
165      
166      // attempt to open the file in the current directory first.
167      
168 <    frcFile = fopen( fileName, "r" );
168 >    frcFile = fopen( fileName.c_str(), "r" );
169      
170      if( frcFile == NULL ){
171        
172        // next see if the force path enviorment variable is set
173 +
174 +      tempString = ffPath + "/" + fileName;
175 +      fileName = tempString;
176        
177 <      ffPath = getenv( ffPath_env );
177 <      if( ffPath == NULL ) {
178 <        STR_DEFINE(ffPath, FRC_PATH );
179 <      }
180 <      
181 <      
182 <      strcpy( temp, ffPath );
183 <      strcat( temp, "/" );
184 <      strcat( temp, fileName );
185 <      strcpy( fileName, temp );
177 >      frcFile = fopen( fileName.c_str(), "r" );
178        
187      frcFile = fopen( fileName, "r" );
188      
179        if( frcFile == NULL ){
180  
181          sprintf( painCave.errMsg,
# Line 193 | Line 183 | LJFF::LJFF(){
183                   "\t%s\n"
184                   "\tHave you tried setting the FORCE_PARAM_PATH environment "
185                   "variable?\n",
186 <                 fileName );
186 >                 fileName.c_str() );
187          painCave.severity = OOPSE_ERROR;
188          painCave.isFatal = 1;
189          simError();
# Line 252 | Line 242 | void LJFF::readParams( void ){
242                   // if things go well, last will be set to 0
243  
244    int identNum;
245 <  
245 >  int isError;
246  
247    bigSigma = 0.0;
248   #ifdef IS_MPI
# Line 348 | Line 338 | void LJFF::readParams( void ){
338      }
339    }
340   #endif // is_mpi
351
352  // call new A_types in fortran
341    
342 <  int isError;
342 >  currentAtomType = headAtomType;
343 >  while( currentAtomType != NULL ){
344 >    
345 >    if( currentAtomType->name[0] != '\0' ){
346  
347 <  // dummy variables
348 <  int isLJ = 1;
349 <  int isDipole = 0;
350 <  int isSSD = 0;
351 <  int isGB = 0;
352 <  int isEAM = 0;
353 <  int isCharge = 0;
354 <  double charge = 0.0;
355 <  double dipole = 0.0;
356 <  
347 >      AtomType* at = new AtomType();
348 >      at->setIdent(currentAtomType->ident);
349 >      printf ("currentName = %s\n", currentAtomType->name);
350 >      at->setName(currentAtomType->name);    
351 >      printf("Did setName\n");
352 >      at->setLennardJones();
353 >      printf("Did setLennardJones\n");
354 >      at->complete();
355 >      printf("Did complete\n");
356 >      
357 >    }
358 >    currentAtomType = currentAtomType->next;
359 >  }
360 >
361    currentAtomType = headAtomType;
362    while( currentAtomType != NULL ){
363      
364      if( currentAtomType->name[0] != '\0' ){
365        isError = 0;
366 <      makeAtype( &(currentAtomType->ident),
367 <                 &isLJ,
373 <                 &isSSD,
374 <                 &isDipole,
375 <                 &isGB,
376 <                 &isEAM,
377 <                 &isCharge,
378 <                 &(currentAtomType->epslon),
379 <                 &(currentAtomType->sigma),
380 <                 &charge,
381 <                 &dipole,
382 <                 &isError );
366 >      newLJtype( &(currentAtomType->ident), &(currentAtomType->sigma),
367 >                 &(currentAtomType->epslon), &isError);
368        if( isError ){
369 <        sprintf( painCave.errMsg,
370 <                 "Error initializing the \"%s\" atom type in fortran\n",
371 <                 currentAtomType->name );
372 <        painCave.isFatal = 1;
373 <        simError();
369 >        sprintf( painCave.errMsg,
370 >                 "Error initializing the \"%s\" LJ type in fortran\n",
371 >                 currentAtomType->name );
372 >        painCave.isFatal = 1;
373 >        simError();
374        }
375      }
376 +    
377      currentAtomType = currentAtomType->next;
378    }
379 <      
380 <  entry_plug->useLJ = 1;
379 >  
380 >  entry_plug->useLennardJones = 1;
381  
382   #ifdef IS_MPI
383    sprintf( checkPointMsg,
# Line 401 | Line 387 | double LJFF::getAtomTypeMass (char* atomType) {
387  
388   }
389  
404 double LJFF::getAtomTypeMass (char* atomType) {
405
406  currentAtomType = headAtomType->find( atomType );
407  if( currentAtomType == NULL ){
408    sprintf( painCave.errMsg,
409            "AtomType error, %s not found in force file.\n",
410             atomType );
411    painCave.isFatal = 1;
412    simError();
413  }
414
415  return currentAtomType->mass;
416 }
417
390   void LJFF::initializeAtoms( int nAtoms, Atom** the_atoms ){
391    
392    int i;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines