13#include <pscf/solvers/MixtureTmpl.h>
14#include <pscf/inter/Interaction.h>
15#include <pscf/chem/Monomer.h>
16#include <util/containers/DArray.h>
17#include <util/containers/FArray.h>
22 template <
int D>
class Mesh;
116 void setKuhn(
int monomerId,
double kuhn);
147 double phiTot = 1.0);
174 double stress(
int n)
const;
241 #ifndef PSPC_MIXTURE_TPP
242 extern template class Mixture<1>;
243 extern template class Mixture<2>;
244 extern template class Mixture<3>;
Description of a regular grid of points in a periodic domain.
A mixture of polymer and solvent species.
Polymer & polymer(int id)
Get a polymer object.
int nBlock() const
Get number of total blocks in the mixture across all polymers.
int nSolvent() const
Get number of solvent (point particle) species.
Polymer< D > Polymer
Polymer species solver typename.
int nMonomer() const
Get number of monomer types.
Monomer const & monomer(int id) const
Get a Monomer type descriptor (const reference).
Solvent & solvent(int id)
Set a solvent solver object.
Solvent< D > Solvent
Solvent species solver typename.
int nPolymer() const
Get number of polymer species.
Solver for a mixture of polymers and solvents.
bool isCanonical()
Is this mixture being treated in canonical ensemble?
void createBlockCRGrid(DArray< RField< D > > &blockCFields) const
Combine cFields for each block/solvent into one DArray, which is used in System.tpp to print a more d...
double stress(int n) const
Get derivative of free energy w/ respect to a unit cell parameter.
void setKuhn(int monomerId, double kuhn)
Reset statistical segment length for one monomer type.
void setupUnitCell(const UnitCell< D > &unitCell)
Set unit cell parameters used in solver.
void setMesh(Mesh< D > const &mesh)
Create an association with the mesh and allocate memory.
void compute(DArray< RField< D > > const &wFields, DArray< RField< D > > &cFields, double phiTot=1.0)
Compute partition functions and concentrations.
void readParameters(std::istream &in)
Read all parameters and initialize.
void computeStress()
Compute derivatives of free energy w/ respect to cell parameters.
Field of real double precision values on an FFT mesh.
Base template for UnitCell<D> classes, D=1, 2 or 3.
Dynamically allocatable contiguous array template.
A fixed size (static) contiguous array template.
ScalarParam< Type > & read(std::istream &in, const char *label, Type &value)
Add and read a new required ScalarParam < Type > object.
void setClassName(const char *className)
Set class name string.
ScalarParam< Type > & readOptional(std::istream &in, const char *label, Type &value)
Add and read a new optional ScalarParam < Type > object.
#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.
C++ namespace for polymer self-consistent field theory (PSCF).