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
Currently every Topology has a transforms and an opposites attribute. If some topology does not have opposites, both attributes are equal. If you take the interfaces of interfaces of a topology, the opposites are somewhat arbitrarily defined by the second operation. In the tensorial world it becomes even worse: if you multiply two topologies with opposites, there is no logical definition of the opposites of the product.
All 'issues' could be addressed by defining the Topology.transforms attribute as an ndarray of transforms sequences. A new topology generated with mesh.rectilinear has a 0d-array of transforms sequences. Taking the interfaces of this topology would give a topology with transforms sequences of shape [2]. Taking the interfaces again might give transforms sequences of shape [2,2]. Multiplying the interfaces of two topologies with 0d-arrays of transforms sequences would give a topology with a [2,2] transforms sequences, with the first axis belonging to the left operand and the second to the right.
When evaluating or integrating a function at or over a topology, the result will be computed for all transforms of the topology simultaneously and will maintain the shape of the transforms sequences, unless a function explicitly applies some kind of reduction over one of the transforms axes, e.g. by function.jump. The transforms sequences reduction functions must be extended with an (optional) axis argument.
The text was updated successfully, but these errors were encountered:
Currently every
Topology
has atransforms
and anopposites
attribute. If some topology does not have opposites, both attributes are equal. If you take the interfaces of interfaces of a topology, the opposites are somewhat arbitrarily defined by the second operation. In the tensorial world it becomes even worse: if you multiply two topologies with opposites, there is no logical definition of the opposites of the product.All 'issues' could be addressed by defining the
Topology.transforms
attribute as anndarray
of transforms sequences. A new topology generated withmesh.rectilinear
has a 0d-array of transforms sequences. Taking the interfaces of this topology would give a topology with transforms sequences of shape[2]
. Taking the interfaces again might give transforms sequences of shape[2,2]
. Multiplying the interfaces of two topologies with 0d-arrays of transforms sequences would give a topology with a[2,2]
transforms sequences, with the first axis belonging to the left operand and the second to the right.When evaluating or integrating a function at or over a topology, the result will be computed for all transforms of the topology simultaneously and will maintain the shape of the transforms sequences, unless a function explicitly applies some kind of reduction over one of the transforms axes, e.g. by
function.jump
. The transforms sequences reduction functions must be extended with an (optional) axis argument.The text was updated successfully, but these errors were encountered: