Changeset b760bc3
- Timestamp:
- Feb 27, 2013, 12:36:17 PM (12 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:
- dbf8c8
- Parents:
- 93e908
- git-author:
- Frederik Heber <heber@…> (11/28/12 11:47:59)
- git-committer:
- Frederik Heber <heber@…> (02/27/13 12:36:17)
- Location:
- src/Potentials
- Files:
-
- 2 added
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Potentials/Makefile.am
r93e908 rb760bc3 4 4 POTENTIALSSOURCE = \ 5 5 Potentials/Specifics/ManyBodyPotential_Tersoff.cpp \ 6 Potentials/ParticleTypeCheckers.cpp \ 6 7 Potentials/PotentialRegistry.cpp \ 7 8 Potentials/SerializablePotential.cpp \ … … 15 16 Potentials/Exceptions.hpp \ 16 17 Potentials/helpers.hpp \ 18 Potentials/ParticleTypeCheckers.hpp \ 17 19 Potentials/PotentialRegistry.hpp \ 18 20 Potentials/SerializablePotential.hpp \ -
src/Potentials/Specifics/ManyBodyPotential_Tersoff.cpp
r93e908 rb760bc3 49 49 50 50 #include "Potentials/helpers.hpp" 51 #include "Potentials/ParticleTypeCheckers.hpp" 51 52 52 53 // static definitions … … 165 166 ++argiter) { 166 167 const argument_t &r_ij = *argiter; 167 ASSERT( arguments[0].types.first == getParticleTypes()[0], 168 "ManyBodyPotential_Tersoff::operator() - first charge " 169 +toString(arguments[0].types.first)+" is not "+toString(getParticleTypes()[0])); 170 ASSERT( arguments[0].types.second == getParticleTypes()[1], 171 "ManyBodyPotential_Tersoff::operator() - second charge " 172 +toString(arguments[0].types.second)+" is not "+toString(getParticleTypes()[1])); 173 168 ASSERT( ParticleTypeChecker::checkArgumentsAgainstParticleTypes( 169 arguments_t(1, r_ij), getParticleTypes()), 170 "ManyBodyPotential_Tersoff::operator() - types don't match with ones in arguments."); 171 174 172 const double cutoff = function_cutoff(r_ij.distance); 175 173 const double temp = (cutoff == 0.) ? … … 224 222 ++argiter) { 225 223 const argument_t &r_ij = *argiter; 226 ASSERT( arguments[0].types.first == getParticleTypes()[0], 227 "ManyBodyPotential_Tersoff::operator() - first charge " 228 +toString(arguments[0].types.first)+" is not "+toString(getParticleTypes()[0])); 229 ASSERT( arguments[0].types.second == getParticleTypes()[1], 230 "ManyBodyPotential_Tersoff::operator() - second charge " 231 +toString(arguments[0].types.second)+" is not "+toString(getParticleTypes()[1])); 224 ASSERT( ParticleTypeChecker::checkArgumentsAgainstParticleTypes( 225 arguments_t(1, r_ij), getParticleTypes()), 226 "ManyBodyPotential_Tersoff::operator() - types don't match with ones in arguments."); 232 227 233 228 switch (index) { -
src/Potentials/Specifics/PairPotential_Angle.cpp
r93e908 rb760bc3 45 45 46 46 #include "Potentials/helpers.hpp" 47 #include "Potentials/ParticleTypeCheckers.hpp" 47 48 48 49 // static definitions … … 119 120 ASSERT( arguments.size() == 3, 120 121 "PairPotential_Angle::operator() - requires exactly three arguments."); 121 ASSERT( arguments[0].types.first == getParticleTypes()[0], 122 "PairPotential_Angle::operator() - first charge of first distance " 123 +toString(arguments[0].types.first)+" is not "+toString(getParticleTypes()[0])); 124 ASSERT( arguments[0].types.second == getParticleTypes()[1], 125 "PairPotential_Angle::operator() - second charge of first distance " 126 +toString(arguments[0].types.second)+" is not "+toString(getParticleTypes()[1])); 127 ASSERT( arguments[1].types.first == getParticleTypes()[0], 128 "PairPotential_Angle::operator() - first charge of second distance " 129 +toString(arguments[1].types.first)+" is not "+toString(getParticleTypes()[0])); 130 ASSERT( arguments[1].types.second == getParticleTypes()[2], 131 "PairPotential_Angle::operator() - second charge of second distance " 132 +toString(arguments[1].types.second)+" is not "+toString(getParticleTypes()[2])); 133 ASSERT( arguments[2].types.first == getParticleTypes()[1], 134 "PairPotential_Angle::operator() - first charge of third distance " 135 +toString(arguments[2].types.first)+" is not "+toString(getParticleTypes()[1])); 136 ASSERT( arguments[2].types.second == getParticleTypes()[2], 137 "PairPotential_Angle::operator() - second charge of third distance " 138 +toString(arguments[2].types.second)+" is not "+toString(getParticleTypes()[2])); 122 ASSERT( ParticleTypeChecker::checkArgumentsAgainstParticleTypesStrictOrdering( 123 arguments, getParticleTypes()), 124 "PairPotential_Angle::operator() - types don't match with ones in arguments."); 139 125 const argument_t &r_ij = arguments[0]; 140 126 const argument_t &r_ik = arguments[1]; … … 154 140 ASSERT( arguments.size() == 3, 155 141 "PairPotential_Angle::operator() - requires exactly three arguments."); 156 ASSERT( arguments[0].types.first == getParticleTypes()[0], 157 "PairPotential_Angle::derivative() - first charge of first distance " 158 +toString(arguments[0].types.first)+" is not "+toString(getParticleTypes()[0])); 159 ASSERT( arguments[0].types.second == getParticleTypes()[1], 160 "PairPotential_Angle::derivative() - second charge of first distance " 161 +toString(arguments[0].types.second)+" is not "+toString(getParticleTypes()[1])); 162 ASSERT( arguments[1].types.first == getParticleTypes()[0], 163 "PairPotential_Angle::derivative() - first charge of second distance " 164 +toString(arguments[1].types.first)+" is not "+toString(getParticleTypes()[0])); 165 ASSERT( arguments[1].types.second == getParticleTypes()[2], 166 "PairPotential_Angle::derivative() - second charge of second distance " 167 +toString(arguments[1].types.second)+" is not "+toString(getParticleTypes()[2])); 168 ASSERT( arguments[2].types.first == getParticleTypes()[1], 169 "PairPotential_Angle::derivative() - first charge of third distance " 170 +toString(arguments[2].types.first)+" is not "+toString(getParticleTypes()[1])); 171 ASSERT( arguments[2].types.second == getParticleTypes()[2], 172 "PairPotential_Angle::derivative() - second charge of third distance " 173 +toString(arguments[2].types.second)+" is not "+toString(getParticleTypes()[2])); 142 ASSERT( ParticleTypeChecker::checkArgumentsAgainstParticleTypesStrictOrdering( 143 arguments, getParticleTypes()), 144 "PairPotential_Angle::operator() - types don't match with ones in arguments."); 174 145 derivative_components_t result; 175 146 const argument_t &r_ij = arguments[0]; … … 190 161 ASSERT( arguments.size() == 3, 191 162 "PairPotential_Angle::parameter_derivative() - requires exactly three arguments."); 192 ASSERT( arguments[0].types.first == getParticleTypes()[0], 193 "PairPotential_Angle::parameter_derivative() - first charge of first distance " 194 +toString(arguments[0].types.first)+" is not "+toString(getParticleTypes()[0])); 195 ASSERT( arguments[0].types.second == getParticleTypes()[1], 196 "PairPotential_Angle::parameter_derivative() - second charge of first distance " 197 +toString(arguments[0].types.second)+" is not "+toString(getParticleTypes()[1])); 198 ASSERT( arguments[1].types.first == getParticleTypes()[0], 199 "PairPotential_Angle::parameter_derivative() - first charge of second distance " 200 +toString(arguments[1].types.first)+" is not "+toString(getParticleTypes()[0])); 201 ASSERT( arguments[1].types.second == getParticleTypes()[2], 202 "PairPotential_Angle::parameter_derivative() - second charge of second distance " 203 +toString(arguments[1].types.second)+" is not "+toString(getParticleTypes()[2])); 204 ASSERT( arguments[2].types.first == getParticleTypes()[1], 205 "PairPotential_Angle::parameter_derivative() - first charge of third distance " 206 +toString(arguments[2].types.first)+" is not "+toString(getParticleTypes()[1])); 207 ASSERT( arguments[2].types.second == getParticleTypes()[2], 208 "PairPotential_Angle::parameter_derivative() - second charge of third distance " 209 +toString(arguments[2].types.second)+" is not "+toString(getParticleTypes()[2])); 163 ASSERT( ParticleTypeChecker::checkArgumentsAgainstParticleTypesStrictOrdering( 164 arguments, getParticleTypes()), 165 "PairPotential_Angle::operator() - types don't match with ones in arguments."); 210 166 const argument_t &r_ij = arguments[0]; 211 167 const argument_t &r_ik = arguments[1]; -
src/Potentials/Specifics/PairPotential_Harmonic.cpp
r93e908 rb760bc3 45 45 46 46 #include "Potentials/helpers.hpp" 47 #include "Potentials/ParticleTypeCheckers.hpp" 47 48 48 49 // static definitions … … 100 101 ASSERT( arguments.size() == 1, 101 102 "PairPotential_Harmonic::operator() - requires exactly one argument."); 102 ASSERT( arguments[0].types.first == getParticleTypes()[0], 103 "PairPotential_Harmonic::operator() - first charge " 104 +toString(arguments[0].types.first)+" is not "+toString(getParticleTypes()[0])); 105 ASSERT( arguments[0].types.second == getParticleTypes()[1], 106 "PairPotential_Harmonic::operator() - second charge " 107 +toString(arguments[0].types.second)+" is not "+toString(getParticleTypes()[1])); 103 ASSERT( ParticleTypeChecker::checkArgumentsAgainstParticleTypesStrictOrdering( 104 arguments, getParticleTypes()), 105 "PairPotential_Harmonic::operator() - types don't match with ones in arguments."); 108 106 const argument_t &r_ij = arguments[0]; 109 107 const result_t result = … … 121 119 ASSERT( arguments.size() == 1, 122 120 "PairPotential_Harmonic::operator() - requires exactly one argument."); 123 ASSERT( arguments[0].types.first == getParticleTypes()[0], 124 "PairPotential_Harmonic::derivative() - first charge " 125 +toString(arguments[0].types.first)+" is not "+toString(getParticleTypes()[0])); 126 ASSERT( arguments[0].types.second == getParticleTypes()[1], 127 "PairPotential_Harmonic::derivative() - second charge " 128 +toString(arguments[0].types.second)+" is not "+toString(getParticleTypes()[1])); 121 ASSERT( ParticleTypeChecker::checkArgumentsAgainstParticleTypesStrictOrdering( 122 arguments, getParticleTypes()), 123 "PairPotential_Harmonic::operator() - types don't match with ones in arguments."); 129 124 derivative_components_t result; 130 125 const argument_t &r_ij = arguments[0]; … … 143 138 ASSERT( arguments.size() == 1, 144 139 "PairPotential_Harmonic::parameter_derivative() - requires exactly one argument."); 145 ASSERT( arguments[0].types.first == getParticleTypes()[0], 146 "PairPotential_Harmonic::parameter_derivative() - first charge " 147 +toString(arguments[0].types.first)+" is not "+toString(getParticleTypes()[0])); 148 ASSERT( arguments[0].types.second == getParticleTypes()[1], 149 "PairPotential_Harmonic::parameter_derivative() - second charge " 150 +toString(arguments[0].types.second)+" is not "+toString(getParticleTypes()[1])); 140 ASSERT( ParticleTypeChecker::checkArgumentsAgainstParticleTypesStrictOrdering( 141 arguments, getParticleTypes()), 142 "PairPotential_Harmonic::operator() - types don't match with ones in arguments."); 151 143 const argument_t &r_ij = arguments[0]; 152 144 switch (index) { -
src/Potentials/Specifics/PairPotential_Morse.cpp
r93e908 rb760bc3 46 46 47 47 #include "Potentials/helpers.hpp" 48 #include "Potentials/ParticleTypeCheckers.hpp" 48 49 49 50 // static definitions … … 105 106 ASSERT( arguments.size() == 1, 106 107 "PairPotential_Morse::operator() - requires exactly one argument."); 107 ASSERT( arguments[0].types.first == getParticleTypes()[0], 108 "PairPotential_Morse::operator() - first charge " 109 +toString(arguments[0].types.first)+" is not "+toString(getParticleTypes()[0])); 110 ASSERT( arguments[0].types.second == getParticleTypes()[1], 111 "PairPotential_Morse::operator() - second charge " 112 +toString(arguments[0].types.second)+" is not "+toString(getParticleTypes()[1])); 108 ASSERT( ParticleTypeChecker::checkArgumentsAgainstParticleTypes( 109 arguments, getParticleTypes()), 110 "PairPotential_Morse::operator() - types don't match with ones in arguments."); 113 111 const argument_t &r_ij = arguments[0]; 114 112 // Maple: f(r,D,k,R,c) := D * (1 - exp(-k*(r-R)))^(2)+c … … 127 125 ASSERT( arguments.size() == 1, 128 126 "PairPotential_Morse::operator() - requires exactly one argument."); 129 ASSERT( arguments[0].types.first == getParticleTypes()[0], 130 "PairPotential_Morse::derivative() - first charge " 131 +toString(arguments[0].types.first)+" is not "+toString(getParticleTypes()[0])); 132 ASSERT( arguments[0].types.second == getParticleTypes()[1], 133 "PairPotential_Morse::derivative() - second charge " 134 +toString(arguments[0].types.second)+" is not "+toString(getParticleTypes()[1])); 127 ASSERT( ParticleTypeChecker::checkArgumentsAgainstParticleTypes( 128 arguments, getParticleTypes()), 129 "PairPotential_Morse::operator() - types don't match with ones in arguments."); 135 130 derivative_components_t result; 136 131 const argument_t &r_ij = arguments[0]; … … 154 149 ASSERT( arguments.size() == 1, 155 150 "PairPotential_Morse::parameter_derivative() - requires exactly one argument."); 156 ASSERT( arguments[0].types.first == getParticleTypes()[0], 157 "PairPotential_Morse::parameter_derivative() - first charge " 158 +toString(arguments[0].types.first)+" is not "+toString(getParticleTypes()[0])); 159 ASSERT( arguments[0].types.second == getParticleTypes()[1], 160 "PairPotential_Morse::parameter_derivative() - second charge " 161 +toString(arguments[0].types.second)+" is not "+toString(getParticleTypes()[1])); 151 ASSERT( ParticleTypeChecker::checkArgumentsAgainstParticleTypes( 152 arguments, getParticleTypes()), 153 "PairPotential_Morse::operator() - types don't match with ones in arguments."); 162 154 const argument_t &r_ij = arguments[0]; 163 155 switch (index) { -
src/Potentials/Specifics/SaturationPotential.cpp
r93e908 rb760bc3 48 48 49 49 #include "Potentials/helpers.hpp" 50 #include "Potentials/ParticleTypeCheckers.hpp" 50 51 51 52 using namespace boost::assign; … … 174 175 { 175 176 double result = 0.; 177 const ParticleTypes_t &morse_types = morse.getParticleTypes(); 176 178 for(arguments_t::const_iterator argiter = arguments.begin(); 177 179 argiter != arguments.end(); 178 180 ++argiter) { 179 181 const argument_t &r_ij = *argiter; 180 if ((r_ij.indices.first == 0)) { // first item must be the non-hydrogen 182 if (((r_ij.types.first == morse_types[0]) && (r_ij.types.second == morse_types[1])) 183 || ((r_ij.types.first == morse_types[1]) && (r_ij.types.second == morse_types[0]))) { 181 184 arguments_t args(1, r_ij); 182 185 183 186 // Morse contribution 184 result += morse(args)[0]; 187 const double tmp = morse(args)[0]; 188 // LOG(2, "DEBUG: Morse yields " << tmp << " for << " << r_ij << "."); 189 result += tmp; 185 190 if (result != result) 186 191 ELOG(1, "result is NAN."); 187 192 } 188 193 } 189 // Angle contribution 190 result += angle(arguments)[0]; // as we have all distances we get both jk and kj 191 if (result != result) 192 ELOG(1, "result is NAN."); 193 // 194 // // Angle contribution 195 // std::vector<arguments_t> triples = triplefunction(r_ij, saturation_cutoff); 196 // args.resize(3, r_ij); 197 // for (std::vector<arguments_t>::const_iterator iter = triples.begin(); 198 // iter != triples.end(); ++iter) { 199 // ASSERT( iter->size() == 2, 200 // "SaturationPotential::function_derivative_c() - the triples result must contain exactly two distances."); 201 // const argument_t &r_ik = (*iter)[0]; 202 // const argument_t &r_jk = (*iter)[1]; 203 // args[1] = r_ik; 204 // args[2] = r_jk; 205 // result += .5*angle(args)[0]; // as we have all distances we get both jk and kj 206 // if (result != result) 207 // ELOG(1, "result is NAN."); 208 // } 209 // } 210 // } 194 { 195 // Angle contribution 196 const double tmp = angle(arguments)[0]; // as we have all distances we get both jk and kj 197 // LOG(2, "DEBUG: angle yields " << tmp << " for << " << arguments << "."); 198 result += tmp; 199 if (result != result) 200 ELOG(1, "result is NAN."); 201 } 211 202 return std::vector<result_t>(1, energy_offset + result); 212 203 }
Note:
See TracChangeset
for help on using the changeset viewer.