4. Classes de description des SD#
La classe Python sd_* contient donc la description de la SD en termes d’objets Fortran, elle dérive de l’objet AsBase. La classe AsBase contient :
le nom de la SD nomj
un attribut pour classer la SD comme étant “optionnelle” ou pas: optional
une méthode pour attribuer le nomj: setname
une méthode pour vérifier la SD:check
diverses méthodes pour l’impression (surcharge de repr )
Par héritage, on définit l’objet JEVEUXde base: class OJB(AsBase). Cette classe contient:
la description des attributs JEVEUX(voir D6.02.01 Gestion mémoire: JEVEUX) dans des attributs protégés
un attribut protégé sur l’existence ou pas de l’objet JEVEUX: __exists
Comme on le voit, les attributs de la classe OJBsont protégés, on y accède via des classes dérivées de OJBqui décrivent les objets existants. Il y a trois classes de base:
OJBVect: un objet simple au sens JEVEUX
OJBPtnom: un objet pointeur de noms au sens JEVEUX
OJBCollec: un objet collection au sens JEVEUX
Il existe des “alias” de ces classes, pour des raisons de compatibilité et de lisibilité:
AsObjectest un autre nom de la classe OJB
AsPnest un autre nom de la classe OJBPtnom
AsVect est un autre nom de la classe OJBVect
AsCollest un autre nom de la classe OJBCollec
La classe OJBVect est dérivée en objets encore plus élémentaires, ce qui permet de s’approcher de la syntaxe de la routine Fortran WKVECT:
AsVI: l’objet est un vecteur d’entiers INTEGER*8
AsVR: l’objet est un vecteur de réels REAL*8
AsVC: l’objet est un vecteur de complexes COMPLEX*16
AsVL: l’objet est un vecteur de booléens LOGICAL*8
AsVK8: l’objet est un vecteur de caractères CHARACTER*8
AsVK16: l’objet est un vecteur de caractères CHARACTER*16
AsVK24: l’objet est un vecteur de caractères CHARACTER*24
AsVK32: l’objet est un vecteur de caractères CHARACTER*32
AsVK80: l’objet est un vecteur de caractères CHARACTER*80
Remarque: les types utilisés dans Code_Aster sont définis dans le fichier asterf.config.h
Le constructeur de ces objets peut contenir tous les attributs JEVEUX habituels. Par exemple, pour une collection:
TAVA = AsColl(SDNom(debut=19), acces='NU', stockage='CONTIG',
modelong=”CONSTANT”, type=”K”, ltyp=8, )