# Difference between revisions of "Refactoring Level-Set framework - V4"

From KitwarePublic

Jump to navigationJump to search
Arnaudgelas (talk | contribs) |
Arnaudgelas (talk | contribs) |
||

Line 15: | Line 15: | ||

== Tcons == | == Tcons == | ||

* 29 July. Attendees: Karthik Krishnan (Kitware), Lucas Antiga (Orobix), Kishore Mosaliganti (Harvard), Arnaud Gelas (Harvard) | |||

* 1 September. Attendees: Olivier Bernard (Creatis), Joel Schaerer (Creatis), Kishore Mosaliganti (Harvard), Arnaud Gelas (Harvard) | |||

== Ideas == | == Ideas == | ||

Line 35: | Line 35: | ||

=== Term Sum Container === | === Term Sum Container === | ||

Inherit form Term Container | * Inherit form Term Container | ||

Implement Value as sum of all elements from the container | * Implement Value as sum of all elements from the container | ||

=== Term Product Container === | === Term Product Container === | ||

Inherit form Term Container | * Inherit form Term Container | ||

Implement Value as product of all elements from the container | * Implement Value as product of all elements from the container | ||

=== LevelSetFunctionBase === | === LevelSetFunctionBase === | ||

Virtual Value() = 0; | * Virtual Value() = 0; | ||

Virtual Grad() = 0; | * Virtual Grad() = 0; | ||

Virtual Hessian() = 0; | * Virtual Hessian() = 0; | ||

Virtual bool IsStreamable() = 0; | * Virtual bool IsStreamable() = 0; | ||

=== LocalStructure === | === LocalStructure === | ||

Location x | * Location x | ||

* std::pair< bool, xxx > value (bool encode if its characteristics has already been computed) | |||

* std::pair< bool, xxx > grad | |||

Etc… | * Etc… | ||

=== Reinitialization Filter === | === Reinitialization Filter === | ||

Input: one level set function | * Input: one level set function | ||

Output: one level set function | * Output: one level set function | ||

Virtual void GenerateData() = 0; // processing | * Virtual void GenerateData() = 0; // processing | ||

=== Stopping criterion === | === Stopping criterion === | ||

Functor? | * Functor? | ||

Phi^{n} | * Phi^{n} | ||

Phi^{n-1} | * Phi^{n-1} | ||

Number of iterations | * Number of iterations | ||

Check for additional values that can be passed (to avoid as much as possible explosion of computational cost!!!) | * Check for additional values that can be passed (to avoid as much as possible explosion of computational cost!!!) | ||

=== SamplingDomain === | === SamplingDomain === | ||

Represents the domain where the level set PDE is sampled, and thus used to solve the PDE equation. | * Represents the domain where the level set PDE is sampled, and thus used to solve the PDE equation. | ||

Iterator Begin(); | * Iterator Begin(); | ||

Iterator End(); | * Iterator End(); | ||

Iterator Iterator::operator ++ ( -- ? ) | * Iterator Iterator::operator ++ ( -- ? ) |

## Revision as of 14:02, 1 September 2010

This page outlines the proposed changes to the current Level-Set framework. A number of these changes will break backwards compatibility.

## Authors

The proposed changes for the Level-Set framework are being proposed by the Megason-Lab, Systems Biology Department, Harvard Medical School.

Questions and comments regarding these changes should be sent to

- Arnaud Gelas (arnaud_gelas -at- hms.harvard.edu)
- Sean Megason (sean_megason -at- hms.harvard.edu)

Other team members include:

- Kishore Mosaliganti (kishore_mosaliganti -at- hms.harvard.edu)
- Nicolas Rannou (nicolas_rannou -at- hms.harvard.edu)

## Tcons

- 29 July. Attendees: Karthik Krishnan (Kitware), Lucas Antiga (Orobix), Kishore Mosaliganti (Harvard), Arnaud Gelas (Harvard)
- 1 September. Attendees: Olivier Bernard (Creatis), Joel Schaerer (Creatis), Kishore Mosaliganti (Harvard), Arnaud Gelas (Harvard)

## Ideas

### Term class

- One weight (scalar)
- One Level Set Function
- virtual GetCFLContribution() = 0;
- virtual Value() = 0;
- virtual bool IsStreamable() = 0

### Term Container class

- std::map< id, Term > to be able to dynamically chaVirtual Value() = 0;
- bool IsStreamable(); // iterate on all term elements as long as there is streamable element.

### Term Sum Container

- Inherit form Term Container
- Implement Value as sum of all elements from the container

### Term Product Container

- Inherit form Term Container
- Implement Value as product of all elements from the container

### LevelSetFunctionBase

- Virtual Value() = 0;
- Virtual Grad() = 0;
- Virtual Hessian() = 0;
- Virtual bool IsStreamable() = 0;

### LocalStructure

- Location x
- std::pair< bool, xxx > value (bool encode if its characteristics has already been computed)
- std::pair< bool, xxx > grad
- Etc…

### Reinitialization Filter

- Input: one level set function
- Output: one level set function
- Virtual void GenerateData() = 0; // processing

### Stopping criterion

- Functor?
- Phi^{n}
- Phi^{n-1}
- Number of iterations
- Check for additional values that can be passed (to avoid as much as possible explosion of computational cost!!!)

### SamplingDomain

- Represents the domain where the level set PDE is sampled, and thus used to solve the PDE equation.
- Iterator Begin();
- Iterator End();
- Iterator Iterator::operator ++ ( -- ? )