Changeset f48ad3 for src/LevMartester.cpp
- Timestamp:
- Dec 19, 2012, 3:26:11 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:
- d03292
- Parents:
- eb1efe
- git-author:
- Frederik Heber <heber@…> (10/05/12 16:40:53)
- git-committer:
- Frederik Heber <heber@…> (12/19/12 15:26:11)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified src/LevMartester.cpp ¶
reb1efe rf48ad3 58 58 #include "FunctionApproximation/FunctionApproximation.hpp" 59 59 #include "FunctionApproximation/FunctionModel.hpp" 60 #include "Helpers/defs.hpp" 60 61 #include "Potentials/Specifics/PairPotential_Morse.hpp" 61 62 #include "Potentials/Specifics/ManyBodyPotential_Tersoff.hpp" … … 307 308 308 309 // now perform the function approximation by optimizing the model function 309 PairPotential_Morse morse(1., 2.9, 0.5, -80.); 310 FunctionModel::parameters_t params(PairPotential_Morse::MAXPARAMS, 0.); 311 params[PairPotential_Morse::dissociation_energy] = 0.5; 312 params[PairPotential_Morse::energy_offset] = -1.; 313 params[PairPotential_Morse::spring_constant] = 1.; 314 params[PairPotential_Morse::equilibrium_distance] = 2.9; 315 PairPotential_Morse morse; 316 morse.setParameters(params); 310 317 FunctionModel &model = morse; 311 318 FunctionApproximation approximator(1, 1, model); 312 319 approximator.setTrainingData(DistanceEnergyVector.first,DistanceEnergyVector.second); 313 approximator( );314 const FunctionModel::parameters_tparams = model.getParameters();320 approximator(FunctionApproximation::ParameterDerivative); 321 params = model.getParameters(); 315 322 316 323 LOG(0, "RESULT: Best parameters are " << params << "."); … … 318 325 319 326 /******************* TERSOFF TRAINING *******************/ 327 FunctionModel::parameters_t params(ManyBodyPotential_Tersoff::MAXPARAMS, 0.); 320 328 { 321 329 // then we ought to pick the right HomologyGraph ... … … 361 369 boost::function< std::vector<FunctionModel::arguments_t>(const argument_t &, const double)> triplefunction = 362 370 boost::bind(&getTripleFromArgument, DistanceEnergyVector.first, _1, _2); 371 // params[ManyBodyPotential_Tersoff::R] = 1./AtomicLengthToAngstroem; 372 // params[ManyBodyPotential_Tersoff::S] = 2./AtomicLengthToAngstroem; 373 params[ManyBodyPotential_Tersoff::A] = 1.393600e+03; 374 params[ManyBodyPotential_Tersoff::B] = 3.467000e+02; 375 params[ManyBodyPotential_Tersoff::lambda] = 3.487900e+00; 376 params[ManyBodyPotential_Tersoff::mu] = 2.211900e+00; 377 // params[ManyBodyPotential_Tersoff::lambda3] = 0.; 378 // params[ManyBodyPotential_Tersoff::alpha] = 0.; 379 params[ManyBodyPotential_Tersoff::beta] = 1.572400e-07; 380 // params[ManyBodyPotential_Tersoff::chi] = 1.; 381 // params[ManyBodyPotential_Tersoff::omega] = 1.; 382 params[ManyBodyPotential_Tersoff::n] = 7.275100e-01; 383 params[ManyBodyPotential_Tersoff::c] = 3.804900e+04; 384 params[ManyBodyPotential_Tersoff::d] = 4.384000e+00; 385 params[ManyBodyPotential_Tersoff::h] =-5.705800e-01; 363 386 ManyBodyPotential_Tersoff tersoff(triplefunction); 387 tersoff.setParameters(params); 364 388 FunctionModel &model = tersoff; 365 389 FunctionApproximation approximator( … … 368 392 model); // CH4 has 5 atoms, hence 5*4/2 distances 369 393 approximator.setTrainingData(DistanceEnergyVector.first,DistanceEnergyVector.second); 370 approximator( );371 const FunctionModel::parameters_tparams = model.getParameters();394 approximator(FunctionApproximation::FiniteDifferences); 395 params = model.getParameters(); 372 396 373 397 LOG(0, "RESULT: Best parameters are " << params << ".");
Note:
See TracChangeset
for help on using the changeset viewer.