In the function surfacefun/+surfaceop/@leaf/initialize_ItI.m, within the main for loop over patches, there is an if (dom.singular(k)) condition.
Several variables such as neu_w, neu_e, dir_w, dir_e, bc_w, bc_e, etc., are only defined inside the else block.
However, those same variables are used later outside the conditional.
For example, in the following line:
normal_d = [ neu_w - 1i*eta*dir_w ; neu_e - 1i*eta*dir_e ; neu_s - 1i*eta*dir_s ; neu_n - 1i*eta*dir_n ];
If the if (dom.singular(k)) condition is 1, these variables are never initialized, which leads to a runtime error such as:
Unrecognized function or variable 'neu_w'.