MATLAB: Poisolv : “Must only use Dirichlet boundary conditions.” Why

boundary conditionsdirichletMATLABneumannPartial Differential Equation Toolbox

I'm trying to use poisolv on a rectangular domain. I orignally wanted to apply non constant boundary conditions (with no luck…) using a pdebound function but even if I just put :
applyBoundaryCondition(pdem,'Edge',1:4,'g',0) ;
I get the error on the title that says that I can only use Dirichlet boundary conditions, can somebody explain why and a possible workaround to that ? Thank you.

Best Answer

.... because that is what the function is designed to do?
u = poisolv(b,p,e,t,f) solves Poisson's equation with Dirichlet boundary conditions on a regular rectangular grid. A combination of sine transforms and tridiagonal solutions is used for increased performance.
The boundary conditions b must specify Dirichlet conditions for all boundary points."
In other words, in the special case where your boundary has Dirichlet boundary conditions, there is a formulation that can solve Poisson's equations faster, and this is a routine for that special case.
Workaround: use assempde if necessary.
Related Question