31 inline double jl(
int l,
double x);
43 double A(
double q,
double qp);
63 inline double operator()(
double x);
65 void SetupProjector(
double G_max,
double G_FFT);
74 std::vector<ChannelPotential>
Vl;
84 bool IsNonlocal()
override;
91 inline double GetChi_r(
int l,
double r) {
return Vl[l].chi_r(r); }
92 inline double GetZeta_r(
int l,
double r) {
return Vl[l].zeta_r(r); }
93 inline double GetChi_q(
int l,
double q) {
return Vl[l].chi_q(q); }
94 inline double GetZeta_q(
int l,
double q) {
return Vl[l].zeta_q(q); }
97 inline double GetE_KB(
int l) {
return Vl[l].E_KB; }
98 inline double GetR0(
int l) {
return Vl[l].R0; }
99 inline double Getrc(
int l) {
return Vl[l].rc; }
100 inline double GetDeltaV(
int l,
double r) {
return Vl[l].DeltaV(r); }
102 double V(
int l,
double r)
override;
103 double dVdr(
int l,
double r)
override;
104 double d2Vdr2(
int l,
double r)
override;
109 double V(
double r)
override;
110 double dVdr(
double r)
override;
111 double d2Vdr2(
double r)
override;
116 void SetupProjectors(
double G_max,
double G_FFT);
129 return x / 3.0 - x * x * x / 30.0 + x * x * x * x * x / 840.0 - x * x * x * x * x * x * x / 45360.0;
131 return sin(x) / (x * x) -
cos(x) / x;
136 return x * x / 15.0 - x * x * x * x / 210.0 + x * x * x * x * x * x / 7560.0 -
137 x * x * x * x * x * x * x * x / 498960.0;
139 return ((3.0 / (x * x * x) - 1.0 / x) *
sin(x) - 3.0 / (x * x) *
cos(x));
143 std::cerr <<
"j(l,x) not implemented for l > 2.\n";
162 return u(x) * DeltaV(x) * DeltaV(x) * u(x);
164 return u(x) * DeltaV(x) * u(x);
166 return jl(l, qCurrent * x) * x * x * zeta_r(x);
168 return 2.0 / M_PI * x * x * chi_q(x) * jl(l, x * rCurrent);
170 return chi_r(x) * chi_r(x) * x * x;
double GetValenceCharge()
MakeReturn< UnaryNode< FnFabs, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t abs(const Vector< T1, C1 > &l)
double operator()(double x)
MakeReturn< UnaryNode< FnSin, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t sin(const Vector< T1, C1 > &l)
The CubicSplineCommon class is a third-order spline representation of a function. ...
MakeReturn< UnaryNode< FnCos, typename CreateLeaf< Vector< T1, C1 > >::Leaf_t > >::Expression_t cos(const Vector< T1, C1 > &l)
double GetZeta_r(int l, double r)
Linear Grid inherets from Grid.
std::shared_ptr< Grid > PotentialGrid
double GetChi_q(int l, double q)
CubicSplineCommon & GetLocalSpline()
Wrapper class for IOTreeClass that gives a nearly identical interface as the OutputSectionClass.
double GetDeltaV(int l, double r)
double GetChi_r(int l, double r)
double GetZeta_q(int l, double q)
double jl(int l, double x)
std::vector< ChannelPotential > Vl