@navjotk. @mlange05 , @ggorman
Gerard told me you wanted some insight on the boundaries for higher order stencils. The way it is currently implemented in the notebook is the easiest possible (even if slightly more expensive than complex ones).
The idea is, if you have a stencil of order n (n+1 ponts) you add n/2 ghost nodes after your boundary that you never update, it is just there to let you compute your stencil at the limit of the domain.
This is why for my second order implementation, the loops in space go from 1 to nx-2, nodes 0 and nx-1 are just there to make the computation easy.
I hope it helped, let me know if you find it a bit obscure