11#include <pscf/solvers/PropagatorTmpl.h>
12#include <util/containers/DArray.h>
17 template <
int D>
class Mesh;
58 template <
int D,
class T>
138 const typename T::RField&
q(
int i)
const;
143 const typename T::RField&
head()
const;
153 const typename T::RField&
tail()
const;
158 typename T::Block
const &
block()
const;
235 typename T::Block* blockPtr_;
247 template <
int D,
class T>
inline
257 template <
int D,
class T>
inline
268 template <
int D,
class T>
inline
278 template <
int D,
class T>
inline
288 template <
int D,
class T>
inline
298 template <
int D,
class T>
inline
308 template <
int D,
class T>
inline
315 template <
int D,
class T>
inline
322 template <
int D,
class T>
inline
324 { blockPtr_ = &
block; }
Description of a regular grid of points in a periodic domain.
const typename T::Propagator & partner() const
const typename T::Propagator & source(int id) const
Mesh< D > const & mesh() const
T::Block & block()
Get the associated Block object by non-const reference.
void solve(typename T::RField const &head)
Solve the MDE for a specified initial condition.
void setBlock(typename T::Block &block)
Associate this propagator with a block.
void computeQ(double &Q) const
Compute and return partition function for the polymer molecule.
bool isAllocated() const
Has memory been allocated for this propagator?
const Types< D >::RField & head() const
Types< D >::Block const & block() const
void computeHead()
Compute initial q-field at the head vertex.
virtual void reallocate(int ns)
Reallocate memory used by this propagator.
void solve()
Solve the modified diffusion equation (MDE) for this block.
void solveMde()
Compute solution of modified diffusion equation (MDE).
PropagatorTmpl< typename T::Propagator > PropagatorTmplT
Direct (parent) base class.
const T::RField & tail() const
Return q-field at the terminal (tail) vertex.
const T::RField & q(int i) const
Return q-field at a specified step.
DArray< typename Types< D >::RField > qFields_
virtual void allocate(int ns, const Mesh< D > &mesh)
Allocate memory used by this propagator.
Dynamically allocatable contiguous array template.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
#define UTIL_ASSERT(condition)
Assertion macro suitable for debugging serial or parallel code.
bool isThread()
Is the thread model in use ?
Class templates for real-valued periodic fields.
PSCF package top-level namespace.