PSCF v1.4.0
Kernel.h
1#ifndef CP_KERNEL_H
2#define CP_KERNEL_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 <util/param/ParamComposite.h> // base class
12
13namespace Pscf {
14namespace Cp {
15
16 using namespace Util;
17
23 class Kernel : public ParamComposite
24 {
25
26 public:
27
31 Kernel();
32
36 virtual ~Kernel();
37
38 // Modifiers
39
45 virtual void readParameters(std::istream& in);
46
47 // Accessors
48
52 double range() const;
53
60 double f(double kSq) const;
61
70 double g(double kSq) const;
71
72 private:
73
74 // Range of interaction
75 double range_;
76
77 // Constant prefactor used in calculation of g
78 double cg_;
79
80 // Constant prefactor used in calculation of f
81 double cf_;
82
83 };
84
85 // Inline function
86
87 inline double Kernel::range() const
88 { return range_; }
89
90} // namespace Cp
91} // namespace Pscf
92#endif
virtual ~Kernel()
Destructor.
Definition Kernel.cpp:28
virtual void readParameters(std::istream &in)
Read model parameters.
Definition Kernel.cpp:34
double g(double kSq) const
Compute the Fourier-space kernel for pair interactions.
Definition Kernel.cpp:53
Kernel()
Constructor.
Definition Kernel.cpp:19
double range() const
Return the range of binary interactions.
Definition Kernel.h:87
double f(double kSq) const
Compute the Fourier-space kernel for particle smearing.
Definition Kernel.cpp:45
ParamComposite()
Constructor.
Complex-valued periodic fields (class templates).
Definition cp.mod:6
PSCF package top-level namespace.