ESyS-Particle
4.0.1
Main Page
Related Pages
Namespaces
Classes
Files
File List
pis
pi_storage_e.h
1
2
// //
3
// Copyright (c) 2003-2011 by The University of Queensland //
4
// Earth Systems Science Computational Centre (ESSCC) //
5
// http://www.uq.edu.au/esscc //
6
// //
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 //
10
// //
12
13
#ifndef __PARALLEL_INTERACTION_STORAGE_E_H
14
#define __PARALLEL_INTERACTION_STORAGE_E_H
15
16
//--- project includes ---
17
#include "pi_storage.h"
18
#include "tml/comm/cart_comm.h"
19
20
//--- STL includes ---
21
#include <utility>
22
#include <set>
23
#include <vector>
24
using
std::vector;
25
using
std::pair;
26
using
std::make_pair;
27
using
std::set;
28
29
class
AParallelParticleArray
;
30
35
template
<
typename
P,
typename
I>
36
class
ParallelInteractionStorage_E
:
public
TParallelInteractionStorage
<I>
37
{
38
public
:
// types
39
// typedef I ParallelInteractionStorage_E::interaction_type;
40
typedef
TParallelInteractionStorage<I>
Inherited
;
41
typedef
typename
Inherited::InteractionIterator
InteractionIterator
;
42
bool
m_unbreakable;
43
44
private
:
45
46
static
const
int
m_exchg_tag;
47
48
void
exchange_boundary(
int
,
int
);
49
50
protected
:
51
TML_CartComm
m_comm;
52
set<pair<int,int> > m_set;
// evil hack, should be std::vector<int>, not pair<int,int>
53
typename
I::ParameterType m_param;
54
55
public
:
56
ParallelInteractionStorage_E
(
AParallelParticleArray
*,
const
typename
I::ParameterType &);
57
58
virtual
void
setUnbreakable
(
bool
);
59
virtual
void
exchange();
60
virtual
void
rebuild
();
61
virtual
void
tryInsert(
const
I&);
62
virtual
void
tryInsert(
const
std::vector<int>&);
63
virtual
bool
isIn
(
const
std::vector<int>&);
64
virtual
void
setTimeStepSize(
double
dt)
65
{
66
}
67
virtual
void
calcForces
();
68
};
69
70
#include "pis/pi_storage_e.hpp"
71
72
#endif // __PARALLEL_INTERACTION_STORAGE_E_H
Generated on Mon Jun 4 2012 22:48:28 for ESyS-Particle by
1.8.1