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

Fortran Discussion :

problème du maillage


Sujet :

Fortran

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut problème du maillage
    bonjour
    J'aimerais savoir s'il est possible en Fortran de calculer des très grands nombres des éléments dans un maillage d'une plaque .... car quand j'ai programmé le maillage j'ai été obligé de rafiner le maillage pour obtenir les résultats... et quand j'ai utilisé un maillage de 5500 éléments .... le Fortran a cessé de fonctionner ... et pour éclaircir les choses en chaque noeud j'ai 2 ddl et même j'ai augmenté les tailles des tableaux .... et le problème n'a pas résolu

    mon PC .. i7 et la ram 8 G

    merci d'avance

  2. #2
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!

    Pour résoudre un problème, il faut commencer par le comprendre, et pour le comprendre, il faut le formuler correctement. Alors, je vais essayer de le faire à ta place:

    Tu as un phénomène pour lequel une grandeur (celle que tu cherches) est régie par une équation aux dérivées partielles (peut-être de Laplace ou de Poisson) dans un domaine dont tu connais la forme et les conditions aux limites. Pour résoudre cette équation, tu veux utiliser une méthode (est-ce celle des différences finies ou des éléments finis?) qui implique la construction d'un maillage. Il en résulte un système (probablement linéaire) de grande taille, donc dont la matrice occupera une place considérable dans la mémoire de ton ordinateur. Alors, comment faire?

    Est-ce bien là ton problème?

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    salut

    merci beaucoup Jean-Marc ...
    oui tu as expliqué le problème mieux que moi ...

    Dans notre domaine en génie civil on utilise généralement des équations linéaires pour relier les déplacements et les forces appliquées sur une structure .. ce qu'on appelle la méthode de rigidité et généralement le problème va résoudre par la méthode des éléments finis..
    avant le raffinage du maillage, le logiciel ( Fortran ) fonctionne parfaitement .. mais après l'utilisation d'un très grand nombre d'élément.... je pense, comme tu as dit, que la matrice de rigidité a occupé une place considérable dans la mémoire de mon logiciel et cela conduit que Fortran a cessé de fonctionner et je ne sais pas comment faire pour augmenter sa mémoire !!

  4. #4
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Je pense qu'on va trouver une solution à ton problème. Mais, pour le moment, j'ai encore une question: quelle méthode utilises-tu pour résoudre ton système linéaire?
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    salut

    merci Jean-Marc ...
    l'équation utilisée c'est l'équation qui relie les déplacements des nœuds et les forces appliquées sur une structure .... dans ce cas notre structure c'est une plaque trouée

    F=KU

    F: les forces appliquées
    U: le déplacement
    K: la matrice de rigidité globale

    cette matrice de rigidité est l’assemblage des matrices de rigidité élémentaire
    ça vous dire les matrices de rigidité de chaque élément ,,, d'après l'introduction des conditions aux limites on peux calculer les inconnus de cette équation qui sont les déplacements ...

    le nombre des nœuds dans ce problème est 9000 nœuds et chaque nœud possède 2 degrés de liberté ....
    donc la matrice de rigidité globale dans ce cas est une matrice carrée de dimension de (18000,18000)

    j’espère que tu as bien compris le problème maintenant et merci d'avance

  6. #6
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Comme tu ne réponds pas à ma question, je la pose autrement:
    • La matrice est-elle symétrique et définie positive?
    • La matrice est-elle pleine ou creuse?

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    salut
    oui la matrice est symétrique et les termes du diagonale sont positifs et dans la matrice on peux trouver des termes positif et nuls...
    mais vraiment je n'ai pas compris pourquoi tu poses ces questions ....????
    moi je parle sur la taille du calcul ...et toi tu me dit ...la matrice symétrique ou non ... les termes positifs ou non.... !!!
    expliques moi stp
    merci d'avance

  8. #8
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!

    je n'ai pas compris pourquoi tu poses ces questions
    Parce que, si la matrice est symétrique et définie positive, tu peux utiliser la méthode de Cholesky qui te permet d'économiser presque la moitié de la place en mémoire et la moitié du temps de calcul. D'autre part, si ta matrice est creuse, tu peux éviter de mémoriser des termes nuls, de les additionner et de les multiplier.

    Enfin, si tes connaissances en matière d'algèbre linéaire sont assez lacunaires, tu devrais consulter le tutoriel que j'ai mis sur le site: http://jmblanc.developpez.com/algori...emes-lineaires

    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  9. #9
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2013
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    salut
    merci beaucoup Jean-Marc Blanc sur les cours et sur les questions aussi c'est parce que vraiment ce sont des questions intelligentes mais le problème que jamais j'ai pensé à des choses comme ça c'est parce que je suis sûr que le problème ne réside pas ici .... pourquoi ???
    - au début tous les termes de la matrice sont définis nuls.
    - après de définir les matériaux utilités et les dimensions de la structure .. la matrice va remplir .... donc les termes de la matrice dépendent de la géométrie de la structure et les matériaux utilisés ,,, et je ne peux pas savoir où sont les termes nuls ou est ce que la matrice est totalement positive ou non.... mais je sais que le diagonale est positif et elle est symétrique .
    d'autre part : après les conditions aux limites on va éliminer des lignes et des colonnes donc chaque structure et ses limites.

    le problème c'est la taille de la matrice (18000,18000) est ce que dans le fortran je peux augmenter la mémoire de calcul qui me permet de calculer ce nombre d'équation ou non sans toucher la matrice ????

    et je te remercie beaucoup

  10. #10
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Il y a une chose essentielle qui n'est pas claire: comment construis-tu ton maillage? Si tu le fais d'une manière "intelligente", la matrice sera tridiagonale par blocs.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

  11. #11
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 302
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 302
    Points : 52 882
    Points
    52 882
    Par défaut
    Tu ne nous dis clairement pas pourquoi ton programme Fortran s'est arrêté ?

    Est-ce bien un problème d'allocation mémoire pour la matrice de rigidité globale ?

    Citation Envoyé par abdelhak_khechai Voir le message
    et je ne peux pas savoir où sont les termes nuls
    Bien sûr que si. L'assemblage de la matrice de rigidité globale passe par l'expression des matrices de rigidité locales. Les numéro des nœuds de l'élément concerné correspondent aux indices dans la matrice globale. Tu connais donc les indices des termes non-nuls de la matrice.

    Les solveurs éléments finis industriels utilisent tous le stockage des données sous forme de matrices creuses (sparse en anglais). Puis, comme le fait remarquer Jean-Marc, les solveurs proposent différentes méthodes de résolution (directes ou itératives) en fonction du problème (et donc des propriétés de la matrice du système)

    Citation Envoyé par abdelhak_khechai Voir le message
    le problème c'est la taille de la matrice (18000,18000)
    Restons alors dans le cas des matrices pleines.

    Si la matrice est codées avec des réels double précision, la quantité de mémoire nécessaire pour la stoker est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    18000*18000*8/1024/1024/1024 = 2.4 Go (environ)
    J'espère que tu travailles sur une machine 64 bits.

    Pour vérifier si c'est bien un problème de mémoire, tu pourrais utiliser des réels simple précision, ce qui diviserait rapidement par deux la quantité de mémoire nécessaire.

    De manière plus générale, tout l'art du calcul avec les éléments finis est d'abord de définir une discrétisation optimale du problème. Ce n'est d'ailleurs pas parce que le maillage est plus fin que la solution sera forcément meilleure.

    As-tu commencé par un calcul avec un maillage moins fin (mais suffisant) puis as-tu affiné localement le maillage ?
    Ingénieur indépendant en mécatronique - Conseil, conception et formation
    • Conception mécanique (Autodesk Fusion 360)
    • Impression 3D (Ultimaker)
    • Développement informatique (Python, MATLAB, C)
    • Programmation de microcontrôleur (Microchip PIC, ESP32, Raspberry Pi, Arduino…)

    « J'étais le meilleur ami que le vieux Jim avait au monde. Il fallait choisir. J'ai réfléchi un moment, puis je me suis dit : "Tant pis ! J'irai en enfer" » (Saint Huck)

  12. #12
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 83
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Points : 5 179
    Points
    5 179
    Par défaut
    Salut!
    Selon toute vraisemblance, si tu génères correctement ton maillage, la matrice du système sera tridiagonale par blocs. Alors, utilise la méthode de Cholesky par blocs.
    Jean-Marc Blanc
    Calcul numérique de processus industriels
    Formation, conseil, développement

    Point n'est besoin d'espérer pour entreprendre, ni de réussir pour persévérer. (Guillaume le Taiseux)

Discussions similaires

  1. Problème graphique avec l'instruction "grid", pour raffiner le maillage
    Par follichon dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 25/06/2012, 16h35
  2. Problème reconstruction maillage delaunay/trimesh
    Par smasfara dans le forum MATLAB
    Réponses: 1
    Dernier message: 16/06/2011, 20h56
  3. Problème d'installation oracle 8.1.7 sous NT
    Par Anonymous dans le forum Installation
    Réponses: 7
    Dernier message: 02/08/2002, 14h18
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10
  5. Réponses: 6
    Dernier message: 25/03/2002, 21h11

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