ESyS-Particle
4.0.1
|
00001 00002 // // 00003 // Copyright (c) 2003-2011 by The University of Queensland // 00004 // Earth Systems Science Computational Centre (ESSCC) // 00005 // http://www.uq.edu.au/esscc // 00006 // // 00007 // Primary Business: Brisbane, Queensland, Australia // 00008 // Licensed under the Open Software License version 3.0 // 00009 // http://www.opensource.org/licenses/osl-3.0.php // 00010 // // 00012 00013 #ifndef __BONDEDINTERACTIONCPDATA_H 00014 #define __BONDEDINTERACTIONCPDATA_H 00015 00016 #include "Parallel/CheckPointable.h" 00017 00018 class CBondedInteraction; 00019 class CRotBondedInteraction; 00020 class CRotThermBondedInteraction; 00021 00025 class BondedInteractionCpData : public esys::lsm::CheckPointable 00026 { 00027 public: 00028 typedef int ParticleId; 00029 typedef int InteractionTag; 00030 00031 BondedInteractionCpData(); 00032 00033 virtual ~BondedInteractionCpData() 00034 { 00035 } 00036 00037 BondedInteractionCpData(const CBondedInteraction &bondedInteraction); 00038 00039 BondedInteractionCpData(const CRotBondedInteraction &bondedInteraction); 00040 00041 BondedInteractionCpData(const CRotThermBondedInteraction &bondedInteraction); 00042 00043 BondedInteractionCpData( 00044 ParticleId particle1Id, 00045 ParticleId particle2Id, 00046 InteractionTag interactionTag 00047 ); 00048 00049 void set(const CBondedInteraction &bondedInteraction); 00050 00051 void set(ParticleId particle1Id, ParticleId particle2Id, InteractionTag interactionTag); 00052 00053 ParticleId getP1Id() const; 00054 00055 ParticleId getP2Id() const; 00056 00057 InteractionTag getTag() const; 00058 00059 virtual void saveCheckPointData(std::ostream &oStream); 00060 00061 virtual void loadCheckPointData(std::istream &iStream); 00062 00063 private: 00064 ParticleId m_p1Id; 00065 ParticleId m_p2Id; 00066 InteractionTag m_tag; 00067 }; 00068 00069 #endif //__BONDEDINTERACTIONCPDATA_H