Changeset 14c57a for src/Thermostats


Ignore:
Timestamp:
Aug 25, 2010, 12:04:11 PM (15 years ago)
Author:
Tillmann Crueger <crueger@…>
Branches:
Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
Children:
51c3e4
Parents:
8d1dd4
Message:

Made all parts of the programm use the new thermostat structure

Location:
src/Thermostats
Files:
14 edited

Legend:

Unmodified
Added
Removed
  • src/Thermostats/Berendsen.cpp

    r8d1dd4 r14c57a  
    2525{}
    2626
    27 ThermostatTraits<class Berendsen>::ThermostatTraits() :
    28   name("Berendsen")
    29 {}
     27const char *ThermostatTraits<Berendsen>::name = "Berendsen";
    3028
    31 Thermostat *ThermostatTraits<class Berendsen>::make(class ConfigFileBuffer * const fb){
     29std::string ThermostatTraits<Berendsen>::getName(){
     30  return ThermostatTraits<Berendsen>::name;
     31}
     32
     33Thermostat *ThermostatTraits<Berendsen>::make(class ConfigFileBuffer * const fb){
    3234  double TempFrequency;
    3335  const int verbose = 0;
    3436  ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, double_type, &TempFrequency, 1, critical); // read \tau_T
    35   return new class Berendsen(TempFrequency);
     37  return new Berendsen(TempFrequency);
    3638}
    3739
     
    5153double Berendsen::doScaleAtoms(unsigned int step,double ActualTemp,ForwardIterator begin, ForwardIterator end){
    5254  DoLog(2) && (Log() << Verbose(2) <<  "Applying Berendsen-VanGunsteren thermostat..." << endl);
    53   double ekin;
     55  double ekin=0;
    5456  double ScaleTempFactor = getContainer().TargetTemp/ActualTemp;
    5557  for(ForwardIterator iter=begin;iter!=end;++iter){
     
    6466
    6567std::string Berendsen::name(){
    66   return ThermostatTraits<Berendsen>().name;
     68  return ThermostatTraits<Berendsen>::name;
    6769}
    6870
  • src/Thermostats/Berendsen.hpp

    r8d1dd4 r14c57a  
    3636struct ThermostatTraits<class Berendsen> : public ThermostatTraits<Thermostat>
    3737{
    38   ThermostatTraits();
    3938  virtual Thermostat *make(class ConfigFileBuffer * const fb);
    40   const char* name;
     39  virtual std::string getName();
     40  static const char* name;
    4141};
    4242
  • src/Thermostats/GaussianThermostat.cpp

    r8d1dd4 r14c57a  
    3030{}
    3131
    32 ThermostatTraits<GaussianThermostat>::ThermostatTraits() :
    33   name("Gaussian")
    34 {}
     32const char *ThermostatTraits<GaussianThermostat>::name = "Gaussian";
     33
     34std::string ThermostatTraits<GaussianThermostat>::getName(){
     35  return ThermostatTraits<GaussianThermostat>::name;
     36}
    3537
    3638Thermostat *ThermostatTraits<GaussianThermostat>::make(class ConfigFileBuffer * const fb){
     
    9395
    9496std::string GaussianThermostat::name(){
    95   return ThermostatTraits<GaussianThermostat>().name;
     97  return ThermostatTraits<GaussianThermostat>::name;
    9698}
    9799
  • src/Thermostats/GaussianThermostat.hpp

    r8d1dd4 r14c57a  
    4141struct ThermostatTraits<GaussianThermostat> : public ThermostatTraits<Thermostat>
    4242{
    43   ThermostatTraits();
    4443  virtual Thermostat *make(class ConfigFileBuffer * const fb);
    45   const char* name;
     44  virtual std::string getName();
     45  static const char* name;
    4646};
    4747
  • src/Thermostats/Langevin.cpp

    r8d1dd4 r14c57a  
    3232}
    3333
    34 ThermostatTraits<class Langevin>::ThermostatTraits() :
    35   name("Langevin")
    36 {}
     34const char *ThermostatTraits<Langevin>::name = "Langevin";
    3735
    38 Thermostat *ThermostatTraits<class Langevin>::make(class ConfigFileBuffer * const fb){
     36std::string ThermostatTraits<Langevin>::getName(){
     37  return ThermostatTraits<Langevin>::name;
     38}
     39
     40Thermostat *ThermostatTraits<Langevin>::make(class ConfigFileBuffer * const fb){
    3941  double TempFrequency;
    4042  double alpha;
     
    4648    alpha = 1.;
    4749  }
    48   return new class Langevin(TempFrequency,alpha);
     50  return new Langevin(TempFrequency,alpha);
    4951}
    5052
     
    8587
    8688std::string Langevin::name(){
    87   return ThermostatTraits<Langevin>().name;
     89  return ThermostatTraits<Langevin>::name;
    8890}
    8991
  • src/Thermostats/Langevin.hpp

    r8d1dd4 r14c57a  
    3939struct ThermostatTraits<class Langevin> : public ThermostatTraits<Thermostat>
    4040{
    41   ThermostatTraits();
    4241  virtual Thermostat *make(class ConfigFileBuffer * const fb);
    43   const char* name;
     42  virtual std::string getName();
     43  static const char* name;
    4444};
    4545
  • src/Thermostats/NoThermostat.cpp

    r8d1dd4 r14c57a  
    1414{}
    1515
    16 ThermostatTraits<class NoThermostat>::ThermostatTraits() :
    17   name("None")
    18 {}
     16const char *ThermostatTraits<NoThermostat>::name = "None";
    1917
    20 Thermostat *ThermostatTraits<class NoThermostat>::make(class ConfigFileBuffer * const fb){
    21   return new class NoThermostat();
     18std::string ThermostatTraits<NoThermostat>::getName(){
     19  return ThermostatTraits<NoThermostat>::name;
     20}
     21
     22Thermostat *ThermostatTraits<NoThermostat>::make(class ConfigFileBuffer * const fb){
     23  return new NoThermostat();
    2224}
    2325
     
    3537
    3638std::string NoThermostat::name(){
    37   return ThermostatTraits<NoThermostat>().name;
     39  return ThermostatTraits<NoThermostat>::name;
    3840}
    3941
  • src/Thermostats/NoThermostat.hpp

    r8d1dd4 r14c57a  
    2828struct ThermostatTraits<class NoThermostat>: public ThermostatTraits<Thermostat>
    2929{
    30   ThermostatTraits();
    3130  virtual Thermostat *make(class ConfigFileBuffer * const fb);
    32   const char* name;
     31  virtual std::string getName();
     32  static const char* name;
    3333};
    3434
  • src/Thermostats/NoseHoover.cpp

    r8d1dd4 r14c57a  
    2727{}
    2828
    29 ThermostatTraits<class NoseHoover>::ThermostatTraits() :
    30   name("NoseHoover")
    31 {}
     29const char *ThermostatTraits<NoseHoover>::name = "NoseHoover";
    3230
    33 Thermostat *ThermostatTraits<class NoseHoover>::make(class ConfigFileBuffer * const fb){
     31std::string ThermostatTraits<NoseHoover>::getName(){
     32  return ThermostatTraits<NoseHoover>::name;
     33}
     34
     35Thermostat *ThermostatTraits<NoseHoover>::make(class ConfigFileBuffer * const fb){
    3436  double HooverMass;
    3537  const int verbose = 0;
    3638  ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, double_type, &HooverMass, 1, critical); // read Hoovermass
    37   return new class NoseHoover(HooverMass);
     39  return new NoseHoover(HooverMass);
    3840}
    3941
     
    8284
    8385std::string NoseHoover::name(){
    84   return ThermostatTraits<NoseHoover>().name;
     86  return ThermostatTraits<NoseHoover>::name;
    8587}
    8688
  • src/Thermostats/NoseHoover.hpp

    r8d1dd4 r14c57a  
    4040struct ThermostatTraits<class NoseHoover> : public ThermostatTraits<Thermostat>
    4141{
    42   ThermostatTraits();
    4342  virtual Thermostat *make(class ConfigFileBuffer * const fb);
    44   const char* name;
     43  virtual std::string getName();
     44  static const char* name;
    4545};
    4646
  • src/Thermostats/Thermostat.cpp

    r8d1dd4 r14c57a  
    1717{}
    1818
    19 ThermostatTraits<Thermostat>::ThermostatTraits() :
    20   name("Base")
    21 {}
     19const char *ThermostatTraits<Thermostat>::name = "Base";
    2220
    23 void Thermostat::addToContainer(ThermoStatContainer &_container){
    24   container = &_container;
     21std::string ThermostatTraits<Thermostat>::getName(){
     22  return ThermostatTraits<Thermostat>::name;
     23}
     24
     25void Thermostat::addToContainer(ThermoStatContainer *_container){
     26  container = _container;
    2527}
    2628
  • src/Thermostats/Thermostat.hpp

    r8d1dd4 r14c57a  
    3333
    3434  virtual std::string writeParams()=0;
     35  void addToContainer(ThermoStatContainer *);
    3536protected:
    36   void addToContainer(ThermoStatContainer &);
    3737  ThermoStatContainer &getContainer();
    3838private:
     
    4545template <>
    4646struct ThermostatTraits<Thermostat>{
    47   ThermostatTraits();
    4847  virtual Thermostat *make(class ConfigFileBuffer * const fb)=0;
    49   const char* name;
     48  virtual std::string getName();
     49  static const char* name;
    5050};
    5151
  • src/Thermostats/Woodcock.cpp

    r8d1dd4 r14c57a  
    2727{}
    2828
    29 ThermostatTraits<class Woodcock>::ThermostatTraits() :
    30   name("Woodcock")
    31 {}
     29const char *ThermostatTraits<Woodcock>::name = "Woodcock";
    3230
    33 Thermostat *ThermostatTraits<class Woodcock>::make(class ConfigFileBuffer * const fb){
     31std::string ThermostatTraits<Woodcock>::getName(){
     32  return ThermostatTraits<Woodcock>::name;
     33}
     34
     35Thermostat *ThermostatTraits<Woodcock>::make(class ConfigFileBuffer * const fb){
    3436  int ScaleTempStep;
    3537  const int verbose = 0;
    3638  ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, int_type, &ScaleTempStep, 1, critical); // read scaling frequency
    37   return new class Woodcock(ScaleTempStep);
     39  return new Woodcock(ScaleTempStep);
    3840}
    3941
     
    6971
    7072std::string Woodcock::name(){
    71   return ThermostatTraits<Woodcock>().name;
     73  return ThermostatTraits<Woodcock>::name;
    7274}
    7375
  • src/Thermostats/Woodcock.hpp

    r8d1dd4 r14c57a  
    3636struct ThermostatTraits<class Woodcock> : public ThermostatTraits<Thermostat>
    3737{
    38   ThermostatTraits();
    3938  virtual Thermostat *make(class ConfigFileBuffer * const fb);
    40   const char* name;
     39  virtual std::string getName();
     40  static const char* name;
    4141};
    4242
Note: See TracChangeset for help on using the changeset viewer.