1#ifndef RPC_PROPAGATOR_H
2#define RPC_PROPAGATOR_H
11#include <pscf/solvers/PropagatorTmpl.h>
12#include <prdc/cpu/RField.h>
13#include <util/containers/DArray.h>
15namespace Pscf {
template <
int D>
class Mesh; }
21 template <
int D>
class Block;
249 return qFields_[0]; }
260 return qFields_[ns_-1];
294 {
return isAllocated_; }
306 #ifndef RPC_PROPAGATOR_TPP
Description of a regular grid of points in a periodic domain.
Field of real double precision values on an FFT mesh.
void setIsSolved(bool isSolved)
const Propagator< D > & partner() const
const Propagator< D > & source(int id) const
Block within a linear or branched block polymer.
MDE solver for one direction of one block.
void solve()
Solve the modified diffusion equation (MDE) for this block.
double computeQ() const
Compute and return partition function for the polymer.
void setBlock(Block< D > &block)
Associate this propagator with a block.
int ns() const
Get the number of values of s (or slices), including head and tail.
void allocate(int ns, const Mesh< D > &mesh)
Allocate memory used by this propagator.
bool isSolved() const
Has the modified diffusion equation been solved?
bool isTailEnd() const
Is the tail vertex a chain end?
const FieldT & tail() const
Return q-field at the end of the block.
bool isAllocated() const
Has memory been allocated for this propagator?
const FieldT & q(int i) const
Return q-field at specified step.
const FieldT & head() const
Return q-field at beginning of the block (initial condition).
void reallocate(int ns)
Reallocate memory used by this propagator.
Block< D > const & block() const
Get the associated Block object by const reference.
RField< D > FieldT
Field type (function of position, defined on a r-space grid).
PropagatorTmpl< Propagator< D > > Base
Base class (partial template specialization).
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 ?
Fields and FFTs for periodic boundary conditions (CPU)
Periodic fields and crystallography.
Real periodic fields, SCFT and PS-FTS (CPU).
PSCF package top-level namespace.