Ignore:
Timestamp:
Dec 10, 2012, 10:10:58 AM (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:
d4f31f
Parents:
4f056e
git-author:
Frederik Heber <heber@…> (09/04/12 08:26:23)
git-committer:
Frederik Heber <heber@…> (12/10/12 10:10:58)
Message:

IndexSetContainer now treats super set specially.

  • The super set must not gather its subsets via the gatherSubsets() as by construction all other sets are its subsets! As the super set is very large the power set way is no good idea.
  • added default cstor for SortedVector
  • removed SubsetMap::getMaximumSubsetLevel() as is replaced by ::getMaximumSetLevel() which is the level to sum up to.
  • changed all uses of getMaximumSubsetLevel() to getMaximumSetLevel().
  • TESTFIX: Changed unit test function on getMaximumSubsetLevel() to check on getMaximumSetLevel()
  • removed OrthogonalFullSummator as is fully replacable by OrthogonalSummator.
  • changed IndexSetContainer::createSuperSet a bit.
  • IndexSetContainer::AllIndices is now no more static convenience entity but truely contains the super set (non-statically). ::createSuperSet() is for convenience to be called in cstor for AllIndices.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Fragmentation/Summation/IndexSetContainer.cpp

    r4f056e r19c50e  
    4545#include "Fragmentation/KeySetsContainer.hpp"
    4646
    47 IndexSet::ptr IndexSetContainer::AllIndices(new IndexSet);
    48 
    49 IndexSet::ptr& IndexSetContainer::createSuperSet(const KeySetsContainer &_keysets) const
     47IndexSet::ptr IndexSetContainer::createSuperSet(const KeySetsContainer &_keysets) const
    5048{
    5149  // create superset
    52   //IndexSet::ptr AllIndices(new IndexSet);
     50  IndexSet::ptr _AllIndices(new IndexSet);
    5351  for (KeySetsContainer::ArrayOfIntVectors::const_iterator iter = _keysets.KeySets.begin();
    5452      iter != _keysets.KeySets.end(); ++iter)
     
    5654        keyiter != (*iter).end(); ++keyiter) {
    5755      if (*keyiter != -1)
    58         AllIndices->insert((Index_t)*keyiter);
     56        _AllIndices->insert((Index_t)*keyiter);
    5957    }
    60   LOG(1, "INFO: AllIndices is " << *AllIndices << ".");
     58  LOG(1, "INFO: AllIndices is " << *_AllIndices << ".");
    6159
    62   return AllIndices;
     60  return _AllIndices;
    6361}
    6462
    6563IndexSetContainer::IndexSetContainer(const KeySetsContainer &_keysets) :
    66   SortedVector<IndexSet>(createSuperSet(_keysets))
     64     AllIndices(createSuperSet(_keysets))
    6765{
    68   const size_t SupersetSize = getContainer()[0]->size();
     66  const size_t SupersetSize = AllIndices->size();
    6967  // create container with all keysets
    7068  for (KeySetsContainer::ArrayOfIntVectors::const_iterator iter = _keysets.KeySets.begin();
    7169      iter != _keysets.KeySets.end(); ++iter) {
     70    // create the IndexSets ...
    7271    IndexSet tempset;
    7372    for(KeySetsContainer::IntVector::const_iterator keyiter = (*iter).begin();
     
    7574      if (*keyiter != -1)
    7675        tempset.insert((Index_t)*keyiter);
    77     if (tempset.size() < SupersetSize)  // only insert if not super set
     76    // ... and insert, making sure that super set is AllIndices when present
     77    if (tempset.size() < SupersetSize)
    7878      insert(tempset);
     79    else
     80      insert(AllIndices);
    7981  }
    8082}
Note: See TracChangeset for help on using the changeset viewer.