Hi Corbin,
To add to Daniel's suggestion, you could also associated some
generic data structures to your cell that you could store the
multi-material id data in, and query it as you like. I can think of
three different ways to do this:
1. Directly attach your data structure to each cell's user pointer.
See the
TriaAccessor::set_user_pointer()
function and the other functions related to the user_pointer.
Step-18
uses the cell user pointer to store quadrature point data.
2. Create a map between the
CellID
and your data structure, e.g. std::map<CellID,
std::vector<types::material_id>>
3. In the same spirit as suggestion (2), you can use the
CellDataStorage
class to associate cell iterators with some generic data.
Step-44
leverages this class to store quadrature point data.
I hope that this help you achieve what you're trying to do.
Best,
Jean-Paul