www.cemf.ir
interaction.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 __interaction_hpp__
22 #define __interaction_hpp__
23 
24 #include "demComponent.hpp"
25 #include "property.hpp"
26 #include "observer.hpp"
27 #include "systemControl.hpp"
28 #include "contactSearch.hpp"
29 
30 
31 
32 namespace pFlow
33 {
34 
35 class particles;
36 class geometry;
37 
39 :
40  public property,
41  public observer,
42  public demComponent
43 
44 {
45 private:
46 
49 
52 
53  static inline
55 
56 public:
57 
58  TypeInfo("interaction");
59 
60 
62 
65  const particles& prtcl,
66  const geometry& geom );
67 
68  ~interaction() override = default;
69 
71  (
74  (
76  const particles& prtcl,
77  const geometry& geom
78  ),
79  (control, prtcl, geom)
80  );
81 
82  inline
83  const auto& Particles()const
84  {
85  return particles_;
86  }
87 
88  inline
89  const auto& Geometry()const
90  {
91  return geometry_;
92  }
93 
94  static
97  const particles& prtcl,
98  const geometry& geom);
99 
100 };
101 
102 
103 }
104 
105 #endif //__interaction_hpp__
pFlow::observer
Definition: observer.hpp:33
pFlow::message
Definition: message.hpp:33
pFlow::demComponent::control
const auto & control() const
Const ref to systemControl.
Definition: demComponent.hpp:88
pFlow::interaction::~interaction
~interaction() override=default
pFlow::interaction::geometry_
const geometry & geometry_
reference to geometry object
Definition: interaction.hpp:51
systemControl.hpp
observer.hpp
pFlow::interaction::create
static uniquePtr< interaction > create(systemControl &control, const particles &prtcl, const geometry &geom)
Definition: interaction.cpp:48
pFlow::systemControl
Definition: systemControl.hpp:41
pFlow::interaction::Geometry
const auto & Geometry() const
Definition: interaction.hpp:89
pFlow::interaction::TypeInfo
TypeInfo("interaction")
pFlow::message::ITEM_REARRANGE
@ ITEM_REARRANGE
Definition: message.hpp:44
pFlow
Definition: demGeometry.hpp:27
pFlow::interaction::create_vCtor
create_vCtor(interaction, systemControl,(systemControl &control, const particles &prtcl, const geometry &geom),(control, prtcl, geom))
pFlow::particles
Definition: particles.hpp:33
pFlow::demComponent
A base class for every main component of DEM system.
Definition: demComponent.hpp:42
pFlow::interaction::Particles
const auto & Particles() const
Definition: interaction.hpp:83
pFlow::interaction::msg_
static const message msg_
Definition: interaction.hpp:54
pFlow::interaction::particles_
const particles & particles_
reference to particles object
Definition: interaction.hpp:48
pFlow::property
property holds the pure properties of materials.
Definition: property.hpp:37
demComponent.hpp
pFlow::uniquePtr
Definition: uniquePtr.hpp:42
pFlow::geometry
Base class for geometry for managing tri-surfaces, geometry motion, and surface physical properties.
Definition: geometry.hpp:44
contactSearch.hpp
property.hpp
pFlow::interaction::interaction
interaction(systemControl &control, const particles &prtcl, const geometry &geom)
Definition: interaction.cpp:27
pFlow::interaction
Definition: interaction.hpp:38