source: src/Atom/atom_bondedparticleinfo.hpp@ 2fe4a5

Action_Thermostats Add_AtomRandomPerturbation Add_FitFragmentPartialChargesAction Add_RotateAroundBondAction Add_SelectAtomByNameAction Added_ParseSaveFragmentResults Adding_Graph_to_ChangeBondActions Adding_MD_integration_tests Adding_StructOpt_integration_tests 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_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 FragmentMolecule_checks_bonddegrees GeometryObjects Gui_Fixes Gui_displays_atomic_force_velocity IndependentFragmentGrids IndependentFragmentGrids_IndividualZeroInstances IndependentFragmentGrids_IntegrationTest IndependentFragmentGrids_Sole_NN_Calculation JobMarket_RobustOnKillsSegFaults JobMarket_StableWorkerPool JobMarket_unresolvable_hostname_fix ODR_violation_mpqc_open PartialCharges_OrthogonalSummation PythonUI_with_named_parameters QtGui_reactivate_TimeChanged_changes Recreated_GuiChecks 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
Last change on this file since 2fe4a5 was 8cc22f, checked in by Frederik Heber <heber@…>, 10 years ago

Changed how trajectories are stored, not as vecor but as map.

  • Property mode set to 100644
File size: 3.3 KB
RevLine 
[6b919f8]1/*
2 * atom_bondedparticleinfo.hpp
3 *
4 * Created on: Oct 19, 2009
5 * Author: heber
6 */
7
8#ifndef ATOM_BONDEDPARTICLEINFO_HPP_
9#define ATOM_BONDEDPARTICLEINFO_HPP_
10
11
12using namespace std;
13
14/*********************************************** includes ***********************************/
15
16// include config.h
17#ifdef HAVE_CONFIG_H
18#include <config.h>
19#endif
20
[7d82a5]21//#include "atom_observable.hpp"
[88c8ec]22#include "Bond/bond.hpp"
[7188b1]23
[6b919f8]24#include <list>
[9e3fca]25#include <vector>
[6b919f8]26
27/****************************************** forward declarations *****************************/
28
[9d83b6]29class BondedParticle;
[6b919f8]30
[9e3fca]31typedef std::list<bond::ptr > BondList;
[6b919f8]32
33/********************************************** declarations *******************************/
34
[7d82a5]35class BondedParticleInfo // : public virtual AtomObservable // must be virtual(!)
36{
[9d83b6]37 friend class BondedParticle;
[6b919f8]38public:
39 unsigned char AdaptiveOrder; //!< current present bond order at site (0 means "not set")
[d760bb]40 unsigned char MaxOrder; //!< desired maximum order of this atom (0 means "not set")
[6b919f8]41
42 BondedParticleInfo();
[d74077]43 virtual ~BondedParticleInfo();
[6b919f8]44
[1e6249]45 /** Pushes back another step in all trajectory vectors.
46 *
47 * This allows to extend all trajectories contained in different classes
48 * consistently. This is implemented by the topmost class which calls the
49 * real functions, \sa AppendTrajectoryStep(), by all necessary subclasses.
50 */
[8cc22f]51 virtual void UpdateStep(const unsigned int _step)=0;
52
53 /** Pops the last step in all trajectory vectors.
54 *
55 * This allows to decrease all trajectories contained in different classes
56 * by one consistently. This is implemented by the topmost class which calls
57 * the real functions, \sa removeTrajectoryStep(), by all necessary subclasses.
58 */
59 virtual void removeStep(const unsigned int _step)=0;
[1e6249]60
[9d83b6]61 /** Const accessor to ListOfBonds of WorldTime::CurrentTime.
62 *
63 * @return ListOfBonds[WorldTime::CurrentTime]
64 */
65 const BondList& getListOfBonds() const;
[5e2f80]66
[9d83b6]67 /** Accessor to ListOfBonds of WorldTime::CurrentTime.
68 *
69 * Note, new empty BondList is returned if array entry at upper boundary is
70 * accessed. Beyond std will issue exception due to out-of-range access.
71 *
72 * @return ListOfBonds[WorldTime::CurrentTime]
73 */
[5e2f80]74// BondList& getListOfBonds();
[9d83b6]75
76 /** Const Accessor ListOfBonds of any present time step.
77 *
78 * @param _step time step to access
79 * @return ListOfBonds[_step].
80 */
81 const BondList& getListOfBondsAtStep(unsigned int _step) const;
[5e2f80]82
[9d83b6]83 /** Accessor ListOfBonds of any present time step.
84 *
85 * Note, new empty BondList is returned if array entry at upper boundary is
86 * accessed. Beyond std will issue exception due to out-of-range access.
87 *
88 * @param _step time step to access
89 * @return ListOfBonds[_step].
90 */
[5e2f80]91// BondList& getListOfBondsAtStep(unsigned int _step);
[9d83b6]92
[9a3a53]93protected:
[1e6249]94 /** Function used by this and inheriting classes to extend the ListOfBonds
95 * vector.
96 */
[8cc22f]97 void AppendTrajectoryStep(const unsigned int _step);
[1e6249]98
[7e51e1]99 /** Function used by this and inheriting classes to reduce the ListOfBonds
100 * vector by one.
101 */
[8cc22f]102 void removeTrajectoryStep(const unsigned int _step);
[7e51e1]103
[8cc22f]104 typedef std::map<unsigned int, BondList> BondTrajectory_t;
105 BondTrajectory_t ListOfBonds; //!< list of all bonds
[5e2f80]106 static BondList emptyList; //!< empty list to return when step is not present
[6b919f8]107};
108
109
110#endif /* ATOM_BONDEDPARTICLEINFO_HPP_ */
Note: See TracBrowser for help on using the repository browser.