]> SALOME platform Git repositories - tools/eficas.git/blob - Aster/Cata/cataSTA9/SD/sd_listr8.py
Salome HOME
CCAR: merge de la version 1.14 dans la branche principale
[tools/eficas.git] / Aster / Cata / cataSTA9 / SD / sd_listr8.py
1 #@ MODIF sd_listr8 SD  DATE 10/07/2007   AUTEUR PELLET J.PELLET 
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
25 class sd_listr8(sd_titre):
26 #----------------------------------
27     nomj = SDNom(fin=19)
28     LPAS = AsVR()
29     BINT = AsVR()
30     NBPA = AsVI()
31     VALE = AsVR()
32
33
34     def proche(self,a,b):
35         # retourne  1  si a est proche de b
36         # retourne -1  si a est loin de b
37         # retourne  0  si a = 0. (ou b = 0.)
38         if  a != 0. and b != 0. :
39            erreur= abs(a-b)/(abs(a)+abs(b))
40            if erreur < 1.e-12 :
41                return 1
42            else :
43                return -1
44         else :
45                return 0
46
47
48     def check_1(self,checker):
49         nbpa=self.NBPA.get()
50         bint=self.BINT.get()
51         lpas=self.LPAS.get()
52         vale=self.VALE.get()
53
54         # cas général :
55         if len(vale) > 1 :
56             assert len(bint) == len(nbpa)+1
57             assert len(nbpa) == len(lpas)
58
59             n1=0
60             assert self.proche(vale[0], bint[0]) in (1,0)
61             for k in range(len(nbpa)) :
62                 npas=nbpa[k]
63                 assert npas > 0
64                 n1 = n1 + npas
65                 assert self.proche(vale[n1],bint[k+1]) in (1,0) , (k+1,vale[n1], bint[k+1],)
66
67             assert len(vale) == n1+1
68
69         # cas particulier :
70         if len(vale) == 1 :
71             assert len(bint) == 1
72             assert len(nbpa) == 1
73             assert len(lpas) == 1
74             assert  vale[0] == bint[0]
75
76