-#@ MODIF co_cham_elem SD DATE 30/06/2009 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF co_cham_elem SD DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from sd_cham_elem import sd_cham_elem
from co_champ import cham_gd_sdaster
-import Numeric
+import numpy
# -----------------------------------------------------------------------------
# post-traitement :
topologie si topo>0. Si lgma est une liste vide, c'est equivalent
a un TOUT='OUI' dans les commandes aster
Attributs retourne
- - self.valeurs : Numeric.array contenant les valeurs
+ - self.valeurs : numpy.array contenant les valeurs
Si on a demande la topo :
- self.maille : numero de mailles
- self.point : numero du point dans la maille
aster.prepcompcham(ncham,nchams,ncmp,"EL ",topo,lgma)
- valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
+ valeurs=numpy.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
if (topo>0) :
maille=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.M'))
-#@ MODIF co_cham_no SD DATE 16/11/2009 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF co_cham_no SD DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from sd_cham_no import sd_cham_no
from co_champ import cham_gd_sdaster
-import Numeric
+import numpy
# -----------------------------------------------------------------------------
# post-traitement :
topologie si topo>0. Si lgno est une liste vide, c'est equivalent
a un TOUT='OUI' dans les commandes aster
Attributs retourne
- - self.valeurs : Numeric.array contenant les valeurs
+ - self.valeurs : numpy.array contenant les valeurs
Si on a demande la topo (i.e. self.topo = 1) :
- self.noeud : numero de noeud """
if not self.accessible() :
aster.prepcompcham(ncham,nchams,ncmp,"NO ",topo,lgno)
- valeurs=Numeric.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
+ valeurs=numpy.array(aster.getvectjev(nchams+(19-len(ncham))*' '+'.V'))
if (topo>0) :
noeud=(aster.getvectjev(nchams+(19-len(ncham))*' '+'.N'))
-#@ MODIF co_char_meca SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
+#@ MODIF co_char_meca SD DATE 22/12/2009 AUTEUR ABBAS M.ABBAS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
--- /dev/null
+#@ MODIF co_contact SD DATE 22/12/2009 AUTEUR ABBAS M.ABBAS
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+from sd_contact import sd_contact
+
+# -----------------------------------------------------------------------------
+class char_contact(ASSD, sd_contact):
+ pass
-#@ MODIF co_fonction SD DATE 16/11/2009 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF co_fonction SD DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from sd_fonction import sd_fonction_aster
import os
-import Numeric
+import numpy
from math import pi
# -----------------------------------------------------------------------------
lx = lbl[0:dim]
ly = lbl[dim:2*dim]
elif hasattr(self, 'etape') and self.etape.nom == 'DEFI_FONCTION' :
- if self.etape['VALE'] != None:
+ if self.etape['VALE'] is not None:
lbl = list(self.etape['VALE'])
dim = len(lbl)
lx = [lbl[i] for i in range(0,dim,2)]
ly = [lbl[i] for i in range(1,dim,2)]
- elif self.etape['VALE_PARA']!=None:
+ elif self.etape['VALE_PARA'] is not None:
lx = self.etape['VALE_PARA'].Valeurs()
ly = self.etape['VALE_FONC'].Valeurs()
+ elif self.etape['ABSCISSE'] is not None:
+ lx = self.etape['ABSCISSE']
+ ly = self.etape['ORDONNEE']
+ else:
+ raise Accas.AsException("Erreur (fonction.Valeurs) : ne fonctionne en " \
+ "PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \
+ "dans le fichier de commandes courant.")
else:
raise Accas.AsException("Erreur (fonction.Valeurs) : ne fonctionne en " \
"PAR_LOT='OUI' que sur des fonctions produites par DEFI_FONCTION " \
- "dans le jdc courant.")
+ "dans le fichier de commandes courant.")
return [lx, ly]
def Absc(self):
"""Retourne la liste des abscisses"""
self.Parametres(),
nom=self.nom)
elif arg=='modul' :
- modul=Numeric.sqrt(Numeric.array(self.Ordo())**2+Numeric.array(self.OrdoImg())**2)
+ modul=numpy.sqrt(numpy.array(self.Ordo())**2+numpy.array(self.OrdoImg())**2)
return t_fonction(self.Absc(),
modul,
self.Parametres(),
nom=self.nom)
elif arg=='phase' :
- phase=Numeric.arctan2(Numeric.array(self.OrdoImg()),Numeric.array(self.Ordo()))
+ phase=numpy.arctan2(numpy.array(self.OrdoImg()),numpy.array(self.Ordo()))
phase=phase*180./pi
return t_fonction(self.Absc(),
phase,
for i in range(dim):
lr.append(lbl[dim+2*i])
li.append(lbl[dim+2*i+1])
- elif hasattr(self, 'etape') and self.etape.nom == 'DEFI_FONCTION':
+ elif hasattr(self, 'etape') and self.etape.nom == 'DEFI_FONCTION' \
+ and self.etape['VALE_C'] is not None:
lbl=list(self.etape['VALE_C'])
dim=len(lbl)
lx=[lbl[i] for i in range(0,dim,3)]
-#@ MODIF co_macr_elem_dyna SD DATE 30/06/2009 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF co_macr_elem_dyna SD DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from SD import *
from sd_macr_elem_dyna import sd_macr_elem_dyna
-import Numeric
+import numpy
-def VALE_triang2array(vect_VALE, dim, typ):
+def VALE_triang2array(vect_VALE, dim, dtype=None):
"""Conversion (par recopie) de l'objet .VALE decrivant une matrice pleine
- par sa triangulaire sup en Numeric.array plein.
+ par sa triangulaire sup en numpy.array plein.
"""
- triang_sup = Numeric.array(vect_VALE)
+ triang_sup = numpy.array(vect_VALE)
assert dim*(dim+1)/2 == len(triang_sup), \
'Matrice non pleine : %d*(%d+1)/2 != %d' % (dim, dim, len(triang_sup))
- valeur = Numeric.zeros([dim, dim], typ)
+ valeur = numpy.zeros([dim, dim], dtype=dtype)
for i in range(1, dim+1):
for j in range(1, i+1):
k = i*(i-1)/2 + j
valeur[j-1, i-1]=triang_sup[k-1]
- valeur = valeur + Numeric.transpose(valeur)
+ valeur = valeur + numpy.transpose(valeur)
for i in range(dim):
valeur[i, i] = 0.5 * valeur[i, i]
def EXTR_MATR_GENE(self,typmat) :
""" retourne les valeurs des matrices generalisees reelles
- dans un format Numerical Array
+ dans un format numpy
typmat='MASS_GENE' pour obtenir la matrice de masse generalisee
typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee
typmat='AMOR_GENE' pour obtenir la matrice d'amortissement generalisee
Attributs retourne
- - self.valeurs : Numeric.array contenant les valeurs """
+ - self.valeurs : numpy.array contenant les valeurs """
if not self.accessible():
raise Accas.AsException("Erreur dans macr_elem_dyna.EXTR_MATR_GENE en PAR_LOT='OUI'")
else:
raise Accas.AsException("Le type de la matrice est incorrect")
- desc=Numeric.array(macr_elem.DESC.get())
+ desc=numpy.array(macr_elem.DESC.get())
# On teste si le DESC du vecteur existe
if (desc==None):
raise Accas.AsException("L'objet matrice n'existe pas ou est mal cree par Code Aster")
- matrice = VALE_triang2array(macr_elem.VALE.get(), desc[1], Numeric.Float)
+ matrice = VALE_triang2array(macr_elem.VALE.get(), desc[1])
return matrice
def RECU_MATR_GENE(self,typmat,matrice) :
- """ envoie les valeurs d'un Numerical Array dans des matrices generalisees
+ """ envoie les valeurs d'un tableau numpy dans des matrices generalisees
reelles definies dans jeveux
typmat='MASS_GENE' pour obtenir la matrice de masse generalisee
typmat='RIGI_GENE' pour obtenir la matrice de raideur generalisee
else:
raise Accas.AsException("Le type de la matrice est incorrect")
nom_vale = macr_elem.VALE.nomj()
- desc=Numeric.array(macr_elem.DESC.get())
+ desc=numpy.array(macr_elem.DESC.get())
# On teste si le DESC de la matrice jeveux existe
if (desc==None):
raise Accas.AsException("L'objet matrice n'existe pas ou est mal cree par Code Aster")
- Numeric.asarray(matrice)
+ numpy.asarray(matrice)
# On teste si la matrice python est de dimension 2
- if (len(Numeric.shape(matrice))<>2):
+ if (len(numpy.shape(matrice))<>2):
raise Accas.AsException("La dimension de la matrice est incorrecte")
# On teste si les tailles de la matrice jeveux et python sont identiques
- if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) :
+ if (tuple([desc[1],desc[1]])<>numpy.shape(matrice)) :
raise Accas.AsException("La dimension de la matrice est incorrecte")
taille=desc[1]*desc[1]/2.0+desc[1]/2.0
- tmp=Numeric.zeros([int(taille)],Numeric.Float)
+ tmp=numpy.zeros([int(taille)])
for j in range(desc[1]+1):
for i in range(j):
k=j*(j-1)/2+i
-#@ MODIF co_matr_asse_gene SD DATE 30/06/2009 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF co_matr_asse_gene SD DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from SD import *
from sd_matr_asse_gene import sd_matr_asse_gene
-import Numeric
+import numpy
import math
-def VALM_triang2array(dict_VALM, dim, typ):
+def VALM_triang2array(dict_VALM, dim, dtype=None):
"""Conversion (par recopie) de l'objet .VALM decrivant une matrice pleine
- par sa triangulaire inf (et parfois triang sup) en Numeric.array plein.
+ par sa triangulaire inf (et parfois triang sup) en numpy.array plein.
"""
# stockage symetrique ou non (triang inf+sup)
sym = len(dict_VALM) == 1
- triang_sup = Numeric.array(dict_VALM[1])
+ triang_sup = numpy.array(dict_VALM[1])
assert dim*(dim+1)/2 == len(triang_sup), \
'Matrice non pleine : %d*(%d+1)/2 != %d' % (dim, dim, len(triang_sup))
if sym:
triang_inf = triang_sup
else:
- triang_inf = Numeric.array(dict_VALM[2])
- valeur=Numeric.zeros([dim, dim], typ)
+ triang_inf = numpy.array(dict_VALM[2])
+ valeur=numpy.zeros([dim, dim], dtype=dtype)
for i in range(1, dim+1):
for j in range(1, i+1):
k = i*(i-1)/2 + j
valeur[j-1, i-1]=triang_sup[k-1]
return valeur
-def VALM_diag2array(dict_VALM, dim, typ):
+def VALM_diag2array(dict_VALM, dim, dtype=None):
"""Conversion (par recopie) de l'objet .VALM decrivant une matrice
- diagonale en Numeric.array plein.
+ diagonale en numpy.array plein.
"""
- diag = Numeric.array(dict_VALM[1])
+ diag = numpy.array(dict_VALM[1])
assert dim == len(diag), 'Dimension incorrecte : %d != %d' % (dim, len(diag))
- valeur=Numeric.zeros([dim, dim], typ)
+ valeur=numpy.zeros([dim, dim], dtype=dtype)
for i in range(dim):
valeur[i,i] = diag[i]
return valeur
class matr_asse_gene_r(matr_asse_gene):
def EXTR_MATR_GENE(self) :
""" retourne les valeurs de la matrice generalisee reelle
- dans un format Numerical Array
+ dans un format numpyal Array
Attributs retourne
- - self.valeurs : Numeric.array contenant les valeurs """
+ - self.valeurs : numpy.array contenant les valeurs """
if not self.accessible():
raise Accas.AsException("Erreur dans matr_asse_gene.EXTR_MATR_GENE en PAR_LOT='OUI'")
- desc=Numeric.array(self.DESC.get())
+ desc=numpy.array(self.DESC.get())
# On teste si le DESC de la matrice existe
if (desc==None):
raise Accas.AsException("L'objet matrice n'existe pas ou est mal cree par Code Aster")
# Si le stockage est plein
if desc[2]==2 :
- valeur = VALM_triang2array(self.VALM.get(), desc[1], Numeric.Float)
+ valeur = VALM_triang2array(self.VALM.get(), desc[1])
# Si le stockage est diagonal
elif desc[2]==1 :
- valeur = VALM_diag2array(self.VALM.get(), desc[1], Numeric.Float)
+ valeur = VALM_diag2array(self.VALM.get(), desc[1])
# Sinon on arrete tout
else:
return valeur
def RECU_MATR_GENE(self,matrice) :
- """ envoie les valeurs d'un Numerical Array dans des matrices
+ """ envoie les valeurs d'un tableau numpy dans des matrices
generalisees reelles definies dans jeveux
Attributs ne retourne rien """
if not self.accessible():
raise Accas.AsException("Erreur dans matr_asse_gene.RECU_MATR_GENE en PAR_LOT='OUI'")
ncham=self.get_name()
- desc=Numeric.array(self.DESC.get())
+ desc=numpy.array(self.DESC.get())
# On teste si le DESC de la matrice existe
if (desc==None):
raise Accas.AsException("L'objet matrice n'existe pas ou est mal cree par Code Aster")
- Numeric.asarray(matrice)
+ numpy.asarray(matrice)
# On teste si la dimension de la matrice python est 2
- if (len(Numeric.shape(matrice))<>2) :
+ if (len(numpy.shape(matrice))<>2) :
raise Accas.AsException("La dimension de la matrice est incorrecte ")
# On teste si les tailles des matrices jeveux et python sont identiques
- if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) :
+ if (tuple([desc[1],desc[1]])<>numpy.shape(matrice)) :
raise Accas.AsException("La taille de la matrice est incorrecte ")
# Si le stockage est plein
if desc[2]==2 :
taille=desc[1]*desc[1]/2.0+desc[1]/2.0
- tmp=Numeric.zeros([int(taille)],Numeric.Float)
+ tmp=numpy.zeros([int(taille)])
for j in range(desc[1]+1):
for i in range(j):
k=j*(j-1)/2+i
range(1,len(tmp)+1))),tuple(tmp),tuple(tmp),1)
# Si le stockage est diagonal
elif desc[2]==1 :
- tmp=Numeric.zeros(desc[1],Numeric.Float)
+ tmp=numpy.zeros(desc[1])
for j in range(desc[1]):
tmp[j]=matrice[j,j]
aster.putcolljev('%-19s.VALM' % ncham,len(tmp),tuple((\
class matr_asse_gene_c(matr_asse_gene):
def EXTR_MATR_GENE(self) :
""" retourne les valeurs de la matrice generalisee complexe
- dans un format Numerical Array
+ dans un format numpy
Attributs retourne
- - self.valeurs : Numeric.array contenant les valeurs """
+ - self.valeurs : numpy.array contenant les valeurs """
if not self.accessible():
raise Accas.AsException("Erreur dans matr_asse_gene_c.EXTR_MATR_GENE en PAR_LOT='OUI'")
- desc = Numeric.array(self.DESC.get())
+ desc = numpy.array(self.DESC.get())
if desc == None:
raise Accas.AsException("L'objet matrice n'existe pas ou est mal cree par Code Aster ")
# Si le stockage est plein
if desc[2] == 2 :
- valeur = VALM_triang2array(self.VALM.get(), desc[1], Numeric.Complex)
+ valeur = VALM_triang2array(self.VALM.get(), desc[1], complex)
# Si le stockage est diagonal
elif desc[2]==1 :
- valeur = VALM_diag2array(self.VALM.get(), desc[1], Numeric.Complex)
+ valeur = VALM_diag2array(self.VALM.get(), desc[1], complex)
# Sinon on arrete tout
else:
return valeur
def RECU_MATR_GENE(self,matrice) :
- """ envoie les valeurs d'un Numerical Array dans des matrices
+ """ envoie les valeurs d'un tableau numpy dans des matrices
generalisees reelles definies dans jeveux
Attributs ne retourne rien """
if not self.accessible():
raise Accas.AsException("Erreur dans matr_asse_gene_c.RECU_MATR_GENE en PAR_LOT='OUI'")
- Numeric.asarray(matrice)
+ numpy.asarray(matrice)
ncham=self.get_name()
- desc=Numeric.array(self.DESC.get())
+ desc=numpy.array(self.DESC.get())
# On teste si le DESC de la matrice existe
if (desc==None):
raise Accas.AsException("L'objet matrice n'existe pas ou est mal cree par Code Aster")
- Numeric.asarray(matrice)
+ numpy.asarray(matrice)
# On teste si la dimension de la matrice python est 2
- if (len(Numeric.shape(matrice))<>2) :
+ if (len(numpy.shape(matrice))<>2) :
raise Accas.AsException("La dimension de la matrice est incorrecte ")
# On teste si la taille de la matrice jeveux et python est identique
- if (tuple([desc[1],desc[1]])<>Numeric.shape(matrice)) :
+ if (tuple([desc[1],desc[1]])<>numpy.shape(matrice)) :
raise Accas.AsException("La taille de la matrice est incorrecte ")
# Si le stockage est plein
if desc[2]==2 :
taille=desc[1]*desc[1]/2.0+desc[1]/2.0
- tmpr=Numeric.zeros([int(taille)],Numeric.Float)
- tmpc=Numeric.zeros([int(taille)],Numeric.Float)
+ tmpr=numpy.zeros([int(taille)])
+ tmpc=numpy.zeros([int(taille)])
for j in range(desc[1]+1):
for i in range(j):
k=j*(j-1)/2+i
range(1,len(tmpr)+1))),tuple(tmpr),tuple(tmpc),1)
# Si le stockage est diagonal
elif desc[2]==1 :
- tmpr=Numeric.zeros(desc[1],Numeric.Float)
- tmpc=Numeric.zeros(desc[1],Numeric.Float)
+ tmpr=numpy.zeros(desc[1])
+ tmpc=numpy.zeros(desc[1])
for j in range(desc[1]):
tmpr[j]=matrice[j,j].real
tmpc[j]=matrice[j,j].imag
-#@ MODIF co_resultat SD DATE 30/06/2009 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF co_resultat SD DATE 23/03/2010 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
-#@ MODIF co_vect_asse_gene SD DATE 30/06/2009 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF co_vect_asse_gene SD DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from SD import *
from sd_cham_gene import sd_cham_gene
-import Numeric
+import numpy
# -----------------------------------------------------------------------------
class vect_asse_gene(ASSD, sd_cham_gene):
def EXTR_VECT_GENE_R(self) :
""" retourne les valeurs du vecteur generalisee
- dans un format Numerical Array
+ dans un format numpy
Attributs retourne
- - self.valeurs : Numeric.array contenant les valeurs """
+ - self.valeurs : numpy.array contenant les valeurs """
if not self.accessible():
raise Accas.AsException("Erreur dans vect_asse_gene_r.EXTR_VECT_GENE en PAR_LOT='OUI'")
ncham=self.get_name()
ncham=ncham+(8-len(ncham))*' '
- valeur=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'))
+ valeur=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'))
return valeur
def RECU_VECT_GENE_R(self,vecteur) :
- """ envoie les valeurs d'un Numerical Array dans un vecteur generalise
+ """ envoie les valeurs d'un tableau numpy dans un vecteur generalise
reel definie dans jeveux
Attributs ne retourne rien """
if not self.accessible():
raise Accas.AsException("Erreur dans vect_asse_gene_r.RECU_VECT_GENE en PAR_LOT='OUI'")
- Numeric.asarray(vecteur)
+ numpy.asarray(vecteur)
ncham=self.get_name()
ncham=ncham+(8-len(ncham))*' '
- desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
+ desc=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
# On teste si le DESC du vecteur existe
if (desc==None):
raise Accas.AsException("L'objet vecteur n'existe pas ou \
est mal cree par Code Aster")
# On teste si la taille du vecteur jeveux et python est identique
- if desc[1]<>Numeric.shape(vecteur)[0] :
+ if desc[1]<>numpy.shape(vecteur)[0] :
raise Accas.AsException("La taille du vecteur python est incorrecte")
aster.putvectjev(ncham+(19-len(ncham))*' '+'.VALE',len(vecteur),tuple((\
range(1,len(vecteur)+1))),tuple(vecteur),tuple(vecteur),1)
def EXTR_VECT_GENE_C(self) :
""" retourne les valeurs du vecteur generalisee
- dans un format Numerical Array
+ dans un format numpy
Attributs retourne
- - self.valeurs : Numeric.array contenant les valeurs """
+ - self.valeurs : numpy.array contenant les valeurs """
if not self.accessible():
raise Accas.AsException("Erreur dans vect_asse_gene_c.EXTR_VECT_GENE en PAR_LOT='OUI'")
ncham=self.get_name()
ncham=ncham+(8-len(ncham))*' '
- valeur=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'),Numeric.Complex)
+ valeur=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.VALE'), complex)
return valeur
def RECU_VECT_GENE_C(self,vecteur) :
- """ envoie les valeurs d'un Numerical Array dans un vecteur generalise
+ """ envoie les valeurs d'un tableau numpy dans un vecteur generalise
complexe definie dans jeveux
Attributs ne retourne rien """
if not self.accessible():
raise Accas.AsException("Erreur dans vect_asse_gene_c.RECU_VECT_GENE en PAR_LOT='OUI'")
- Numeric.asarray(vecteur)
+ numpy.asarray(vecteur)
ncham=self.get_name()
ncham=ncham+(8-len(ncham))*' '
- desc=Numeric.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
+ desc=numpy.array(aster.getvectjev(ncham+(19-len(ncham))*' '+'.DESC'))
# On teste si le DESC de la matrice existe
if (desc==None):
raise Accas.AsException("L'objet vecteur n'existe pas ou \
est mal cree par Code Aster")
# On teste si la taille de la matrice jeveux et python est identique
- if desc[1]<>Numeric.shape(vecteur)[0] :
+ if desc[1]<>numpy.shape(vecteur)[0] :
raise Accas.AsException("La taille du vecteur python est incorrecte")
tmpr=vecteur.real
tmpc=vecteur.imag
+++ /dev/null
-#@ MODIF sd_char_contact SD DATE 12/05/2009 AUTEUR MAZET S.MAZET
-# -*- coding: iso-8859-1 -*-
-# CONFIGURATION MANAGEMENT OF EDF VERSION
-# ======================================================================
-# COPYRIGHT (C) 1991 - 2007 EDF R&D WWW.CODE-ASTER.ORG
-# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
-# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
-# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
-# (AT YOUR OPTION) ANY LATER VERSION.
-#
-# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
-# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
-# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
-# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
-#
-# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
-# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
-# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
-# ======================================================================
-
-from SD import *
-from SD.sd_champ import sd_champ
-from SD.sd_xfem import sd_modele_xfem, sd_contact_xfem
-
-class sd_char_contact(AsBase):
- nomj =SDNom(fin=16)
-
- FORMCO = Facultatif(AsVI())
-
- def exists(self):
- # retourne True si la SD semble exister.
- return self.FORMCO.exists
-
-
- def formulation_xfem(self):
- if not self.exists() : return False
- iform = self.FORMCO.get()[0]
- return iform == 3
-
- def contact_xfem_actif(self):
- if not self.formulation_xfem() : return False
- return self.XNBASC.exists
-
- BAMACO = Facultatif(AsVI())
- BANOCO = Facultatif(AsVI())
- CARACF = Facultatif(AsVR())
- COMAFO = Facultatif(AsVR())
- JEUSUR = Facultatif(AsVR())
- CONVCO = Facultatif(AsVI())
- DIRNOR = Facultatif(AsVR())
- DIRAPP = Facultatif(AsVR())
- ECPDON = Facultatif(AsVI())
- CARFRO = Facultatif(AsVR())
- FROTE = Facultatif(AsVR())
- JEUCON = Facultatif(AsVR())
- JEUCOQ = Facultatif(AsVR())
- JEUPOU = Facultatif(AsVR())
- JFO1CO = Facultatif(AsVK8())
- JFO2CO = Facultatif(AsVK8())
- JFO3CO = Facultatif(AsVK8())
- JSUPCO = Facultatif(AsVR())
- MAESCL = Facultatif(AsVI())
- MAILCO = Facultatif(AsVI())
- MAMACO = Facultatif(AsVI())
- MANOCO = Facultatif(AsVI())
- METHCO = Facultatif(AsVI())
- NDIMCO = Facultatif(AsVI())
- NOESCL = Facultatif(AsVR())
- NOEUCO = Facultatif(AsVI())
- NOEUQU = Facultatif(AsVI())
- NOMACO = Facultatif(AsVI())
- NORLIS = Facultatif(AsVI())
- NOZOCO = Facultatif(AsVI())
- PBAMACO = Facultatif(AsVI())
- PBANOCO = Facultatif(AsVI())
- PENAL = Facultatif(AsVR())
- PMAMACO = Facultatif(AsVI())
- PMANOCO = Facultatif(AsVI())
- PNOEUQU = Facultatif(AsVI())
- PNOMACO = Facultatif(AsVI())
- PRANOCO = Facultatif(AsVI())
- PSSNOCO = Facultatif(AsVI())
- PSANOFR = Facultatif(AsVI())
- PSUMACO = Facultatif(AsVI())
- PSUNOCO = Facultatif(AsVI())
- PZONECO = Facultatif(AsVI())
- RANOCO = Facultatif(AsVI())
- SANSNQ = Facultatif(AsVI())
- SSNOCO = Facultatif(AsVI())
- SANOFR = Facultatif(AsVI())
- SYMECO = Facultatif(AsVI())
- TABFIN = Facultatif(AsVR())
- TANDEF = Facultatif(AsVR())
- TANPOU = Facultatif(AsVR())
- TOLECO = Facultatif(AsVR())
- xfem = Facultatif(AsVI())
- XFIMAI = Facultatif(AsVK8())
- XNBASC = Facultatif(AsVK24())
- XNRELL = Facultatif(AsVK24())
- TANINI = Facultatif(AsVR())
- NORMCO = Facultatif(AsVR())
- TANGCO = Facultatif(AsVR())
- EXCLFR = Facultatif(AsVR())
- MODELX = Facultatif(AsVK8(lonmax=1,))
- CNCTE = Facultatif(AsVI())
-
- # si contact xfem :
- xfem = Facultatif(sd_contact_xfem(SDNom(nomj='')))
-
-
- # indirection vers les champs de .XNBASC :
- # Question à Mickael :
- # la fonction suivante ne serait-elle pas mieux placée dans la classe sd_contact_xfem ?
- def check_char_contact_xfem_XNBASC(self, checker):
- if not self.contact_xfem_actif() : return
- lnom = self.XNBASC.get()
- nbnom = self.XNBASC.lonuti
- for k in range(nbnom) :
- nom = lnom[k]
- if not nom.strip(): continue
- sd2 = sd_champ(nom)
- sd2.check(checker)
-
-
- # indirection vers les champs de .XNRELL :
- # On ne vérifie rien pour l'instant
- # Question à Mickael :
- # la fonction suivante ne serait-elle pas mieux placée dans la classe sd_contact_xfem ?
- def check_char_contact_xfem_XNRELL(self, checker):
- if not self.contact_xfem_actif() : return
- lnom = self.XNRELL.get()
- nbnom = self.XNRELL.lonuti
- for k in range(nbnom) :
- nom = lnom[k]
- oo = AsObject(SDNom(nomj=nom,debut=0),genr='V', xous='S', type=Parmi('I','R'))
- oo.check(checker)
-
-
- # Verification MODELE xfem
- def check_char_contact_xfem_MODELX(self, checker):
- if not self.contact_xfem_actif() : return
- nom = self.MODELX.get()[0]
- sd2 = sd_modele_xfem(nom)
- sd2.check(checker)
-
-
-#@ MODIF sd_char_meca SD DATE 16/09/2008 AUTEUR PELLET J.PELLET
+#@ MODIF sd_char_meca SD DATE 22/12/2009 AUTEUR ABBAS M.ABBAS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from SD.sd_ligrel import sd_ligrel
from SD.sd_carte import sd_carte
-from SD.sd_char_unilate import sd_char_unilate
-from SD.sd_char_contact import sd_char_contact
from SD.sd_char_cine import sd_char_cine
CHME = Facultatif(sd_char_chme())
ELIM = Facultatif(sd_char_cine())
- UNILATE = Facultatif(sd_char_unilate())
- CONTACT = Facultatif(sd_char_contact())
-
TRANS01 = Facultatif(AsVR(lonmax=6, ))
TRANS02 = Facultatif(AsVR(lonmax=6, ))
LISMA01 = Facultatif(AsVI(lonmax=12, ))
-#@ MODIF sd_compor SD DATE 30/06/2008 AUTEUR PROIX J-M.PROIX
+#@ MODIF sd_compor SD DATE 08/12/2009 AUTEUR PROIX J-M.PROIX
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
#------------------------------------
nboccm=cpri[4]
nvi =cpri[2]
- nbsys=(nvi-9)/3
- assert nvi==9+3*nbsys , (nvi, nbsys, cpri)
+ if cpri[5] > 0 :
+ nbsys=(nvi-25)/3
+ assert nvi==25+3*nbsys , (nvi, nbsys, cpri)
+ else :
+ nbsys=(nvi-9)/3
+ assert nvi==9+3*nbsys , (nvi, nbsys, cpri)
cprk=self.CPRK.get_stripped()
# vérif existence et longueur
assert cpri[2] == nvi ,cpri
assert cpri[3] == 1 ,cpri
assert cpri[4] > 0 ,cpri
- assert cpri[5] == 1 ,cpri
+ assert cpri[5] >= 0 ,cpri
assert cpri[6] == nvi ,cpri
# vérif CPRK :
sd2=sd_mater(mater1) ; sd2.check(checker)
assert loifib1 != '' , cprk
assert algo1d in ('ANALYTIQUE','DEBORST') , cprk
- assert deform in ('PETIT','PETIT_REAC','REAC_GEOM') , cprk
+ assert deform in ('PETIT','PETIT_REAC','GROT_GDEP') , cprk
assert nbfib > 0 , cprk
--- /dev/null
+#@ MODIF sd_contact SD DATE 20/04/2010 AUTEUR JAUBERT A.JAUBERT
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2009 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+from SD.sd_ligrel import sd_ligrel
+from SD.sd_champ import sd_champ
+from SD.sd_xfem import sd_modele_xfem
+from SD.sd_xfem import sd_fiss_xfem
+from SD.sd_cham_no import sd_cham_no
+from SD.sd_char_meca import sd_char_chme
+from sd_prof_chno import sd_prof_chno
+
+class sd_contact(AsBase):
+ nomj = SDNom(fin=8)
+
+
+ # Recap longueurs vecteurs (voir CFMMVD.F)
+ zdime = 12
+ zpari = 25
+ zparr = 5
+ zdirn = 6
+ zcmdf = 6
+ zcmcf = 27
+ zcmxf = 16
+ zexcl = 6
+ ztypn = 1
+ ztypm = 2
+ zmaes = 6
+ zmesx = 5
+
+ MODELE = AsVK8(SDNom(nomj='.CHME.MODEL.NOMO'),lonmax=1, )
+ PARACI = AsVI (SDNom(nomj='.CONTACT.PARACI') ,lonmax=zpari,)
+ PARACR = AsVR (SDNom(nomj='.CONTACT.PARACR') ,lonmax=zparr,)
+
+
+ def exists(self):
+ # retourne "vrai" si la SD semble exister (et donc qu'elle peut etre v??rifi??e)
+ return self.PARACI.exists
+
+ def type_form(self):
+ para = self.PARACI.get()
+ iform = para[3]
+ return iform
+
+ def formulation_xfem(self):
+ if not self.exists() : return False
+ iform = self.PARACI.get()[3]
+ return iform == 3
+
+ NDIMCO = Facultatif(AsVI(SDNom(nomj='.CONTACT.NDIMCO') ))
+ METHCO = Facultatif(AsVI(SDNom(nomj='.CONTACT.METHCO') ))
+ TOLECO = Facultatif(AsVR(SDNom(nomj='.CONTACT.TOLECO') ))
+
+ def dimeC(self):
+ iform = self.type_form()
+ if (iform==1) or (iform==2) or (iform==3) :
+ para = self.NDIMCO.get()
+ nzoco = para[1]
+ nsuco = para[2]
+ nmaco = para[3]
+ nnoco = para[4]
+ nmano = para[5]
+ nnoma = para[6]
+ ntnoe = para[8]
+ ntmae = para[9]
+ ntpc = para[10]
+ ntelno = para[11]
+ return nzoco,nsuco,nmaco,nnoco,nmano,nnoma,ntnoe,ntmae,ntpc,ntelno
+
+
+ def check_para(self,checker):
+ iform = self.type_form()
+ if (iform==1) or (iform==2) or (iform==3) :
+ nzoco,nsuco,nmaco,nnoco,nmano,nnoma,ntnoe,ntmae,ntpc,ntelno = self.dimeC()
+ lldime = self.NDIMCO.lonmax
+ llmeth = self.METHCO.lonmax
+ lltole = self.TOLECO.lonmax
+ assert llmeth == nzoco*10
+ assert lltole == nzoco*2
+ assert lldime == self.zdime
+ if (iform==4) :
+ lldime = self.NDIMCU.lonmax
+ assert lldime == 2
+ return
+
+ JEUFO1 = Facultatif(AsVK8(SDNom(nomj='.CONTACT.JFO1CO') ))
+ JEUFO2 = Facultatif(AsVK8(SDNom(nomj='.CONTACT.JFO2CO') ))
+ DIRAPP = Facultatif(AsVR(SDNom(nomj='.CONTACT.DIRAPP') ))
+ DIRNOR = Facultatif(AsVR(SDNom(nomj='.CONTACT.DIRNOR') ))
+ JEUCOQ = Facultatif(AsVR(SDNom(nomj='.CONTACT.JEUCOQ') ))
+ JEUPOU = Facultatif(AsVR(SDNom(nomj='.CONTACT.JEUPOU') ))
+
+ PZONE = Facultatif(AsVI(SDNom(nomj='.CONTACT.PZONECO') ))
+ PSURMA = Facultatif(AsVI(SDNom(nomj='.CONTACT.PSUMACO') ))
+ PSURNO = Facultatif(AsVI(SDNom(nomj='.CONTACT.PSUNOCO') ))
+
+ CONTMA = Facultatif(AsVI(SDNom(nomj='.CONTACT.MAILCO') ))
+ CONTNO = Facultatif(AsVI(SDNom(nomj='.CONTACT.NOEUCO') ))
+
+ NOZOCO = Facultatif(AsVI(SDNom(nomj='.CONTACT.NOZOCO') ))
+ MANOCO = Facultatif(AsVI(SDNom(nomj='.CONTACT.MANOCO') ))
+ NOMACO = Facultatif(AsVI(SDNom(nomj='.CONTACT.NOMACO') ))
+
+ PMANO = Facultatif(AsVI(SDNom(nomj='.CONTACT.PMANOCO') ))
+ PNOMA = Facultatif(AsVI(SDNom(nomj='.CONTACT.PNOMACO') ))
+
+ PSANS = Facultatif(AsVI(SDNom(nomj='.CONTACT.PSSNOCO') ))
+ SANSN = Facultatif(AsVI(SDNom(nomj='.CONTACT.SSNOCO') ))
+
+ TYPEMA = Facultatif(AsVI(SDNom(nomj='.CONTACT.TYPEMA') ))
+ TYPENO = Facultatif(AsVI(SDNom(nomj='.CONTACT.TYPENO') ))
+ MAESCL = Facultatif(AsVI(SDNom(nomj='.CONTACT.MAESCL') ))
+
+ TYPE = Facultatif(AsVK8(SDNom(nomj='.TYPE') ))
+ LIGRE = Facultatif(sd_ligrel(SDNom(nomj='.CHME.LIGRE')))
+ RELLIN = Facultatif(sd_char_chme(SDNom(nomj='.CHME')))
+
+ def check_mail(self,checker):
+ iform = self.type_form()
+ if (iform==2) or (iform==1) :
+ nzoco,nsuco,nmaco,nnoco,nmano,nnoma,ntnoe,ntmae,ntpc,ntelno = self.dimeC()
+ assert self.JEUFO1.lonmax == nzoco
+ assert self.JEUFO2.lonmax == nzoco
+ assert self.DIRAPP.lonmax == 3*nzoco
+ assert self.DIRNOR.lonmax == self.zdirn*nzoco
+ assert self.JEUCOQ.lonmax == nmaco
+ assert self.JEUPOU.lonmax == nmaco
+
+ assert self.PZONE.lonmax == nzoco+1
+ assert self.PSURMA.lonmax == nsuco+1
+ assert self.PSURNO.lonmax == nsuco+1
+ assert self.CONTMA.lonuti == nmaco
+ assert self.CONTNO.lonuti == nnoco
+
+ assert self.NOZOCO.lonmax == nnoco
+ assert self.MANOCO.lonuti == nmano
+ assert self.NOMACO.lonuti == nnoma
+
+ assert self.MANOCO.lonmax == 20*max(nnoco,nmaco)
+ assert self.NOMACO.lonmax == 20*max(nnoco,nmaco)
+
+ assert self.PMANO.lonmax == nnoco+1
+ assert self.PNOMA.lonmax == nmaco+1
+
+ assert self.PSANS.lonmax == nzoco+1
+ assert self.SANSN.lonmax >= 1
+
+ assert self.TYPENO.lonmax == self.ztypn*nnoco
+ assert self.TYPEMA.lonmax == self.ztypm*nmaco
+ assert self.MAESCL.lonmax == self.zmaes*ntmae
+
+ return
+
+ CARADF = Facultatif(AsVR(SDNom(nomj='.CONTACT.CARADF') ))
+
+ def check_form_disc(self,checker):
+ iform = self.type_form()
+ if (iform==1) :
+ nzoco,nsuco,nmaco,nnoco,nmano,nnoma,ntnoe,ntmae,ntpc,ntelno = self.dimeC()
+ assert self.CARADF.lonmax == self.zcmdf*nzoco
+ assert ntnoe == ntpc
+ return
+
+ CARACF = Facultatif(AsVR(SDNom(nomj='.CONTACT.CARACF') ))
+ EXCLFR = Facultatif(AsVR(SDNom(nomj='.CONTACT.EXCLFR') ))
+
+ PBARS = Facultatif(AsVI(SDNom(nomj='.CONTACT.PBANOCO') ))
+ BARSNO = Facultatif(AsVI(SDNom(nomj='.CONTACT.BANOCO') ))
+
+ PBARM = Facultatif(AsVI(SDNom(nomj='.CONTACT.PBAMACO') ))
+ BARSMA = Facultatif(AsVI(SDNom(nomj='.CONTACT.BAMACO') ))
+
+ PRACC = Facultatif(AsVI(SDNom(nomj='.CONTACT.PRANOCO') ))
+ RACCNO = Facultatif(AsVI(SDNom(nomj='.CONTACT.RANOCO') ))
+
+ PFROT = Facultatif(AsVI(SDNom(nomj='.CONTACT.PSANOFR') ))
+ FROTNO = Facultatif(AsVI(SDNom(nomj='.CONTACT.SANOFR') ))
+
+ def check_form_cont(self,checker):
+ iform = self.type_form()
+ if (iform==2) :
+ nzoco,nsuco,nmaco,nnoco,nmano,nnoma,ntnoe,ntmae,ntpc,ntelno = self.dimeC()
+ assert self.CARACF.lonmax == self.zcmcf*nzoco
+ assert self.EXCLFR.lonmax == self.zexcl*nzoco
+
+ assert self.PBARS.lonmax == nzoco+1
+ assert self.BARSNO.lonmax >= 1
+
+ assert self.PBARM.lonmax == nzoco+1
+ assert self.BARSMA.lonmax >= 1
+
+ assert self.PRACC.lonmax == nzoco+1
+ assert self.RACCNO.lonmax >= 1
+
+ assert self.PFROT.lonmax == nzoco+1
+ assert self.FROTNO.lonmax >= 1
+
+ assert self.LIGRE.exists
+
+ return
+
+ MAESCX = Facultatif(AsVI(SDNom(nomj='.CONTACT.MAESCX') ))
+ CARAXF = Facultatif(AsVR(SDNom(nomj='.CONTACT.CARAXF') ))
+ MODELX = Facultatif(AsVK8(SDNom(nomj='.CONTACT.MODELX') ))
+ XFIMAI = Facultatif(AsVK8(SDNom(nomj='.CONTACT.XFIMAI') ))
+ XNBASC = Facultatif(AsVK24(SDNom(nomj='.CONTACT.XNBASC') ))
+ XNRELL = Facultatif(AsVK24(SDNom(nomj='.CONTACT.XNRELL') ))
+ CNCTE = Facultatif(AsVI(SDNom(nomj='.CONTACT.CNCTE') ))
+ PRCHNO = Facultatif(sd_prof_chno(SDNom(nomj='.PRCHN00000')))
+ PRCHN1 = Facultatif(sd_prof_chno(SDNom(nomj='.PRCHN00001')))
+ LIGRE = Facultatif(sd_ligrel(SDNom(nomj='.CHME.LIGRE')))
+
+
+ def contact_xfem_actif(self):
+ if not self.formulation_xfem() : return False
+ self.XNBASC.exists
+
+ def check_form_xfem(self,checker):
+ iform = self.type_form()
+ if (iform==3) :
+ nzoco,nsuco,nmaco,nnoco,nmano,nnoma,ntnoe,ntmae,ntpc,ntelno = self.dimeC()
+ paraci = self.PARACI.get()
+ if (paraci[0]!=0) :
+ assert self.MAESCX.lonuti == self.zmesx*ntmae
+ assert self.CARAXF.lonmax == self.zcmxf*nzoco
+ assert self.MODELX.lonmax == 1
+ assert self.XFIMAI.lonmax == nzoco
+ assert self.XNRELL.exists
+ assert self.LIGRE.exists
+ return
+
+ def check_char_contact_xfem_XNBASC(self, checker):
+ if not self.contact_xfem_actif() : return
+ lnom = self.XNBASC.get()
+ nbnom = self.XNBASC.lonuti
+ for k in range(nbnom) :
+ nom = lnom[k]
+ if not nom.strip(): continue
+ sd2 = sd_champ(nom)
+ sd2.check(checker)
+
+
+ def check_char_contact_xfem_XNRELL(self, checker):
+ iform = self.type_form()
+ if (iform==3) :
+ lnom = self.XNRELL.get()
+ nbnom = self.XNRELL.lonuti
+ nom = lnom[0]
+ if (nom[8:14]!='.LISEQ'):
+ oo = AsObject(SDNom(nomj=nom,debut=0),genr='V', xous='S', type=Parmi('I','R'))
+ oo.check(checker)
+
+ # Verification MODELE xfem
+ def check_char_contact_xfem_MODELX(self, checker):
+ if not self.contact_xfem_actif() : return
+ nom = self.MODELX.get()[0]
+ sd2 = sd_modele_xfem(nom)
+ sd2.check(checker)
+
+
+ NDIMCU = Facultatif(AsVI(SDNom(nomj='.UNILATE.NDIMCU') ))
+ CMPGCU = Facultatif(AsVK8(SDNom(nomj='.UNILATE.CMPGCU') ))
+ COEFD = Facultatif(AsVK8(SDNom(nomj='.UNILATE.COEFD') ))
+ COEFG = Facultatif(AsVK8(SDNom(nomj='.UNILATE.COEFG') ))
+ LISNOE = Facultatif(AsVI(SDNom(nomj='.UNILATE.LISNOE') ))
+ POINOE = Facultatif(AsVI(SDNom(nomj='.UNILATE.POINOE') ))
+ def check_form_unil(self,checker):
+ iform = self.type_form()
+ if (iform==4) :
+ assert self.CMPGCU.lonmax >= 1
+ assert self.COEFD.lonmax >= 1
+ assert self.COEFG.lonmax >= 1
+ assert self.LISNOE.lonmax >= 1
+ assert self.POINOE.lonmax >= 1
+
+ return
+
--- /dev/null
+#@ MODIF sd_corresp_2_mailla SD DATE 02/02/2010 AUTEUR PELLET J.PELLET
+# -*- coding: iso-8859-1 -*-
+# CONFIGURATION MANAGEMENT OF EDF VERSION
+# ======================================================================
+# COPYRIGHT (C) 1991 - 2010 EDF R&D WWW.CODE-ASTER.ORG
+# THIS PROGRAM IS FREE SOFTWARE; YOU CAN REDISTRIBUTE IT AND/OR MODIFY
+# IT UNDER THE TERMS OF THE GNU GENERAL PUBLIC LICENSE AS PUBLISHED BY
+# THE FREE SOFTWARE FOUNDATION; EITHER VERSION 2 OF THE LICENSE, OR
+# (AT YOUR OPTION) ANY LATER VERSION.
+#
+# THIS PROGRAM IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL, BUT
+# WITHOUT ANY WARRANTY; WITHOUT EVEN THE IMPLIED WARRANTY OF
+# MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. SEE THE GNU
+# GENERAL PUBLIC LICENSE FOR MORE DETAILS.
+#
+# YOU SHOULD HAVE RECEIVED A COPY OF THE GNU GENERAL PUBLIC LICENSE
+# ALONG WITH THIS PROGRAM; IF NOT, WRITE TO EDF R&D CODE_ASTER,
+# 1 AVENUE DU GENERAL DE GAULLE, 92141 CLAMART CEDEX, FRANCE.
+# ======================================================================
+
+from SD import *
+
+class sd_corresp_2_mailla(AsBase):
+ nomj = SDNom(fin=16)
+ PJXX_K1 = AsVK24(lonmax=5)
+
+ # Remarque : pour retirer la plupart des "facultatifs", il faudrait changer
+ # les noms : PJEF_NB -> PE.EFNB
+ # ...
+ # PJNG_I1 -> PN.NGI1
+ # et faire 2 class sd_corresp_2_elem et sd_corresp_2_nuage)
+ PJEF_NB = Facultatif(AsVI())
+ PJEF_NU = Facultatif(AsVI())
+ PJEF_M1 = Facultatif(AsVI())
+ PJEF_CF = Facultatif(AsVR())
+ PJEF_TR = Facultatif(AsVI())
+ PJEF_AM = Facultatif(AsVI())
+ PJEF_CO = Facultatif(AsVR())
+
+ PJNG_I1 = Facultatif(AsVI())
+ PJNG_I2 = Facultatif(AsVI())
+
+
+
-#@ MODIF sd_resultat SD DATE 10/11/2009 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF sd_resultat SD DATE 11/05/2010 AUTEUR COURTOIS M.COURTOIS
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
from SD.sd_l_table import sd_l_table
from SD.sd_champ import sd_champ
from SD.sd_l_charges import sd_l_charges
-from SD.sd_char_contact import sd_char_contact
from SD.sd_util import *
ORDR = AsVI(SDNom(debut=19), )
DESC = AsObject(SDNom(debut=19), genr='N', xous='S', type='K', ltyp=16, )
- NOEU = Facultatif(AsVK16(SDNom(debut=19))) # en attendant la correction de EL 12583
-
# la déclaration suivante simplifie la fonction check_resultat_i_char
CHAR = Facultatif(AsVK24(SDNom(debut=19),))
-#@ MODIF sd_stoc_morse SD DATE 13/02/2007 AUTEUR PELLET J.PELLET
+#@ MODIF sd_stoc_morse SD DATE 29/03/2010 AUTEUR BOITEAU O.BOITEAU
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
class sd_stoc_morse(AsBase):
nomj = SDNom(fin=19)
SMDE = AsVI(lonmax=6)
- SMHC = AsVI()
+ SMHC = AsVS()
SMDI = AsVI()
-#@ MODIF sd_util SD DATE 10/11/2009 AUTEUR COURTOIS M.COURTOIS
+#@ MODIF sd_util SD DATE 19/04/2010 AUTEUR GREFFET N.GREFFET
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
ok = 0
if comp == "==" :
ok = val1 == val2
+ comp1 = "n'est pas égale au"
elif comp == "!=" :
ok = val1 != val2
+ comp1 = "est égale au"
elif comp == ">=" :
ok = val1 >= val2
+ comp1 = "est inférieure strictement au"
elif comp == "<=" :
ok = val1 <= val2
+ comp1 = "est supérieure strictement au"
elif comp == ">" :
ok = val1 > val2
+ comp1 = "est inférieure ou égale au"
elif comp == "<" :
ok = val1 < val2
+ comp1 = "est supérieure ou égale au"
else :
sdu_assert(ojb, checker, 0, 'sdu_compare: opérateur de comparaison interdit: '+comp)
if not ok :
- checker.err(ojb, "condition non respectée : %s %s %s (%s)" % (val1,comp,val2,comment))
+ checker.err(ojb, "condition non respectée pour le test suivant : longueur séquence (%s) %s nombre d'éléments différents dans la séquence (%s) (%s)" % (val1,comp1,val2,comment))
# 1.2 Utilitaires pour des séquences :
else :
seq=ojb.get()
- sdu_compare(ojb, checker, len(seq), '==', len(set(seq)), comment='Tous différents: '+comment)
+ sdu_compare(ojb, checker, len(seq), '==', len(set(seq)), comment='Tous les éléments de la séquence devraient être différents, mais ils ne le sont pas'+comment)
def sdu_tous_non_blancs(ojb,checker,sequence=None,comment=''):
-#@ MODIF sd_xfem SD DATE 24/08/2009 AUTEUR GENIAUT S.GENIAUT
+#@ MODIF sd_xfem SD DATE 11/01/2010 AUTEUR COLOMBO D.COLOMBO
# -*- coding: iso-8859-1 -*-
# CONFIGURATION MANAGEMENT OF EDF VERSION
# ======================================================================
FONDMULT = Facultatif(AsVI())
CARAFOND = Facultatif(AsVR(lonmax=12,))
-# I.2) objets relatifs à l'enrichissement
+# I.2) objets relatifs a l'enrichissement
GROUP_MA_ENRI = AsVI()
GROUP_NO_ENRI = AsVI()
MAILFISS_INDIC = AsVI(SDNom(nomj='.MAILFISS .INDIC'), lonmax=6, )
LISNOH = Facultatif(AsVI())
-# I.3) objets relatifs à la propagation
+# I.3) objets relatifs a la propagation
PRO_MES_EL = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.MES_EL')))
PRO_NORMAL = Facultatif(sd_cham_elem(SDNom(nomj='.PRO.NORMAL')))
+ PRO_RAYON_TORE = Facultatif(AsVR(SDNom(nomj='.PRO.RAYON_TORE'),lonmax=1,))
+ PRO_NOEUD_TORE = Facultatif(AsVL(SDNom(nomj='.PRO.NOEUD_TORE')))
+ PRO_MOD_GRILLE = Facultatif(AsVK8(SDNom(nomj='.PRO.MOD_GRILLE'),lonmax=1,))
# I.4) objets relatifs au contact
LISCO = Facultatif(AsVR(SDNom(nomj='.LISCO')))
LISEQ = Facultatif(AsVI(SDNom(nomj='.LISEQ')))
LISRL = Facultatif(AsVI(SDNom(nomj='.LISRL')))
+ LISUP = Facultatif(AsVI(SDNom(nomj='.LISUP')))
-# 1.5) vérifications d'existence :
+# 1.5) verifications d'existence :
def check_existence(self,checker) :
sdu_ensemble((self.FONDFISS, self.FONDMULT))
sdu_ensemble((self.LISRL, self.LISCO))
sdu_ensemble((self.PRO_MES_EL.CELD, self.PRO_NORMAL.CELD))
+ sdu_ensemble((self.PRO_RAYON_TORE, self.PRO_NOEUD_TORE))
#-------------------------------
class sd_modele_xfem(AsBase):
nomj = SDNom(fin=8)
-# II.1) objets relatifs aux sous-éléments
+# II.1) objets relatifs aux sous-elements
TOPOSE_PIN = sd_cham_elem(SDNom(nomj='.TOPOSE.PIN'))
TOPOSE_CNS = sd_cham_elem(SDNom(nomj='.TOPOSE.CNS'))
TOPOFAC_OE = sd_cham_elem(SDNom(nomj='.TOPOFAC.OE'))
TOPOFAC_OM = sd_cham_elem(SDNom(nomj='.TOPOFAC.OM'))
-# II.3) objets concaténés relatifs aux level sets
+# II.3) objets concatenes relatifs aux level sets
LNNO = sd_cham_no()
LTNO = sd_cham_no()
FISS = AsVK8() # noms des fissures
NFIS = AsVI(lonmax=1,) # nombre de fissures
XMAFIS = sd_carte() # pour chaque maille : nom de la fissure
-
-
-#----------------------------------
-# III. sd charge de contact
-#----------------------------------
-
-class sd_contact_xfem(AsBase):
-#-------------------------------
- nomj = SDNom(fin=16)
-
- CARACF = AsVR()
- ECPDON = AsVI()
- METHCO = AsVI()
-
- XFIMAI = AsVK8()
- XNRELL = AsVK24()
- XNBASC = AsVK24()