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

Comparing trunk/OOPSE/libmdtools/SimSetup.cpp (file contents):
Revision 489 by mmeineke, Thu Apr 10 20:08:56 2003 UTC vs.
Revision 605 by gezelter, Tue Jul 15 03:27:24 2003 UTC

# Line 12 | Line 12 | SimSetup::SimSetup(){
12   #include "mpiSimulation.hpp"
13   #endif
14  
15 + // some defines for ensemble and Forcefield  cases
16 +
17 + #define NVE_ENS   0
18 + #define NVT_ENS   1
19 + #define NPTi_ENS  2
20 + #define NPTf_ENS  3
21 + #define NPTim_ENS 4
22 + #define NPTfm_ENS 5
23 +
24 +
25 + #define FF_DUFF 0
26 + #define FF_LJ   1
27 +
28 +
29   SimSetup::SimSetup(){
30    stamps = new MakeStamps();
31    globals = new Globals();
# Line 66 | Line 80 | void SimSetup::createSim( void ){
80  
81    MakeStamps *the_stamps;
82    Globals* the_globals;
83 <  ExtendedSystem* the_extendedsystem;
84 <  int i, j;
83 >  int i, j, k, globalAtomIndex;
84 >  
85 >  int ensembleCase;
86 >  int ffCase;
87 >  
88 >  ensembleCase = -1;
89 >  ffCase = -1;
90  
91    // get the stamps and globals;
92    the_stamps = stamps;
# Line 82 | Line 101 | void SimSetup::createSim( void ){
101    n_components = the_globals->getNComponents();
102    strcpy( force_field, the_globals->getForceField() );
103  
104 <  // get the ensemble and set up an extended system if we need it:
104 >  if( !strcasecmp( force_field, "DUFF" )) ffCase = FF_DUFF;
105 >  else if( !strcasecmp( force_field, "LJ" )) ffCase = FF_LJ;
106 >  else{
107 >    sprintf( painCave.errMsg,
108 >             "SimSetup Error. Unrecognized force field -> %s\n",
109 >             force_field );
110 >    painCave.isFatal = 1;
111 >    simError();
112 >  }
113 >
114 >  // get the ensemble:
115    strcpy( ensemble, the_globals->getEnsemble() );
87  if( !strcasecmp( ensemble, "NPT" ) ) {
88    the_extendedsystem = new ExtendedSystem( simnfo );
89    the_extendedsystem->setTargetTemp(the_globals->getTargetTemp());
90    if (the_globals->haveTargetPressure())
91      the_extendedsystem->setTargetPressure(the_globals->getTargetPressure());
92    else {
93      sprintf( painCave.errMsg,
94               "SimSetup error: If you use the constant pressure\n"
95               "    ensemble, you must set targetPressure.\n"
96               "    This was found in the BASS file.\n");
97      painCave.isFatal = 1;
98      simError();
99    }
116  
117 <    if (the_globals->haveTauThermostat())
118 <      the_extendedsystem->setTauThermostat(the_globals->getTauThermostat());
119 <    else if (the_globals->haveQmass())
120 <      the_extendedsystem->setQmass(the_globals->getQmass());
121 <    else {
122 <      sprintf( painCave.errMsg,
123 <               "SimSetup error: If you use one of the constant temperature\n"
124 <               "    ensembles, you must set either tauThermostat or qMass.\n"
109 <               "    Neither of these was found in the BASS file.\n");
110 <      painCave.isFatal = 1;
111 <      simError();
112 <    }
113 <
114 <    if (the_globals->haveTauBarostat())
115 <      the_extendedsystem->setTauBarostat(the_globals->getTauBarostat());
116 <    else {
117 <      sprintf( painCave.errMsg,
118 <               "SimSetup error: If you use the constant pressure\n"
119 <               "    ensemble, you must set tauBarostat.\n"
120 <               "    This was found in the BASS file.\n");
121 <      painCave.isFatal = 1;
122 <      simError();
123 <    }
124 <
125 <  } else if ( !strcasecmp( ensemble, "NVT") ) {
126 <    the_extendedsystem = new ExtendedSystem( simnfo );
127 <    the_extendedsystem->setTargetTemp(the_globals->getTargetTemp());
128 <
129 <    if (the_globals->haveTauThermostat())
130 <      the_extendedsystem->setTauThermostat(the_globals->getTauThermostat());
131 <    else if (the_globals->haveQmass())
132 <      the_extendedsystem->setQmass(the_globals->getQmass());
133 <    else {
134 <      sprintf( painCave.errMsg,
135 <               "SimSetup error: If you use one of the constant temperature\n"
136 <               "    ensembles, you must set either tauThermostat or qMass.\n"
137 <               "    Neither of these was found in the BASS file.\n");
138 <      painCave.isFatal = 1;
139 <      simError();
140 <    }
141 <
142 <  } else if ( !strcasecmp( ensemble, "NVE") ) {
143 <  } else {
117 >  if( !strcasecmp( ensemble, "NVE" ))      ensembleCase = NVE_ENS;
118 >  else if( !strcasecmp( ensemble, "NVT" )) ensembleCase = NVT_ENS;
119 >  else if( !strcasecmp( ensemble, "NPTi" ) || !strcasecmp( ensemble, "NPT") )
120 >    ensembleCase = NPTi_ENS;
121 >  else if( !strcasecmp( ensemble, "NPTf" )) ensembleCase = NPTf_ENS;
122 >  else if( !strcasecmp( ensemble, "NPTim" )) ensembleCase = NPTim_ENS;
123 >  else if( !strcasecmp( ensemble, "NPTfm" )) ensembleCase = NPTfm_ENS;
124 >  else{
125      sprintf( painCave.errMsg,
126               "SimSetup Warning. Unrecognized Ensemble -> %s, "
127               "reverting to NVE for this simulation.\n",
# Line 148 | Line 129 | void SimSetup::createSim( void ){
129      painCave.isFatal = 0;
130      simError();
131      strcpy( ensemble, "NVE" );
132 +    ensembleCase = NVE_ENS;
133    }  
134    strcpy( simnfo->ensemble, ensemble );
135  
136 +
137 + //   if( !strcasecmp( ensemble, "NPT" ) ) {
138 + //     the_extendedsystem = new ExtendedSystem( simnfo );
139 + //     the_extendedsystem->setTargetTemp(the_globals->getTargetTemp());
140 + //     if (the_globals->haveTargetPressure())
141 + //       the_extendedsystem->setTargetPressure(the_globals->getTargetPressure());
142 + //     else {
143 + //       sprintf( painCave.errMsg,
144 + //                "SimSetup error: If you use the constant pressure\n"
145 + //                "    ensemble, you must set targetPressure.\n"
146 + //                "    This was found in the BASS file.\n");
147 + //       painCave.isFatal = 1;
148 + //       simError();
149 + //     }
150 +
151 + //     if (the_globals->haveTauThermostat())
152 + //       the_extendedsystem->setTauThermostat(the_globals->getTauThermostat());
153 + //     else if (the_globals->haveQmass())
154 + //       the_extendedsystem->setQmass(the_globals->getQmass());
155 + //     else {
156 + //       sprintf( painCave.errMsg,
157 + //                "SimSetup error: If you use one of the constant temperature\n"
158 + //                "    ensembles, you must set either tauThermostat or qMass.\n"
159 + //                "    Neither of these was found in the BASS file.\n");
160 + //       painCave.isFatal = 1;
161 + //       simError();
162 + //     }
163 +
164 + //     if (the_globals->haveTauBarostat())
165 + //       the_extendedsystem->setTauBarostat(the_globals->getTauBarostat());
166 + //     else {
167 + //       sprintf( painCave.errMsg,
168 + //                "SimSetup error: If you use the constant pressure\n"
169 + //                "    ensemble, you must set tauBarostat.\n"
170 + //                "    This was found in the BASS file.\n");
171 + //       painCave.isFatal = 1;
172 + //       simError();
173 + //     }
174 +
175 + //   } else if ( !strcasecmp( ensemble, "NVT") ) {
176 + //     the_extendedsystem = new ExtendedSystem( simnfo );
177 + //     the_extendedsystem->setTargetTemp(the_globals->getTargetTemp());
178 +
179 + //     if (the_globals->haveTauThermostat())
180 + //       the_extendedsystem->setTauThermostat(the_globals->getTauThermostat());
181 + //     else if (the_globals->haveQmass())
182 + //       the_extendedsystem->setQmass(the_globals->getQmass());
183 + //     else {
184 + //       sprintf( painCave.errMsg,
185 + //                "SimSetup error: If you use one of the constant temperature\n"
186 + //                "    ensembles, you must set either tauThermostat or qMass.\n"
187 + //                "    Neither of these was found in the BASS file.\n");
188 + //       painCave.isFatal = 1;
189 + //       simError();
190 + //     }
191 +
192    strcpy( simnfo->mixingRule, the_globals->getMixingRule() );
193    simnfo->usePBC = the_globals->getPBC();
194            
195    int usesDipoles = 0;
196 <  if( !strcmp( force_field, "TraPPE_Ex" ) ){
197 <    the_ff = new TraPPE_ExFF();
196 >  switch( ffCase ){
197 >
198 >  case FF_DUFF:
199 >    the_ff = new DUFF();
200      usesDipoles = 1;
201 <  }
202 <  else if( !strcasecmp( force_field, "LJ" ) ) the_ff = new LJ_FF();
203 <  else{
201 >    break;
202 >
203 >  case FF_LJ:
204 >    the_ff = new LJFF();
205 >    break;
206 >
207 >  default:
208      sprintf( painCave.errMsg,
209 <             "SimSetup Error. Unrecognized force field -> %s\n",
166 <             force_field );
209 >             "SimSetup Error. Unrecognized force field in case statement.\n");
210      painCave.isFatal = 1;
211      simError();
212    }
# Line 173 | Line 216 | void SimSetup::createSim( void ){
216    MPIcheckPoint();
217   #endif // is_mpi
218  
176  
177
219    // get the components and calculate the tot_nMol and indvidual n_mol
220    the_components = the_globals->getComponents();
221    components_nmol = new int[n_components];
# Line 298 | Line 339 | void SimSetup::createSim( void ){
339    simnfo->n_torsions = tot_torsions;
340    simnfo->n_SRI = tot_SRI;
341    simnfo->n_mol = tot_nmol;
301
342    
343 +  simnfo->molMembershipArray = new int[tot_atoms];
344 +
345   #ifdef IS_MPI
346  
347    // divide the molecules among processors here.
348    
349    mpiSim = new mpiSimulation( simnfo );
350    
309  
310
351    globalIndex = mpiSim->divideLabor();
352  
353    // set up the local variables
# Line 324 | Line 364 | void SimSetup::createSim( void ){
364    local_bonds = 0;
365    local_bends = 0;
366    local_torsions = 0;
367 +  globalAtomIndex = 0;
368 +
369 +
370    for( i=0; i<n_components; i++ ){
371  
372      for( j=0; j<components_nmol[i]; j++ ){
# Line 336 | Line 379 | void SimSetup::createSim( void ){
379          local_torsions += comp_stamps[i]->getNTorsions();
380          localMol++;
381        }      
382 <      allMol++;
382 >      for (k = 0; k < comp_stamps[i]->getNAtoms(); k++) {
383 >        simnfo->molMembershipArray[globalAtomIndex] = allMol;
384 >        globalAtomIndex++;
385 >      }
386 >
387 >      allMol++;      
388      }
389    }
390    local_SRI = local_bonds + local_bends + local_torsions;
391    
344
392    simnfo->n_atoms = mpiSim->getMyNlocal();  
393    
394    if( local_atoms != simnfo->n_atoms ){
# Line 393 | Line 440 | void SimSetup::createSim( void ){
440   #else // is_mpi
441    
442    molIndex = 0;
443 +  globalAtomIndex = 0;
444    for(i=0; i<n_components; i++){
445      for(j=0; j<components_nmol[i]; j++ ){
446        the_molecules[molIndex].setStampID( i );
447        the_molecules[molIndex].setMyIndex( molIndex );
448        the_molecules[molIndex].setGlobalIndex( molIndex );
449 +      for (k = 0; k < comp_stamps[i]->getNAtoms(); k++) {
450 +        simnfo->molMembershipArray[globalAtomIndex] = molIndex;
451 +        globalAtomIndex++;
452 +      }
453        molIndex++;
454      }
455    }
# Line 435 | Line 487 | void SimSetup::createSim( void ){
487  
488    // get some of the tricky things that may still be in the globals
489  
490 <  
490 >  double boxVector[3];
491    if( the_globals->haveBox() ){
492 <    simnfo->box_x = the_globals->getBox();
493 <    simnfo->box_y = the_globals->getBox();
494 <    simnfo->box_z = the_globals->getBox();
492 >    boxVector[0] = the_globals->getBox();
493 >    boxVector[1] = the_globals->getBox();
494 >    boxVector[2] = the_globals->getBox();
495 >    
496 >    simnfo->setBox( boxVector );
497    }
498    else if( the_globals->haveDensity() ){
499  
500      double vol;
501      vol = (double)tot_nmol / the_globals->getDensity();
502 <    simnfo->box_x = pow( vol, ( 1.0 / 3.0 ) );
503 <    simnfo->box_y = simnfo->box_x;
504 <    simnfo->box_z = simnfo->box_x;
502 >     boxVector[0] = pow( vol, ( 1.0 / 3.0 ) );
503 >     boxVector[1] = boxVector[0];
504 >     boxVector[2] = boxVector[0];
505 >
506 >    simnfo->setBox( boxVector );
507    }
508    else{
509      if( !the_globals->haveBoxX() ){
# Line 456 | Line 512 | void SimSetup::createSim( void ){
512        painCave.isFatal = 1;
513        simError();
514      }
515 <    simnfo->box_x = the_globals->getBoxX();
515 >    boxVector[0] = the_globals->getBoxX();
516  
517      if( !the_globals->haveBoxY() ){
518        sprintf( painCave.errMsg,
# Line 464 | Line 520 | void SimSetup::createSim( void ){
520        painCave.isFatal = 1;
521        simError();
522      }
523 <    simnfo->box_y = the_globals->getBoxY();
523 >    boxVector[1] = the_globals->getBoxY();
524  
525      if( !the_globals->haveBoxZ() ){
526        sprintf( painCave.errMsg,
# Line 472 | Line 528 | void SimSetup::createSim( void ){
528        painCave.isFatal = 1;
529        simError();
530      }
531 <    simnfo->box_z = the_globals->getBoxZ();
531 >    boxVector[2] = the_globals->getBoxZ();
532 >
533 >    simnfo->setBox( boxVector );
534    }
535  
536   #ifdef IS_MPI
# Line 487 | Line 545 | void SimSetup::createSim( void ){
545  
546    makeMolecules();
547    simnfo->identArray = new int[simnfo->n_atoms];
490  simnfo->molMembershipArray = new int[simnfo->n_atoms];
548    for(i=0; i<simnfo->n_atoms; i++){
549      simnfo->identArray[i] = the_atoms[i]->getIdent();
550    }
494  for(i=0; i< simnfo->n_mol; i++) {
495    the_molecules[i].atomicRollCall(simnfo->molMembershipArray);
496  }
551    
552    if (the_globals->getUseRF() ) {
553      simnfo->useReactionField = 1;
# Line 506 | Line 560 | void SimSetup::createSim( void ){
560        painCave.isFatal = 0;
561        simError();
562        double smallest;
563 <      smallest = simnfo->box_x;
564 <      if (simnfo->box_y <= smallest) smallest = simnfo->box_y;
565 <      if (simnfo->box_z <= smallest) smallest = simnfo->box_z;
563 >      smallest = simnfo->boxLx;
564 >      if (simnfo->boxLy <= smallest) smallest = simnfo->boxLy;
565 >      if (simnfo->boxLz <= smallest) smallest = simnfo->boxLz;
566        simnfo->ecr = 0.5 * smallest;
567      } else {
568        simnfo->ecr        = the_globals->getECR();
# Line 546 | Line 600 | void SimSetup::createSim( void ){
600          painCave.isFatal = 0;
601          simError();
602          double smallest;
603 <        smallest = simnfo->box_x;
604 <        if (simnfo->box_y <= smallest) smallest = simnfo->box_y;
605 <        if (simnfo->box_z <= smallest) smallest = simnfo->box_z;
603 >        smallest = simnfo->boxLx;
604 >        if (simnfo->boxLy <= smallest) smallest = simnfo->boxLy;
605 >        if (simnfo->boxLz <= smallest) smallest = simnfo->boxLz;
606          simnfo->ecr = 0.5 * smallest;
607        } else {
608          simnfo->ecr        = the_globals->getECR();
# Line 727 | Line 781 | void SimSetup::createSim( void ){
781    if( the_globals->haveTempSet() ) simnfo->setTemp = the_globals->getTempSet();
782  
783  
784 < //   // make the longe range forces and the integrator
785 <
786 < //   new AllLong( simnfo );
784 >  // make the integrator
785 >  
786 >  
787 >  NVT*  myNVT = NULL;
788 >  NPTi* myNPTi = NULL;
789 >  NPTf* myNPTf = NULL;
790 >  NPTim* myNPTim = NULL;
791 >  NPTfm* myNPTfm = NULL;
792  
793 +  switch( ensembleCase ){
794  
795 <  if( !strcmp( force_field, "TraPPE_Ex" ) ){
796 <    new Symplectic(simnfo, the_ff, the_extendedsystem);
797 <  }
798 <  else if( !strcmp( force_field, "LJ" ) ){
799 <    new Verlet( *simnfo, the_ff, the_extendedsystem );
800 <  }
801 <  else {
802 <    std::cerr << "I'm a bug.\n";
803 <    fprintf( stderr, "Ima bug. stderr %s\n", force_field);
795 >  case NVE_ENS:
796 >    new NVE( simnfo, the_ff );
797 >    break;
798 >
799 >  case NVT_ENS:
800 >    myNVT = new NVT( simnfo, the_ff );
801 >    myNVT->setTargetTemp(the_globals->getTargetTemp());
802 >
803 >    if (the_globals->haveTauThermostat())
804 >      myNVT->setTauThermostat(the_globals->getTauThermostat());
805 >
806 >    else {
807 >      sprintf( painCave.errMsg,
808 >               "SimSetup error: If you use the NVT\n"
809 >               "    ensemble, you must set tauThermostat.\n");
810 >      painCave.isFatal = 1;
811 >      simError();
812 >    }
813 >    break;
814 >
815 >  case NPTi_ENS:
816 >    myNPTi = new NPTi( simnfo, the_ff );
817 >    myNPTi->setTargetTemp( the_globals->getTargetTemp());
818 >
819 >    if (the_globals->haveTargetPressure())
820 >      myNPTi->setTargetPressure(the_globals->getTargetPressure());
821 >    else {
822 >      sprintf( painCave.errMsg,
823 >               "SimSetup error: If you use a constant pressure\n"
824 >               "    ensemble, you must set targetPressure in the BASS file.\n");
825 >      painCave.isFatal = 1;
826 >      simError();
827 >    }
828 >    
829 >    if( the_globals->haveTauThermostat() )
830 >      myNPTi->setTauThermostat( the_globals->getTauThermostat() );
831 >    else{
832 >      sprintf( painCave.errMsg,
833 >               "SimSetup error: If you use an NPT\n"
834 >               "    ensemble, you must set tauThermostat.\n");
835 >      painCave.isFatal = 1;
836 >      simError();
837 >    }
838 >
839 >    if( the_globals->haveTauBarostat() )
840 >      myNPTi->setTauBarostat( the_globals->getTauBarostat() );
841 >    else{
842 >      sprintf( painCave.errMsg,
843 >               "SimSetup error: If you use an NPT\n"
844 >               "    ensemble, you must set tauBarostat.\n");
845 >      painCave.isFatal = 1;
846 >      simError();
847 >    }
848 >    break;
849 >
850 >  case NPTf_ENS:
851 >    myNPTf = new NPTf( simnfo, the_ff );
852 >    myNPTf->setTargetTemp( the_globals->getTargetTemp());
853 >
854 >    if (the_globals->haveTargetPressure())
855 >      myNPTf->setTargetPressure(the_globals->getTargetPressure());
856 >    else {
857 >      sprintf( painCave.errMsg,
858 >               "SimSetup error: If you use a constant pressure\n"
859 >               "    ensemble, you must set targetPressure in the BASS file.\n");
860 >      painCave.isFatal = 1;
861 >      simError();
862 >    }    
863 >
864 >    if( the_globals->haveTauThermostat() )
865 >      myNPTf->setTauThermostat( the_globals->getTauThermostat() );
866 >    else{
867 >      sprintf( painCave.errMsg,
868 >               "SimSetup error: If you use an NPT\n"
869 >               "    ensemble, you must set tauThermostat.\n");
870 >      painCave.isFatal = 1;
871 >      simError();
872 >    }
873 >
874 >    if( the_globals->haveTauBarostat() )
875 >      myNPTf->setTauBarostat( the_globals->getTauBarostat() );
876 >    else{
877 >      sprintf( painCave.errMsg,
878 >               "SimSetup error: If you use an NPT\n"
879 >               "    ensemble, you must set tauBarostat.\n");
880 >      painCave.isFatal = 1;
881 >      simError();
882 >    }
883 >    break;
884 >    
885 >  case NPTim_ENS:
886 >    myNPTim = new NPTim( simnfo, the_ff );
887 >    myNPTim->setTargetTemp( the_globals->getTargetTemp());
888 >
889 >    if (the_globals->haveTargetPressure())
890 >      myNPTim->setTargetPressure(the_globals->getTargetPressure());
891 >    else {
892 >      sprintf( painCave.errMsg,
893 >               "SimSetup error: If you use a constant pressure\n"
894 >               "    ensemble, you must set targetPressure in the BASS file.\n");
895 >      painCave.isFatal = 1;
896 >      simError();
897 >    }
898 >    
899 >    if( the_globals->haveTauThermostat() )
900 >      myNPTim->setTauThermostat( the_globals->getTauThermostat() );
901 >    else{
902 >      sprintf( painCave.errMsg,
903 >               "SimSetup error: If you use an NPT\n"
904 >               "    ensemble, you must set tauThermostat.\n");
905 >      painCave.isFatal = 1;
906 >      simError();
907 >    }
908 >
909 >    if( the_globals->haveTauBarostat() )
910 >      myNPTim->setTauBarostat( the_globals->getTauBarostat() );
911 >    else{
912 >      sprintf( painCave.errMsg,
913 >               "SimSetup error: If you use an NPT\n"
914 >               "    ensemble, you must set tauBarostat.\n");
915 >      painCave.isFatal = 1;
916 >      simError();
917 >    }
918 >    break;
919 >
920 >  case NPTfm_ENS:
921 >    myNPTfm = new NPTfm( simnfo, the_ff );
922 >    myNPTfm->setTargetTemp( the_globals->getTargetTemp());
923 >
924 >    if (the_globals->haveTargetPressure())
925 >      myNPTfm->setTargetPressure(the_globals->getTargetPressure());
926 >    else {
927 >      sprintf( painCave.errMsg,
928 >               "SimSetup error: If you use a constant pressure\n"
929 >               "    ensemble, you must set targetPressure in the BASS file.\n");
930 >      painCave.isFatal = 1;
931 >      simError();
932 >    }
933 >    
934 >    if( the_globals->haveTauThermostat() )
935 >      myNPTfm->setTauThermostat( the_globals->getTauThermostat() );
936 >    else{
937 >      sprintf( painCave.errMsg,
938 >               "SimSetup error: If you use an NPT\n"
939 >               "    ensemble, you must set tauThermostat.\n");
940 >      painCave.isFatal = 1;
941 >      simError();
942 >    }
943 >
944 >    if( the_globals->haveTauBarostat() )
945 >      myNPTfm->setTauBarostat( the_globals->getTauBarostat() );
946 >    else{
947 >      sprintf( painCave.errMsg,
948 >               "SimSetup error: If you use an NPT\n"
949 >               "    ensemble, you must set tauBarostat.\n");
950 >      painCave.isFatal = 1;
951 >      simError();
952 >    }
953 >    break;
954 >
955 >  default:
956 >    sprintf( painCave.errMsg,
957 >             "SimSetup Error. Unrecognized ensemble in case statement.\n");
958 >    painCave.isFatal = 1;
959 >    simError();
960    }
961 +
962 +
963   #ifdef IS_MPI
964    mpiSim->mpiRefresh();
965   #endif
# Line 1054 | Line 1272 | void SimSetup::initFromBass( void ){
1272      have_extra =1;
1273  
1274      n_cells = (int)temp3 - 1;
1275 <    cellx = simnfo->box_x / temp3;
1276 <    celly = simnfo->box_y / temp3;
1277 <    cellz = simnfo->box_z / temp3;
1275 >    cellx = simnfo->boxLx / temp3;
1276 >    celly = simnfo->boxLy / temp3;
1277 >    cellz = simnfo->boxLz / temp3;
1278      n_extra = tot_nmol - ( 4 * n_cells * n_cells * n_cells );
1279      temp1 = ((double)n_extra) / ( pow( temp3, 3.0 ) - pow( n_cells, 3.0 ) );
1280      n_per_extra = (int)ceil( temp1 );
# Line 1071 | Line 1289 | void SimSetup::initFromBass( void ){
1289    }
1290    else{
1291      n_cells = (int)temp3;
1292 <    cellx = simnfo->box_x / temp3;
1293 <    celly = simnfo->box_y / temp3;
1294 <    cellz = simnfo->box_z / temp3;
1292 >    cellx = simnfo->boxLx / temp3;
1293 >    celly = simnfo->boxLy / temp3;
1294 >    cellz = simnfo->boxLz / temp3;
1295    }
1296  
1297    current_mol = 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines