www.cemf.ir
vibratingMotion.hpp
Go to the documentation of this file.
1 /*------------------------------- phasicFlow ---------------------------------
2  O C enter of
3  O O E ngineering and
4  O O M ultiscale modeling of
5  OOOOOOO F luid flow
6 ------------------------------------------------------------------------------
7  Copyright (C): www.cemf.ir
8  email: hamid.r.norouzi AT gmail.com
9 ------------------------------------------------------------------------------
10 Licence:
11  This file is part of phasicFlow code. It is a free software for simulating
12  granular and multiphase flows. You can redistribute it and/or modify it under
13  the terms of GNU General Public License v3 or any other later versions.
14 
15  phasicFlow is distributed to help others in their research in the field of
16  granular and multiphase flows, but WITHOUT ANY WARRANTY; without even the
17  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
18 
19 -----------------------------------------------------------------------------*/
20 
21 #ifndef __vibratingMotion_hpp__
22 #define __vibratingMotion_hpp__
23 
24 
25 #include "MotionModel.hpp"
26 #include "vibrating.hpp"
27 #include "fileDictionary.hpp"
28 
29 
30 
31 
32 namespace pFlow
33 {
34 
35 
65 :
66  public fileDictionary,
67  public MotionModel<vibratingMotion, vibrating>
68 {
69 
70 protected:
71 
73 
74  bool impl_isMoving()const
75  {
76  return true;
77  }
78 
80  bool impl_move(uint32, real, real)const
81  {
82  return true;
83  }
84 
85 
86 public:
87 
89  TypeInfo("vibratingMotion");
90 
92 
94  const objectFile& objf,
95  const dictionary& dict,
96  repository* owner);
97 
99  ~vibratingMotion()override = default;
100 
101  using fileDictionary::write;
102 
103  bool write(iOstream& os, const IOPattern& iop)const override;
104 
105 
106 
107  static
109  {
110  return vibrating();
111  }
112 
113  // TODO: make this protected
114  void impl_setTime(uint32 iter, real t, real dt)const;
115 };
116 
117 } // pFlow
118 
119 #endif //__vibratingMotion_hpp__
pFlow::vibratingMotion
Vibrating motion model for walls.
Definition: vibratingMotion.hpp:64
pFlow::vibratingMotion::impl_setTime
void impl_setTime(uint32 iter, real t, real dt) const
Definition: vibratingMotion.cpp:4
pFlow::real
float real
Definition: builtinTypes.hpp:45
pFlow::vibrating
Vibrating model for a wall.
Definition: vibrating.hpp:65
pFlow::vibratingMotion::impl_isMoving
bool impl_isMoving() const
Definition: vibratingMotion.hpp:74
pFlow::uint32
unsigned int uint32
Definition: builtinTypes.hpp:56
pFlow::vibratingMotion::noneComponent
static auto noneComponent()
Definition: vibratingMotion.hpp:108
pFlow
Definition: demGeometry.hpp:27
vibrating.hpp
MotionModel.hpp
pFlow::dictionary::dict
virtual dictionary & dict()
ref to this dictionary, if it is a dictionary
Definition: dictionary.cpp:369
pFlow::IOPattern
Definition: IOPattern.hpp:32
pFlow::IOobject::owner
const repository * owner() const override
Definition: IOobject.hpp:76
pFlow::vibratingMotion::vibratingMotion
vibratingMotion(const objectFile &objf, repository *owner)
Definition: vibratingMotion.cpp:21
pFlow::objectFile
Definition: objectFile.hpp:30
pFlow::vibratingMotion::impl_move
bool impl_move(uint32, real, real) const
move the component itself
Definition: vibratingMotion.hpp:80
pFlow::vibratingMotion::~vibratingMotion
~vibratingMotion() override=default
Destructor.
fileDictionary.hpp
pFlow::fileDictionary
Definition: fileDictionary.hpp:29
pFlow::vibratingMotion::TypeInfo
TypeInfo("vibratingMotion")
Type info.
pFlow::MotionModel
Motion model abstract class (CRTP) for all the motion models.
Definition: MotionModel.hpp:39
pFlow::repository
Definition: repository.hpp:34
pFlow::fileDictionary::write
bool write(iOstream &os, const IOPattern &iop) const override
write to stream
Definition: fileDictionary.cpp:75
pFlow::iOstream
Interface class for any output stream.
Definition: iOstream.hpp:59
pFlow::dictionary
Dictionary holds a set of data entries or sub-dictionaries that are enclosed in a curely braces or ar...
Definition: dictionary.hpp:67
pFlow::vibratingMotion::write
bool write(iOstream &os, const IOPattern &iop) const override
Definition: vibratingMotion.cpp:51