1#ifndef PSCF_MIXTURE_TMPL_TPP
2#define PSCF_MIXTURE_TMPL_TPP
11#include "MixtureTmpl.h"
19 template <
class PT,
class ST,
typename WT>
30 template <
class PT,
class ST,
typename WT>
41 template <
class PT,
class ST,
typename WT>
52 template <
class PT,
class ST,
typename WT>
92 for (
int j = 0; j <
polymer(i).nBlock(); ++j) {
93 monomerId =
polymer(i).block(j).monomerId();
95 polymer(i).block(j).setKuhn(kuhn);
104 solvents_.allocate(nSolvent_);
105 for (
int i = 0; i < nSolvent_; ++i) {
106 readParamComposite(in, solvent(i));
DArray< Monomer > monomers_
Monomer const & monomer(int id) const
Get a Monomer type descriptor by const reference.
SolventSpecies< WT > const & solventSpecies(int id) const final
Set a SolventSpecies descriptor object by const reference.
MixtureTmpl()
Constructor.
void readParameters(std::istream &in) override
Read parameters from file and initialize.
PolymerT & polymer(int id)
PolymerSpecies< WT > const & polymerSpecies(int id) const final
Get a PolymerSpecies descriptor by const reference.
double kuhn() const
Statistical segment length (random walk step size).
Descriptor for a linear or acyclic branched block polymer.
Descriptor for a solvent species.
DArrayParam< Type > & readDArray(std::istream &in, const char *label, DArray< Type > &array, int n)
Add and read a required DArray < Type > parameter.
ScalarParam< Type > & read(std::istream &in, const char *label, Type &value)
Add and read a new required ScalarParam < Type > object.
ScalarParam< Type > & readOptional(std::istream &in, const char *label, Type &value)
Add and read a new optional ScalarParam < Type > object.
ParamComposite()
Constructor.
void readParamComposite(std::istream &in, ParamComposite &child, bool next=true)
Add and read a required child ParamComposite.
#define UTIL_CHECK(condition)
Assertion macro suitable for serial or parallel production code.
PSCF package top-level namespace.