21 double do_compute(
double x,
double y)
const
23 return psi_.dfx()(
x,
y)*chi_.dfx()(
x,
y) +
24 psi_.dfy()(
x,
y)*chi_.dfy()(
x,
y) +
25 chi_.f()(
x,
y)*( psi_.dfxx()(
x,
y) + psi_.dfyy()(
x,
y));
35 psi_(psi), chi_(chi){}
36 double do_compute(
double x,
double y)
const
38 return psi_.dfxx()(
x,
y)*chi_.xx()(
x,
y)+2.*psi_.dfxy()(
x,
y)*chi_.xy()(
x,
y)+psi_.dfyy()(
x,
y)*chi_.yy()(
x,
y)
39 + chi_.divX()(
x,
y)*psi_.dfx()(
x,
y) + chi_.divY()(
x,
y)*psi_.dfy()(
x,
y);
50 double do_compute(
double x,
double y)
const{
return psi_.dfxx()(
x,
y)+psi_.dfyy()(
x,
y);}
75 double psiX = psi_.
dfx()(
x,
y), psiY = psi_.
dfy()(
x,
y);
76 return 1./sqrt(psiX*psiX+psiY*psiY);
91 double psiX = psi_.
dfx()(
x,
y), psiY = psi_.
dfy()(
x,
y);
92 double psiXX = psi_.
dfxx()(
x,
y), psiXY = psi_.
dfxy()(
x,
y);
93 double psip = sqrt( psiX*psiX+psiY*psiY);
94 return -(psiX*psiXX+psiY*psiXY)/psip/psip/psip;
110 double psiX = psi_.
dfx()(
x,
y), psiY = psi_.
dfy()(
x,
y);
111 double psiYY = psi_.
dfyy()(
x,
y), psiXY = psi_.
dfxy()(
x,
y);
112 double psip = sqrt( psiX*psiX+psiY*psiY);
113 return -(psiX*psiXY+psiY*psiYY)/psip/psip/psip;
143 double psiX = psi_.
dfx()(
x,
y), psiY = psi_.
dfy()(
x,
y), k2 = k_*k_;
144 double psip2 = psiX*psiX+psiY*psiY;
145 double sqrtG = sqrt((eps_+psip2)*(eps_+k2*psip2));
146 return (psiY*psiY+k2*psiX*psiX + eps_)/sqrtG;
166 double psiX = psi_.
dfx()(
x,
y), psiY = psi_.
dfy()(
x,
y), k2 = k_*k_;
167 double psip2 = psiX*psiX+psiY*psiY;
168 double sqrtG = sqrt((eps_+psip2)*(eps_+k2*psip2));
169 return (-psiX*psiY+k2*psiX*psiY)/sqrtG;
189 double psiX = psi_.
dfx()(
x,
y), psiY = psi_.
dfy()(
x,
y), k2 = k_*k_;
190 double psip2 = psiX*psiX+psiY*psiY;
191 double sqrtG = sqrt((eps_+psip2)*(eps_+k2*psip2));
192 return (eps_+psiX*psiX+k2*psiY*psiY)/sqrtG;
209 double psiX = psi_.
dfx()(
x,
y), psiY = psi_.
dfy()(
x,
y), k2 = k_*k_;
211 double psiY2 = psiY*psiY, psiY3=psiY*psiY2, psiY4=psiY2*psiY2, psiY5=psiY4*psiY;
212 double psiX2 = psiX*psiX, psiX4=psiX2*psiX2;
213 double psip2 = psiX*psiX+psiY*psiY;
214 double sqrtG = sqrt((eps_+psip2)*(eps_+k2*psip2));
215 return (k2-1.)*(k2*psiY5*psiXY-k2*psiX*psiY4*(psiYY-2.*psiXX) +
216 psiX*(eps_+2.*eps_*k2+2.*k2*psiX2)*psiY2*psiXX +
217 psiX*(eps_+k2*psiX2)*((eps_+psiX2)*psiYY+eps_*psiXX)+
218 psiY*((eps_*eps_-k2*psiX4)*psiXY-(eps_+2*psiX2)*(eps_+k2*psiX2)*psiXY) +
219 psiY3*(eps_*(1.+k2)*psiXY-(eps_+2.*k2*psiX2)*psiXY))/sqrtG/sqrtG/sqrtG;
236 double psiX = psi_.
dfx()(
x,
y), psiY = psi_.
dfy()(
x,
y), k2 = k_*k_;
238 double psiX2 = psiX*psiX, psiX3=psiX*psiX2, psiX4=psiX2*psiX2, psiX5=psiX4*psiX;
239 double psiY2 = psiY*psiY, psiY4 = psiY2*psiY2;
240 double psip2 = psiX*psiX+psiY*psiY;
241 double sqrtG = sqrt((eps_+psip2)*(eps_+k2*psip2));
242 return (k2-1.)*(psiX2*psiY*(eps_+2.*eps_*k2+2.*k2*psiY2)*psiYY +
243 k2*psiX4*psiY*(2.*psiYY-psiXX)+psiY*(eps_+k2*psiY2)
244 *(eps_*psiYY+(eps_+psiY2)*psiXX)+k2*psiX5*psiXY+
245 psiX3*(-(eps_+2.*k2*psiY2)*psiXY+eps_*(1.+k2)*psiXY) +
246 psiX*(-(eps_+2.*psiY2)*(eps_+k2*psiY2)*psiXY + (eps_*eps_-k2*psiY4)*psiXY))/sqrtG/sqrtG/sqrtG;
static CylindricalFunctorsLvl1 make_NablaPsiInvCollective(const CylindricalFunctorsLvl2 &psi)
A container class that contains all NablaPsiInv functors.
Definition: adaption.h:123
static CylindricalSymmTensorLvl1 make_LiseikinCollective(const CylindricalFunctorsLvl2 &psi, double k, double eps)
Definition: adaption.h:254
This struct bundles a function and its first derivatives.
Definition: fluxfunctions.h:182
const CylindricalFunctor & dfx() const
Definition: fluxfunctions.h:205
const CylindricalFunctor & dfy() const
Definition: fluxfunctions.h:207
This struct bundles a function and its first and second derivatives.
Definition: fluxfunctions.h:219
const CylindricalFunctor & dfxy() const
Definition: fluxfunctions.h:251
const CylindricalFunctor & dfy() const
Definition: fluxfunctions.h:247
const CylindricalFunctor & dfx() const
Definition: fluxfunctions.h:245
const CylindricalFunctor & dfxx() const
Definition: fluxfunctions.h:249
const CylindricalFunctor & dfyy() const
Definition: fluxfunctions.h:253
Definition: fluxfunctions.h:361
The x-component of the divergence of the Liseikin monitor metric.
Definition: adaption.h:205
DivLiseikinX(const CylindricalFunctorsLvl2 &psi, double k, double eps)
Definition: adaption.h:206
double do_compute(double x, double y) const
Definition: adaption.h:207
The y-component of the divergence of the Liseikin monitor metric.
Definition: adaption.h:232
DivLiseikinY(const CylindricalFunctorsLvl2 &psi, double k, double eps)
Definition: adaption.h:233
double do_compute(double x, double y) const
Definition: adaption.h:234
The xx-component of the Liseikin monitor metric.
Definition: adaption.h:139
Liseikin_XX(const CylindricalFunctorsLvl1 &psi, double k, double eps)
Definition: adaption.h:140
double do_compute(double x, double y) const
Definition: adaption.h:141
The xy-component of the Liseikin monitor metric.
Definition: adaption.h:162
double do_compute(double x, double y) const
Definition: adaption.h:164
Liseikin_XY(const CylindricalFunctorsLvl1 &psi, double k, double eps)
Definition: adaption.h:163
The yy-component of the Liseikin monitor metric.
Definition: adaption.h:185
Liseikin_YY(const CylindricalFunctorsLvl1 &psi, double k, double eps)
Definition: adaption.h:186
double do_compute(double x, double y) const
Definition: adaption.h:187
A weight function for the Hector algorithm.
Definition: adaption.h:66
double do_compute(double x, double y) const
Definition: adaption.h:73
NablaPsiInv(const CylindricalFunctorsLvl1 &psi)
Construct with function container.
Definition: adaption.h:72
Derivative of the weight function.
Definition: adaption.h:87
double do_compute(double x, double y) const
Definition: adaption.h:89
NablaPsiInvX(const CylindricalFunctorsLvl2 &psi)
Definition: adaption.h:88
Derivative of the weight function.
Definition: adaption.h:106
NablaPsiInvY(const CylindricalFunctorsLvl2 &psi)
Definition: adaption.h:107
double do_compute(double x, double y) const
Definition: adaption.h:108
Represent functions written in cylindrical coordinates that are independent of the angle phi serving ...
Definition: fluxfunctions.h:66