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
ParallelInteractionStorage_E