OpenLB 1.7
Loading...
Searching...
No Matches
contactDetection.h
Go to the documentation of this file.
1/* This file is part of the OpenLB library
2 *
3 * Copyright (C) 2015 Thomas Henn
4 * E-mail contact: info@openlb.net
5 * The most recent release of OpenLB can be downloaded at
6 * <http://www.openlb.net/>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program; if not, write to the Free
20 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA.
22 */
23
24#ifndef CONTACTDETECTION_H
25#define CONTACTDETECTION_H
26
27#include "nanoflann_adaptor.hpp"
28
29namespace olb {
30
31template<typename T, template<typename U> class PARTICLETYPE>
32class ParticleSystem3D;
33
34/*
35 * Prototype for future contact detection algorithms
36 **/
37
38template<typename T, template<typename U> class PARTICLETYPE>
40public:
41 ContactDetection(ParticleSystem3D<T, PARTICLETYPE>& pSys) : _pSys(pSys), _name("ContactDetection") {};
42 ContactDetection(ParticleSystem3D<T, PARTICLETYPE>& pSys, std::string name) : _pSys(pSys), _name(name) {};
43
44 virtual void sort() {};
45 virtual int getMatches(int pInt, std::vector<std::pair<size_t, T> >& matches)
46 {
47 return 0;
48 };
49
50 virtual ~ContactDetection() {};
55
56 inline std::string getName()
57 {
58 return _name;
59 }
60
61protected:
63 std::string _name;
64};
65
66} // namespace olb
67
68#endif /*CONTACTDETECTION_H*/
ParticleSystem3D< T, PARTICLETYPE > & _pSys
virtual int getMatches(int pInt, std::vector< std::pair< size_t, T > > &matches)
ContactDetection(ParticleSystem3D< T, PARTICLETYPE > &pSys)
virtual ContactDetection< T, PARTICLETYPE > * generate(ParticleSystem3D< T, PARTICLETYPE > &pSys)
ContactDetection(ParticleSystem3D< T, PARTICLETYPE > &pSys, std::string name)
Top level namespace for all of OpenLB.