64 {
return "TriangleWall"; }
69 void read(std::istream& is)
override;
74 void write(std::ostream& os)
const override;
113 void rotate(
const Vec3D& angularVelocity)
override;
int i
Definition: BiCGSTAB_step_by_step.cpp:9
double Mdouble
Definition: GeneralDefine.h:13
float * p
Definition: Tutorial_Map_using.cpp:9
Matrix< SCALARA, Dynamic, Dynamic, opt_A > A
Definition: bench_gemm.cpp:47
Definition: BaseParticle.h:33
Basic class for walls.
Definition: BaseWall.h:28
This class contains the 4 components of a quaternion and the standard operators and functions needed ...
Definition: Kernel/Math/Quaternion.h:42
A TriangleWall is convex polygon defined as an intersection of InfiniteWall's.
Definition: TriangleWall.h:36
Vec3D faceNormal_
Definition: TriangleWall.h:166
bool isFaceContact(const Vec3D &normal) const override
Definition: TriangleWall.h:132
Vec3D vertexMax_
Definition: TriangleWall.h:154
std::array< Vec3D, 3 > getVertices() const
Definition: TriangleWall.h:84
void updateVertexAndNormal()
Definition: TriangleWall.cc:197
TriangleWall(const TriangleWall &other)=default
Copy constructor.
void setVertices(Vec3D A, Vec3D B, Vec3D C)
Sets member variables such that the wall represents a triangle with vertices A, B,...
Definition: TriangleWall.cc:144
void writeVTK(VTKContainer &vtk) const override
Definition: TriangleWall.cc:128
void moveVertex(unsigned index, const Vec3D &dP)
Updates the indexed vertex by a given change in position.
Definition: TriangleWall.cc:245
std::array< Vec3D, 3 > vertexInLabFrame_
Definition: TriangleWall.h:143
const Vec3D & getFaceNormal() const
Definition: TriangleWall.h:105
std::array< Vec3D, 3 > edgeNormal_
Definition: TriangleWall.h:159
void write(std::ostream &os) const override
Writes an TriangleWall to an output stream, for example a restart file.
Definition: TriangleWall.cc:118
bool isLocal(Vec3D &min, Vec3D &max) const override
Definition: TriangleWall.cc:223
std::array< Vec3D, 3 > vertex_
Definition: TriangleWall.h:148
const Vec3D & getVertex(unsigned i) const
Returns the position of a vertex.
Definition: TriangleWall.h:103
Vec3D vertexMin_
Definition: TriangleWall.h:153
bool getDistanceAndNormal(const BaseParticle &p, Mdouble &distance, Vec3D &normal_return) const override
Compute the distance from the wall for a given BaseParticle and return if there is a collision....
Definition: TriangleWall.cc:36
void setOrientation(const Quaternion &orientation) override
Sets the orientation of this BaseInteractable.
Definition: TriangleWall.cc:175
TriangleWall()=default
Default constructor.
std::array< double, 3 > edgeLength_
Definition: TriangleWall.h:161
~TriangleWall() override=default
Destructor.
std::string getName() const override
Returns the name of the object, here the string "TriangleWall".
Definition: TriangleWall.h:63
std::array< Vec3D, 3 > edge_
Definition: TriangleWall.h:160
TriangleWall * copy() const override
Wall copy method. It calls the copy constructor of this Wall, useful for polymorphism.
Definition: TriangleWall.h:57
void moveVertices(const std::array< Vec3D, 3 > &dPs)
Updates all vertices by the given changes in position.
Definition: TriangleWall.cc:251
void setPosition(const Vec3D &position) override
Sets the position of this BaseInteractable.
Definition: TriangleWall.cc:169
void read(std::istream &is) override
Reads an TriangleWall from an input stream, for example a restart file.
Definition: TriangleWall.cc:102
bool isInsideTriangle(const Vec3D &point) const
Definition: TriangleWall.cc:230
void rotate(const Vec3D &angularVelocity) override
Rotates this BaseInteractable.
Definition: TriangleWall.cc:90
void move(const Vec3D &move) override
Definition: TriangleWall.cc:163
Definition: Kernel/Math/Vector.h:30
Definition: matrices.h:74
#define min(a, b)
Definition: datatypes.h:22
#define max(a, b)
Definition: datatypes.h:23
void normal(const Vector< double > &x, Vector< double > &normal)
Definition: free_surface_rotation.cc:65
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
Definition: BaseWall.h:17