"zakaryah ." <[email protected]> writes: > Thanks for all the answers, Barry! > > By constant vector, I just meant the part of the function or Jacobian which > doesn't depend on the state variable.
If you need inhomogeneous Neumann, you'll have to modify the ghost value. MIRROR is really a cheap hack -- for anything more general, you can use GHOSTED and use whatever algorithm you like to fill in those ghost values. Also, rather than think of the Neumann boundary condition as being a centered first derivative, I like to think about it as extending the domain of the PDE after imposing some (biased) symmetry. This gives you a consistent scaling for the equation and doesn't require a new "stencil". > I am working in 3D - I will have a look at the code. To implement, > would everything be in da3.c, analogous to the implementation in > da2.c? In other words - would there be changes in other source files > as well or would they be limited to da3.c? It looks like it is implemented for 3D, at least in the sense that there are the requisite number of conditionals on DM_BOUNDARY_MIRROR. You might just need to remove the stale line at the top that sets an error claiming that DM_BOUNDARY_MIRROR is not implemented. Let us know if that works.
