PSCF v1.2
Pscf::EdgeIterator Class Reference

Edge iterator for graph associated with a polymer. More...

#include <EdgeIterator.h>

Public Member Functions

 EdgeIterator (PolymerSpecies const &polymer)
 Constructor.
 
 ~EdgeIterator ()
 Destructor.
 
void begin (int sourceId, int targetId)
 Initialize iterator.
 
EdgeIteratoroperator++ ()
 Increment operator - move to next vertex.
 
int currentEdgeId () const
 Get index of the current edge.
 
int currentVertexId () const
 Get index of the current vertex.
 
bool isEnd () const
 Return true iff currentId == targetId.
 
bool notEnd () const
 Return true iff currentId != targetId.
 

Detailed Description

Edge iterator for graph associated with a polymer.

Usage: Suppose that object p is an instance of a subclass of PolymerSpecies. The following snippet illustrates how to iterate from edge (or block) iSource to edge iTarget of the associated polymer:

EdgeIterator = iter(p);
int iEdge;
for (iter.begin(iSource, iTarget); iter.notEnd(); ++iter) {
iEdge = iter.currentEdgeId();
// do something with edge iEdge
}
Edge iterator for graph associated with a polymer.

Definition at line 38 of file EdgeIterator.h.

Constructor & Destructor Documentation

◆ EdgeIterator()

Pscf::EdgeIterator::EdgeIterator ( PolymerSpecies const & polymer)

Constructor.

Parameters
polymerassociated PolymerSpecies object

Definition at line 18 of file EdgeIterator.cpp.

◆ ~EdgeIterator()

Pscf::EdgeIterator::~EdgeIterator ( )

Destructor.

Definition at line 27 of file EdgeIterator.cpp.

Member Function Documentation

◆ begin()

void Pscf::EdgeIterator::begin ( int sourceId,
int targetId )

Initialize iterator.

Parameters
sourceIdindex of the initial (or source) edge
targetIdindex of the final (or target) edge

Definition at line 33 of file EdgeIterator.cpp.

References Pscf::PolymerSpecies::edge(), Pscf::PolymerSpecies::path(), UTIL_CHECK, UTIL_THROW, and Pscf::Edge::vertexId().

Referenced by Pscf::Rpc::IntraCorrelation< D >::computeIntraCorrelations(), and Pscf::Rpg::IntraCorrelation< D >::computeIntraCorrelations().

◆ operator++()

EdgeIterator & Pscf::EdgeIterator::operator++ ( )

Increment operator - move to next vertex.

Definition at line 95 of file EdgeIterator.cpp.

References Pscf::PolymerSpecies::edge(), notEnd(), Pscf::PolymerSpecies::path(), UTIL_CHECK, and Pscf::Edge::vertexId().

◆ currentEdgeId()

int Pscf::EdgeIterator::currentEdgeId ( ) const

◆ currentVertexId()

int Pscf::EdgeIterator::currentVertexId ( ) const

Get index of the current vertex.

When the current edge is not the target edge, the current vertex is the vertex of the current edge that is closer to the closest vertex of the target edge.

When the current edge is also the target edge, the current vertex is the vertex of the target edge that is farther from the initial source edge.

Definition at line 126 of file EdgeIterator.cpp.

◆ isEnd()

bool Pscf::EdgeIterator::isEnd ( ) const

Return true iff currentId == targetId.

Definition at line 132 of file EdgeIterator.cpp.

◆ notEnd()

bool Pscf::EdgeIterator::notEnd ( ) const

The documentation for this class was generated from the following files: