SinterInteraction.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 SINTERINTERACTION_H
6 #define SINTERINTERACTION_H
7 
9 
11 
12 class BaseInteractable;
13 
18 class SinterInteraction : public virtual BaseInteraction
19 {
20 public:
25 
29  SinterInteraction(BaseInteractable* P, BaseInteractable* I, unsigned timeStamp);
30 
35 
38 
42  ~SinterInteraction() override;
46  //BaseInteraction* copy() const;
50  void computeNormalForce();
51 
55  void read(std::istream& is) override;
56 
60  void write(std::ostream& os) const override;
61 
65  virtual std::string getBaseName() const;
66 
70  Mdouble getElasticEnergy() const override;
71 
75  const SinterNormalSpecies* getSpecies() const;
76 
80  Mdouble getPlasticOverlap() const;
81 
85  void setPlasticOverlap(Mdouble plasticOverlap);
86 
91 
92  unsigned getNumberOfFieldsVTK() const override;
93 
94  std::string getTypeVTK(unsigned i) const override;
95 
96  std::string getNameVTK(unsigned i) const override;
97 
98  std::vector<Mdouble> getFieldVTK(unsigned i) const override;
99 
100 private:
101 
102  //set in integrate, used in compute force
104 };
105 
106 #endif
int i
Definition: BiCGSTAB_step_by_step.cpp:9
float * p
Definition: Tutorial_Map_using.cpp:9
Defines the basic properties that a interactable object can have.
Definition: BaseInteractable.h:34
Stores information about interactions between two interactable objects; often particles but could be ...
Definition: BaseInteraction.h:39
Computes normal forces in case of a linear plastic visco-elastic interaction.
Definition: SinterInteraction.h:19
SinterNormalSpecies SpeciesType
An alias for the corresponding species.
Definition: SinterInteraction.h:24
Mdouble getPlasticOverlap() const
Definition: SinterInteraction.cc:281
void setPlasticOverlap(Mdouble plasticOverlap)
Definition: SinterInteraction.cc:289
void read(std::istream &is) override
Interaction read function, which accepts an std::istream as input.
Definition: SinterInteraction.cc:65
void write(std::ostream &os) const override
Interaction write function, which accepts an std::ostream as input.
Definition: SinterInteraction.cc:55
std::vector< Mdouble > getFieldVTK(unsigned i) const override
Definition: SinterInteraction.cc:328
const SinterNormalSpecies * getSpecies() const
Definition: SinterInteraction.cc:272
Mdouble getUnloadingStiffness() const
Definition: SinterInteraction.cc:297
void computeNormalForce()
Creates a copy of an object of this class. (Deep copy)
Definition: SinterInteraction.cc:83
virtual std::string getBaseName() const
Returns the name of the interaction.
Definition: SinterInteraction.cc:75
Mdouble plasticOverlap_
Definition: SinterInteraction.h:103
std::string getTypeVTK(unsigned i) const override
Definition: SinterInteraction.cc:315
unsigned getNumberOfFieldsVTK() const override
Definition: SinterInteraction.cc:310
std::string getNameVTK(unsigned i) const override
Definition: SinterInteraction.cc:320
~SinterInteraction() override
Destructor.
Definition: SinterInteraction.cc:44
Mdouble getElasticEnergy() const override
Computes and returns the amount of elastic energy stored in the spring.
Definition: SinterInteraction.cc:260
SinterNormalSpecies contains the parameters used to describe a plastic-cohesive normal force (Stefan ...
Definition: SinterNormalSpecies.h:26
#define I
Definition: main.h:127
double P
Uniform pressure.
Definition: TwenteMeshGluing.cpp:77
std::string string(const unsigned &i)
Definition: oomph_definitions.cc:286