PSCF v1.3
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 currentDirectionId () const
 Get direction index for the path within 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
}
EdgeIterator(PolymerSpecies const &polymer)
Constructor.

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.

Referenced by operator++().

◆ ~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 UTIL_CHECK, and UTIL_THROW.

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 97 of file EdgeIterator.cpp.

References EdgeIterator(), notEnd(), UTIL_CHECK, and Pscf::Edge::vertexId().

◆ currentEdgeId()

int Pscf::EdgeIterator::currentEdgeId ( ) const

◆ currentDirectionId()

int Pscf::EdgeIterator::currentDirectionId ( ) const

Get direction index for the path within the current edge.

Definition at line 128 of file EdgeIterator.cpp.

◆ 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 134 of file EdgeIterator.cpp.

◆ isEnd()

bool Pscf::EdgeIterator::isEnd ( ) const

Return true iff currentId == targetId.

Definition at line 140 of file EdgeIterator.cpp.

◆ notEnd()

bool Pscf::EdgeIterator::notEnd ( ) const

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