geodynamics / aspect

A parallel, extensible finite element code to simulate convection in both 2D and 3D models.
https://aspect.geodynamics.org/
Other
227 stars 237 forks source link

Derive remaining managers from ManagerBase #6097

Open gassmoeller opened 1 month ago

gassmoeller commented 1 month ago

A suggestion for how to finish #1775. This is still work in progress and unfortunately not completely backwards compatible, but at least the incompatibility is only limited to two rarely used functions in the code, not the input file. The traction manager (and the velocity manager once I get to it) need additional information compared to ManagerBase, namely which boundary each plugin is responsible for, and which components (of the tensor components xyz). The main change is the type of internal storage container, and the access functions get_active_boundary_traction_conditions and get_active_boundary_traction_names. Opinions? If we we agree this is a good idea I can continue with the velocity manager.

gassmoeller commented 4 weeks ago

/rebuild

gassmoeller commented 4 weeks ago

Something is not right with this code. I don't see you incrementing i anywhere. It's also not clear that this-boundary_indicators[i] is a bool. Are you forgetting to compare it against boundary_indicator?

Yes, I rushed this PR a bit, I mostly needed feedback if the idea is sound in general. I have cleaned up the PR, addressed your comments and expanded it to the boundary velocity manager. I think this should work now, but I am open to suggestions for changes.