Research done in partnership with ICMCB laboratory (UPR 9048) Specialised in pourous material study, and high resolution 3dimensional pictures production. Members participating to the project : Dominique Bernard How can geometrical information and physical properties of a material be linked ? Motivation : Fluid flow simulation 1. How calculations are usually done . 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) Motivation : Fluid flow simulation 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]. 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. Motivation : Fluid flow simulation 2. Chosen method The skeleton of the porous space draws the main paths followed by the flow through the material. 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. 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 ? The material, which is a tesselation of the sample, still contains grains. 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 ? It is not sufficient to filter the grains of the sample in order to get rid of the grains in the tesselation. 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 1. Toric space: definition Given d positive integer, we set Ζd = {0,…, d-1}. The 1-dimensional toric space of size d is the group for all a,b Ζd , (Ζd , ) a b = (a + b) mod d 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. with Basic notions: 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 av=b 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. 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 b = ( p, V ), such that V = (v1, …, vk) is a Example Let us consider the 2-loop B. sequence of m-steps and (v1 … vk) = 0. We set p = (0,0) v1 = (1,0) v2 = (1,1) v3 = (1,-1) B = ( p , (v2 , v1 , v3) ). 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 b1 = ( p, V ) and b2 = ( 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) . for all i [1; h-1] U [ h+2; k], vi = wi and such that . 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 Thanks to the previous definitions, we can reformulate the problematic: How can we identify, in a sample, the components of the object which which contains will create a loopgrains non homotopic in the tesselation to a point ? ? We call toric loop a loop non homotopic to a point. 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 k w = ∑ vi i=1 Characterizing grains in toric spaces Theorem Two loops are homotopic if and only if their wrapping vectors are equals. 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. Characterizing grains in toric spaces How can we identify, in the sample, the components of the object which which contain contain aa loop loop that withis a non null homotopic wrapping to avector 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=xv; (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; (there is a toric loop in X) return false; (no 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 }(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) (-1;1),(0;1),(2;-1),(-2;-1),(-2;0),(-2;1) } } }} } S = { (-2;-1),(-2;0),(-2;1) (2;1) + (-1;0) ≠=(1;0) (-2;-1) (1;0) (0;0) (1;0) = (0;0) S = {p}; Coordinates [ p ] = (0;0); (1;0) While there exists x S do S = S \ { x }; (-1;0) (1;0) For all 2-steps v, do y=xv; (1;-1) 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; Algorithm for detecting toric loops in an object 4. Some results (1) No toric loop in this component This component contains toric 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. For a given dimension, the algorithm is linear ( O(n.m) ). A new version of the algorithm allows to compute the wrapping vector of all loops contained in the object.