Allow ObjectSet tree, i.e. keeping them in a form of tuples, lists, even dictionaries internally, but alow collective operations
on them. Alternative is to have collective operations as plain functions. Possibly better. Anyway, we need a
Tuple/List/Dict traversal mechanism.
Refactor to construct a DAG of model operations and then perform it at once in GMSH.OCC. That would allow a clean functional approach. We can avoid copies at all since we can reconstruct any entity from scratch. Thus converting a DAG into a tree impolitely. Not efficient but can be used as a reliable workaround.
Separate current ObjectSet into:
Entity = single dim tag
DimCompound = set of entities of the same dimension
MixedCompound = set of entities of any dimension
Having elementary Entity, MixedCompound is just a List, DimCompound is just a list with associated common dimension
Advantage is that we can allow certain operations (e.g. get_mass) only for DimCompound
separate bgem.gmsh to independent package
Allow ObjectSet tree, i.e. keeping them in a form of tuples, lists, even dictionaries internally, but alow collective operations on them. Alternative is to have collective operations as plain functions. Possibly better. Anyway, we need a Tuple/List/Dict traversal mechanism.
Refactor to construct a DAG of model operations and then perform it at once in GMSH.OCC. That would allow a clean functional approach. We can avoid copies at all since we can reconstruct any entity from scratch. Thus converting a DAG into a tree impolitely. Not efficient but can be used as a reliable workaround.