ESyS-Particle
2.2
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
ViscWallIG.h
Go to the documentation of this file.
1
2
// //
3
// Copyright (c) 2003-2013 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 __VISCWALLIG_H
14
#define __VISCWALLIG_H
15
16
//--- project includes ---
17
#include "
Model/ViscWallInteraction.h
"
18
#include "
Model/EWallInteraction.h
"
19
#include "
Model/WallIG.h
"
20
#include "
Model/EWallInteractionGroup.h
"
21
22
//--- STL includes ---
23
#include <map>
24
25
using
std::map;
26
27
template
<
class
T>
class
ParallelParticleArray
;
28
32
class
CVWallIGP
:
public
CEWallIGP
33
{
34
protected
:
35
int
m_tag
;
36
double
m_nu
;
37
38
public
:
39
CVWallIGP
(
const
string
&,
const
string
&,
double
,
double
,
int
);
40
virtual
void
packInto
(
CVarMPIBuffer
*)
const
;
41
void
setTag
(
int
tag){
m_tag
=tag;};
42
int
getTag
()
const
{
return
m_tag
;};
43
void
setNu
(
double
nu){
m_nu
=nu;};
44
double
getNu
()
const
{
return
m_nu
;};
45
46
friend
ostream&
operator<<
(ostream&,
const
CVWallIGP
&);
47
};
48
49
CVWallIGP
*
extractVWallIGP
(
AMPIBuffer
*);
50
51
// --- Forward decl ---
52
template
<
class
T>
class
CViscWallIG
;
53
template
<
class
T> ostream& operator<<(ostream &, const CViscWallIG<T> &);
54
58
template
<
class
T>
59
class
CViscWallIG
:
public
AWallInteractionGroup
<T>
60
{
61
protected
:
62
vector<CViscWallInteraction<T> >
m_visc_interactions
;
63
vector<CElasticWallInteraction<T> >
m_elastic_interactions
;
64
double
m_k
;
65
double
m_nu
;
66
int
m_tag
;
67
68
public
:
69
CViscWallIG
(
TML_Comm
*);
70
CViscWallIG
(
TML_Comm
*,
CWall
*,
const
CVWallIGP
*);
71
virtual
~CViscWallIG
(){}
72
76
virtual
void
setTimeStepSize
(
double
dt)
77
{
78
}
79
80
virtual
void
calcForces
();
81
virtual
void
applyForce
(
const
Vec3
&);
82
virtual
void
setVelocity
(
const
Vec3
&);
83
virtual
void
Update
(
ParallelParticleArray<T>
*);
84
85
friend
ostream& operator<< <>(ostream &,
const
CViscWallIG
&);
86
};
87
88
#include "
Model/ViscWallIG.hpp
"
89
90
#endif // __VISCWALLIG_H
Model
ViscWallIG.h
Generated on Mon May 6 2013 23:26:30 for ESyS-Particle by
1.8.3.1