1#ifndef PSCF_MIXTURE_TMPL_TPP
2#define PSCF_MIXTURE_TMPL_TPP
11#include "MixtureTmpl.h"
19 template <
class PT,
class ST>
30 template <
class PT,
class ST>
37 template <
class PT,
class ST>
47 template <
class PT,
class ST>
57 template <
class PT,
class ST>
62 monomers_.allocate(nMonomer_);
63 for (
int i = 0; i < nMonomer_; ++i) {
64 monomers_[i].setId(i);
87 polymers_.allocate(nPolymer_);
88 for (
int i = 0; i < nPolymer_; ++i) {
90 nBlock_ = nBlock_ +
polymer(i).nBlock();
96 for (
int i = 0; i < nPolymer_; ++i) {
97 for (
int j = 0; j <
polymer(i).nBlock(); ++j) {
98 monomerId =
polymer(i).block(j).monomerId();
99 kuhn =
monomer(monomerId).kuhn();
100 polymer(i).block(j).setKuhn(kuhn);
109 solvents_.allocate(nSolvent_);
110 for (
int i = 0; i < nSolvent_; ++i) {
111 readParamComposite(in, solvent(i));
118 readOptional(in,
"vMonomer", vMonomer_);
MixtureBase()
Constructor.
PolymerSpecies const & polymerSpecies(int id) const final
Get a PolymerSpecies descriptor by const reference.
virtual void readParameters(std::istream &in)
Read parameters from file and initialize.
~MixtureTmpl()
Destructor.
PolymerT & polymer(int id)
MixtureTmpl()
Constructor.
SolventSpecies const & solventSpecies(int id) const final
Set a SolventSpecies descriptor object by const reference.
Descriptor for a linear or acyclic branched block polymer.
Monomer const & monomer(int id) const
Get a Monomer type descriptor by const reference.
PolymerT & polymer(int id)
Get a polymer solver object by non-const reference.
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.