serac
serac copied to clipboard
Fix the project method in the BoundaryCondition class
https://github.com/LLNL/serac/blob/8c53d5586e66a7eb7b33846dd4f029c95a59e7f3/src/physics/utilities/boundary_condition.cpp#L40-L64
The underlying mfem 'ProjectCoefficient` method in this function expects the full dof numbering instead of true dofs. We should either convert our true dof list or store the full dofs separately.
Is the conversion you were envisioning different than the VDofToDof
conversion currently being done?
Looking through the origin of this function it looks like that's the only transformation applied to the tdof list: https://github.com/LLNL/serac/blob/1216c1a88f0bdafd5c74e513e06c221a8163d7e6/src/solvers/nonlinear_solid_solver.cpp#L134-L153
It's entirely possible this was always a bug. It came up in @samuelpmishLLNL 's PR for refactoring ODEs. Looking at the underlying MFEM call, it definitely expects the full dofs and not the true dofs as it uses processor-local numbering to do this projection.