PSCF v1.3
rpc/scft/ScftThermo.h
1#ifndef RPC_SCFT_THERMO_H
2#define RPC_SCFT_THERMO_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 <prdc/system/ScftReal.h> // base class template
12#include <rpc/system/System.h> // template parameter
13
14namespace Pscf {
15namespace Rpc {
16
17 using namespace Util;
18 using namespace Pscf::Prdc;
19
25 template <int D>
26 class ScftThermo : public ScftReal<D, System<D> >
27 {
28 public:
29
32
39
40 protected:
41
43 using FieldT = typename Base::FieldT;
44
51 double innerProduct(FieldT const & A,
52 FieldT const & B) const override;
53
54 };
55
56 // Suppress implicit instantiation
57 extern template class ScftThermo<1>;
58 extern template class ScftThermo<2>;
59 extern template class ScftThermo<3>;
60
61} // namespace Rpc
62
63namespace Prdc {
64 // Suppress implicit instantiation of base class
65 extern template class ScftReal<1, Rpc::System<1> >;
66 extern template class ScftReal<2, Rpc::System<2> >;
67 extern template class ScftReal<3, Rpc::System<3> >;
68} // namespace Rpc
69
70} // namespace Pscf
71#endif
Base class for SCFT thermodynamic property calculator.
Definition ScftReal.h:25
Computes SCFT free energies.
ScftThermo(System< D > const &system)
Constructor.
typename Base::FieldT FieldT
Alias for r-grid field type.
double innerProduct(FieldT const &A, FieldT const &B) const override
Inner product of fields (sum of elements on a grid).
ScftReal< D, System< D > > Base
Alias for base class.
Main class, representing one complete system.
Periodic fields and crystallography.
Definition CField.cpp:11
Real periodic fields, SCFT and PS-FTS (CPU).
Definition param_pc.dox:2
PSCF package top-level namespace.
Definition param_pc.dox:1