PSCF v1.4.0
solvers/MixtureModifier.h
1#ifndef RP_MIXTURE_MODIFIER_H
2#define RP_MIXTURE_MODIFIER_H
3
4/*
5* PSCF - Polymer Self-Consistent Field
6*
7* Copyright 2015 - 2025, The Regents of the University of Minnesota
8* Distributed under the terms of the GNU General Public License.
9*/
10
11namespace Pscf {
12namespace Rp {
13
37 template <class MT>
39 {
40
41 public:
42
45
51 void associate(MT& mixture);
52
56
67 void setKuhn(int monomerId, double kuhn);
68
75 void setPhiPolymer(int polymerId, double phi);
76
83 void setMuPolymer(int polymerId, double mu);
84
92 void setBlockLength(int polymerId, int blockId, double length);
93
100 void setPhiSolvent(int solventId, double phi);
101
108 void setMuSolvent(int solventId, double mu);
109
120 void setSolventSize(int solventId, double size);
121
127 void setVMonomer(double vMonomer);
128
130
139 void clearUnitCellData();
140
141 protected:
142
147
152
153 private:
154
156 MT* mixturePtr_;
157
161 MT& mixture();
162
163 };
164
165} // namespace Rp
166} // namespace Pscf
167#endif
void clearUnitCellData()
Clear all data that depends on the unit cell parameters.
void setPhiPolymer(int polymerId, double phi)
Set the volume fraction for a polymer species.
void setSolventSize(int solventId, double size)
Set the size (steric volume) for a solvent species.
void setKuhn(int monomerId, double kuhn)
Set the statistical segment length for one monomer type.
void setPhiSolvent(int solventId, double phi)
Set the volume fraction for a solvent species.
void setVMonomer(double vMonomer)
Set the monomer reference volume for the mixture.
void setMuSolvent(int solventId, double mu)
Set the chemical for a solvent species.
void setMuPolymer(int polymerId, double mu)
Set the chemical for a polymer species.
void associate(MT &mixture)
Create associations with a Mixture.
void setBlockLength(int polymerId, int blockId, double length)
Set the length for a block of a block polymer.
Class templates for real-valued periodic fields.
PSCF package top-level namespace.