TTK
Loading...
Searching...
No Matches
ttk::SeparatrixStability Class Reference

Compute the occurrence rate of separatrices in an ensemble. More...

#include <SeparatrixStability.h>

Inheritance diagram for ttk::SeparatrixStability:
ttk::Debug ttk::BaseClass ttkSeparatrixStability

Public Types

using GraphMatrixMinor = std::vector<std::vector<std::vector<std::pair<int, int>>>>
 
using GraphMatrixFull = std::vector<std::vector<int>>
 

Public Member Functions

 SeparatrixStability ()
 
int buildOccurrenceArrays (const std::vector< GraphMatrixFull > &adjacencyMatrices, const std::vector< int > &separatrixCountForEachBlock, const std::vector< std::vector< std::array< double, 3 > > > &coordsSource, const std::vector< std::vector< std::array< double, 3 > > > &coordsDestination, const std::vector< std::vector< double > > &scalarsSource, const std::vector< std::vector< double > > &scalarsDestination, const bool &mergeEdgesOnSaddles, std::vector< std::vector< int > > &edgesOccurrencesForEachBlock, std::vector< std::vector< bool > > &isomorphismForEachBlock, std::vector< std::vector< std::vector< int > > > &matchingArrayForEachBlockSource, std::vector< std::vector< std::vector< int > > > &matchingArrayForEachBlockDestination, std::vector< std::vector< std::vector< int > > > &matchingArraySeparatrixForEachBlock)
 
void setEpsilon (double e)
 
void setWeights (const double &px, const double &py, const double &pz, const double &pf)
 
- Public Member Functions inherited from ttk::Debug
 Debug ()
 
 ~Debug () override
 
virtual int setDebugLevel (const int &debugLevel)
 
int setWrapper (const Wrapper *wrapper) override
 
int printMsg (const std::string &msg, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::vector< std::string > &msgs, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printErr (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
 
int printWrn (const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const double &memory, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const double &time, const int &threads, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::PERFORMANCE, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const double &progress, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::vector< std::vector< std::string > > &rows, const debug::Priority &priority=debug::Priority::INFO, const bool hasHeader=true, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const
 
int printMsg (const debug::Separator &separator, const debug::Priority &priority, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsg (const std::string &msg, const debug::Separator &separator, const debug::LineMode &lineMode=debug::LineMode::NEW, const debug::Priority &priority=debug::Priority::INFO, std::ostream &stream=std::cout) const
 
void setDebugMsgPrefix (const std::string &prefix)
 
- Public Member Functions inherited from ttk::BaseClass
 BaseClass ()
 
virtual ~BaseClass ()=default
 
int getThreadNumber () const
 
virtual int setThreadNumber (const int threadNumber)
 

Additional Inherited Members

- Protected Member Functions inherited from ttk::Debug
int printMsgInternal (const std::string &msg, const std::string &right, const std::string &filler, const debug::Priority &priority=debug::Priority::INFO, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cout) const
 
int printMsgInternal (const std::string &msg, const debug::Priority &priority, const debug::LineMode &lineMode, std::ostream &stream=std::cout) const
 
int welcomeMsg (std::ostream &stream)
 
- Protected Attributes inherited from ttk::Debug
int debugLevel_
 
std::string debugMsgPrefix_
 
std::string debugMsgNamePrefix_
 
- Protected Attributes inherited from ttk::BaseClass
bool lastObject_
 
int threadNumber_
 
Wrapperwrapper_
 
- Static Protected Attributes inherited from ttk::Debug
static COMMON_EXPORTS debug::LineMode lastLineMode = ttk::debug::LineMode::NEW
 

Detailed Description

Compute the occurrence rate of separatrices in an ensemble.

Author
Thomas Daniel thoma.nosp@m.s.da.nosp@m.niel1.nosp@m.24@g.nosp@m.mail..nosp@m.com
Date
July 2025.

This module takes as an input a set of 1-dimensional separatrices of the Morse-Smale complex for an ensemble dataset. It computes as an output, for each separatrix, its rate of occurrence in the ensemble (based on partial isomorphism computations).

See also
ttkSeparatrixStability.cpp for a usage example.

Online examples:

Related publication:
"BondMatcher: H-Bond Stability Analysis in Molecular Systems"
Thomas Daniel, Malgorzata Olejniczak, Julien Tierny
IEEE Transactions on Visualization and Computer Graphics
Proc. of IEEE VIS 2025.

Definition at line 37 of file SeparatrixStability.h.

Member Typedef Documentation

◆ GraphMatrixFull

using ttk::SeparatrixStability::GraphMatrixFull = std::vector<std::vector<int>>

Definition at line 41 of file SeparatrixStability.h.

◆ GraphMatrixMinor

using ttk::SeparatrixStability::GraphMatrixMinor = std::vector<std::vector<std::vector<std::pair<int, int>>>>

Definition at line 40 of file SeparatrixStability.h.

Constructor & Destructor Documentation

◆ SeparatrixStability()

ttk::SeparatrixStability::SeparatrixStability ( )

Definition at line 6 of file SeparatrixStability.cpp.

Member Function Documentation

◆ buildOccurrenceArrays()

int ttk::SeparatrixStability::buildOccurrenceArrays ( const std::vector< GraphMatrixFull > & adjacencyMatrices,
const std::vector< int > & separatrixCountForEachBlock,
const std::vector< std::vector< std::array< double, 3 > > > & coordsSource,
const std::vector< std::vector< std::array< double, 3 > > > & coordsDestination,
const std::vector< std::vector< double > > & scalarsSource,
const std::vector< std::vector< double > > & scalarsDestination,
const bool & mergeEdgesOnSaddles,
std::vector< std::vector< int > > & edgesOccurrencesForEachBlock,
std::vector< std::vector< bool > > & isomorphismForEachBlock,
std::vector< std::vector< std::vector< int > > > & matchingArrayForEachBlockSource,
std::vector< std::vector< std::vector< int > > > & matchingArrayForEachBlockDestination,
std::vector< std::vector< std::vector< int > > > & matchingArraySeparatrixForEachBlock )

Definition at line 377 of file SeparatrixStability.cpp.

◆ setEpsilon()

void ttk::SeparatrixStability::setEpsilon ( double e)
inline

Definition at line 62 of file SeparatrixStability.h.

◆ setWeights()

void ttk::SeparatrixStability::setWeights ( const double & px,
const double & py,
const double & pz,
const double & pf )
inline

Definition at line 66 of file SeparatrixStability.h.


The documentation for this class was generated from the following files: