Open jcgraciosa opened 2 months ago
We got a bit tied in knots with how the solver classes inherit functionality. They should not both be adding boundary conditions in this way though. I'm assigning @julesghub to clarify if there is a deliberate choice in here or a misunderstanding
Both essential and natural BCs are added (using
PetscDSAddBoundary_UW
) in thesetup_discretisation
method defined in petsc_generic_snes_solvers.pyx. In turn, thesetup_discretisation
method is called inbuild
(orrebuild_after_mesh_update
) function. Thisbuild
function is then called in thesolve
functions defined in the generic solvers. However,setup_discretisation
is also called in thesolve
of the child classes (e.g. SNES_AdvectionDiffusion). This results to duplicate addition of the essential and natural BCs.Is this okay?