Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Objets

Cette partie décrit, un par un, les objets du modèle pyrucast : pour chacun, son principe (à quoi il sert, comment il est structuré) et son interface (API Rust et Python). Les objets sont présentés dans leur ordre de dépendance — chacun ne s’appuie que sur les précédents.

Coords ── Node                            le magasin de nœuds, et l'un d'eux
   │
   └── Mesh                               agrège des SubMesh
          ├── NodeField                   champ aux nœuds, sur un support POI1
          └── FiniteElementSpace          agrège des SubFiniteElementSpace
                 ├── ElementField         champ aux points de Gauss
                 └── Model                agrège des SubModel : physiques et contraintes
                        └── Matrix        matrice creuse, sortie d'assemblage

Evolution                                 agrège des SubEvolution : valeur tabulée selon une variable

Une distinction structure toute cette liste et se lit dans l’arborescence : Coords est le magasin (src/coords.rs), Node, Cell et Element sont des atomes insécables (src/atoms/), et tout le reste — les sept agrégats et leurs vues Sub* — sont des conteneurs divisibles (src/containers/), les seuls qui puissent être le sujet d’un opérateur. Voir Conventions.

Deux abstractions transverses traversent la liste et méritent d’être lues tôt :

  • l’Agrégat — la grammaire commune (len, [i], union |) de tous les conteneurs « parent / zones » (Mesh, FiniteElementSpace, Model, Matrix, NodeField, ElementField, Evolution) ;
  • le Champ (Field / SubField) — le contrat partagé entre NodeField et ElementField : composantes nommées, min/max, arithmétique scalaire et par composante.

Pour le contexte informatique (durée de vie des objets, motif zone/agrégat), voir Aspect informatique ; pour ce qu’il y a dessous côté Rust (Handle<T>, compteurs de références), Modèle mémoire. Pour les écrire dans un fichier et les relire tels qu’ils étaient, Sauvegarde et relecture.