1#ifndef PSCF_PROPAGATOR_TMPL_H
2#define PSCF_PROPAGATOR_TMPL_H
11#include <pscf/chem/PolymerModel.h>
12#include <util/containers/GArray.h>
206 QT
const * partnerPtr_;
229 {
return directionId_; }
236 {
return sourcePtrs_.
size(); }
244 {
return *(sourcePtrs_[id]); }
251 {
return partnerPtr_; }
258 {
return isHeadEnd_; }
265 {
return isTailEnd_; }
272 {
return isSolved_; }
306 { sourcePtrs_.append(&
source); }
324 for (
int i=0; i < sourcePtrs_.size(); ++i) {
int nSource() const
Number of source / prerequisite propagators.
bool hasPartner() const
Does this have a partner propagator?
void setIsSolved(bool isSolved)
Set the isSolved flag to true or false.
void setDirectionId(int directionId)
Associate this propagator with a direction index.
void setEndFlags(bool isHeadEnd, bool isTailEnd)
Set flags indicating whether vertices are chain ends.
const Propagator< D > & partner() const
void setPartner(const QT &partner)
Set the partner of this propagator.
PropagatorTmpl()
Constructor.
const Propagator< D > & source(int id) const
bool isReady() const
Are all source propagators solved?
void addSource(const QT &source)
Add a propagator to the list of sources for this one.
An automatically growable array, analogous to a std::vector.
int size() const
Return logical size of this array (i.e., current number of elements).
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
PSCF package top-level namespace.