WearableTriangleMeshWall.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 MERCURYDPM_WEARABLETRIANGLEMESHWALL_H
6 #define MERCURYDPM_WEARABLETRIANGLEMESHWALL_H
7 
8 #include "TriangleMeshWall.h"
9 
11 {
12 public:
13 
18 
25  WearableTriangleMeshWall(const std::vector<Vec3D>& points, const std::vector<std::array<unsigned, 3>>& cells, const ParticleSpecies* species = nullptr);
26 
36  WearableTriangleMeshWall(const Vec3D& P0, const Vec3D& P1, const Vec3D& P, Mdouble resolutionU, Mdouble resolutionV,
37  const ParticleSpecies* species = nullptr, bool periodicInU = false, bool periodicInV = false);
38 
44 
49 
56 
61  WearableTriangleMeshWall* copy() const override;
62 
66  void read(std::istream& is) override;
67 
71  void write(std::ostream& os) const override;
72 
77  std::string getName() const override;
78 
79  void computeWear() override;
80 
84  void setWearCoefficient(Mdouble wearCoefficient);
85 
89  void setHardness(Mdouble hardness);
90 
94  void setWearAcceleration(Mdouble wearAcceleration);
95 
96 private:
104  void storeDebris(const Triangle& triangle, const Vec3D& position, const Vec3D& debris, std::vector<Vec3D>& debrisContainer);
105 
112 };
113 
114 
115 #endif //MERCURYDPM_WEARABLETRIANGLEMESHWALL_H
Definition: ParticleSpecies.h:16
Definition: TriangleMeshWall.h:12
Definition: Kernel/Math/Vector.h:30
Definition: WearableTriangleMeshWall.h:11
void setWearCoefficient(Mdouble wearCoefficient)
Definition: WearableTriangleMeshWall.cc:151
Mdouble wearCoefficient_
Dimensionless wear coefficient.
Definition: WearableTriangleMeshWall.h:107
WearableTriangleMeshWall()=default
Default constructor.
WearableTriangleMeshWall * copy() const override
Wall copy method.
Definition: WearableTriangleMeshWall.cc:39
void setWearAcceleration(Mdouble wearAcceleration)
Definition: WearableTriangleMeshWall.cc:161
std::string getName() const override
Returns the name of the object.
Definition: WearableTriangleMeshWall.cc:59
void setHardness(Mdouble hardness)
Definition: WearableTriangleMeshWall.cc:156
void read(std::istream &is) override
Reads a WearableTriangleMeshWall from an input stream, for example a restart file.
Definition: WearableTriangleMeshWall.cc:44
void computeWear() override
Definition: WearableTriangleMeshWall.cc:64
void storeDebris(const Triangle &triangle, const Vec3D &position, const Vec3D &debris, std::vector< Vec3D > &debrisContainer)
Proportionally assigns the debris located at a certain position on a triangle to the triangle vertice...
Definition: WearableTriangleMeshWall.cc:106
Mdouble hardness_
Hardness.
Definition: WearableTriangleMeshWall.h:109
Mdouble wearAcceleration_
Accelerates the wear process, to reduce simulation time needed to get results.
Definition: WearableTriangleMeshWall.h:111
void write(std::ostream &os) const override
Writes a WearableTriangleMeshWall to an output stream, for example a restart file.
Definition: WearableTriangleMeshWall.cc:52
WearableTriangleMeshWall & operator=(const WearableTriangleMeshWall &other)
Copy assignment operator.
Definition: WearableTriangleMeshWall.cc:30
~WearableTriangleMeshWall()=default
Destructor.
double P
Uniform pressure.
Definition: TwenteMeshGluing.cpp:77
double P0
Definition: two_dim.cc:101
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286
Definition: TriangleMeshWall.h:199