Table of Contents

Commit 2019-05-28

Ce commit est pour corriger une erreur dans la décision du type de projection en 2D/3D. En effet, Luc Papeleux m'avait fait part d'un bug majeure qui générait une normale nulle dans le cas d'une projection multiple en contact déformable-déformable :

Brieuc (le gars de chez GDTech qui utilise Metafor dans le cadre de HPC) essaye de faire un test avec des tetras et du contact defo-defo (donc sur des triangles).

en fait, le calcul de la matrice de raideur tangente foire étant donné que le vecteur normal est entièrement nul (et que dans le calcul de la MRT, on divise par la norme de N!!!)

après avoir +- suivit le chemin, je trouves au moment du calcul de la mrt : gap = 7.5e-16 gapFactor = 0.0 gap1 = 0.0 / gap2 = 0.0 normal = [0.0 0.0 0.0] projectionType : CornerProjectionLine belong type : belong edge

Après investigations, dans le cas pathologique où le nœud esclave se trouve exactement sur un nœud maitre, les méthodes de continuité de la normale dans les coins concaves ou convexes génèrent toute une normale nulle dans ce cas particulier. Pour contourner le problème, j'ai ajouté une tolérance sur la distance normale (“toleranceNormalGap dans ProjectionSelector) qui permet de sélectionner une projection simple sur la face maitre la plus proche dans ce cas de figure. En pratique, un gardien supplémentaire est ajoutée dans toutes les fonctions de décision de projection multiple en 2D/3D (WireProjectionSelector et SkinProjectionSelector).

Fichiers ajoutés/supprimés

[a]:
[r]:

Cas tests ajoutés/supprimés

[a]:
[r]:

gaëtan 2019/05/28 22:30