Changeset e2c2b1


Ignore:
Timestamp:
Feb 7, 2016, 5:57:03 AM (9 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:
50c45f
Parents:
69a420
git-author:
Frederik Heber <heber@…> (12/14/15 09:57:37)
git-committer:
Frederik Heber <heber@…> (02/07/16 05:57:03)
Message:

World's ObservedContainer no longer observe.

  • This requires CodePatterns 1.3.1 from now on.
  • I had misunderstood what Till had planed with these ObservedContainers for a long time: I though they would cause an OBSERVE signal for every iterator step but this is not the case. Rather they accumulate all OBSERVE signals to have them fire AFTER the loop is done. This is achieved through the depth count of the observer protectors.
  • Sadly, this runs against what we do with the lastchangedatom. We need the information right away as we the Observer/Observable stuff does not transport any information and always updating all is way too costly.
  • Hence, in CodePatterns we have implemented an UnobservedIterator which is used in ObservedContainer and does not cause any OBSERVE signals.
  • The source of the problem was createAtom() in a loop over selectedAtoms and these atoms not getting created (w.r.t QtInstanceBoard) before the molecule's got note of it (cause they are at depth 1).
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • configure.ac

    r69a420 re2c2b1  
    242242
    243243
    244 # CodePatterns library (requiring ObservedValue.hpp)
    245 AM_PATH_CODEPATTERNS([1.3.0], $have_debug,,[AC_MSG_ERROR([Missing CodePatterns library, please specify PKG_CONFIG_PATH or use --with-codepatterns...])])
     244# CodePatterns library (requiring UnobservedIterator)
     245AM_PATH_CODEPATTERNS([1.3.1], $have_debug,,[AC_MSG_ERROR([Missing CodePatterns library, please specify PKG_CONFIG_PATH or use --with-codepatterns...])])
    246246
    247247# JobMarket library (needs boost/archive/iserializer.hpp before MemDebug.hpp)
  • src/World.cpp

    r69a420 re2c2b1  
    10121012CONSTRUCT_SINGLETON(World)
    10131013
    1014 CONSTRUCT_OBSERVEDCONTAINER(World::AtomSTLSet)
    1015 
    1016 CONSTRUCT_OBSERVEDCONTAINER(World::MoleculeSTLSet)
     1014CONSTRUCT_OBSERVEDCONTAINER(World::AtomSTLSet, UnobservedIterator<World::AtomSTLSet> )
     1015
     1016CONSTRUCT_OBSERVEDCONTAINER(World::MoleculeSTLSet, UnobservedIterator<World::MoleculeSTLSet> )
    10171017
    10181018/******************************* deprecated Legacy Stuff ***********************/
  • src/World.hpp

    r69a420 re2c2b1  
    105105
    106106  // Types for Atom and Molecule structures
    107   typedef ObservedContainer< AtomSTLSet > AtomSet;
    108   typedef ObservedContainer< MoleculeSTLSet > MoleculeSet;
     107  typedef ObservedContainer< AtomSTLSet, UnobservedIterator<AtomSTLSet> > AtomSet;
     108  typedef ObservedContainer< MoleculeSTLSet, UnobservedIterator<MoleculeSTLSet> > MoleculeSet;
    109109
    110110  typedef ATOMSET(std::vector) AtomComposite;
Note: See TracChangeset for help on using the changeset viewer.