Ignore:
Timestamp:
Feb 27, 2013, 12:39:03 PM (12 years ago)
Author:
Frederik Heber <heber@…>
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:
caa00e9
Parents:
b760bc3
git-author:
Frederik Heber <heber@…> (11/30/12 08:41:39)
git-committer:
Frederik Heber <heber@…> (02/27/13 12:39:03)
Message:

FIX: Now default parameters are present for every potential and used for check_derivatives.

  • checking derivatives with exp() is numerically very unstable as large numbers may easily occur. Hence, rather check the derivatives at some fixed but nicely behaved spot that is probably not the minimum.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/LevMartester.cpp

    rb760bc3 rdbf8c8  
    249249      FunctionModel &model = angle;
    250250      FunctionApproximation approximator(AngleData, model);
    251       if (model.isBoxConstraint() && approximator.checkParameterDerivatives())
     251      if (model.isBoxConstraint() && approximator.checkParameterDerivatives()) {
     252        // we set parameters here because we want to test with default ones
     253        angle.setParameters(params);
    252254        approximator(FunctionApproximation::ParameterDerivative);
    253       else {
     255      } else {
    254256        ELOG(0, "We require parameter derivatives for a box constraint minimization.");
    255257        return 1;
     
    300302      FunctionModel &model = morse;
    301303      FunctionApproximation approximator(MorseData, model); // we only give CC distance, hence 1 input dim
    302       if (model.isBoxConstraint() && approximator.checkParameterDerivatives())
     304      if (model.isBoxConstraint() && approximator.checkParameterDerivatives()) {
     305        // we set parameters here because we want to test with default ones
     306        morse.setParameters(params);
    303307        approximator(FunctionApproximation::ParameterDerivative);
    304       else {
     308      } else {
    305309        ELOG(0, "We require parameter derivatives for a box constraint minimization.");
    306310        return 1;
     
    365369
    366370      SaturationPotential saturation(types, 2.5, triplefunction);
    367       saturation.setParameters(params);
    368371      FunctionModel &model = saturation;
    369372      FunctionApproximation approximator(TersoffData, model); // CH4 has 5 atoms, hence 5*4/2 distances
    370       if (model.isBoxConstraint() && approximator.checkParameterDerivatives())
     373      if (model.isBoxConstraint() && approximator.checkParameterDerivatives()) {
     374        // we set parameters here because we want to test with default ones
     375        saturation.setParameters(params);
    371376        approximator(FunctionApproximation::ParameterDerivative);
    372       else {
     377      } else {
    373378        ELOG(0, "We require parameter derivatives for a box constraint minimization.");
    374379        return 1;
Note: See TracChangeset for help on using the changeset viewer.