L’essentiel de Navpactos

Naupacte propose un langage d’excellence pour le développement d’applications de simulation numérique, qui est semblable à un environnement de développement intégrable. Il est axé sur une représentation novatrice des formules tensorielles, débouchant sans compilation sur des calculs optimisés.

Voir la vidéo de présentation.

Un langage de calcul formel pour les formulations tensorielles

Navpactos permet de décrire formellement une boucle tensorielle avec aisance et contrôle. Le tenseur formel représente un calcul réel. Étant un objet qui se communique dans la plupart des modules, il épure les programmes en cristallisant sur lui-même une grande partie de leur complexité.

C’est ainsi que les fonctions, la géométrie et les maillages, l’assemblage et les algorithmes comme la méthode de Newton opèrent sur des tenseurs formels génériques, qui ne nécessitent pas d’être connus à la compilation.

Un calculateur haute-performance

Avant leur calcul qui peut être répété dans une boucle, les tenseurs formels sont analysés pour produire un objet calculateur. Plus de 3000 règles d’algèbre s’appliquent pour délivrer l’exécution la plus véloce, avec des performances inédites. Cela se passe en interne, sans compilation.

La pertinence des phases de simplification et d’optimisation est cruciale pour l’efficacité du calcul résultant de la dérivation formelle de formules complexes.

Des modules de différents niveaux

De même que la façon de décrire un problème n’est pas unique, le formalisme de Navpactos n’est pas rigide. Pour cela, l’accès est donné à différents niveaux d’abstraction.

A haut niveau, des canevas d’applications

Par exemple, des modules de plus haut niveau vont simplifier la description d’une famille de problèmes classiques, comme ceux de statique non-linéaire issus des EDP. Ils peuvent servir de tutoriel sur les possibilités offertes, car ils sont construits en utilisant les fonctions de niveau intermédiaire qui sont à votre disposition.

Votre équipe de développeurs peut ainsi réaliser un cadre ou un canevas pour y accueillir une nouvelle catégorie de méthodes numériques. Avec Navpactos, vous concevez à peu de frais des familles d’applications.

Parmi les niveaux intermédiaires, on trouve en autres l’assemblage et les maillages.

L’assemblage et la résolution

Certaines tâches, pourtant classiques, demandent de l’attention:

  • Assembler une matrice, tâche essentielle à la plupart des problèmes et qui se complexifie avec les modèles multi-physique;
  • fixer des degrés de liberté en utilisant des multiplicateurs de Lagrange;
  • définir des corps rigides en mécanique;
  • programmer une méthode de Newton.

Tout cela est rendu facile avec Navpactos, et fonctionne avec des tenseurs formels.

Les maillages, les éléments finis et les champs

Le module Discretisation fournit les fonctions nécessaires aux éléments finis, ainsi que les utilitaires de maillage (construction de grille, construction de discrétisation d’ordre 2 et plus, sélection d’entités comme les faces et les arêtes). Il est possible d’ajouter ses propres éléments finis.

Le module Fields ajoute les notions utiles aux champs (carte géométrique, gradient, fonctions diverses) jusqu’aux distributions.

Ces deux modules fonctionnent avec la même logique de calcul formel.

Les procédures dynamiques

L’exécution de Navpactos entraîne une sortie hiérarchisée de logs qui vous permet de connaître l’enchaînement des opérations réalisées. Vous pouvez fabriquer vos propres enchaînements de procédures et bénéficier de cette fonctionnalité sur vos développements.

Mieux, votre code lui-même peut construire dynamiquement de tels enchaînements en s’adaptant aux données d’entrée, et par exemple décider d’embarquer une méthode de Newton lorsque le cas est analysé comme non-linéaire.

L’intérêt de telles constructions dynamiques, de façon opposée à une construction statique, repose sur la possibilité de communiquer et de calculer les tenseurs formels sans avoir à les connaître explicitement.