Changeset 775dd1a for src/Potentials/Specifics
- Timestamp:
- Feb 27, 2013, 12:39:03 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:
- 0dad5f
- Parents:
- d52819
- git-author:
- Frederik Heber <heber@…> (11/30/12 16:44:24)
- git-committer:
- Frederik Heber <heber@…> (02/27/13 12:39:03)
- Location:
- src/Potentials/Specifics
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
src/Potentials/Specifics/ManyBodyPotential_Tersoff.cpp
rd52819 r775dd1a 79 79 80 80 ManyBodyPotential_Tersoff::ManyBodyPotential_Tersoff( 81 const ParticleTypes_t &_ParticleTypes, 82 boost::function< std::vector<arguments_t>(const argument_t &, const double)> &_triplefunction 81 const ParticleTypes_t &_ParticleTypes 83 82 ) : 84 83 SerializablePotential(_ParticleTypes), … … 90 89 chi(1.), 91 90 omega(1.), 92 triplefunction( _triplefunction)91 triplefunction(&Helpers::NoOp_Triplefunction) 93 92 { 94 93 // have some decent defaults for parameter_derivative checking … … 122 121 const double &_d, 123 122 const double &_h, 124 const double &_offset, 125 boost::function< std::vector<arguments_t>(const argument_t &, const double)> &_triplefunction) : 123 const double &_offset) : 126 124 SerializablePotential(_ParticleTypes), 127 125 params(parameters_t(MAXPARAMS, 0.)), … … 132 130 chi(_chi), 133 131 omega(_mu), 134 triplefunction( _triplefunction)132 triplefunction(&Helpers::NoOp_Triplefunction) 135 133 { 136 134 // Info info(__func__); -
src/Potentials/Specifics/ManyBodyPotential_Tersoff.hpp
rd52819 r775dd1a 47 47 /** Constructor for class ManyBodyPotential_Tersoff. 48 48 * 49 * @param _triplefunction function that returns a list of triples (i.e. the 50 * two remaining distances) to a given pair of points (contained as 51 * indices within the argument) 49 * \param _ParticleTypes particle types for this potential 52 50 */ 53 51 ManyBodyPotential_Tersoff( 54 const ParticleTypes_t &_ParticleTypes, 55 boost::function< std::vector<arguments_t>(const argument_t &, const double)> &_triplefunction 52 const ParticleTypes_t &_ParticleTypes 56 53 ); 57 54 … … 95 92 const double &_d, 96 93 const double &_h, 97 const double &_offset, 98 boost::function< std::vector<arguments_t>(const argument_t &, const double)> &_triplefunction); 94 const double &_offset); 99 95 100 96 /** Destructor of class ManyBodyPotential_Tersoff. … … 187 183 */ 188 184 FunctionModel::extractor_t getFragmentSpecificExtractor(const charges_t &charges) const; 185 186 /** Sets the magic triple function that we use for getting angle distances. 187 * 188 * @param _triplefunction function that returns a list of triples (i.e. the 189 * two remaining distances) to a given pair of points (contained as 190 * indices within the argument) 191 */ 192 void setTriplefunction( 193 boost::function< std::vector<arguments_t>(const argument_t &, const double)> &_triplefunction 194 ) 195 { 196 triplefunction = _triplefunction; 197 } 189 198 190 199 private: … … 337 346 private: 338 347 //!> bound function that obtains the triples for the internal coordinationb summation. 339 const boost::function< std::vector< arguments_t >(const argument_t &, const double)> &triplefunction;348 boost::function< std::vector< arguments_t >(const argument_t &, const double)> triplefunction; 340 349 341 350 //!> static definitions of the parameter name for this potential -
src/Potentials/Specifics/SaturationPotential.cpp
rd52819 r775dd1a 70 70 71 71 SaturationPotential::SaturationPotential( 72 const ParticleTypes_t &_ParticleTypes, 73 const double _saturation_cutoff, 74 boost::function< std::vector<arguments_t>(const argument_t &, const double)> &_triplefunction) : 72 const ParticleTypes_t &_ParticleTypes) : 75 73 SerializablePotential(_ParticleTypes), 76 74 morse(_ParticleTypes), 77 75 angle(symmetrizeTypes(_ParticleTypes)), 78 energy_offset(0.), 79 triplefunction(_triplefunction), 80 saturation_cutoff(_saturation_cutoff) 76 energy_offset(0.) 81 77 { 82 78 // have some decent defaults for parameter_derivative checking … … 95 91 const double _morse_dissociation_energy, 96 92 const double _angle_spring_constant, 97 const double _angle_equilibrium_distance, 98 const double _saturation_cutoff, 99 boost::function< std::vector<arguments_t>(const argument_t &, const double)> &_triplefunction) : 93 const double _angle_equilibrium_distance) : 100 94 SerializablePotential(_ParticleTypes), 101 95 morse(_ParticleTypes), 102 96 angle(symmetrizeTypes(_ParticleTypes)), 103 energy_offset(_all_energy_offset), 104 triplefunction(_triplefunction), 105 saturation_cutoff(_saturation_cutoff) 97 energy_offset(_all_energy_offset) 106 98 { 107 99 ASSERT( _ParticleTypes.size() == (size_t)2, -
src/Potentials/Specifics/SaturationPotential.hpp
rd52819 r775dd1a 50 50 public: 51 51 SaturationPotential( 52 const ParticleTypes_t &_ParticleTypes, 53 const double _saturation_cutoff, 54 boost::function< std::vector<arguments_t>(const argument_t &, const double)> &_triplefunction 52 const ParticleTypes_t &_ParticleTypes 55 53 ); 56 54 SaturationPotential( … … 61 59 const double _morse_dissociation_energy, 62 60 const double _angle_spring_constant, 63 const double _angle_equilibrium_distance, 61 const double _angle_equilibrium_distance 62 ); 63 virtual ~SaturationPotential() {} 64 65 /** Setter for parameters as required by FunctionModel interface. 66 * 67 * \param _params given set of parameters 68 */ 69 void setParameters(const parameters_t &_params); 70 71 /** Getter for parameters as required by FunctionModel interface. 72 * 73 * \return set of parameters 74 */ 75 parameters_t getParameters() const; 76 77 /** Sets the parameter randomly within the sensible range of each parameter. 78 * 79 * \param data container with training data for guesstimating range 80 */ 81 void setParametersToRandomInitialValues(const TrainingData &data); 82 83 /** Getter for the number of parameters of this model function. 84 * 85 * \return number of parameters 86 */ 87 size_t getParameterDimension() const 88 { return MAXPARAMS; } 89 90 /** Sets the magic triple function that we use for getting angle distances. 91 * 92 * \param _saturation_cutoff cutoff for the triplefunction 93 * @param _triplefunction function that returns a list of triples (i.e. the 94 * two remaining distances) to a given pair of points (contained as 95 * indices within the argument) 96 */ 97 void setTriplefunction( 64 98 const double _saturation_cutoff, 65 99 boost::function< std::vector<arguments_t>(const argument_t &, const double)> &_triplefunction 66 ); 67 virtual ~SaturationPotential() {} 68 69 /** Setter for parameters as required by FunctionModel interface. 70 * 71 * \param _params given set of parameters 72 */ 73 void setParameters(const parameters_t &_params); 74 75 /** Getter for parameters as required by FunctionModel interface. 76 * 77 * \return set of parameters 78 */ 79 parameters_t getParameters() const; 80 81 /** Sets the parameter randomly within the sensible range of each parameter. 82 * 83 * \param data container with training data for guesstimating range 84 */ 85 void setParametersToRandomInitialValues(const TrainingData &data); 86 87 /** Getter for the number of parameters of this model function. 88 * 89 * \return number of parameters 90 */ 91 size_t getParameterDimension() const 92 { return MAXPARAMS; } 100 ) 101 { 102 saturation_cutoff = _saturation_cutoff; 103 triplefunction = _triplefunction; 104 } 93 105 94 106 /** Evaluates the harmonic potential function for the given arguments. … … 196 208 197 209 //!> bound function that obtains the triples for the internal coordinationb summation. 198 const boost::function< std::vector< arguments_t >(const argument_t &, const double)> &triplefunction;199 constdouble saturation_cutoff;210 boost::function< std::vector< arguments_t >(const argument_t &, const double)> triplefunction; 211 double saturation_cutoff; 200 212 201 213 //!> static definitions of the parameter name for this potential -
src/Potentials/Specifics/unittests/ManyBodyPotential_TersoffUnitTest.cpp
rd52819 r775dd1a 281 281 (0)(1) 282 282 ; 283 ManyBodyPotential_Tersoff tersoff(types, fct); 283 ManyBodyPotential_Tersoff tersoff(types); 284 tersoff.setTriplefunction(fct); 284 285 tersoff.setParameters(params); 285 286 const_cast<double &>(tersoff.R) = 1.8;
Note:
See TracChangeset
for help on using the changeset viewer.