Changeset 43dad6
- Timestamp:
- Jun 12, 2010, 3:54:26 PM (15 years ago)
- 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:
- 1b2d30
- Parents:
- a3fded
- Location:
- src
- Files:
-
- 4 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
src/ConfigFileBuffer.cpp
ra3fded r43dad6 64 64 void ConfigFileBuffer::InitFileBuffer(const char * const filename) 65 65 { 66 ifstream *file = NULL; 66 ifstream *file= new ifstream(filename); 67 InitFileBuffer(file); 68 } 69 70 void ConfigFileBuffer::InitFileBuffer(istream *file) 71 { 67 72 char line[MAXSTRINGSIZE]; 68 73 … … 70 75 71 76 // prescan number of lines 72 file= new ifstream(filename); 73 if (file == NULL) { 74 DoeLog(1) && (eLog()<< Verbose(1) << "config file " << filename << " missing!" << endl); 77 if (file->fail()) { 78 DoeLog(1) && (eLog()<< Verbose(1) << "config file missing!" << endl); 75 79 return; 76 80 } … … 104 108 } while((!file->eof()) && (lines < NoLines)); 105 109 DoLog(1) && (Log() << Verbose(1) << lines-1 << " lines were read into the buffer." << endl); 106 107 // close and exit108 file->close();109 file->clear();110 delete(file);111 110 112 111 InitMapping(); -
src/ConfigFileBuffer.hpp
ra3fded r43dad6 17 17 #endif 18 18 19 #include <iostream> 19 20 20 21 /****************************************** forward declarations *****************************/ … … 34 35 35 36 void InitFileBuffer(const char * const filename); 37 void InitFileBuffer(std::istream *file); 36 38 void MapIonTypesInBuffer(const int NoAtoms); 37 39 -
src/Makefile.am
ra3fded r43dad6 88 88 Parser/ChangeTracker.cpp \ 89 89 Parser/FormatParser.cpp \ 90 Parser/MpqcParser.cpp \ 91 Parser/PcpParser.cpp \ 90 92 Parser/TremoloParser.cpp \ 91 93 Parser/XyzParser.cpp … … 94 96 Parser/ChangeTracker.hpp \ 95 97 Parser/FormatParser.hpp \ 98 Parser/MpqcParser.hpp \ 99 Parser/PcpParser.hpp \ 96 100 Parser/TremoloParser.hpp \ 97 101 Parser/XyzParser.hpp -
src/ThermoStatContainer.cpp
ra3fded r43dad6 51 51 52 52 53 /** Reading of Thermostat related values from parameter file.54 * \param *fb file buffer containing the config file55 */56 void ThermoStatContainer::ParseThermostats(class ConfigFileBuffer * const fb)57 {58 char * const thermo = new char[12];59 const int verbose = 0;60 61 // read desired Thermostat from file along with needed additional parameters62 if (ParseForParameter(verbose,fb,"Thermostat", 0, 1, 1, string_type, thermo, 1, optional)) {63 if (strcmp(thermo, ThermostatNames[0]) == 0) { // None64 if (ThermostatImplemented[0] == 1) {65 Thermostat = None;66 } else {67 DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl);68 Thermostat = None;69 }70 } else if (strcmp(thermo, ThermostatNames[1]) == 0) { // Woodcock71 if (ThermostatImplemented[1] == 1) {72 Thermostat = Woodcock;73 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, int_type, &ScaleTempStep, 1, critical); // read scaling frequency74 } else {75 DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl);76 Thermostat = None;77 }78 } else if (strcmp(thermo, ThermostatNames[2]) == 0) { // Gaussian79 if (ThermostatImplemented[2] == 1) {80 Thermostat = Gaussian;81 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, int_type, &ScaleTempStep, 1, critical); // read collision rate82 } else {83 DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl);84 Thermostat = None;85 }86 } else if (strcmp(thermo, ThermostatNames[3]) == 0) { // Langevin87 if (ThermostatImplemented[3] == 1) {88 Thermostat = Langevin;89 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, double_type, &TempFrequency, 1, critical); // read gamma90 if (ParseForParameter(verbose,fb,"Thermostat", 0, 3, 1, double_type, &alpha, 1, optional)) {91 DoLog(2) && (Log() << Verbose(2) << "Extended Stochastic Thermostat detected with interpolation coefficient " << alpha << "." << endl);92 } else {93 alpha = 1.;94 }95 } else {96 DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl);97 Thermostat = None;98 }99 } else if (strcmp(thermo, ThermostatNames[4]) == 0) { // Berendsen100 if (ThermostatImplemented[4] == 1) {101 Thermostat = Berendsen;102 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, double_type, &TempFrequency, 1, critical); // read \tau_T103 } else {104 DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl);105 Thermostat = None;106 }107 } else if (strcmp(thermo, ThermostatNames[5]) == 0) { // Nose-Hoover108 if (ThermostatImplemented[5] == 1) {109 Thermostat = NoseHoover;110 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, double_type, &HooverMass, 1, critical); // read Hoovermass111 alpha = 0.;112 } else {113 DoLog(1) && (Log() << Verbose(1) << "Warning: " << ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl);114 Thermostat = None;115 }116 } else {117 DoLog(1) && (Log() << Verbose(1) << " Warning: thermostat name was not understood!" << endl);118 Thermostat = None;119 }120 } else {121 if ((TargetTemp != 0))122 DoLog(2) && (Log() << Verbose(2) << "No thermostat chosen despite finite temperature MD, falling back to None." << endl);123 Thermostat = None;124 }125 delete[](thermo);126 };127 -
src/World.cpp
ra3fded r43dad6 12 12 #include "molecule.hpp" 13 13 #include "periodentafel.hpp" 14 #include "ThermoStatContainer.hpp" 14 15 #include "Descriptors/AtomDescriptor.hpp" 15 16 #include "Descriptors/AtomDescriptor_impl.hpp" … … 87 88 defaultName = name; 88 89 }; 90 91 class ThermoStatContainer * World::getThermostats() 92 { 93 return Thermostats; 94 } 95 89 96 90 97 int World::getExitFlag() { … … 278 285 periode(new periodentafel), 279 286 configuration(new config), 287 Thermostats(new ThermoStatContainer), 280 288 ExitFlag(0), 281 289 atoms(), … … 303 311 delete periode; 304 312 delete configuration; 313 delete Thermostats; 305 314 MoleculeSet::iterator molIter; 306 315 for(molIter=molecules.begin();molIter!=molecules.end();++molIter){ -
src/World.hpp
ra3fded r43dad6 30 30 31 31 // forward declarations 32 class config;33 class periodentafel;34 class MoleculeListClass;35 32 class atom; 36 class molecule;37 33 class AtomDescriptor; 38 34 class AtomDescriptor_impl; 35 template<typename T> class AtomsCalculation; 36 class config; 37 class ManipulateAtomsProcess; 38 class molecule; 39 39 class MoleculeDescriptor; 40 40 class MoleculeDescriptor_impl; 41 class M anipulateAtomsProcess;42 template<typename T> 43 class AtomsCalculation;41 class MoleculeListClass; 42 class periodentafel; 43 class ThermoStatContainer; 44 44 45 45 /****************************************** forward declarations *****************************/ … … 142 142 void setDefaultName(std::string name); 143 143 144 /** 145 * get pointer to World's ThermoStatContainer 146 */ 147 ThermoStatContainer * getThermostats(); 148 144 149 /* 145 150 * get the ExitFlag … … 254 259 static double *cell_size; 255 260 std::string defaultName; 261 class ThermoStatContainer *Thermostats; 256 262 int ExitFlag; 257 263 public: -
src/atom.cpp
ra3fded r43dad6 149 149 * \return true - \a *out present, false - \a *out is NULL 150 150 */ 151 bool atom::OutputArrayIndexed(o fstream * const out, const int *ElementNo, int *AtomNo, const char *comment) const151 bool atom::OutputArrayIndexed(ostream * const out, const int *ElementNo, int *AtomNo, const char *comment) const 152 152 { 153 153 AtomNo[type->Z]++; // increment number -
src/atom.hpp
ra3fded r43dad6 52 52 53 53 bool OutputIndexed(ofstream * const out, const int ElementNo, const int AtomNo, const char *comment = NULL) const; 54 bool OutputArrayIndexed(o fstream * const out, const int *ElementNo, int *AtomNo, const char *comment = NULL) const;54 bool OutputArrayIndexed(ostream * const out, const int *ElementNo, int *AtomNo, const char *comment = NULL) const; 55 55 bool OutputXYZLine(ofstream *out) const; 56 56 bool OutputTrajectory(ofstream * const out, const int *ElementNo, int *AtomNo, const int step) const; -
src/config.cpp
ra3fded r43dad6 614 614 615 615 //TODO: This is actually sensible?: if (MaxOuterStep > 0) 616 Thermostats->ParseThermostats(FileBuffer);616 ParseThermostats(FileBuffer); 617 617 618 618 /* Namen einlesen */ … … 2077 2077 return (found); // true if found, false if not 2078 2078 } 2079 2080 /** Reading of Thermostat related values from parameter file. 2081 * \param *fb file buffer containing the config file 2082 */ 2083 void config::ParseThermostats(class ConfigFileBuffer * const fb) 2084 { 2085 char * const thermo = new char[12]; 2086 const int verbose = 0; 2087 2088 // read desired Thermostat from file along with needed additional parameters 2089 if (ParseForParameter(verbose,fb,"Thermostat", 0, 1, 1, string_type, thermo, 1, optional)) { 2090 if (strcmp(thermo, Thermostats->ThermostatNames[0]) == 0) { // None 2091 if (Thermostats->ThermostatImplemented[0] == 1) { 2092 Thermostats->Thermostat = None; 2093 } else { 2094 DoLog(1) && (Log() << Verbose(1) << "Warning: " << Thermostats->ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl); 2095 Thermostats->Thermostat = None; 2096 } 2097 } else if (strcmp(thermo, Thermostats->ThermostatNames[1]) == 0) { // Woodcock 2098 if (Thermostats->ThermostatImplemented[1] == 1) { 2099 Thermostats->Thermostat = Woodcock; 2100 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, int_type, &Thermostats->ScaleTempStep, 1, critical); // read scaling frequency 2101 } else { 2102 DoLog(1) && (Log() << Verbose(1) << "Warning: " << Thermostats->ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl); 2103 Thermostats->Thermostat = None; 2104 } 2105 } else if (strcmp(thermo, Thermostats->ThermostatNames[2]) == 0) { // Gaussian 2106 if (Thermostats->ThermostatImplemented[2] == 1) { 2107 Thermostats->Thermostat = Gaussian; 2108 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, int_type, &Thermostats->ScaleTempStep, 1, critical); // read collision rate 2109 } else { 2110 DoLog(1) && (Log() << Verbose(1) << "Warning: " << Thermostats->ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl); 2111 Thermostats->Thermostat = None; 2112 } 2113 } else if (strcmp(thermo, Thermostats->ThermostatNames[3]) == 0) { // Langevin 2114 if (Thermostats->ThermostatImplemented[3] == 1) { 2115 Thermostats->Thermostat = Langevin; 2116 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, double_type, &Thermostats->TempFrequency, 1, critical); // read gamma 2117 if (ParseForParameter(verbose,fb,"Thermostat", 0, 3, 1, double_type, &Thermostats->alpha, 1, optional)) { 2118 DoLog(2) && (Log() << Verbose(2) << "Extended Stochastic Thermostat detected with interpolation coefficient " << Thermostats->alpha << "." << endl); 2119 } else { 2120 Thermostats->alpha = 1.; 2121 } 2122 } else { 2123 DoLog(1) && (Log() << Verbose(1) << "Warning: " << Thermostats->ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl); 2124 Thermostats->Thermostat = None; 2125 } 2126 } else if (strcmp(thermo, Thermostats->ThermostatNames[4]) == 0) { // Berendsen 2127 if (Thermostats->ThermostatImplemented[4] == 1) { 2128 Thermostats->Thermostat = Berendsen; 2129 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, double_type, &Thermostats->TempFrequency, 1, critical); // read \tau_T 2130 } else { 2131 DoLog(1) && (Log() << Verbose(1) << "Warning: " << Thermostats->ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl); 2132 Thermostats->Thermostat = None; 2133 } 2134 } else if (strcmp(thermo, Thermostats->ThermostatNames[5]) == 0) { // Nose-Hoover 2135 if (Thermostats->ThermostatImplemented[5] == 1) { 2136 Thermostats->Thermostat = NoseHoover; 2137 ParseForParameter(verbose,fb,"Thermostat", 0, 2, 1, double_type, &Thermostats->HooverMass, 1, critical); // read Hoovermass 2138 Thermostats->alpha = 0.; 2139 } else { 2140 DoLog(1) && (Log() << Verbose(1) << "Warning: " << Thermostats->ThermostatNames[0] << " thermostat not implemented, falling back to None." << endl); 2141 Thermostats->Thermostat = None; 2142 } 2143 } else { 2144 DoLog(1) && (Log() << Verbose(1) << " Warning: thermostat name was not understood!" << endl); 2145 Thermostats->Thermostat = None; 2146 } 2147 } else { 2148 if ((Thermostats->TargetTemp != 0)) 2149 DoLog(2) && (Log() << Verbose(2) << "No thermostat chosen despite finite temperature MD, falling back to None." << endl); 2150 Thermostats->Thermostat = None; 2151 } 2152 delete[](thermo); 2153 }; 2154 -
src/config.hpp
ra3fded r43dad6 131 131 char *GetDefaultPath() const; 132 132 void SetDefaultPath(const char * const path); 133 void ParseThermostats(class ConfigFileBuffer * const fb); 133 134 }; 134 135 -
src/molecule.cpp
ra3fded r43dad6 858 858 ElementNo[i] = current++; 859 859 } 860 ActOnAllAtoms( &atom::OutputArrayIndexed, output, (const int *)ElementNo, (int *)AtomNo, (const char *) NULL );860 ActOnAllAtoms( &atom::OutputArrayIndexed, (ostream * const) output, (const int *)ElementNo, (int *)AtomNo, (const char *) NULL ); 861 861 return true; 862 862 }
Note:
See TracChangeset
for help on using the changeset viewer.