]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA10/SD/sd_matr_asse_com.py
Salome HOME
Modif V6_4_°
[tools/eficas.git] / Aster / Cata / cataSTA10 / SD / sd_matr_asse_com.py
1 #@ MODIF sd_matr_asse_com SD  DATE 25/03/2008   AUTEUR REZETTE C.REZETTE 
2 # -*- coding: iso-8859-1 -*-
3 #            CONFIGURATION MANAGEMENT OF EDF VERSION
4 # ======================================================================
5 # COPYRIGHT (C) 1991 - 2007  EDF R&D                  WWW.CODE-ASTER.ORG
6 # THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
7 # IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
8 # THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
9 # (AT YOUR OPTION) ANY LATER VERSION.
10 #
11 # THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
12 # WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
13 # MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
14 # GENERAL PUBLIC LICENSE FOR MORE DETAILS.
15 #
16 # YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
17 # ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
18 #    1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
19 # ======================================================================
20
21 from SD import *
22 from SD.sd_titre import sd_titre
23
24 from SD.sd_maillage import sd_maillage
25 from SD.sd_nume_ddl import sd_nume_ddl
26 from SD.sd_matr_cine import sd_matr_cine
27
28
29 class sd_matr_asse_com(sd_titre):
30 #-----------------------------
31     nomj = SDNom(fin=19)
32
33     REFA = AsVK24(lonmax=11,)
34     VALM = AsColl(acces='NU', stockage='DISPERSE', modelong='CONSTANT', type=Parmi('C', 'R'))
35     UALF = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='CONSTANT', type=Parmi('C', 'R')))
36     VALF = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type=Parmi('C', 'R')))
37     WALF = Facultatif(AsColl(acces='NU', stockage='DISPERSE', modelong='VARIABLE', type=Parmi('C', 'R')))
38     CONL = Facultatif(OJBVect(type=Parmi('C', 'R')))
39     DIGS = Facultatif(OJBVect(type=Parmi('C', 'R'))) # seulement si solveurs LDLT et MULT_FRONT
40     LIME = Facultatif(AsVK24())
41     cine = Facultatif(sd_matr_cine(SDNom(nomj='')))
42
43     def exists(self):
44         # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée)
45         return self.REFA.exists
46
47     def check_REFA(self, checker):
48         if not self.exists() : return
49         refa=self.REFA.get_stripped()
50         assert refa[9] in ('NOEU','GENE') , refa
51         lgene = refa[9] == 'GENE'
52         # pour les matrices generalisees, on ne sait pas ce qui est stocké dans refa[0]='' :
53         if not lgene :
54             sd2=sd_maillage(refa[0]) ; sd2.check(checker)
55             sd2=sd_nume_ddl(refa[1]) ; sd2.check(checker)
56         assert refa[2] in ('ELIMF','ELIML','') , refa
57         assert refa[4] in ('FETI','') , refa
58         # pour les matrices generalisees, refa[7] n'est pas toujours rempli :
59         if not lgene :
60             # glute à résorber : j'ajoute '' à la liste permise pour le test yyyy108e :
61             assert refa[7] in ('ASSE','DECT','DECP','') , refa
62         assert refa[8] in ('MS','MR') , refa
63         if refa[8]=='MS' :
64             assert self.VALM.nmaxoc == 1 , (refa,self.VALM.nmaxoc)
65         elif refa[8]=='MR' :
66             assert self.VALM.nmaxoc == 2 , (refa,self.VALM.nmaxoc)
67         assert refa[10] in ('MPI_COMPLET','MPI_INCOMPLET') , refa
68
69