4. SD description classes#

The Python sd_* class therefore contains the description of SD in terms of Fortran objects, it derives from the ASBase object. The ASBase class contains:

  • the name of the SD name

  • an attribute to classify SD as « optional » or not: optional

  • a method for assigning the name: setname

  • a method to check the SD:check

  • various methods for printing (repr overload)

By inheritance, we define the object JEVEUXde base: class OJB (asBase). This class contains:

  • the description of attributes JEVEUX (see D6.02.01 Memory Management: JEVEUX) in protected attributes

  • a protected attribute on the existence or not of the object JEVEUX: __exists

As we can see, the protected attributes of the OJBsont class, which are accessed via classes derived from OJBqui, describe existing objects. There are three basic classes:

  • OJBVect: a simple object in the JEVEUX sense

  • OJBPtnom: a name pointer object in the JEVEUX sense

  • OJBCollec: a collection object in the JEVEUX sense

There are « aliases » of these classes, for reasons of compatibility and readability:

  • asObject is another name from class OJB

  • ASPN is another name for class OJBPtnom

  • ASVect is another name for class OJBVect

  • AsColl is another name for class OJBCollec

Class OJBVect is derived into even more basic objects, which approximates the syntax of the Fortran WKVECT routine:

*ASVi: the object is an integer vector INTEGER*8

*asVr: the object is a vector of reals REAL*8

*asVc: the object is a vector of complexes COMPLEX*16

*asVl: the object is a Boolean vector LOGICAL*8

*As VK8: the object is a CHARACTER*8 character vector

*As VK16: the object is a character vector CHARACTER*16

*As VK24: the object is a CHARACTER*24 character vector

*As VK32: the object is a character vector CHARACTER*32

*As VK80: the object is a CHARACTER*80 character vector

Note: The types used in*Code_Aster* are defined in the asterf.config.h file

The constructor for these objects can contain all the usual JEVEUX attributes. For example, for a collection:

TAVA = asColl (SDNom (start=19), access='nu', storage=' CONTIG ',

modellong=” CONSTANT “, type=”K”, ltyp=8,)