Go to the documentation of this file.
21 template <
typename TmplPackerBase>
28 ) :
Inherited(particlePoolPtr, nTablePtr),
30 m_periodicDimensions(periodicDimensions),
31 m_tolerance(tolerance)
35 template <
typename TmplPackerBase>
40 template <
typename TmplPackerBase>
46 template <
typename TmplPackerBase>
52 template <
typename TmplPackerBase>
55 return ((
getBBox().getMaxPt().Z() -
getBBox().getMinPt().Z()) <= 0);
58 template <
typename TmplPackerBase>
62 return m_periodicDimensions;
65 template <
typename TmplPackerBase>
73 m_periodicDimensions[0]
77 particle.getPos() -
Vec3(particle.getRad(), 0, 0),
82 particle.getPos() +
Vec3(particle.getRad(), 0, 0),
89 m_periodicDimensions[1]
93 particle.getPos() -
Vec3(0, particle.getRad(), 0),
98 particle.getPos() +
Vec3(0, particle.getRad(), 0),
105 is2d() || m_periodicDimensions[2]
109 particle.getPos() -
Vec3(0, 0, particle.getRad()),
114 particle.getPos() +
Vec3(0, 0, particle.getRad()),
122 template <
typename TmplPackerBase>
128 this->getNTable().getNeighbourVector(
130 particle.getRad() + getTolerance()
132 typename NTable::ParticleVector::const_iterator
iter = neighbours.begin();
133 for (;
iter != neighbours.end();
iter++) {
134 const double interCentreDistSqrd =
135 (particle.getPos() - (*iter)->getPos()).norm2();
136 const double radiusSum =
137 ((particle.getRad() + (*iter)->getRad()) - getTolerance());
138 if (interCentreDistSqrd < (radiusSum*radiusSum)) {
145 template <
typename TmplPackerBase>
152 particleFitsInBBox(particle)
154 particleFitsWithNeighbours(particle)
bool particleFitsInBBox(const Particle &particle) const
Definition: BoxPacker.hpp:66
bool particleFitsWithNeighbours(const Particle &particle) const
Definition: BoxPacker.hpp:123
virtual ~BoxPacker()
Definition: BoxPacker.hpp:36
double getTolerance() const
Definition: BoxPacker.hpp:47
Inherited::ParticlePoolPtr ParticlePoolPtr
Definition: BoxPacker.h:40
Inherited::NTablePtr NTablePtr
Definition: BoxPacker.h:38
Inherited::Particle Particle
Definition: BoxPacker.h:36
3D bounding box
Definition: BoundingBox.h:28
Definition: CheckPointable.cpp:17
const BoundingBox & getBBox() const
Definition: BoxPacker.hpp:41
bool is2d() const
Definition: BoxPacker.hpp:53
std::vector< bool > BoolVector
Definition: BlockGenerator.h:28
TmplPackerBase Inherited
Definition: BoxPacker.h:35
boost::python::object iter(const boost::python::object &pyOb)
Definition: Util.h:25
bool particleFitsInBBoxWithNeighbours(const Particle &particle) const
Definition: BoxPacker.hpp:146
const BoolVector & getPeriodicDimensions() const
Definition: BoxPacker.hpp:60
std::vector< SimpleParticle > ParticleVector
Definition: SimpleNTable3D.h:22
BoxPacker(ParticlePoolPtr particlePoolPtr, NTablePtr nTablePtr, const BoundingBox &bBox, const BoolVector &periodicDimensions, double tolerance)
Definition: BoxPacker.hpp:22
BoundingBox getBBox(const std::string &arg)
Definition: Main.cpp:24