Hi all, what is the proper way to check that a Neumann/Robin boundary condition is satisified at a boundary? For example, if I have \nabla c\cdot\hat{n}=0 at a particular boundary and I insert this into the weak form of my problem, what is the proper way to check that this boundary condition is satisfied? My current method is to simply evaluate the normal derivative of the solution at the boundary, but this does not return exactly zero (I’ve been told that this is likely to be due to numerical noise). I can’t think of any other way to check that such a boundary condition is satified; is there a better way? Many thanks.

I did not say it was numerical noise (implies stochasticity), I said it was numerical error (due to discretization). You can check this by comparing with an analytical solution when possible (start simple!), or, in more complex cases, by comparing results on more accurate discretizations to demonstrate convergence.

Hi Chris, apologies, yes numerical error. As an imposed boundary condition though, why is it that there’s any error at all? I would have thought that the solution would obey an imposed boundary condition exactly. Unless the method by which I’m checking that the boundary condition is obeyed is incorrect?

Again, your approximation of derivatives can only be as accurate as your discretization. You can only check how well this matches a continuous Robin condition approximately.

And remenber that the Neuman and Robin Boundary condition is written in weak sens (thought integral),

For exemple if dn(u) = 0 in Laplace Problem on \Gamma_n you have just

\int_{\Gamma_n} dn(u) v =0, \forall v

and not exactly dn(u) = 0 point wise