MercuryDPM  Alpha
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
InteractionHandler.h
Go to the documentation of this file.
1 //Copyright (c) 2013-2014, The MercuryDPM Developers Team. All rights reserved.
2 //For the list of developers, see <http://www.MercuryDPM.org/Team>.
3 //
4 //Redistribution and use in source and binary forms, with or without
5 //modification, are permitted provided that the following conditions are met:
6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above copyright
9 // notice, this list of conditions and the following disclaimer in the
10 // documentation and/or other materials provided with the distribution.
11 // * Neither the name MercuryDPM nor the
12 // names of its contributors may be used to endorse or promote products
13 // derived from this software without specific prior written permission.
14 //
15 //THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
16 //ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
17 //WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18 //DISCLAIMED. IN NO EVENT SHALL THE MERCURYDPM DEVELOPERS TEAM BE LIABLE FOR ANY
19 //DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
20 //(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
21 //LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
22 //ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23 //(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
24 //SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
25 #ifndef INTERACTIONHANDLER_H
26 #define INTERACTIONHANDLER_H
27 #include "BaseHandler.h"
29 #include "File.h"
30 class SpeciesHandler;
31 
37 class InteractionHandler : public BaseHandler<BaseInteraction>
38 {
39 public:
44 
49 
54 
59 
63  void addObject(BaseInteraction* I);
64 
68  void readObject(std::istream& is);
69 
75 
80 
85 
90  void removeObjectKeepingPeriodics(unsigned const int id);
91 
95  void eraseOldInteractions(Mdouble lastTimeStep);
96 
97  void actionsAfterTimeStep();
98 
102  Mdouble getMeanOverlap() const;
103 
107  void write(std::ostream& os) const;
108 
112  void setWriteVTK(FileType f);
113 
117  FileType getWriteVTK() const;
118 
123  void writeVTK() const;
124 
125 
129  std::string getName() const;
130 
131 private:
132 
134 };
135 #endif
136 
Container to store all ParticleSpecies.
void writeVTK() const
Writes all particles into a vtk file format (unstructured grid), consisting of particle positions...
void write(std::ostream &os) const
Writes the InteractionHandler to an output stream, for example a restart file.
FileType getWriteVTK() const
BaseInteraction * getInteraction(BaseInteractable *P, BaseInteractable *I, Mdouble timeStamp)
Returns the Interaction between the BaseInteractable's P and I.
double Mdouble
InteractionHandler()
Default constructor, it creates an empty InteractionHandler.
~InteractionHandler()
Destructor, it destructs the InteractionHandler and all BaseInteraction it contains.
Mdouble getMeanOverlap() const
The mean overlap of all interactions.
Stores information about interactions between two interactable objects; often particles but could be ...
void eraseOldInteractions(Mdouble lastTimeStep)
erases interactions which have an old timestamp.
FileType
With FileType options, one is able to choose if data is to be read/written from/into no or single or ...
Definition: File.h:35
void removeObjectKeepingPeriodics(unsigned const int id)
Removes interactions of periodic particles when the periodic particles get deleted (see DPMBase::remo...
InteractionHandler operator=(const InteractionHandler &rhs)
Assignment operator.
Container to store Interaction objects.
std::string getName() const
Returns the name of the object.
#define UNUSED
Definition: GeneralDefine.h:39
Container to store the pointers to all objects that one creates in a simulation.
Definition: BaseHandler.h:51
void setWriteVTK(FileType f)
Defines the basic properties that a interactable object can have.
BaseInteraction * getExistingInteraction(BaseInteractable *P, BaseInteractable *I) const
Returns the Interaction between the BaseInteractable's P and I if it exists, otherwise returns a null...
void readObject(std::istream &is)
Reads an Interaction into the InteractionHandler from restart data.
Implementation of a 3D vector (by Vitaliy).
Definition: Vector.h:45
void addObject(BaseInteraction *I)
Adds an Interaction to the InteractionHandler.