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 572 by mmeineke, Wed Jul 2 21:26:55 2003 UTC vs.
Revision 604 by gezelter, Tue Jul 15 03:08:00 2003 UTC

# Line 14 | Line 14
14  
15   // some defines for ensemble and Forcefield  cases
16  
17 < #define NVE_ENS 0
18 < #define NVT_ENS 1
19 < #define NPT_ENS 2
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  
# Line 112 | Line 116 | void SimSetup::createSim( void ){
116  
117    if( !strcasecmp( ensemble, "NVE" ))      ensembleCase = NVE_ENS;
118    else if( !strcasecmp( ensemble, "NVT" )) ensembleCase = NVT_ENS;
119 <  else if( !strcasecmp( ensemble, "NPT" )) ensembleCase = NPT_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, "
# Line 776 | Line 784 | void SimSetup::createSim( void ){
784    // make the integrator
785    
786    
787 <  NVT* myNVT = NULL;
787 >  NVT*  myNVT = NULL;
788 >  NPTi* myNPTi = NULL;
789 >  NPTf* myNPTf = NULL;
790 >  NPTim* myNPTim = NULL;
791 >
792    switch( ensembleCase ){
793  
794    case NVE_ENS:
# Line 789 | Line 801 | void SimSetup::createSim( void ){
801  
802      if (the_globals->haveTauThermostat())
803        myNVT->setTauThermostat(the_globals->getTauThermostat());
804 < //     else if (the_globals->haveQmass())
793 < //       myNVT->setQmass(the_globals->getQmass());
804 >
805      else {
806        sprintf( painCave.errMsg,
807                 "SimSetup error: If you use the NVT\n"
808 <               "    ensemble, you must set either tauThermostat or qMass.\n"
798 <               "    Neither of these was found in the BASS file.\n");
808 >               "    ensemble, you must set tauThermostat.\n");
809        painCave.isFatal = 1;
810        simError();
811      }
812      break;
813  
814 +  case NPTi_ENS:
815 +    myNPTi = new NPTi( simnfo, the_ff );
816 +    myNPTi->setTargetTemp( the_globals->getTargetTemp());
817 +
818 +    if (the_globals->haveTargetPressure())
819 +      myNPTi->setTargetPressure(the_globals->getTargetPressure());
820 +    else {
821 +      sprintf( painCave.errMsg,
822 +               "SimSetup error: If you use a constant pressure\n"
823 +               "    ensemble, you must set targetPressure in the BASS file.\n");
824 +      painCave.isFatal = 1;
825 +      simError();
826 +    }
827 +    
828 +    if( the_globals->haveTauThermostat() )
829 +      myNPTi->setTauThermostat( the_globals->getTauThermostat() );
830 +    else{
831 +      sprintf( painCave.errMsg,
832 +               "SimSetup error: If you use an NPT\n"
833 +               "    ensemble, you must set tauThermostat.\n");
834 +      painCave.isFatal = 1;
835 +      simError();
836 +    }
837 +
838 +    if( the_globals->haveTauBarostat() )
839 +      myNPTi->setTauBarostat( the_globals->getTauBarostat() );
840 +    else{
841 +      sprintf( painCave.errMsg,
842 +               "SimSetup error: If you use an NPT\n"
843 +               "    ensemble, you must set tauBarostat.\n");
844 +      painCave.isFatal = 1;
845 +      simError();
846 +    }
847 +    break;
848 +
849 +  case NPTf_ENS:
850 +    myNPTf = new NPTf( simnfo, the_ff );
851 +    myNPTf->setTargetTemp( the_globals->getTargetTemp());
852 +
853 +    if (the_globals->haveTargetPressure())
854 +      myNPTf->setTargetPressure(the_globals->getTargetPressure());
855 +    else {
856 +      sprintf( painCave.errMsg,
857 +               "SimSetup error: If you use a constant pressure\n"
858 +               "    ensemble, you must set targetPressure in the BASS file.\n");
859 +      painCave.isFatal = 1;
860 +      simError();
861 +    }    
862 +
863 +    if( the_globals->haveTauThermostat() )
864 +      myNPTf->setTauThermostat( the_globals->getTauThermostat() );
865 +    else{
866 +      sprintf( painCave.errMsg,
867 +               "SimSetup error: If you use an NPT\n"
868 +               "    ensemble, you must set tauThermostat.\n");
869 +      painCave.isFatal = 1;
870 +      simError();
871 +    }
872 +
873 +    if( the_globals->haveTauBarostat() )
874 +      myNPTf->setTauBarostat( the_globals->getTauBarostat() );
875 +    else{
876 +      sprintf( painCave.errMsg,
877 +               "SimSetup error: If you use an NPT\n"
878 +               "    ensemble, you must set tauBarostat.\n");
879 +      painCave.isFatal = 1;
880 +      simError();
881 +    }
882 +    break;
883 +    
884 +  case NPTim_ENS:
885 +    myNPTim = new NPTim( simnfo, the_ff );
886 +    myNPTim->setTargetTemp( the_globals->getTargetTemp());
887 +
888 +    if (the_globals->haveTargetPressure())
889 +      myNPTim->setTargetPressure(the_globals->getTargetPressure());
890 +    else {
891 +      sprintf( painCave.errMsg,
892 +               "SimSetup error: If you use a constant pressure\n"
893 +               "    ensemble, you must set targetPressure in the BASS file.\n");
894 +      painCave.isFatal = 1;
895 +      simError();
896 +    }
897 +    
898 +    if( the_globals->haveTauThermostat() )
899 +      myNPTim->setTauThermostat( the_globals->getTauThermostat() );
900 +    else{
901 +      sprintf( painCave.errMsg,
902 +               "SimSetup error: If you use an NPT\n"
903 +               "    ensemble, you must set tauThermostat.\n");
904 +      painCave.isFatal = 1;
905 +      simError();
906 +    }
907 +
908 +    if( the_globals->haveTauBarostat() )
909 +      myNPTim->setTauBarostat( the_globals->getTauBarostat() );
910 +    else{
911 +      sprintf( painCave.errMsg,
912 +               "SimSetup error: If you use an NPT\n"
913 +               "    ensemble, you must set tauBarostat.\n");
914 +      painCave.isFatal = 1;
915 +      simError();
916 +    }
917 +    break;
918 +
919 +    
920 +
921    default:
922      sprintf( painCave.errMsg,
923               "SimSetup Error. Unrecognized ensemble in case statement.\n");

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines