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: .. code-block:: text TAVA = AsColl(SDNom(debut=19), acces='NU', stockage='CONTIG', modelong='CONSTANT', type='K', ltyp=8, )