13#include <pscf/solvers/MixtureTmpl.h>
14#include <pscf/inter/Interaction.h>
15#include <util/containers/DArray.h>
18 template <
int D>
class Mesh;
21 template <
int D>
class FFT;
118 void setKuhn(
int monomerId,
double kuhn);
149 double phiTot = 1.0);
183 double stress(
int parameterId)
const;
262 return stress_[parameterId];
265 #ifndef RPG_MIXTURE_TPP
Description of a regular grid of points in a periodic domain.
A mixture of polymer and solvent species.
Polymer & polymer(int id)
Monomer const & monomer(int id) const
Solvent & solvent(int id)
Fourier transform wrapper.
Field of real double precision values on an FFT mesh.
Base template for UnitCell<D> classes, D=1, 2 or 3.
Solver for a mixture of polymers and solvents.
double stress(int parameterId) const
Get derivative of free energy w/ respect to cell parameter.
void compute(DArray< RField< D > > const &wFields, DArray< RField< D > > &cFields, double phiTot=1.0)
Compute partition functions and concentrations.
void allocate()
Allocate internal data containers in all solvers.
void createBlockCRGrid(DArray< RField< D > > &blockCFields) const
Combine cFields for each block/solvent into one DArray.
void computeStress(double phiTot=1.0)
Compute derivatives of free energy w/ respect to cell parameters.
void associate(Mesh< D > const &mesh, FFT< D > const &fft, UnitCell< D > const &cell, WaveList< D > &wavelist)
Create associations with a mesh, FFT, UnitCell, and WaveList object.
void readParameters(std::istream &in)
Read all parameters and initialize.
void clearUnitCellData()
Clear data that depends on lattice parameters in all solvers.
bool isCanonical()
Is the ensemble canonical (i.e, closed for all species)?
void setKuhn(int monomerId, double kuhn)
Reset statistical segment length for one monomer type.
Class to calculate and store properties of wavevectors.
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.
Fields, FFTs, and utilities for periodic boundary conditions (CUDA)
Periodic fields and crystallography.
PSCF package top-level namespace.