19 #include <boost/limits.hpp>
25 template <
typename TmplGrain>
33 template <
typename TmplGrain>
37 : m_particlePoolPtr(particlePoolPtr),
43 template <
typename TmplGrain>
48 : m_particlePoolPtr(particlePoolPtr),
49 m_grainPoolPtr(grainPoolPtr),
54 template <
typename TmplGrain>
58 return m_particlePoolPtr;
61 template <
typename TmplGrain>
65 return m_grainPoolPtr;
68 template <
typename TmplGrain>
73 template <
typename TmplGrain>
76 return m_grainVector.size();
79 template <
typename TmplGrain>
84 GrainConstIterator it = getGrainIterator();
86 i += it.next().getNumParticles()
93 template <
typename TmplGrain>
97 if (m_grainPoolPtr->is_from(&g))
99 m_grainVector.push_back(&g);
105 "GrainCollection<TmplGrain>::insertRef: Tried to insert"
106 " reference to non-created grain."
111 template <
typename TmplGrain>
115 Grain *pGrain = m_grainPoolPtr->construct(getParticlePoolPtr());
120 template <
typename TmplGrain>
124 Grain *pGrain = m_grainPoolPtr->construct(
id, getParticlePoolPtr());
129 template <
typename TmplGrain>
133 Grain *pGrain = m_grainPoolPtr->construct(g);
138 template <
typename TmplGrain>
145 template <
typename TmplGrain>