|
Manages the linked list of PossibleContact. More...
#include <PossibleContactList.h>
Public Member Functions | |
PossibleContactList () | |
Constructor, sets the firstPossibleContact_ to a nullptr since there are no possible interactions yet. More... | |
void | add_PossibleContact (BaseParticle *P1, BaseParticle *P2) |
Add the possible contact between two given BaseParticle to the linked list. More... | |
void | remove_ParticlePosibleContacts (BaseParticle *P) |
Remove all PossibleContact with given BaseParticle from the linked list. More... | |
void | write (std::ostream &os) const |
Write all PossibleContact to the given ostream. More... | |
PossibleContact * | getFirstPossibleContact () |
Get the front of the linked list of PossibleContact. More... | |
Private Attributes | |
PossibleContact * | firstPossibleContact_ |
The pointer to the first PossibleContact on the linked list. More... | |
Manages the linked list of PossibleContact.
Please note that the PossibleContact at the front of the list is the one that is added last, so firstPossibleContact_ is the PossibleContact that has been added last.
Look at the memory management of PossibleContactList. Maybe a destructor that takes out all remaining PossibleContact? Or is there a Handler that calls remove_ParticlePosibleContacts for all particles?
Restart-tests are not working with CONTACT_LIST_HGRID turned on, so either finish the ContactList-related code, or get rid of it. If we keep it, clean up the code, in particular the naming-convention.
|
inline |
Constructor, sets the firstPossibleContact_ to a nullptr since there are no possible interactions yet.
References DEBUG, firstPossibleContact_, and logger.
|
inline |
Add the possible contact between two given BaseParticle to the linked list.
[in] | P1 | A pointer to the first BaseParticle we want to make a PossibleContact with. |
[in] | P2 | A pointer to the second BaseParticle we want to make a PossibleContact with. |
If there is a PossibleContact between two BaseParticle, make a new PossibleContact and put it in front of the linked list. Then assign the newly made PossibleContact to the former front of the linked list.
References firstPossibleContact_, BaseObject::getIndex(), PossibleContact::getNext(), PossibleContact::getNext1(), PossibleContact::getNext2(), logger, PossibleContact::setPreviousPosition(), and VERBOSE.
|
inline |
Get the front of the linked list of PossibleContact.
References firstPossibleContact_.
|
inline |
Remove all PossibleContact with given BaseParticle from the linked list.
[in] | P | A pointer to the BaseParticle we want to remove all PossibleContact for. |
To remove all PossibleContact with given BaseParticle from the linked list of all PossibleContact, go through all PossibleContact that are given as a list for the given BaseParticle, and then remove it from the global list by correcting all pointers and then delete the PossibleContact.
References firstPossibleContact_, PossibleContact::getIndex(), BaseObject::getIndex(), PossibleContact::getNext(), PossibleContact::getOtherParticle(), PossibleContact::getP1(), PossibleContact::getP2(), PossibleContact::getPrevious(), logger, O, Global_Physical_Variables::P, PossibleContact::setNextPosition(), PossibleContact::setPreviousPosition(), and VERBOSE.
|
inline |
Write all PossibleContact to the given ostream.
[in,out] | os | The output stream the PossibleContactList must be written to. |
References firstPossibleContact_, and PossibleContact::getNext().
|
private |
The pointer to the first PossibleContact on the linked list.
Please note that this is the PossibleContact that has been added last.
Referenced by add_PossibleContact(), getFirstPossibleContact(), PossibleContactList(), remove_ParticlePosibleContacts(), and write().