You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The set of possible cell kinds, and the mapping from cell kinds to implementations in cell groups, is all hard coded in the source. However if users are willing to write some C++ classes, there's no architectural reason why we can't allow an open collection of possible cell kinds and cell groups which can take responsibility for them.
Proposal:
We switch cell kind away from an enumeration, and instead make it an integer.
Cell group classes are derived from a common interface class, which is made part of the public C++ API.
We provide a new 'cell group mapper' object that handles: the registration of new (i.e. non-built in) cell kinds, and maps from cell kinds to a tuple (priority, cell group factory fn), where the factory function takes the back-end as a parameter, can return a failure if the back-end is unsupported. If a cell group factory function fails, the next lowest priority entry can be tried instead. Alternatively, the map could map (cell kind, back-end) to a single cell group factory function, for which a failure is a hard error.
The domain decomposition description and partition load balancer remain broadly unchanged.
The cell group mapper is supplied as an optional additional parameter to the simulation constructor.
The text was updated successfully, but these errors were encountered:
The set of possible cell kinds, and the mapping from cell kinds to implementations in cell groups, is all hard coded in the source. However if users are willing to write some C++ classes, there's no architectural reason why we can't allow an open collection of possible cell kinds and cell groups which can take responsibility for them.
Proposal:
(priority, cell group factory fn)
, where the factory function takes the back-end as a parameter, can return a failure if the back-end is unsupported. If a cell group factory function fails, the next lowest priority entry can be tried instead. Alternatively, the map could map(cell kind, back-end)
to a single cell group factory function, for which a failure is a hard error.simulation
constructor.The text was updated successfully, but these errors were encountered: