Date post: | 03-Jan-2016 |
Category: |
Documents |
Upload: | bruno-osborn |
View: | 18 times |
Download: | 3 times |
How can geometrical information and physical properties of a material be linked ?
Research done in partnership with ICMCB laboratory (UPR 9048)
Specialised in pourous material study, and high resolution 3-dimensional pictures production.
Members participating to the project : Dominique Bernard
1. How calculations are usually done
Motivation : Fluid flow simulation
. An algorithm, based on the Navier-Stokes differential equations, is used to process 2d and 3d materials images.
. The algorithm stops when result stability is reached.
Main Problem :
Computation time can be very long (several days)
1. How calculations are usually done
. Calculations are not performed on the whole object, but on a sample of the object.
. The material can be seen as a tesselation of the sample, and the global flow can be seen as a tesselation of the local flow.
. This representation is equivalent to considering the opposite borders of the sample joined : the sample is embedded in a toric space.
Motivation : Fluid flow simulation
2. Chosen method
Skeletonise the porous space of the sample in order to draw the main paths followed by the fluid flow through the material (curvilinear skeleton).
The different steps to complete :
.Threshold
.Remove the object’s grain (parts of the object which don’t touch the borders)
.Skeletonisation process [1].
Motivation : Fluid flow simulation
in a toric space…
[1] G. Bertrand et M. Couprie, Transformations topologiques discrètes.
D. Coeurjolly, A. Montanvert et J.M. Chassery, Géométrie discrète et images numériques,
Hermès, 2007.
2. Chosen method
Main hypothesis:
The material (tesselation of the sample) has no grains
(connected component which does not touch « the borders » of the
image)
> We hardly imagine « floating pieces » in the full material.
> The grains are sources of 2d cycles in the skeleton of the porous space.
The skeleton of the porous space draws the main paths followed by the flow through the material.
Motivation : Fluid flow simulation
3. Question
How can we identify, in the sample, the components of the object
which will create grains in the tesselation ?
Motivation : Fluid flow simulation
The material, which is a tesselation of the sample,
still contains grains.
3. Question
How can we identify, in the sample, the components of the object
which will create grains in the tesselation ?
It is not sufficient to filter the grains of the
sample in order to get rid of the grains in the
tesselation.
Motivation : Fluid flow simulation
Contents
. Basic notions Toric spaces, neighbourhoods, loops, homotopy
. Characterizing a « grain » in a toric space
. Fundamental group of the torus Homotopy classes, wrapping vector
. Algorithm for detecting « toric loops » Example, elements of proof
Basic notions: Toric Space
Given d positive integer, we set Ζd = {0,…, d-1}.
The 1-dimensional toric space of size d is the group (Ζd , ) with
for all a,b Ζd , a b = (a + b) mod d
1. Toric space: definition
Let s = (s1, …, sn) Zn.
The n-dimensional toric space of size s is the group
(Tn, ) = (Ζs1, ) x … x (Ζsn , ) [2]
[2] J. Stillwell, Classical topology and combinatorial group theory, Springer.
Basic notions: Neighbourhood
In 2D, the 1- and 2-adjacency resp. correspond to the 4- and 8-neighbourhood.
In 3D, the 1- and 3-adjacency resp. correspond to the 6- and 26-neighbourhood.
Definition
Let (Tn, ) be an n-dimensional toric space.
. An m-step (0 < m ≤ n) is a vector v of {-1; 0; 1}n which has at most m non-null
coordinates.
. Two points a, b Tn are m-adjacent if there exists an m-step v such that
a v = b
Basic notions: Loops in toric space
Definition
Let (Tn, ) be an n-dimensional toric space, and p Tn.
We call m-loop of base point p a pair = ( p, V ), such that V = (v1, …, vk) is a
sequence of m-steps and (v1 … vk) = 0.
Example
We set p = (0,0)
v1 = (1,0)
v2 = (1,1)
v3 = (1,-1) B = ( p , (v2 , v1 , v3) ).
Let us consider the 2-loop B.
Basic notions: Loop homotopy
We started from the loop homotopy definition given in [3],
and small modifications were done in order to adapt it to toric spaces…
Basic notions: Loop homotopy
Two m-loops 1= ( p, V ) and 2= ( p, W ), with V = ( v1,…,vj ) and W = ( w1,…,wk ),
are directly homotopic if :
. V and W differ in one null vector, (Insertion / Deletion) or
. We have j=k, and there exists h [1 ; k-1], (Translation)
such that
. for all i [1; h-1] U [ h+2; k], vi = wi and
. vh + vh+1 = wh + wh+1 and
. (vh – wh) is an n-step.
Basic notions: Loop homotopy
Basic notions: Loop homotopy
Two loops β1 and β2 in Tn are homotopic if there exists a sequence (L1, … , Lk ) of
loops of Tn such that
. L1= β1, Lk= β2 and,
. for all i [1; k-1], Li and Li+1 are directly homotopic.
Characterizing grains in toric spaces
Characterizing grains in toric spaces
How can we identify, in a sample, the components of the object
which contains a loop non homotopic to a point ?
Thanks to the previous definitions, we can reformulate the problematic:
We call toric loop a loop non homotopic to a point.
How can we identify, in a sample, the components of the object
which will create grains in the tesselation ?
Characterizing grains in toric spaces
Wrapping vector of a loop
In (Tn, ), let β = (p, V) be a loop, with V = (v1, …, vk).
The wrapping vector of β is the vector
w = ∑ vii=1
k
Characterizing grains in toric spaces
Theorem
This theorem proves that there exists a value, easily computable for all loops, that
allows to know to which homotopy class a loop belongs to.
This value corresponds to the way the loop « wraps around » the toric space : it
completely describes the fundamental group of the torus (Zn) [4].
[4] A. Hatcher, Algebraic Topology, Cambridge University Press, 2002.
Two loops are homotopic if and only if their wrapping vectors are equals.
Characterizing grains in toric spaces
How can we identify, in the sample, the components of the object
which contain a loop with a non null wrapping vector ?
How can we identify, in the sample, the components of the object
which contain a loop that is non homotopic to a point ?
Algorithm for detecting toric loops in an object
1. Main idea
. A connected component that contains a toric loop must be « broken », in
order to be embedded inside the « classical » space Zn.
. A connected component that does not contain any toric loop can be
embedded inside Zn without any distortion.
>> If an object of Tn can be embedded in Zn without distortion, then it does not
contain any toric loop.
How is it possible to know if an object of Tn
can be wrapped inside Zn without any distortion?
2. Algorithm for detecting toric loops
Data: image I (n-dimensional toric space), an m-connected object X of I, and a point p of X.
For all x X, do Coordinates [ x ] = false;
S = {p}; Coordinates [ p ] = 0n; (null n-dimensional vector)
While there exists x S do
S = S \ { x };
For all n-dimensional m-steps v, do
y = x v ; (y is a neighbour of x in the toric space)
If y X and Coordinates [ y ] == false, then
Coordinates [ y ] = Coordinates [ x ] + v ; S = S U { y };
Else if y X
If Coordinates [ y ] Coordinates [ x ] + v then return true;
return false; (no toric loop in X)
(there is a toric loop in X)
Algorithm for detecting toric loops in an object
3. Example
. In (Z5 x Z5, ), we consider the 2-adjacency (8-neighbourhood) relation,
and a connected object.
The 2-dimensional 2-steps
Algorithm for detecting toric loops in an object
3. Example
(1;-1)
(1;0)
(2;1) + (1;0) ≠ (-2;-1)
(1;0)
(0;0) + (1;0) = (1;0)
(-1;0)
(1;0) + (-1;0) = (0;0)S =
S = {p}; Coordinates [ p ] = (0;0);
While there exists x S do
S = S \ { x };
For all 2-steps v, do
y = x v ;
If y X and Coordinates [ y ] == false, then
Coordinates [ y ] = Coordinates [ x ] + v ;
S = S U { y };
Else if y X
If Coordinates [ y ] Coordinates [ x ] + v then
return false;
{ (0;0) }{ }{ (1;0) }{ (1;0),(-1;0),(-1;1),(0;1) }{ (-1;0),(-1;1),(0;1) }{ (-1;0),(-1;1),(0;1),(2;-1) }
return true;
{ (-1;1),(0;1),(2;-1),(-2;-1),(-2;0),(-2;1) }{ (-2;-1),(-2;0),(-2;1) }
Algorithm for detecting toric loops in an object
4. Some results (1)
No toric loop in this component
This component containstoric loop
Algorithm for detecting toric loops in an object
4. Some results (2)
Conclusion
Thanks to the definitions and theorems previously given (m-step, wrapping vector,…), the algorithm is proved.
Nowadays, the algorithm is used in order to detect and remove grains from object embedded in toric spaces.
A new version of the algorithm allows to compute the wrapping vector of all
loops contained in the object.
For a given dimension, the algorithm is linear ( O(n.m) ).