128 template<
class NormalForceSpecies,
class FrictionForceSpecies = EmptyFrictionSpecies,
class AdhesiveForceSpecies = EmptyAdhesiveSpecies>
171 void read(std::istream& is) final;
174 void write(std::ostream& os) const final;
202 NormalForceSpecies::actionsAfterTimeStep(particle);
206 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
216 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
226 logger(
DEBUG,
"Species::Species(const Species &p) finished");
229 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
242 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
251 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
267 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
273 logger(
WARN,
"Error in %::copyInto: cannot copy into a nullptr");
291 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
296 NormalForceSpecies::write(os);
297 FrictionForceSpecies::write(os);
298 AdhesiveForceSpecies::write(os);
304 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
308 NormalForceSpecies::read(is);
309 FrictionForceSpecies::read(is);
310 AdhesiveForceSpecies::read(is);
327 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
330 return NormalForceSpecies::getBaseName()
331 + FrictionForceSpecies::getBaseName()
332 + AdhesiveForceSpecies::getBaseName() +
"Species";
343 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
347 unsigned timeStamp)
const
352 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
358 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
364 delete interactionDestroyer;
373 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
376 return FrictionForceSpecies::getUseAngularDOFs();
387 template<
class NormalForceSpecies,
class FrictionForceSpecies,
class AdhesiveForceSpecies>
std::string getName(int argc, char *argv[])
Definition: CombineParallelDataFiles.cpp:12
#define UNUSED
Definition: GeneralDefine.h:39
LL< Log::DEBUG > DEBUG
Debug information.
Definition: Logger.cc:58
Logger< MERCURYDPM_LOGLEVEL > logger("MercuryKernel")
Definition of different loggers with certain modules. A user can define its own custom logger here.
LL< Log::ERROR > ERROR
Error log level.
Definition: Logger.cc:53
LL< Log::WARN > WARN
Warning log level.
Definition: Logger.cc:54
Defines a short-range (non-contact) force parallel to the contact normal, usually adhesive.
void setBaseSpecies(BaseSpecies *baseSpecies)
Definition: BaseForce.h:40
Defines the basic properties that a interactable object can have.
Definition: BaseInteractable.h:55
Stores information about interactions between two interactable objects; often particles but could be ...
Definition: BaseInteraction.h:60
Definition: BaseParticle.h:54
BaseSpecies is the class from which all other species are derived.
Definition: BaseSpecies.h:50
BaseAdhesiveForce * adhesiveForce_
A pointer to the adhesive force parameters \detail This pointer is used by the Interaction's to get a...
Definition: BaseSpecies.h:187
BaseFrictionForce * frictionForce_
A pointer to the friction force parameters \detail This pointer is used by the Interaction's to get a...
Definition: BaseSpecies.h:180
BaseNormalForce * normalForce_
A pointer to the normal force parameters \detail This pointer is used by the Interaction's to get a p...
Definition: BaseSpecies.h:173
In case one doesn't want to have an adhesive (short range non contact) interaction between the intera...
Definition: EmptyAdhesiveInteraction.h:45
Defines a contact force orthogonal to the contact normal.
Contains information about the contact between two interactables, BaseInteraction::P_ and BaseInterac...
Definition: Interaction.h:116
Contains contact force properties for contacts between particles with two different species.
Definition: MixedSpecies.h:43
Defines a contact force parallel to the contact normal.
Definition: ParticleSpecies.h:37
void write(std::ostream &os) const override
Writes the species properties to an output stream.
Definition: ParticleSpecies.cc:77
void read(std::istream &is) override
Reads the species properties from an input stream.
Definition: ParticleSpecies.cc:89
Contains material and contact force properties.
Definition: Species.h:35
void write(std::ostream &os) const final
Writes the Species properties to an output stream.
Definition: Species.h:293
void mixAll(BaseSpecies *const S, BaseSpecies *const T) final
This function should not be called.
Definition: Species.h:388
BaseSpecies * copyMixed() const final
Creates a new MixedSpecies with the same force properties as the Species from which it is called.
Definition: Species.h:253
virtual ~Species()
The default destructor.
Definition: Species.h:230
void actionsAfterTimeStep(BaseParticle *particle) const final
Definition: Species.h:201
BaseInteraction * getEmptyInteraction() const final
Definition: Species.h:353
MixedSpecies< NormalForceSpecies, FrictionForceSpecies, AdhesiveForceSpecies > MixedSpeciesType
The correct MixedSpecies type for this Species.
Definition: Species.h:141
void copyInto(BaseSpecies *bs) const final
Definition: Species.h:269
bool getUseAngularDOFs() const final
Returns true if torques have to be calculated.
Definition: Species.h:374
Species< NormalForceSpecies, FrictionForceSpecies, AdhesiveForceSpecies > * copy() const final
Creates a deep copy of the Species from which it is called.
Definition: Species.h:245
Interaction< typename NormalForceSpecies::InteractionType, typename FrictionForceSpecies::InteractionType, typename AdhesiveForceSpecies::InteractionType > InteractionType
Definition: Species.h:142
Species()
The default constructor.
Definition: Species.h:207
void deleteEmptyInteraction(BaseInteraction *interaction) const final
Definition: Species.h:359
BaseInteraction * getNewInteraction(BaseInteractable *const P, BaseInteractable *const I, unsigned timeStamp) const final
When a contact between two particles is determined, an Interaction object is created,...
Definition: Species.h:345
Species(const Species &s)
The default copy constructor.
Definition: Species.h:217
void read(std::istream &is) final
Called by SpeciesHandler::readAndAddObject.
Definition: Species.h:305
std::string getName() const final
Returns the name of the Species as it is used in the restart file.
Definition: Species.h:328
double P
Uniform pressure.
Definition: TwenteMeshGluing.cpp:73