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