Exemplo n.º 1
0
    def get_modele_support(self):
        """Recherche dans les resultats des objects CALC_ESSAI le modele mecanique
        du support. Remarque: ce resultat contient des modes mecaniques
        bidons. Une fois le modele trouve, la matrice de masse, ainsi que
        la caracteristique des elements et le champ de materiaux sont
        conserves en references.
        """
        for name, resu in list(self.objects.resultats.items()):
            if aster.jeveux_exists(name.ljust(19) + '.NOVA'):
                iret, ibid, modele_name = aster.dismoi(
                    'MODELE', name, 'RESULTAT', 'F')
                modele_name = modele_name.rstrip()
                if modele_name[0:1] == "#":
                    continue

            else:
                continue
            modllu = modele_name

            if modllu == self.support_modele.nom:
                support_modele = resu.obj

                iret, ibid, nom_raideur = aster.dismoi(
                    'REF_RIGI_PREM', support_modele.nom, 'RESU_DYNA', 'F')
                nom_raideur = nom_raideur.strip()

                if nom_raideur == self.matr_rig.nom:

                    iret, ibid, nom_masse = aster.dismoi(
                        'REF_MASS_PREM', support_modele.nom, 'RESU_DYNA', 'F')
                    nom_masse = nom_masse.strip()
                    matr_masse = self.objects.get_matr(nom_masse)

                    iret, ibid, nume_name = aster.dismoi(
                        'NUME_DDL', support_modele.nom, 'RESU_DYNA', 'F')
                    nume_name = nume_name.strip()
                    numesup = self.objects.nume_ddl[nume_name]

                    iret, ibid, var_carelem = aster.dismoi(
                        'CARA_ELEM', name, 'RESULTAT', 'F')
                    var_carelem = var_carelem.strip()

                    iret, ibid, var_chmat = aster.dismoi(
                        'CHAM_MATER', name, 'RESULTAT', 'F')
                    var_chmat = var_chmat.strip()
                    break
        else:
            self.mess.disp_mess("Impossible de trouver le mode meca calcule "
                                "du modele support")

            return

        self.support_modele_res = support_modele
        self.nume_support_modele = numesup
        self.matr_masse = matr_masse

        # Caracteristique de l'element et champ de materiaux
        # Utiliser pendant la condensation avec MACR_ELEM_STAT
        self.cara_elem = self.objects.get_cara_elem(var_carelem)
        self.cham_mater = self.objects.get_cham_mater(var_chmat)
Exemplo n.º 2
0
 def __get__(self, obj, klass):
     if obj is None:
         return self
     nomj = obj.nomj()
     if len(nomj) != 24:
         raise AssertionError(repr(nomj))
     return aster.jeveux_exists(nomj.ljust(24))
Exemplo n.º 3
0
    def get_modele(self):
        """Recherche le modele associe au resultat. Routine generique pour les dyna_harmo et mode_meca"""
        if not self.modele:
            if aster.jeveux_exists(self.nom.ljust(19) + '.NOVA'):
                iret, ibid, modele_name = aster.dismoi('MODELE', self.nom,
                                                       'RESULTAT', 'F')
                modele_name = modele_name.rstrip()
                if modele_name[0:1] != "#":
                    self.modele_name = modele_name
                    self.modele = self.objects.modeles[self.modele_name]
                    return

        # Si cela ne marche pas, on passe par le maillage
        if not self.modele:
            self.get_maillage()
            for m, _mod in self.objects.modeles.items():
                if not _mod.maya_name:
                    _mod.get_maillage()
                if _mod.maya_name == self.maya_name:
                    self.modele_name = m
                    self.modele = _mod

        if not self.modele:
            self.mess.disp_mess(
                "On ne trouve pas le modele associe au resultat " + self.nom)
            UTMESS('A', 'CALCESSAI0_8', valk=(self.nom))
Exemplo n.º 4
0
 def __get__(self, obj, klass):
     if obj is None:
         return self
     nomj = obj.nomj()
     if aster.jeveux_exists(nomj):
         return aster.jeveux_getattr(nomj, self.name)[1].strip()
     else:
         return None
Exemplo n.º 5
0
 def changeJeveuxValues(self, nbval, indices, reel, imag, num=1):
     """Modify values of existing data structures"""
     nomj = self.nomj()
     if aster.jeveux_exists(nomj):
         obj_simple = aster.jeveux_getattr(nomj, 'XOUS')[1].strip() == 'S'
         if obj_simple:
             assert num == 1, """For vectors last argument must be set to 1"""
         # aster.putvectjev can be used for vectors (num=1) and collections
         aster.putvectjev(nomj, nbval, indices, reel, imag, num)
Exemplo n.º 6
0
 def get(self):
     nomj = self.nomj()
     if aster.jeveux_exists(nomj):
         obj_simple = aster.jeveux_getattr(nomj, 'XOUS')[1].strip() == 'S'
         if obj_simple:
             return aster.getvectjev(nomj)
         else:
             return aster.getcolljev(nomj)
     else:
         return None