13 #ifndef eli_mutil_fd_d1o2_hpp
14 #define eli_mutil_fd_d1o2_hpp
18 #include "eli/code_eli.hpp"
26 template<
typename data__>
43 template<
typename itc__,
typename itphi__> data__
calculate_dot(itc__ a, itphi__ itphi)
const
45 data__ d(static_cast<data__>(0));
90 template<
typename iti__> std::ptrdiff_t
index(iti__ iti)
const
131 template<
typename itphi__>
int evaluate(data__ &d, itphi__ itphi,
const data__ &dx)
const
143 template<
typename itphi__,
typename itx__>
int evaluate(data__ &d, itphi__ itphi, itx__ itx)
const
155 template<
typename itc__>
int coefficients(itc__ itc,
const data__ &dx)
const
161 (*itc)=
static_cast<data__
>( 0.5)/dx;++itc;
162 (*itc)=
static_cast<data__
>(-2.0)/dx;++itc;
163 (*itc)=
static_cast<data__
>( 1.5)/dx;
169 (*itc)=
static_cast<data__
>(-0.5)/dx;++itc;
170 (*itc)=
static_cast<data__
>( 0.0)/dx;++itc;
171 (*itc)=
static_cast<data__
>( 0.5)/dx;
177 (*itc)=
static_cast<data__
>(-1.5)/dx;++itc;
178 (*itc)=
static_cast<data__
>( 2.0)/dx;++itc;
179 (*itc)=
static_cast<data__
>(-0.5)/dx;
193 template<
typename itc__,
typename itx__>
int coefficients(itc__ itc, itx__ itx)
const
206 data__ alphaim1, betaim2, alphaim2;
211 (*itc)=alphaim1/(betaim2*alphaim2);++itc;
212 (*itc)=-betaim2/(alphaim1*alphaim2);++itc;
213 (*itc)=(alphaim1+betaim2)/(alphaim1*betaim2);
219 data__ deli, delim1, gamip1;
224 (*itc)=-deli/(delim1*gamip1);++itc;
225 (*itc)=(deli-delim1)/(deli*delim1);++itc;
226 (*itc)=delim1/(deli*gamip1);
232 data__ alphai, betai, alphaip1;
237 (*itc)=-(alphai+betai)/(alphai*betai);++itc;
238 (*itc)=betai/(alphai*alphaip1);++itc;
239 (*itc)=-alphai/(betai*alphaip1);
282 template<
typename itx__>
int truncation_error(data__ &te,
const data__ &phi3, itx__ itx)
const
295 data__ delim1, betaim2;
300 te=phi3*delim1*betaim2/6;
310 te=-phi3*deli*delim1/6;
315 data__ alphai, betai;
320 te=phi3*alphai*betai/6;
int order(bool) const
Definition: d1o2.hpp:80
int truncation_error(data__ &te, const data__ &phi3, itx__ itx) const
Definition: d1o2.hpp:282
stencil st
Definition: d1o2.hpp:40
void set_stencil(const stencil &s)
Definition: d1o2.hpp:70
const stencil & get_stencil() const
Definition: d1o2.hpp:75
stencil
Definition: d1o2.hpp:30
int coefficients(itc__ itc, const data__ &dx) const
Definition: d1o2.hpp:155
~d1o2()
Definition: d1o2.hpp:66
data__ calculate_dot(itc__ a, itphi__ itphi) const
Definition: d1o2.hpp:43
int evaluate(data__ &d, itphi__ itphi, itx__ itx) const
Definition: d1o2.hpp:143
const int n_order
Definition: d1o2.hpp:39
int coefficients(itc__ itc, itx__ itx) const
Definition: d1o2.hpp:193
d1o2()
Definition: d1o2.hpp:54
int evaluate(data__ &d, itphi__ itphi, const data__ &dx) const
Definition: d1o2.hpp:131
size_t number_nodes() const
Definition: d1o2.hpp:85
const size_t nnodes
Definition: d1o2.hpp:38
d1o2(const d1o2< data__ > &d)
Definition: d1o2.hpp:62
d1o2(const stencil &s)
Definition: d1o2.hpp:58
int truncation_error(data__ &te, const data__ &phi3, const data__ &dx) const
Definition: d1o2.hpp:253
std::ptrdiff_t index(iti__ iti) const
Definition: d1o2.hpp:90