Projets de programmation

Évaluation de la tortuosité d'un matériau poreux

Description du projet

Évaluation de la tortuosité d'un matériau poreux. Le modèle se base sur une accumulation de marches aléatoires qui permettra de déterminer un flux à travers un cube.

Le cube est divisé en N*N*N sous-cubes. Un marcheur commence dans un sous-cube quelconque. À chaque incrément de temps, il se déplace aléatoirement dans un des 6 sous- cube voisins jusqu'à ce qu'il atteigne un bord du cube. Les marcheurs mettront un temps moyen T0 pour sortir du cube.

On place maintenant des obstacles dans le cube et on refait le même exercice. Si le marcheur choisit un sous-cube occupé par un obstacle, alors il reste à sa place mais le temps est incrémenté d'une unité. Du coup on aura un temps moyen T1 pour sortir du cube. La tortuosité du poreux décrit par la présence des obstacles est lié au rapport T1/T0.

But du projet : comparer la tortuosité obtenue par la méthode du marcheur avec celle obtenue par mesure géométrique (rapport entre la distance la plus courte pour rejoindre un point A et un point B, en évitant les obstacles, et la longueur du segment AB).

Travail à effectuer

Le travail se décompose en 3 grandes parties :

  1. génération d'un cube (d'abord vide, puis poreux) ;
  2. mise en place du processus de marche aléatoire ;
  3. accumulation des temps moyen et présentation des résultats

Dans chacune de ces phases, il est important de garder en mémoire le cadre dans lequelle elles s'effectuent : les projets de programmation où l'important est la structuration du problème et sa modélisation informatique. Il convient de bien réfléchir au modèle, aux algorithme, ... avant de commencer à écrire son code.

Et la complexité dans tout ça ?

Ce problème soulève des questions d'occupation mémoire (en fonction de la valeur de N) et de temps d'exécution. Vous pourrez avoir une vision critique sur vos algorithmes en mettant en valeur les points forts et les points faibles et en faisant si possible une analyse de leur complexité.