IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Mathématiques Discussion :

Programmation d'un écoulement granulaire


Sujet :

Mathématiques

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Programmation d'un écoulement granulaire
    Bonjour, suite à un conseil, je déplace mon sujet original (qui était dans la section python)
    "Bonjour tout le monde !
    Je suis un étudiant en classe préparatoire (PC*) et je réalise une étude (TIPE) sur les milieux granulaires et les silos.
    Mon but étant de modéliser au mieux un écoulement granulaire, j'aimerai réaliser un programme qui simule : des grains (disques) sur un fond plat, et un silo avec son écoulement de disque (en fait un silo en 2 dimensions).
    J'ai lu de nombreuses thèses qui parlent de ce sujet : méthode avec block2D qui ne me satisfait pas car j'aimerai avoir moi même la main sur les forces (ressorts, viscosité) entre les boules et les murs, des explications de modélisation comme la thèse de Baptiste Percier (https://tel.archives-ouvertes.fr/tel-00857243/document), ou encore le sujet 0 IPT des mines (https://mines-ponts.fr/pages/static/...uepourtous.pdf).
    Cependant mon but n'étant pas de répondre aux questions d'un DS, j'ai beaucoup de difficultés à programmer les objets (disques) car nous n'avons jamais eu de cours sur la manipulation des class(), etc...
    En revanche, les méthodes de calcul des forces/méthodes d'intégration ne me posent aucun problème.
    J'aimerai avoir des conseils, car je ne sais pas commencer ce programme.
    (Rq: j'ai déjà réaliser une étude avec des automates cellulaires pour avoir l'allure du tas de sable mais cette méthode n'utilise aucun critère physique et n'est donc pas (très) intéressante.)
    Merci d'avance."
    J'ajoute que pour l'instant, j'envisage :
    -créer les objets : disques (Chose que je ne sais faire)
    -les placer sur un fond en 2 dimension (je ne sais pas manipuler des objets en python...)
    -calculer les forces exercées par chaque grains sur les autres (à priori facile mais seulement à priori...)
    -utiliser une technique d'intégration pour les itérations du temps (facile avec Euler/Verlet)
    -visualiser le résultat (Toujours le même problème pour les objets en python...)

    Avez-vous des conseils pour moi ?

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 057
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 057
    Points : 9 396
    Points
    9 396
    Par défaut
    A priori, tu as une idée à peu près claire des aspects 'physiques' du phénomène, et ton problème, c'est un problème de programmation.
    En dehors de Python, est-ce qu'il y a des langages où tu es plus à l'aise. Pour avancer vite, ce serait une piste.
    Sinon, tu parles de problèmes pour manipuler des class() ; le mot clé pour trouver des bons tutoriels sur ce sujet, c'est POO (=Programmation Orientée Objet)

    Pour dessiner avec Python, il y a des librairies. L'une d'elles est Turtle.

    Eventuellement, il y a eu cette discussion récemment sur un sujet voisin. Peut être que tu y trouveras de l'aide.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2019
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2019
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup de votre réponse.
    Le python étant l'unique langage au programme en CPGE (enfin c'est le cas de la PC*), c'est le seul langage que je "maîtrise" à priori (et c'est le seul que je peux présenter le jour de l'oral également !)
    Je vais étudier votre conseil sur les POO.

  4. #4
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Aide programmation écoulement granulaire
    Bonjour,

    Citation Envoyé par Neversflyy Voir le message
    ... Je suis un étudiant en classe préparatoire (PC*) et je réalise une étude (TIPE) sur les milieux granulaires et les silos.
    Mon but étant de modéliser au mieux un écoulement granulaire, j'aimerai réaliser un programme qui simule : des grains (disques) sur un fond plat, et un silo avec son écoulement de disque (en fait un silo en 2 dimensions).
    J'ai lu de nombreuses thèses qui parlent de ce sujet : méthode avec block2D qui ne me satisfait pas car j'aimerai avoir moi même la main sur les forces (ressorts, viscosité) entre les boules et les murs, des explications de modélisation
    ... / ...
    En revanche, les méthodes de calcul des forces/méthodes d'intégration ne me posent aucun problème.
    J'aimerai avoir des conseils, car je ne sais pas commencer ce programme.
    (Rq: j'ai déjà réalisé une étude avec des automates cellulaires pour avoir l'allure du tas de sable mais cette méthode n'utilise aucun critère physique et n'est donc pas (très) intéressante.)
    ... / ...
    J'ajoute que pour l'instant, j'envisage :
    -créer les objets : disques (Chose que je ne sais faire)
    -les placer sur un fond en 2 dimension (je ne sais pas manipuler des objets en python...)
    -calculer les forces exercées par chaque grains sur les autres (à priori facile mais seulement à priori...)
    -utiliser une technique d'intégration pour les itérations du temps (facile avec Euler/Verlet)
    -visualiser le résultat (Toujours le même problème pour les objets en python...) ...
    Je crains que tu ne sous-estimes la lourdeur considérable des calculs, liés aux interactions entre particules (supposées incompressibles) et avec les parois (rigides). As-tu lancé un programme simulant le comportement de 10 de ces objets ?

    Tu envisages d'après ce que l'on devine de tes indications d'intégrer numériquement l'équation différentielle du 2nd ordre régissant le mouvement de chaque particule: aucun doute sur tes capacités à résoudre le problème théorique.

    Mais il te faudra tenir compte de forces de répulsion de courte portée, certes, mais dont la norme devient très élevée aux faibles distances, en introduisant des lois de la forme:
    # Fji = K/(rji - d)m (pour la répulsion exercée par Pj sur Pi) ,
    # F'i = K'/(x - d/2)n (dans le cas de la paroi d'abscisse x = 0) ;
    il sera nécessaire, pour que les approximations restent significatives, de réduire considérablement le découpage du temps, augmentant ainsi le volume des calculs au risque de paralyser l'exécution du programme.

    Il s'agit bien sûr d'une limitation pratique, et il suffira de tester ton langage sur un nombre réduit de particules pour voir ce qui se passe.
    Tu n'éviteras cependant jamais la probabilité d'apparition d'une distance très faible, conduisant à l'éjection de la particule hors de son domaine, et à l'"évaporation" numérique du système.
    Le remplacement des sphères dures de diamètre (d) par des boules molles, et l'intervention de lois de force moins contraignantes:
    # Fji = K/(rji)m ,
    # F'i = K'/(x)n ,
    atténuera la difficulté sans la faire disparaître.

    Tu semble éliminer d'office toute simulation aléatoire, pourtant très efficace:
    (Rq: j'ai déjà réalisé une étude avec des automates cellulaires pour avoir l'allure du tas de sable mais cette méthode n'utilise aucun critère physique et n'est donc pas (très) intéressante ...
    N'as-tu pas songé pour les déplacements, à une loi de probabilité anisotrope, complétée par des conditions de non-empiètement sur les parois et les particules voisines ?


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

  5. #5
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Aide programmation écoulement granulaire
    Si tu veux voir ce que peut donner un programme très simple, pour la représentation de l'écoulement d'un sablier sur écran texte, télécharge ici un petit fichier exécutable, rajoute à son nom l'extension (.exe), scanne-le par sécurité avec ton antivirus et lance le programme.
    < 0 >: initialisation
    < 1 >: mise en route / arrêt (3 fois)
    Tu trouveras facilement les commandes pour ce vieux programme que j'ai un peu oublié.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

Discussions similaires

  1. Programmation écoulement volcanisme
    Par beornie dans le forum MATLAB
    Réponses: 3
    Dernier message: 04/12/2013, 16h45
  2. Programme de boot qui passe la main à Windows
    Par Bob dans le forum Assembleur
    Réponses: 7
    Dernier message: 25/11/2002, 03h08
  3. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50
  4. communication entre programmes
    Par jérôme dans le forum C
    Réponses: 12
    Dernier message: 16/04/2002, 08h05
  5. [Kylix] icone associée à un programme
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo