optimad / mimmo

Surface manipulation and mesh morphing library
http://optimad.github.io/mimmo
GNU Lesser General Public License v3.0
99 stars 21 forks source link

Add I/O ports for mimmo block communication #159

Closed edoardolombardi closed 3 years ago

edoardolombardi commented 3 years ago

mimmo block communication I/O ports allows the more advance features during the execution of a block in chain.

Propagation of class setup, use of nested blocks, wrapper of chain of blocks can be more esasily settled if a mimmo block can communicate itself to a linked one through a dedicated port.

The port reasonably will be defined for a pointer to the BaseManipulation class, this requires that a receiver block knows how to cast and use the received pointer to base class.

roccoarpa commented 3 years ago

Another option (not strictly alternative to the first one) could be to provide an exchange port for the xml chunk of parameters bitpit::Config::Section. Every block has already a flusher and a absorber of its own parameters in xml and a direct constructor dedicated. This option is faster to activate in my opinion and will allow a copy of inner parameters of same class blocks (as in paraview f.e.). This should cover not entirely, but some parts of the issue at least. Drawbacks here are that you need to pass the other needed info from other ports (initial geometry, etc...) and to re-execute the block after the copy. But we can think about it.