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 __CIRCMNTABLEXY2D_H
14
#define __CIRCMNTABLEXY2D_H
16
// --- Project includes ---
17
#include "CircMNTable2D.h"
20
\class CircMNTableXY2D
21
\brief circular 2D Multi-group Neighbour table
23
Neighbour table supporting multiple tagged groups of particles and circular boundary
24
conditions in both x- and y- direction
26
class CircMNTableXY2D : public CircMNTable2D
29
Vector3 m_shift_vec_y;
31
virtual void set_y_circ();
32
virtual int getIndex(const Vector3&) const;
36
CircMNTableXY2D(const Vector3&,const Vector3&,double,unsigned int);
37
virtual ~CircMNTableXY2D();
39
virtual bool insert(const Sphere&,unsigned int);
40
virtual bool insertChecked(const Sphere&,unsigned int,double tol=s_small_value);
41
virtual bool checkInsertable(const Sphere&,unsigned int);
42
virtual void generateBonds(int,double,int);
45
friend ostream& operator << (ostream&,const CircMNTableXY2D&);
48
#endif // __CIRCMNTABLEXY2D_H