HorizontalBaseScrew.h
Go to the documentation of this file.
1 // This file is part of the MercuryDPM project (https://www.mercurydpm.org).
2 // Copyright (c), The MercuryDPM Developers Team. All rights reserved.
3 // License: BSD 3-Clause License; see the LICENSE file in the root directory.
4 
5 #ifndef HorizontalBaseScrew_H
6 #define HorizontalBaseScrew_H
7 
9 #include "InteractionHandler.h"
10 #include "Math/Vector.h"
11 
18 {
19 public:
24 
29 
33  HorizontalBaseScrew(Vec3D position, Vec3D orientation, std::vector<normalAndPosition> walls, const ParticleSpecies* species, Mdouble sinA2Max, Mdouble timeMin);
34 
39 
44 
48  HorizontalBaseScrew* copy() const final;
49 
55  bool getDistanceAndNormal(const BaseParticle& P, Mdouble& distance, Vec3D& normal_return) const final;
56 
60  void read(std::istream& is) final;
61 
65  void write(std::ostream& os) const final;
66 
70  std::string getName() const final;
71 
72  void setAxis(Vec3D a);
73 
75  void convertLimits (Vec3D& min, Vec3D& max) const;
76 
77  void writeVTK (VTKContainer& vtk) const override;
78 
79  //BEGIN CHANGE
82  //END CHANGE
83 };
84 
85 
86 #endif
float * p
Definition: Tutorial_Map_using.cpp:9
Definition: BaseParticle.h:33
A HorizontalBaseScrew is a copy of AxisymmetricIntersectionOfWalls, with an additional,...
Definition: HorizontalBaseScrew.h:18
HorizontalBaseScrew & operator=(const HorizontalBaseScrew &other)
Copy assignment operator.
Definition: HorizontalBaseScrew.cc:47
std::string getName() const final
Returns the name of the object.
Definition: HorizontalBaseScrew.cc:147
HorizontalBaseScrew * copy() const final
Wall copy method. It calls the copy constructor of this Wall, useful for polymorphism.
Definition: HorizontalBaseScrew.cc:62
bool getDistanceAndNormal(const BaseParticle &P, Mdouble &distance, Vec3D &normal_return) const final
Computes the distance from the wall for a given BaseParticle and returns true if there is a collision...
Definition: HorizontalBaseScrew.cc:77
~HorizontalBaseScrew()
Destructor.
Definition: HorizontalBaseScrew.cc:39
Mdouble sinA2Max_
Definition: HorizontalBaseScrew.h:80
Mdouble timeMin_
Definition: HorizontalBaseScrew.h:81
HorizontalBaseScrew()
Default constructor.
Definition: HorizontalBaseScrew.cc:10
void writeVTK(VTKContainer &vtk) const override
Definition: HorizontalBaseScrew.cc:188
void read(std::istream &is) final
reads wall
Definition: HorizontalBaseScrew.cc:130
void setAxis(Vec3D a)
Definition: HorizontalBaseScrew.cc:152
void convertLimits(Vec3D &min, Vec3D &max) const
Definition: HorizontalBaseScrew.cc:157
void write(std::ostream &os) const final
outputs wall
Definition: HorizontalBaseScrew.cc:139
A IntersectionOfWalls is convex polygon defined as an intersection of InfiniteWall's.
Definition: IntersectionOfWalls.h:38
Definition: ParticleSpecies.h:16
Definition: Kernel/Math/Vector.h:30
#define min(a, b)
Definition: datatypes.h:22
#define max(a, b)
Definition: datatypes.h:23
const Scalar * a
Definition: level2_cplx_impl.h:32
double P
Uniform pressure.
Definition: TwenteMeshGluing.cpp:77
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
Definition: BaseWall.h:17