PSCF v1.3
Pscf::MixtureBase Class Referenceabstract

Abstract descriptor for a mixture of polymer and solvent species. More...

#include <MixtureBase.h>

Inheritance diagram for Pscf::MixtureBase:
Pscf::MixtureTmpl< Polymer, Solvent > Pscf::MixtureTmpl< Polymer< D >, Solvent< D > > Pscf::MixtureTmpl< PT, ST > Pscf::R1d::Mixture Pscf::Prdc::MixtureReal< D, Polymer< D >, Solvent< D > > Pscf::Prdc::MixtureReal< D, PT, ST > Pscf::Rpc::Mixture< D > Pscf::Rpg::Mixture< D >

Public Member Functions

 MixtureBase ()
 Constructor.
 ~MixtureBase ()
 Destructor.
void setVmonomer (double vMonomer)
 Set new vMonomer value.
Accessors (by value)
int nMonomer () const
 Get number of monomer types.
int nPolymer () const
 Get number of polymer species.
int nSolvent () const
 Get number of solvent (point particle) species.
int nBlock () const
 Get total number blocks among all polymer species.
double vMonomer () const
 Get monomer reference volume (set to 1.0 by default).
bool isCanonical () const
 Is this mixture being treated in canonical ensemble?
Accessors (by const reference)
Monomer const & monomer (int id) const
 Get a Monomer type descriptor by const reference.
virtual PolymerSpecies const & polymerSpecies (int id) const =0
 Get a PolymerSpecies by const reference.
virtual SolventSpecies const & solventSpecies (int id) const =0
 Set a solvent solver object by const reference.

Protected Member Functions

Monomermonomer (int id)
 Get a Monomer type descriptor (non-const reference).

Protected Attributes

DArray< Monomermonomers_
 Array of monomer type descriptors.
int nMonomer_
 Number of monomer types.
int nPolymer_
 Number of polymer species.
int nSolvent_
 Number of solvent species.
int nBlock_
 Number of blocks total, across all polymers.
double vMonomer_
 Monomer reference volume (set to 1.0 by default).

Detailed Description

Abstract descriptor for a mixture of polymer and solvent species.

A MixtureBase has an array of Monomer objects and provides access to PolymerSpecies and SolventSpecies objects describing all molecular species in in a mixture. The MixtureBase class does not have functions or data structures needed to solve the modified diffusion equation (MDE), and is thus a descriptor but not a solver for the mixture.

MixtureBase is an abstract base class for "solver" classes that can actually solve the single-molecule statistical mechanics problem for very species in a mixture. Each implementation level sub-namespace of Pscf (R1d, Rpc or Rpg) contains a concrete class named Mixture that is derived from Pscf::MixtureBase, and that acts as both a solver and descriptor for the mixture. Each such subspace also defines an polymer MDE solver class named Polymer that is a subclass of PolymerSpecies and a solvent solver class named Solvent that is subclass of SolventSpecies.

The Mixture class in each such implementation-level namespace is a subclass of an instantiation Pscf::PolymerTmpl<Polymer, Solvent> of the class template Pscf::PolymerTmpl. This template is derived directly from MixtureBase. A PolymerTmpl<Polymer, Solvent> object has two member private variables that are arrays of Polymer and Solvent solver objects. The PolymerTmpl template defines implementations of functions polymerSpecies(int id) and solventSpecies(int id) that are declared as pure virtual member functions of MixtureBase. These functions return a single Polymer solver object as a reference to a PolymerSpecies descriptor, or a Solvent solver object as a reference to a SolventSpecies descriptor, respectively.

Definition at line 56 of file MixtureBase.h.

Constructor & Destructor Documentation

◆ MixtureBase()

Pscf::MixtureBase::MixtureBase ( )

Constructor.

Definition at line 18 of file MixtureBase.cpp.

References monomers_, nBlock_, nMonomer_, nPolymer_, nSolvent_, and vMonomer_.

Referenced by Pscf::MixtureTmpl< PT, ST >::MixtureTmpl().

◆ ~MixtureBase()

Pscf::MixtureBase::~MixtureBase ( )

Destructor.

Definition at line 30 of file MixtureBase.cpp.

Member Function Documentation

◆ setVmonomer()

void Pscf::MixtureBase::setVmonomer ( double vMonomer)

Set new vMonomer value.

Parameters
vMonomernew vMonomer value

Definition at line 33 of file MixtureBase.cpp.

References UTIL_CHECK, vMonomer(), and vMonomer_.

◆ nMonomer()

◆ nPolymer()

◆ nSolvent()

◆ nBlock()

int Pscf::MixtureBase::nBlock ( ) const
inline

Get total number blocks among all polymer species.

Definition at line 196 of file MixtureBase.h.

References nBlock_.

Referenced by Pscf::Prdc::MixtureReal< D, Polymer< D >, Solvent< D > >::stress(), and Pscf::R1d::FieldIo::writeBlockCFields().

◆ vMonomer()

double Pscf::MixtureBase::vMonomer ( ) const
inline

Get monomer reference volume (set to 1.0 by default).

Definition at line 200 of file MixtureBase.h.

References vMonomer_.

Referenced by Pscf::R1d::HomogeneousComparison::output(), setVmonomer(), and Pscf::Prdc::MixtureReal< D, Polymer< D >, Solvent< D > >::stress().

◆ isCanonical()

bool Pscf::MixtureBase::isCanonical ( ) const

Is this mixture being treated in canonical ensemble?

Returns true iff a closed ensemble is used for every polymer and solve species, by specifying a volume fraction phi rather than a chemical potential mu for every species in the mixture.

Definition at line 42 of file MixtureBase.cpp.

References nPolymer(), nSolvent(), polymerSpecies(), and solventSpecies().

Referenced by Pscf::Prdc::MixtureReal< D, Polymer< D >, Solvent< D > >::stress().

◆ monomer() [1/2]

Monomer const & Pscf::MixtureBase::monomer ( int id) const
inline

Get a Monomer type descriptor by const reference.

Parameters
idinteger monomer type index (0 <= id < nMonomer)

Definition at line 204 of file MixtureBase.h.

References monomers_, nMonomer_, and UTIL_CHECK.

Referenced by Pscf::MixtureTmpl< PT, ST >::readParameters(), Pscf::R1d::Mixture::setKuhn(), and Pscf::Prdc::MixtureReal< D, Polymer< D >, Solvent< D > >::stress().

◆ polymerSpecies()

virtual PolymerSpecies const & Pscf::MixtureBase::polymerSpecies ( int id) const
pure virtual

◆ solventSpecies()

virtual SolventSpecies const & Pscf::MixtureBase::solventSpecies ( int id) const
pure virtual

◆ monomer() [2/2]

Monomer & Pscf::MixtureBase::monomer ( int id)
inlineprotected

Get a Monomer type descriptor (non-const reference).

Parameters
idinteger monomer type index (0 <= id < nMonomer)

Definition at line 213 of file MixtureBase.h.

References monomers_, nMonomer_, and UTIL_CHECK.

Member Data Documentation

◆ monomers_

DArray<Monomer> Pscf::MixtureBase::monomers_
protected

Array of monomer type descriptors.

Definition at line 156 of file MixtureBase.h.

Referenced by MixtureBase(), monomer(), monomer(), and Pscf::Prdc::MixtureReal< D, PT, ST >::solventSpecies().

◆ nMonomer_

int Pscf::MixtureBase::nMonomer_
protected

Number of monomer types.

Definition at line 161 of file MixtureBase.h.

Referenced by MixtureBase(), monomer(), monomer(), nMonomer(), and Pscf::Prdc::MixtureReal< D, PT, ST >::solventSpecies().

◆ nPolymer_

int Pscf::MixtureBase::nPolymer_
protected

Number of polymer species.

Definition at line 166 of file MixtureBase.h.

Referenced by MixtureBase(), nPolymer(), and Pscf::Prdc::MixtureReal< D, PT, ST >::solventSpecies().

◆ nSolvent_

int Pscf::MixtureBase::nSolvent_
protected

Number of solvent species.

Definition at line 171 of file MixtureBase.h.

Referenced by MixtureBase(), nSolvent(), and Pscf::Prdc::MixtureReal< D, PT, ST >::solventSpecies().

◆ nBlock_

int Pscf::MixtureBase::nBlock_
protected

Number of blocks total, across all polymers.

Definition at line 176 of file MixtureBase.h.

Referenced by MixtureBase(), nBlock(), and Pscf::Prdc::MixtureReal< D, PT, ST >::solventSpecies().

◆ vMonomer_

double Pscf::MixtureBase::vMonomer_
protected

Monomer reference volume (set to 1.0 by default).

Definition at line 181 of file MixtureBase.h.

Referenced by MixtureBase(), setVmonomer(), Pscf::Prdc::MixtureReal< D, PT, ST >::solventSpecies(), and vMonomer().


The documentation for this class was generated from the following files: