11#include <pscf/solvers/PolymerTmpl.h>
12#include <rpg/solvers/Block.h>
15#include <util/containers/FSArray.h>
19 template <
typename T>
class DArray;
26 template <
int D>
class RField;
120 double phiTot = 1.0);
182 {
return stress_[n]; }
184 #ifndef RPG_POLYMER_TPP
const Vertex & vertex(int id) const
Get a specified Vertex by const reference.
Pair< int > const & path(int is, int it) const
Get an id for a propagator from one vertex towards a target.
int nVertex() const
Number of vertices (junctions and chain ends).
int nPropagator() const
Number of propagators (2*nBlock).
int nBead() const
Total number of beads in the polymer (bead model).
int nBlock() const
Number of blocks.
double length() const
Sum of the lengths of all blocks in the polymer (thread model).
Pair< int > const & propagatorId(int id) const
Get a propagator identifier, indexed by order of computation.
PolymerType::Enum type() const
Get Polymer type (Branched or Linear)
PropagatorT & propagator(int blockId, int directionId)
virtual void solve(double phiTot=1.0)
Edge & edge(int id) final
Block< D > & block(int id)
Field of real double precision values on an FFT mesh.
Class to calculate and store properties of wavevectors.
Base template for UnitCell<D> classes, D=1, 2 or 3.
Block within a branched polymer.
Propagator< D > PropagatorT
Propagator type.
Descriptor and solver for one polymer species.
void computeStress()
Compute SCFT stress contribution from this polymer species.
void compute(DArray< RField< D > > const &wFields, double phiTot=1.0)
Compute MDE solutions and block concentrations.
void clearUnitCellData()
Clear all data that depends on unit cell parameters.
void setNParams(int nParams)
Set the number of unit cell parameters.
Block< D > BlockT
Block type, for a block within a block polymer.
double stress(int n)
Get derivative of free energy w/ respect to a unit cell parameter.
typename BlockT::PropagatorT PropagatorT
Propagator type, for one direction within a block.
PolymerTmpl< Block< D > > Base
Base class, partial template specialization.
double phi() const
Get the overall volume fraction for this species.
void setPhi(double phi)
Set value of phi (volume fraction), if ensemble is closed.
void setQ(double q)
Set q and compute phi or mu (depending on the ensemble).
double mu() const
Get the chemical potential for this species (units kT=1).
Ensemble ensemble() const
Get the statistical ensemble for this species (open or closed).
void setMu(double mu)
Set value of mu (chemical potential), if ensemble is closed.
double q() const
Get the molecular partition function for this species.
Dynamically allocatable contiguous array template.
A fixed capacity (static) contiguous array with a variable logical size.
Fields, FFTs, and utilities for periodic boundary conditions (CUDA)
Periodic fields and crystallography.
SCFT and PS-FTS with real periodic fields (GPU)
PSCF package top-level namespace.
Utility classes for scientific computation.