OpenLB
1.7
Loading...
Searching...
No Matches
src
particles
subgrid3DLegacyFramework
particleSpecializations
rotatingParticle3D.h
Go to the documentation of this file.
1
/* This file is part of the OpenLB library
2
*
3
* Copyright (C) 2016 Thomas Henn, Mathias J. Krause, Davide Dapelo
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 ROTATING_PARTICLE_3D_H
25
#define ROTATING_PARTICLE_3D_H
26
27
#include <set>
28
#include <vector>
29
#include <list>
30
#include <deque>
31
#include <string>
32
#include <iostream>
33
#include "
particles/subgrid3DLegacyFramework/particle3D.h
"
34
35
namespace
olb
{
36
37
39
40
/*
41
* Rotating Particles
42
*/
43
template
<
typename
T>
44
class
RotatingParticle3D
:
public
Particle3D
<T> {
45
public
:
46
RotatingParticle3D
();
47
RotatingParticle3D
(std::vector<T> pos, T mas = 1., T rad = 1.);
48
RotatingParticle3D
(std::vector<T> pos, std::vector<T> vel, T mas = 1., T rad = 1.);
49
RotatingParticle3D
(
const
RotatingParticle3D<T>
& p);
50
inline
std::vector<T>&
getAVel
();
51
inline
const
std::vector<T>&
getAVel
()
const
;
52
inline
std::vector<T>&
getTorque
();
53
inline
const
std::vector<T>&
getTorque
()
const
;
54
void
serialize
(T serial[]);
55
void
unserialize
(T*);
56
57
static
const
int
serialPartSize
= 19;
58
59
private
:
60
std::vector<T> _aVel;
61
std::vector<T> _torque;
62
};
63
65
template
<
typename
T>
66
class
SimulateParticles
<T,
RotatingParticle3D
> {
67
public
:
68
SimulateParticles
(
ParticleSystem3D<T, RotatingParticle3D>
* ps);
69
inline
void
simulate
(T dT,
bool
scale =
false
);
70
71
private
:
72
ParticleSystem3D<T, RotatingParticle3D>
* _pSys;
73
};
74
75
}
76
#endif
77
olb::Particle3D
Definition
particle3D.h:42
olb::ParticleSystem3D
Definition
particleSystem3D.h:73
olb::RotatingParticle3D
Definition
rotatingParticle3D.h:44
olb::RotatingParticle3D::serialPartSize
static const int serialPartSize
Definition
rotatingParticle3D.h:57
olb::RotatingParticle3D::getAVel
std::vector< T > & getAVel()
Definition
rotatingParticle3D.hh:61
olb::RotatingParticle3D::unserialize
void unserialize(T *)
Definition
rotatingParticle3D.hh:105
olb::RotatingParticle3D::serialize
void serialize(T serial[])
Definition
rotatingParticle3D.hh:85
olb::RotatingParticle3D::RotatingParticle3D
RotatingParticle3D()
Definition
rotatingParticle3D.hh:40
olb::RotatingParticle3D::getTorque
std::vector< T > & getTorque()
Definition
rotatingParticle3D.hh:73
olb::SimulateParticles
Definition
particle3D.h:144
olb::SimulateParticles::SimulateParticles
SimulateParticles(ParticleSystem3D< T, PARTICLETYPE > *ps)
Definition
particle3D.hh:550
olb::SimulateParticles::simulate
void simulate(T dT, bool scale=false)
Definition
particle3D.hh:555
olb
Top level namespace for all of OpenLB.
Definition
boundaryPostProcessors2D.h:34
particle3D.h
Generated on Tue Mar 5 2024 09:57:52 for OpenLB by
1.10.0