30 const ext::shared_ptr<FdmMesher>& mesher)
33 for (
const auto& iter : *mesher->layout()) {
34 const Size i = iter.index();
38 const Real zetam1 = hm*(hm+hp);
39 const Real zeta0 = hm*hp;
40 const Real zetap1 = hp*(hm+hp);
43 if (co == 0 || co == mesher->layout()->dim()[direction]-1) {
48 diag_[i] = -2.0/zeta0;
SecondDerivativeOp(Size direction, const ext::shared_ptr< FdmMesher > &mesher)
std::unique_ptr< Real[]> diag_
std::unique_ptr< Real[]> lower_
std::unique_ptr< Real[]> upper_
memory layout of a fdm linear operator
std::size_t Size
size of a container
second derivative operator