Second commit d'optimisation du transfert de données par FVTM.
J'ai continué d'extraire la routine qui prenait le plus de temps de calcul, computeBoundingBox
, de toutes les boucles imbriquées. A présent, ces boxes sont précalculées une seule fois pour chaque “transfer problem”. Même si c'est moins critique, j'ai également fait ça pour le transfert à 2D, par cohérence.
J'ai aussi utilisé des unordered_map
pour la stockage des valeurs au lieu des std::map
traditionnelles.
Le gain combiné de ces modifs n'est plus aussi marqué que précédemment, mais bon, je gagne quand même un bon 20% sur un test comme backwardExtrusion3D (intégration dure 208s, remaillage passe de 192s à 152s).
Correction d'un petit bug pour le rééquilibrage, les vitesses n'étaient pas toujours sauvegardées dans le fac.
A : R :
A : R :
— Pierre Joris 2015/12/09