• Alexis SALZMAN's avatar
    [xFM] introduce graph creation version of fmeik in sequential · f191a539
    Alexis SALZMAN authored
    2 new fmeik functions are now available in FM.h sequential header.
    They  have one or two new arguments compare to previous simplest version.
    These arguments are the "flux" graph that FM computes during its
    resolution.
    The first one is flux_from argument that is optional. It is always
    constructed by FM internal function. But it may be a temporary and not
    passed to fmeik. fmeik is then in charge of its creation and
    destruction.
    The second one is flux_to argument which represent the graph of the flux
    devised by the FM to update the level set. It can be use by the user to
    transport any information from any vertex (source or not). It gives the
    sources and well of the computed flux. This graph is stored in
    xgraph::nodeTo graph structure.
    The attached data to graph nodes are the gradient computed by the FM
    at corresponding vertex. No attached data means no gradient which means
    that it is a source node in the graph. No outgoing graph edges for a
    graph node means that it is a well.
    
    This set of function may replace old ones as flux_to gives gradients and
    a way to compute transported information. Compare to original version
    those versions offer a more clear "Gama in/source" treatment. User still
    gives the set of know and volatile known seed to FM. But in one pass the
    flux is correctly computed taking into account naturally "Gama
    in/source" modified by FM. As transported information will now be
    computed out of this flux graph there is no need to recompute FM to
    obtain correct transported values in this context.
    
    From an implementation point of view a new internal fmeikFlux and
    FMupdaterFlux are coded. They are different compare to their non flux
    counterpart as they create flux graph and treat "Gama in/source"
    differently. In future some factoring may merge flux and non flux
    functions.
    
    All those new elements are under macro HAVE_XGRAPH control. If this
    macro is not set the xFastmarching library do not depend on xGraph
    library and those new fmeik version are not available.
    f191a539