source: src/Atom/atom_bondedparticleinfo.hpp@ ff4fff9

CombiningParticlePotentialParsing
Last change on this file since ff4fff9 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
Line 
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
21//#include "atom_observable.hpp"
22#include "Bond/bond.hpp"
23
24#include <list>
25#include <vector>
26
27/****************************************** forward declarations *****************************/
28
29class BondedParticle;
30
31typedef std::list<bond::ptr > BondList;
32
33/********************************************** declarations *******************************/
34
35class BondedParticleInfo // : public virtual AtomObservable // must be virtual(!)
36{
37 friend class BondedParticle;
38public:
39 unsigned char AdaptiveOrder; //!< current present bond order at site (0 means "not set")
40 unsigned char MaxOrder; //!< desired maximum order of this atom (0 means "not set")
41
42 BondedParticleInfo();
43 virtual ~BondedParticleInfo();
44
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 */
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;
60
61 /** Const accessor to ListOfBonds of WorldTime::CurrentTime.
62 *
63 * @return ListOfBonds[WorldTime::CurrentTime]
64 */
65 const BondList& getListOfBonds() const;
66
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 */
74// BondList& getListOfBonds();
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;
82
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 */
91// BondList& getListOfBondsAtStep(unsigned int _step);
92
93protected:
94 /** Function used by this and inheriting classes to extend the ListOfBonds
95 * vector.
96 */
97 void AppendTrajectoryStep(const unsigned int _step);
98
99 /** Function used by this and inheriting classes to reduce the ListOfBonds
100 * vector by one.
101 */
102 void removeTrajectoryStep(const unsigned int _step);
103
104 typedef std::map<unsigned int, BondList> BondTrajectory_t;
105 BondTrajectory_t ListOfBonds; //!< list of all bonds
106 static BondList emptyList; //!< empty list to return when step is not present
107};
108
109
110#endif /* ATOM_BONDEDPARTICLEINFO_HPP_ */
Note: See TracBrowser for help on using the repository browser.