1
/////////////////////////////////////////////////////////////
3
// Copyright (c) 2007-2011 by The University of Queensland //
4
// Earth Systems Science Computational Centre (ESSCC) //
5
// http://www.uq.edu.au/esscc //
7
// Primary Business: Brisbane, Queensland, Australia //
8
// Licensed under the Open Software License version 3.0 //
9
// http://www.opensource.org/licenses/osl-3.0.php //
11
/////////////////////////////////////////////////////////////
13
#ifndef __FULLCIRCMNTABLE3D_H
14
#define __FULLCIRCMNTABLE3D_H
16
// --- Project includes ---
17
#include "CircMNTable3D.h"
20
\class FullCircMNTable3D
21
\brief circular 3D Multi-group Neighbour table
23
Neighbour table supporting multiple tagged groups of particles and circular boundary
24
conditions in x, y and z
26
class FullCircMNTable3D : public CircMNTable3D
29
Vector3 m_shift_y,m_shift_z;
31
virtual void set_y_circ();
32
virtual void set_z_circ();
33
virtual int getIndex(const Vector3&) const;
37
FullCircMNTable3D(const Vector3&,const Vector3&,double,unsigned int);
38
virtual ~FullCircMNTable3D();
40
virtual bool insert(const Sphere&,unsigned int);
41
virtual bool insertChecked(const Sphere&,unsigned int,double tol=s_small_value);
42
virtual bool checkInsertable(const Sphere&,unsigned int);
43
virtual void generateBonds(int,double,int);
46
// friend ostream& operator << (ostream&,const FullCircMNTable3D&);
49
#endif // __FULLCIRCMNTABLE3D_H