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.
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.
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 # ======================================================================
22 from SD.sd_titre import sd_titre
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
29 class sd_matr_asse_com(sd_titre):
30 #-----------------------------
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='')))
44 # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre vérifiée)
45 return self.REFA.exists
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]='' :
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 :
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
64 assert self.VALM.nmaxoc == 1 , (refa,self.VALM.nmaxoc)
66 assert self.VALM.nmaxoc == 2 , (refa,self.VALM.nmaxoc)
67 assert refa[10] in ('MPI_COMPLET','MPI_INCOMPLET') , refa