1#ifndef PSCF_POLYMER_TMPL_H
2#define PSCF_POLYMER_TMPL_H
11#include <pscf/chem/PolymerSpecies.h>
12#include <util/containers/DArray.h>
61 template <
class BT,
class PT,
typename WT =
double>
111 virtual void solve(
double phiTot = 1.0);
249 template <class BT, class PT, typename WT> inline
251 {
return blocks_[id]; }
256 template <
class BT,
class PT,
typename WT>
inline
258 {
return blocks_[id]; }
263 template <
class BT,
class PT,
typename WT>
inline
265 {
return blocks_[id]; }
270 template <
class BT,
class PT,
typename WT>
inline
272 {
return blocks_[id]; }
Descriptor for a block within a block polymer.
Edge & edge(int id) final
Get a specified Edge (block descriptor) by non-const reference.
PolymerTmpl()
Constructor.
Species< WT > SpeciesT
Indirect (grandparent) base class.
PT & propagator(int blockId, int directionId)
Get the propagator for a specific block and direction (non-const).
PT & propagator(int id)
Get a propagator indexed in order of computation (non-const).
PT const & propagator(int blockId, int directionId) const
Get the propagator for a specific block and direction (const).
PolymerSpecies< WT > PolymerSpeciesT
Direct (parent) base class.
void readParameters(std::istream &in) override
Read and initialize.
BT & block(int id)
Get a specified Block (solver and descriptor).
PT PropagatorT
Modified diffusion equation solution (propagator).
virtual void solve(double phiTot=1.0)
Solve modified diffusion equation for all propagators.
BT BlockT
Block of a block polymer.
void allocateBlocks() final
Allocate array of Block objects.
BT const & block(int id) const
Get a specified Block (solver and descriptor) by const reference.
~PolymerTmpl() override=default
Destructor.
Edge const & edge(int id) const final
Get a specified Edge (block descriptor) by const reference.
void readBlocks(std::istream &in) final
Base class for a molecular species (polymer or solvent).
Dynamically allocatable contiguous array template.
PSCF package top-level namespace.