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 :

Fracture d'un domaine


Sujet :

Mathématiques

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Fracture d'un domaine
    Bonjour a tous et merci d'avance pour les aides éventuelles que vous allez me fournir.

    Je travaille actuellement sur un programme de modélisation numérique par élément finis sous Matlab, plus précisément sur le code de calcul (le solver). Je n'entre pas dans les détails du projet, et vous expose directement mon problème:

    J'ai un maillage constitué de cellules caractérisant un domaine (une sorte de grille). Sous matlab, ce domaine est représenté par une matrice contenant des 1.
    se domaine étant contraint, il y a rupture des cellules de certaines cellules, qui seront donc caractérisée par des 0 dans la matrices). Le domaine sera a terme traverser par une fracture.

    Le but étant d'avoir un algorithme permettant de déterminer si il existe dans mon domaine une fracture traversante. J'ai un bout de code prévu a cet effet mais il s'agit de matrice de grande dimensions, et j'aimerais tester ou comparer plusieurs idée afin de choisir la plus optimiser.

    Ps: si il y a des intimes de la théorie des élément finis est il possible en analysant la matrice de rigidité du domaine de déterminer l’existence d'une telle fracture?

    un petit exemple pour illustrer
    step 0:
    A = [1 1 1 1 1;1 1 1 1 1;1 1 1 1 1;1 1 1 1 1]
    step 1:
    A = [1 1 1 1 1;1 1 0 1 1;1 1 1 1 1;1 1 1 1 1] une rupture

    ...

    step n:
    A = [1 1 1 1 1;0 0 1 1 1;1 0 0 0 0;1 1 1 1 1] la il y a fracture

    step n-p:
    A = [1 1 1 1 1;0 0 1 1 1;1 1 0 0 0;1 1 1 1 1] la il n'y a pas fracture, la fracture "en diagonale" n'est pas une fracture

    voila j'éspère que c'est a peu près clair
    merci

  2. #2
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Salut

    Citation Envoyé par kaluk Voir le message
    Le but étant d'avoir un algorithme permettant de déterminer si il existe dans mon domaine une fracture traversante. J'ai un bout de code prévu a cet effet mais il s'agit de matrice de grande dimensions, et j'aimerais tester ou comparer plusieurs idée afin de choisir la plus optimiser.
    A froid, je proposerais ça:
    • tu recherches tous les 0 en bordure de matrice. Etant donné que l'on cherche les fractures, on part d'une extrémité de fracture, et on évite de travailler sur les ruptures internes
    • pour chaque début de fracture, tu construis un graphe en connectant les cellules adjacentes (colonne+/-1, ligne+/-1) qui sont à zéro (mettre un flag sur la cellule déjà parcourue pour repérer si on repasse par elle)
    • tu itères en progressant de proche en proche
    • tu vérifies au passage que la cellule que tu connectes est en bordure. Si oui > fracture


    Pour la matrice de rigidité, je dirais qu'une fracture doit forcément avoir un impact sur la rigidité globale de la zone. Mais pour traduire ça sur la matrice, je sèche...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    oui cela me semble être la solution la plus évidente, mais elle est très lourde (surtout en fin d'essai lorsqu'il y a de nombreuses ruptures a travers le domaine).

    pour ce qui est de l'analyse de la matrice de rigidité j'explicite un peu mieux au cas ou il y ait des inspiré:
    Le programme crash lorsqu'il tente de créer l'équilibre mécanique d'un domaine fracturé: en effet il y a effort appliqué sur un sous domaine dépourvu de conditions aux limites (celle ci étant séparée des point d'application des efforts par la fracture), de ce fait le déplacement de ce sous domaine peut être considéré infini, il entre en mouvement, nous sortons de l'hypothèse des petits déplacement . Le problème vient du fait que le système linéaire qui en découle n'a pas de solution,ou un infinité peut être, ou alors il est incapable d'inverser la matrice de rigidité. Comme ca a chaud je dirais infinité de solution mais c'est pas sur...
    Il y a pas une méthode pour analyser ca? (avec les determiant ou un truc dans le style, je vous avoue que l'analyse des systèmes linéaires c'est pas quelque chose de très frais dans ma tête))

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    petite précision: la matrice de rigidité est symétrique et définie positive, et est composée de coefficients réels.

  5. #5
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par kaluk Voir le message
    oui cela me semble être la solution la plus évidente, mais elle est très lourde (surtout en fin d'essai lorsqu'il y a de nombreuses ruptures a travers le domaine).
    Lourde, non...
    D'après ton premier post, tu cherches à savoir si il y a une fracture. Donc l'algo s'arrête dès la première fracture trouvée.
    De plus, tu n'analyses que les fractures traversantes, donc tu ne déclenches l'analyse que si tu passes une case de bordure à 0. Voire même uniquement lorsque tu en as activé deux (si il n'y en a qu'une d'activée en bordure, obligatoirement elle ne débouche pas, donc pas de fracture).

    En gros, analyser à partir des ruptures en bordure va te permettre de ne pas analyser les ruptures non débouchantes en bordure. Tu réduis ton domaine d'analyse ainsi.


    Citation Envoyé par kaluk Voir le message
    Il y a pas une méthode pour analyser ca? (avec les determiant ou un truc dans le style, je vous avoue que l'analyse des systèmes linéaires c'est pas quelque chose de très frais dans ma tête))
    Numériquement ça correspond à une matrice non inversible (le message d'erreur habituel dans les softs EF c'est le fameux "pivot nul"). Tu peux traduire ça par un déterminant égal à 0, par un pivot égal à 0 ou très petit... dans tous les cas, le solveur ne peut pas effectuer le calcul (je laisse ceux qui maîtrisent mieux les maths que moi donner des pistes pour détecter ça).

    C'est quoi qui t'intéresse au final?
    détecter une fracture pour éviter de lancer le calcul?
    ou détecter un plantage de calcul pour valider la présence d'une fracture?
    ou les deux?
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

Discussions similaires

  1. [ORIENTATION] Domaine Telecom : quoi / comment
    Par M@x dans le forum Emploi
    Réponses: 8
    Dernier message: 20/03/2008, 09h59
  2. un domaine vers deux hebergements
    Par Boisnon dans le forum Développement
    Réponses: 10
    Dernier message: 26/02/2004, 19h06
  3. [VB6] Comment lister les serveurs SQL d'un domaine ?
    Par WOLO Laurent dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 29/01/2004, 08h49
  4. Récupérer le nom de domaine d'appartenance d'un serveur
    Par Laurent Dardenne dans le forum Windows
    Réponses: 2
    Dernier message: 26/01/2004, 17h01
  5. ip fixeou nom de domaine sur ordi perso
    Par windob dans le forum Développement
    Réponses: 15
    Dernier message: 14/01/2004, 10h49

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