underworldcode / underworld3

https://underworldcode.github.io/underworld3/
Other
21 stars 10 forks source link

Clarification re. duplicate additions of the boundaries #246

Open jcgraciosa opened 2 months ago

jcgraciosa commented 2 months ago

Both essential and natural BCs are added (using PetscDSAddBoundary_UW) in the setup_discretisation method defined in petsc_generic_snes_solvers.pyx. In turn, the setup_discretisation method is called in build (or rebuild_after_mesh_update) function. This build function is then called in the solve functions defined in the generic solvers. However, setup_discretisation is also called in the solve of the child classes (e.g. SNES_AdvectionDiffusion). This results to duplicate addition of the essential and natural BCs.

Is this okay?

lmoresi commented 1 month 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