www.cemf.ir
dynamicPointStructure.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 
22 #ifndef __dynamicPointStructure_hpp__
23 #define __dynamicPointStructure_hpp__
24 
25 #include "Time.hpp"
26 #include "pointFields.hpp"
27 #include "integration.hpp"
28 #include "uniquePtr.hpp"
29 
30 namespace pFlow
31 {
32 
33 class systemControl;
34 
36 :
37  public pointStructure
38 {
39 private:
40 
42 
44 
46 
48 
51 
52 public:
53 
54  TypeInfo("dynamicPointStructure");
55 
57 
58  dynamicPointStructure(const dynamicPointStructure& ps) = delete;
59 
60  // - no move construct
62 
65 
66  // - no move assignment
68 
69  // - destructor
70  ~dynamicPointStructure() override = default;
71 
72 
73  inline
75  {
76  return velocity_;
77  }
78 
79  inline
81  {
82  return velocity_;
83  }
84 
86  bool beforeIteration() override;
87 
90  bool iterate() override;
91 
94 
97 
98 };
99 
100 }
101 
102 
103 #endif
pFlow::grainParticlesKernels::acceleration
void acceleration(const realx3 &g, const deviceViewType1D< real > &mass, const deviceViewType1D< realx3 > &force, const deviceViewType1D< real > &I, const deviceViewType1D< realx3 > &torque, const pFlagTypeDevice &incld, deviceViewType1D< realx3 > lAcc, deviceViewType1D< realx3 > rAcc)
Definition: grainParticlesKernels.cpp:62
pFlow::dynamicPointStructure::velocity
const realx3PointField_D & velocity() const
Definition: dynamicPointStructure.hpp:74
pFlow::real
float real
Definition: builtinTypes.hpp:45
pFlow::dynamicPointStructure::operator=
dynamicPointStructure & operator=(const dynamicPointStructure &)=delete
pFlow::demComponent::control
const auto & control() const
Const ref to systemControl.
Definition: demComponent.hpp:88
pFlow::dynamicPointStructure::velocity_
realx3PointField_D velocity_
Definition: dynamicPointStructure.hpp:41
pFlow::dynamicPointStructure::velocity
realx3PointField_D & velocity()
Definition: dynamicPointStructure.hpp:80
pFlow::dynamicPointStructure::integrationMethod_
word integrationMethod_
integration method for velocity and position
Definition: dynamicPointStructure.hpp:50
pFlow::word
std::string word
Definition: builtinTypes.hpp:64
pFlow::systemControl
Definition: systemControl.hpp:41
pointFields.hpp
pFlow::dynamicPointStructure::iterate
bool iterate() override
This is called in time loop.
Definition: dynamicPointStructure.cpp:94
pFlow::dynamicPointStructure::dynamicPointStructure
dynamicPointStructure(systemControl &control)
Definition: dynamicPointStructure.cpp:25
pFlow::dynamicPointStructure::beforeIteration
bool beforeIteration() override
In the time loop before iterate.
Definition: dynamicPointStructure.cpp:83
pFlow::dynamicPointStructure::predict
bool predict(real dt, realx3PointField_D &acceleration)
prediction step (if any), is called in beforeIteration
Definition: dynamicPointStructure.cpp:104
pFlow::dynamicPointStructure
Definition: dynamicPointStructure.hpp:35
pFlow
Definition: demGeometry.hpp:27
uniquePtr.hpp
pFlow::pointField
Definition: pointField.hpp:33
pFlow::pointStructure
Definition: pointStructure.hpp:34
pFlow::Timer
Definition: Timer.hpp:33
pFlow::dynamicPointStructure::correct
bool correct(real dt, realx3PointField_D &acceleration)
correction step, is called in iterate
Definition: dynamicPointStructure.cpp:116
Time.hpp
pFlow::dynamicPointStructure::integrationVel_
uniquePtr< integration > integrationVel_
Definition: dynamicPointStructure.hpp:45
pFlow::dynamicPointStructure::velocityUpdateTimer_
Timer velocityUpdateTimer_
Definition: dynamicPointStructure.hpp:47
pFlow::uniquePtr
Definition: uniquePtr.hpp:42
pFlow::dynamicPointStructure::integrationPos_
uniquePtr< integration > integrationPos_
Definition: dynamicPointStructure.hpp:43
integration.hpp
pFlow::dynamicPointStructure::TypeInfo
TypeInfo("dynamicPointStructure")
pFlow::dynamicPointStructure::~dynamicPointStructure
~dynamicPointStructure() override=default
pFlow::demComponent::dt
real dt() const
Time step of integration.
Definition: demComponent.cpp:33