Ignore:
Timestamp:
Feb 2, 2016, 5:50:29 PM (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:
9ae11c
Parents:
d1831e (diff), 62d092 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Merge branch 'Enhancing_Interdistance' into Candidate_v1.5.1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Fragmentation/Interfragmenter.hpp

    rd1831e r3690e4  
    1414#endif
    1515
     16#include <list>
     17#include <map>
    1618#include <vector>
    1719
     20#include "AtomIdSet.hpp"
    1821#include "Fragmentation/HydrogenSaturation_enum.hpp"
    1922
     
    5053   */
    5154  void operator()(
    52       size_t MaxOrder,
    53       double Rcut,
     55      const size_t MaxOrder,
     56      const double Rcut,
    5457      const enum HydrogenTreatment treatment);
     58
     59  /** This finds the largest cut off distance (\a Rcut) such that when running
     60   * operator() no additional inter-fragments would be produced.
     61   *
     62   * \param MaxOrder maximum order for fragments to interrelate
     63   * \param _upperbound upper bound on \a Rcut above which we do not look
     64   * \param treatment whether hydrogens are treated specially or not
     65   * \return largest cutoff distance to cause no additional inter-fragments
     66   */
     67  double findLargestCutoff(
     68      const size_t _MaxOrder,
     69      const double _upperbound,
     70      const enum HydrogenTreatment _treatment) const;
    5571
    5672private:
     
    6278  std::vector<atom *> getAtomsFromKeySet(const KeySet &keyset) const;
    6379
     80  typedef std::list<const KeySet *> keysets_t;
     81  typedef std::map<const atom *, keysets_t > atomkeyset_t;
     82
     83  /** Helper function to create a map of atoms and their fragments/keysets.
     84   *
     85   * \param _MaxOrder maximum order
     86   * \return map with atoms as a keys and fragments as values
     87   */
     88  atomkeyset_t getAtomKeySetMap(size_t _MaxOrder) const;
     89
     90  typedef std::vector<const atom *> candidates_t;
     91
     92  /** Helper function to get all atoms around a specific keyset not contained in
     93   * the same molecule.
     94   *
     95   * \param _atoms all atoms of a fragment
     96   * \param _Rcut desired distance cutoff
     97   * \param _treatment whether hydrogens are treated special or not
     98   */
     99  candidates_t getNeighborsOutsideMolecule(
     100      const AtomIdSet &_atoms,
     101      const double _Rcut,
     102      const enum HydrogenTreatment _treatment) const;
     103
     104  /** Helper function to return a fragment/KeySet map specific to all candidates.
     105   *
     106   * \param _candidates all neighboring atoms around keyset
     107   * \param _atomkeyset map with all atoms and the KeySets they are contained in
     108   * \return specific fragment map
     109   */
     110  atomkeyset_t getCandidatesSpecificKeySetMap(
     111      const candidates_t &_candidates,
     112      const atomkeyset_t &_atomkeyset) const;
     113
     114  /** For a given set of candidates atoms in \a _candidates and a \a _keyset
     115   * we combine each fragment from either atom and place it into internal
     116   * Graph.
     117   *
     118   * \param _MaxOrder maximum order
     119   * \param _candidates all atoms neighboring the current out outside of its molecule
     120   * \param _fragmentmap all keysets related to this atom
     121   * \param _keyset current keyset (used as base for creating inter-fragments)
     122   * \param _InterFragments container for all created inter-fragments
     123   * \param _counter counts added fragments
     124   */
     125  void combineFragments(
     126      const size_t _MaxOrder,
     127      const candidates_t &_candidates,
     128      atomkeyset_t &_fragmentmap,
     129      const KeySet &_keyset,
     130      Graph &_InterFragments,
     131      int &_counter);
    64132
    65133private:
Note: See TracChangeset for help on using the changeset viewer.