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

Comparing trunk/OOPSE/utils/nanoBuilder.cpp (file contents):
Revision 589 by chuckv, Thu Jul 10 19:53:50 2003 UTC vs.
Revision 598 by chuckv, Mon Jul 14 21:35:45 2003 UTC

# Line 14 | Line 14
14   #include "sysBuild.hpp"
15   #include "nanoBuilder.hpp"
16  
17 <
18 <
19 < nanoBuilder::nanoBuilder(int thisIsRandom, int thisHasVacancies,
20 <                         int thisLatticeType, double thisParticleRadius,
21 <                         double thisCoreRadius, double thisVacancyFraction,
22 <                         double thisVacancyRadius,
23 <                         double thisLatticeSpacing,
24 <                         double solute_X,
25 <                         int &hasError){
17 > nanoBuilder::nanoBuilder(int &hasError){
18    int Errors;
19    int foundCore,foundShell;
20    int i;
21 <
21 >  
22    //Zero variables
23    particleRadius = 0.0;
24    coreRadius = 0.0;
# Line 57 | Line 49 | nanoBuilder::nanoBuilder(int thisIsRandom, int thisHas
49  
50    hasError = 0;
51    Errors = 0;
52 +
53 +  //Initialize class members from bsInfo struct that sysbuilder provides.
54 +  isRandom        = bsInfo.isRandomParticle;
55 +  hasVacancies    = bsInfo.hasVacancies;
56 +  latticeType     = bsInfo.latticeType;
57 +  particleRadius  = bsInfo.particleRadius;
58 +  coreRadius      = bsInfo.coreRadius;
59 +  vacancyFraction = bsInfo.vacancyFraction;
60 +  latticeSpacing  = bsInfo.latticeSpacing;
61 +  soluteX         = bsInfo.soluteX; //Mole fraction for random particle.
62  
63  
62  isRandom        = thisIsRandom;
63  hasVacancies    = thisHasVacancies;
64  latticeType     = thisLatticeType;
65  particleRadius  = thisParticleRadius;
66  coreRadius      = thisCoreRadius;
67  vacancyFraction = thisVacancyFraction;
68  latticeSpacing  = thisLatticeSpacing;
69  soluteX = solute_X; //Mole fraction for random particle.
64  
65  
66  
73
74
67    for (i=0;bsInfo.nComponents;i++){
68      if( !strcmp( bsInfo.compStamps[i]->getID(),bsInfo.coreName )){
69        foundCore = 1;
# Line 200 | Line 192 | int nanoBuilder::buildNanoParticle( void ){
192    double *rz;
193    double pos[3];
194    double A[3][3];
195 <  double HmatI[9];
195 >  double HmatI[3][3];
196    
197    int nCellSites;
198    int iref;
# Line 212 | Line 204 | int nanoBuilder::buildNanoParticle( void ){
204    int nShellAtomCounter = 0;
205    int hasError;
206  
207 <  int i;
207 >  int i, j;
208  
209    int interfaceIndex = 0;
210    double dist;
# Line 223 | Line 215 | int nanoBuilder::buildNanoParticle( void ){
215    DumpWriter* writer;
216    SimInfo* simnfo;
217  
218 <  Lattice::Lattice *myLattice;
219 <  MoLocator::MoLocator *coreLocate;
220 <  MoLocator::MoLocator *shellLocate;
218 >  Lattice *myLattice;
219 >  MoLocator *coreLocate;
220 >  MoLocator *shellLocate;
221  
222  
223    Atom** atoms;
# Line 342 | Line 334 | int nanoBuilder::buildNanoParticle( void ){
334      if (! moleculeVector[i].isVacancy) {
335        orientationMunger( A );
336        if( moleculeVector[i].isCore){
337 <        nCoreAtomCounter =+ nCoreModelAtoms;
337 >        nCoreAtomCounter += nCoreModelAtoms;
338          coreLocate->placeMol(moleculeVector[i].pos,A,atoms,nShellAtomCounter);
339        }
340        else {
341 <        nShellAtomCounter =+ nShellModelAtoms;
341 >        nShellAtomCounter += nShellModelAtoms;
342          shellLocate->placeMol(moleculeVector[i].pos,A,atoms,nCoreAtomCounter);
343        }
344        shesActualSizetoMe++;
# Line 356 | Line 348 | int nanoBuilder::buildNanoParticle( void ){
348  
349    //      shellLocate.placeMol(pos, A, moleculeVector,shellAtomCount);
350  
351 <  for (i=0;i<9;i++) simnfo->Hmat[i] = 0;
352 <  simnfo->Hmat[0] = 1;
353 <  simnfo->Hmat[4] = 1;
362 <  simnfo->Hmat[8] = 1;
351 >  for (i=0;i<3;i++)
352 >    for (j=0; j<3; j++)
353 >      simnfo->Hmat[i][j] = 0.0;
354  
355 +  simnfo->Hmat[0][0] = 1.0;
356 +  simnfo->Hmat[1][1] = 1.0;
357 +  simnfo->Hmat[2][2] = 1.0;
358 +  
359    // set up the SimInfo object
360 +
361    simnfo = new SimInfo();
362    simnfo->n_atoms = nAtoms;
367
363    
364    sprintf( simnfo->sampleName, "%s.dump", bsInfo.outPrefix );
365    sprintf( simnfo->finalName, "%s.init", bsInfo.outPrefix );
# Line 394 | Line 389 | void nanoBuilder::buildWithCoreShell(double dist, doub
389      moleculeVector.push_back(myMol);
390      
391      if (dist <= coreRadius){
392 <      coreAtomCount =+ nCoreModelAtoms;
392 >      coreAtomCount += nCoreModelAtoms;
393        moleculeVector[moleculeCount].pos[0] = pos[0];
394        moleculeVector[moleculeCount].pos[1] = pos[1];
395        moleculeVector[moleculeCount].pos[2] = pos[2];
# Line 405 | Line 400 | void nanoBuilder::buildWithCoreShell(double dist, doub
400      }
401      // Place shell
402      else{
403 <      shellAtomCount =+ nShellModelAtoms;
403 >      shellAtomCount += nShellModelAtoms;
404        moleculeVector[moleculeCount].pos[0] = pos[0];
405        moleculeVector[moleculeCount].pos[1] = pos[1];
406        moleculeVector[moleculeCount].pos[2] = pos[2];
# Line 429 | Line 424 | void nanoBuilder::buildWithVacancies(double dist, doub
424      moleculeVector.push_back(myMol);
425      if (dist <= coreRadius){
426          
427 <      coreAtomCount =+ nCoreModelAtoms;
427 >      coreAtomCount += nCoreModelAtoms;
428        moleculeVector[moleculeCount].pos[0] = pos[0];
429        moleculeVector[moleculeCount].pos[1] = pos[1];
430        moleculeVector[moleculeCount].pos[2] = pos[2];
# Line 445 | Line 440 | void nanoBuilder::buildWithVacancies(double dist, doub
440        }
441      } else {
442        // Place shell
443 <      shellAtomCount =+ nShellModelAtoms;
443 >      shellAtomCount += nShellModelAtoms;
444        moleculeVector[moleculeCount].pos[0] = pos[0];
445        moleculeVector[moleculeCount].pos[1] = pos[1];
446        moleculeVector[moleculeCount].pos[2] = pos[2];
# Line 473 | Line 468 | void nanoBuilder::buildNmolParticle(double dist, doubl
468      moleculeVector.push_back(myMol);
469      if (nCoreMolCounter < nCoreMolecules){
470        
471 <      coreAtomCount =+ nCoreModelAtoms;
471 >      coreAtomCount += nCoreModelAtoms;
472        moleculeVector[moleculeCount].pos[0] = pos[0];
473        moleculeVector[moleculeCount].pos[1] = pos[1];
474        moleculeVector[moleculeCount].pos[2] = pos[2];
# Line 483 | Line 478 | void nanoBuilder::buildNmolParticle(double dist, doubl
478        
479        
480      } else {
481 <      shellAtomCount =+ nShellModelAtoms;
481 >      shellAtomCount += nShellModelAtoms;
482        moleculeVector[moleculeCount].pos[0] = pos[0];
483        moleculeVector[moleculeCount].pos[1] = pos[1];
484        moleculeVector[moleculeCount].pos[2] = pos[2];

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines