PSCF v1.4.0
rpc/solvers/Mixture.h
1#ifndef RPC_MIXTURE_H
2#define RPC_MIXTURE_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
11#include <rp/solvers/Mixture.h> // base class template
12#include <rpc/system/Types.h> // base class template argument
13
14namespace Pscf {
15namespace Rpc {
16
17 // Forward declarations
18 template <int D> class Polymer;
19 template <int D> class Solvent;
20
21 using namespace Util;
22 using namespace Prdc;
23
36 template <int D>
37 class Mixture : public Rp::Mixture< D, Types<D> >
38 {
39 public:
40
43
44 // Inherited names
45 using typename RpMixtureT::MixtureBaseT;
46 using typename RpMixtureT::MixtureTmplT;
47 using typename RpMixtureT::FieldT;
49
50 private:
51
55 void allocateBlocks() override;
56
57 };
58
59} // namespace Rpc
60} // namespace Pscf
61
62// Explicit instantiation declarations
63namespace Pscf {
64 extern template class MixtureTmpl< Rpc::Polymer<1>, Rpc::Solvent<1> >;
65 extern template class MixtureTmpl< Rpc::Polymer<2>, Rpc::Solvent<2> >;
66 extern template class MixtureTmpl< Rpc::Polymer<3>, Rpc::Solvent<3> >;
67 namespace Rp {
68 extern template class Mixture<1, Rpc::Types<1> >;
69 extern template class Mixture<2, Rpc::Types<2> >;
70 extern template class Mixture<3, Rpc::Types<3> >;
71 }
72 namespace Rpc {
73 extern template class Mixture<1>;
74 extern template class Mixture<2>;
75 extern template class Mixture<3>;
76 }
77}
78#endif
Solver and descriptor for a mixture of polymers and solvents.
Solver and descriptor for a mixture of polymers and solvents.
typename Rp::Mixture< D, Types< D > > RpMixtureT
Direct base class.
Descriptor and solver for one polymer species.
Solver and descriptor for a solvent species.
Periodic fields and crystallography.
Definition complex.cpp:11
Real periodic fields, SCFT and PS-FTS (CPU).
Definition param_pc.dox:2
PSCF package top-level namespace.