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