The current MeshFields backend assumes that the number of components is always 1. It should support fields with multi components. This work requires:
- Updating the MeshFields API to handle multi-component fields.
- Adding tests covering multi-component evaluation, serialization, and communication.
Known issue:
Supporting multi-component fields exposes an existing layout mismatch in the current implementation. The underlying Kokkos view is hardcoded with dof-major mapping, which is layout right. However, when device memory is enabled, GetDofHolderData() wraps the same memory with a layout left mdspan. This mismatch don't cause any issue in single-component fields, but it may lead to incorrect indexing for multi-component fields.
I'll provide the relevant code and implementation details once the PR #339 has been merged.
The current MeshFields backend assumes that the number of components is always 1. It should support fields with multi components. This work requires:
Known issue:
Supporting multi-component fields exposes an existing layout mismatch in the current implementation. The underlying Kokkos view is hardcoded with dof-major mapping, which is layout right. However, when device memory is enabled,
GetDofHolderData()wraps the same memory with a layout left mdspan. This mismatch don't cause any issue in single-component fields, but it may lead to incorrect indexing for multi-component fields.I'll provide the relevant code and implementation details once the PR #339 has been merged.