BidisperseCubeInsertionBoundary.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 BOUNDARIES_BIDISPERSECUBEINSERTIONBOUNDARY_H
6 #define BOUNDARIES_BIDISPERSECUBEINSERTIONBOUNDARY_H
7 
10 #include "Math/RNG.h"
11 #include "Math/Vector.h"
12 
20 {
21 public:
26 
31 
36 
40  BidisperseCubeInsertionBoundary* copy() const override;
41 
45  void set(BaseParticle* particleToCopyA, BaseParticle* particleToCopyB, double probA, int maxFailed, Vec3D posMin,
46  Vec3D posMax, Vec3D velMin, Vec3D velMax);
47 
52 
54 
58  BaseParticle* generateParticle(RNG& random) override;
59 
63  void read(std::istream& is) override;
64 
68  void write(std::ostream& os) const override;
69 
73  std::string getName() const override;
74 
75 private:
78  double probA_;
79 };
80 
81 #endif
Definition: BaseParticle.h:33
Like a CubeInsertionBoundary but the particles generated are one of two types.
Definition: BidisperseCubeInsertionBoundary.h:20
double probA_
Definition: BidisperseCubeInsertionBoundary.h:78
BaseParticle * particleToCopyB_
Definition: BidisperseCubeInsertionBoundary.h:77
BaseParticle * getParticleToCopyA() const
Get the particles that need to be copied.
Definition: BidisperseCubeInsertionBoundary.cc:54
BidisperseCubeInsertionBoundary * copy() const override
Creates a copy on the heap and returns a pointer.
Definition: BidisperseCubeInsertionBoundary.cc:35
BaseParticle * particleToCopyA_
Definition: BidisperseCubeInsertionBoundary.h:76
void read(std::istream &is) override
reads boundary properties from istream
Definition: BidisperseCubeInsertionBoundary.cc:88
~BidisperseCubeInsertionBoundary() override
Destructor: default destructor.
Definition: BidisperseCubeInsertionBoundary.cc:25
BaseParticle * generateParticle(RNG &random) override
Generates a particle with random position, radius and velocity.
Definition: BidisperseCubeInsertionBoundary.cc:67
void write(std::ostream &os) const override
writes boundary properties to ostream
Definition: BidisperseCubeInsertionBoundary.cc:99
BaseParticle * getParticleToCopyB() const
Definition: BidisperseCubeInsertionBoundary.cc:59
BidisperseCubeInsertionBoundary()
Constructor; sets everything to 0.
Definition: BidisperseCubeInsertionBoundary.cc:7
std::string getName() const override
Returns the name of the object.
Definition: BidisperseCubeInsertionBoundary.cc:109
void set(BaseParticle *particleToCopyA, BaseParticle *particleToCopyB, double probA, int maxFailed, Vec3D posMin, Vec3D posMax, Vec3D velMin, Vec3D velMax)
Sets the properties of this bidisperse cuboidal insertion boundary.
Definition: BidisperseCubeInsertionBoundary.cc:44
It's an insertion boundary which has cuboidal shape (yes, 'CuboidalInsertionBoundary' would have been...
Definition: CubeInsertionBoundary.h:21
This is a class that generates random numbers i.e. named the Random Number Generator (RNG).
Definition: RNG.h:32
Definition: Kernel/Math/Vector.h:30
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286