1#ifndef RPC_PROPAGATOR_H
2#define RPC_PROPAGATOR_H
11#include <prdc/cpu/RField.h>
12#include <pscf/solvers/PropagatorTmpl.h>
13#include <util/containers/DArray.h>
14#include <util/containers/FArray.h>
16namespace Pscf {
template <
int D>
class Mesh; }
249 {
return qFields_[0]; }
257 {
return qFields_[ns_-1]; }
265 {
return qFields_[i]; }
287 {
return isAllocated_; }
294 { blockPtr_ = █ }
296 #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.
Template for propagator classes.
void setIsSolved(bool isSolved)
const Propagator< D > & partner() const
const Propagator< D > & source(int id) const
Block within a branched polymer.
MDE solver for one direction of one block.
RField< D > WField
Chemical potential field type (r-grid format)
void solve()
Solve the modified diffusion equation (MDE) for this block.
RField< D > Field
Generic field (function of position, defined on regular grid).
const QField & q(int i) const
Return q-field at specified step.
void setBlock(Block< D > &block)
Associate this propagator with a unique block.
RField< D > CField
Monomer concentration field type (r-grid format)
Block< D > & block()
Get the associated Block object by reference.
int ns() const
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.
RField< D > QField
Propagator q-field type, i.e., q(r,s) at fixed s.
bool isAllocated() const
Has memory been allocated for this propagator?
const QField & tail() const
Return q-field at the end of the block.
const QField & head() const
Return q-field at beginning of the block (initial condition).
void reallocate(int ns)
Reallocate memory used by this propagator.
void computeHead()
Compute initial QField at head from tail QFields of sources.
double computeQ()
Compute and return partition function for the polymer.
Dynamically allocatable contiguous array template.
Fields and FFTs for periodic boundary conditions (CPU)
Periodic fields and crystallography.
PSCF package top-level namespace.
Utility classes for scientific computation.