Anomalie #155
non regression entre les versions 6.812 et versions supérieures (6.814, 16, 17)
Description
Bonjour Gérard,
sur le test fourni le calcul avec la version 6.812 converge en 3 min.
Avec les versions supérieures :
1. les calculs sont 15 fois plus lentes des les premières itérations
2. les fichiers .log sont identiques sur les 4000 premières itérations et après les calculs divergent.
Les versions permettant le calcul du volume par les fonctions_nD fonctionnent sur des cas simples mais pas sur mon problème complet de ballon à cause de ce problème. J'espère que ce bug sera facile à détecter ! Je vois la fin du tunnel :-)
Frank
Fichiers
Mis à jour par Gérard Rio il y a presque 7 ans
- Statut changé de Nouveau à En cours
- % réalisé changé de 0 à 10
ah voui !!! heureusement que c'était en test ...
bon... reste plus qu'à trouver la raison.
Mis à jour par Gérard Rio il y a presque 7 ans
- % réalisé changé de 10 à 20
L'énorme accroissement de la durée de calcul provient du contact. J'ai modifié la constitution de la matrice de masse lorsqu'il y a du contact de type 1. Cette modification est justifiée dans le fonctionnement actuel du contact de type 1. Le fait que cela convergeait auparavant n'est pas normal... a priori. Donc contre toute attente ce n'est pas un bug.
Ceci étant, la situation actuelle n'est pas acceptable et il faut que je trouve une meilleure idée... j'y réfléchis et j'ai 2 pistes.
Affaire à suivre !
Mis à jour par Frank Petitjean il y a presque 7 ans
Bonjour Gérard,
J'entends bien que "Le fait que cela convergeait auparavant n'est pas normal (avec l'ancien fonctionnement du contact type 1)". Cela est bien dommage car j'ai fait de nombreux calculs avec le contact type 1, avec toujours de très bons résultats et des itérations peu couteuse.
En revanche pour mon problème particulier (plan de contact pour respect secteur angulaire) je n'ai jamais réussi à obtenir de résultat avec le contact type 2.
J'espère que ta modification justifiée concernant la constitution de la matrice de masse ne vas pas me bloquer...
Frank
PS. J'ai programmé "ma" loi de pression via les intégrales de volume dan sle cas d'un BSO au plafond pour l'instant et ça marche très bien :-). Je m'attaque au BSO au sol.
Mis à jour par Gérard Rio il y a presque 7 ans
Le contact avec le type 1 conduit à des conditions linéaires qui elles, dans le fonctionnement actuel conduisent à une matrice bande énorme, car constituée dans un cadre général.
1) première piste: dans le cas où la condition linéaire ne concerne que les ddl d'un noeud particulier, normalement la matrice diagonale doit se transformer en tridiagonale ce qui n'est pas le cas dans la forme générale d'application de conditions linéaires. Donc, la première amélioration est d'introduire pour le type de contact 1, cette prise en compte, lorsque le contact est de type solide indéformable - solide déformable.
2) seconde piste: j'ai imaginé une nouvelle stratégie à tester pour imposer plusieurs conditions linéaires avec une largeur de bande minimale ...
Mis à jour par Frank Petitjean il y a presque 7 ans
Ok merci pour ces précisions. Je regrette quand même que tu aies fait cette mise à jour du contact type1 parallèlement à l'introduction des fonctions nD qui me sont nécessaires car je n'ai pas de version d'Herezh qui soit fonctionnelle pour moi à l'heure actuelle. La 6.812 fonctionne bien pour moi mais il n'y a pas les intégrales de volume et la 6.816 comporte cette évolution du contact.
Les 2 pistes évoquées vont te demander combien de temps de développement+mise en production ?
Mis à jour par Gérard Rio il y a presque 7 ans
j'ai bon espoir que la première piste soit assez rapide. Pour la seconde, je n'ai pas vraiment d'idée précise...
Je vais commencer par la première piste qui, j'espère te permettra d'avancer.
Mis à jour par Gérard Rio il y a presque 7 ans
- % réalisé changé de 20 à 90
La version 6.819 intègre la résolution du problème dans le cas de surfaces maîtres imposées. Pour l'instant ne n'ait fait de test que sur les 1000 premières itérations de la mise en données proposée. Je n’observe aucune différence au niveau cpu, entre la nouvelle version et la version 6.812.
À tester donc ...
Mis à jour par Frank Petitjean il y a presque 7 ans
Ok j'attends la version fast64 (Linux) et je test ça (probablement demain matin).
Merci pour cette nouvelle version
Mis à jour par Gérard Rio il y a presque 7 ans
la version linux fast 6.819 est dispo sur le site.
Mis à jour par Frank Petitjean il y a presque 7 ans
- Fichier maillage.her maillage.her ajouté
- Fichier modele.CVisu modele.CVisu ajouté
- Fichier modele.info modele.info ajouté
- Fichier plan_sym.her plan_sym.her ajouté
Sur le test fourni (calcul rapide < 2min) la version 6.819 donne des résultats (fichier .log) proches de la version 6.812 pour le 1er incrément. Au 2e incrément le calcul diverge : jacobien infini ou nan !!
Alors que pour ce même calcul la version 6.817 donne les mêmes résultats que la 6.812 mais avec beaucoup de lenteur.
Mis à jour par Frank Petitjean il y a presque 7 ans
Rectificatif, la version 6.817 donne les mêmes résultats que la 6.812 avant que le contact soit effectif. Après la 6.817 diverge !
J'aime bien les matrices diagonales...
Mis à jour par Gérard Rio il y a presque 7 ans
Effectivement, il y avait une erreur d'affectation entre matrices de taille différente -> c'est réparé. Par contre il reste une modif à faire que j'ai repérée. Dans le cas du type 1, le contact est pris en compte sous forme d'une condition linéaire. Lorsque tous les noeuds du maître sont imposés, il faut modifier les coefficients de la condition linéaire, pour que la condition s'exprime uniquement en fonction des ddl du noeud esclave contrairement à ce qui est fait actuellement où la condition reste générale c.-à-d. en fonction des ddl de tous les noeuds. Du coup il y a un débordement d'adressage au moment de la mise en place de la condition sur la matrice masse, et c'est ce débordement qui crée des non-convergences. Je vais faire la modification.
Mis à jour par Gérard Rio il y a environ 6 ans
- Statut changé de En cours à Résolu
- % réalisé changé de 90 à 100