Ejemplo n.º 1
0
 def __init__(self, input=None, formule_extraction=None, calculer_vecteur_normal=False,
         normals_aux_cellules=False):
     #initialisation de la classe parente
     attributs = locals().copy()
     del attributs['self']
     ObjetPyturbo.__init__(self, **attributs)
     # initialisation particuliere
     self._mettre_a_jour = True
Ejemplo n.º 2
0
 def __init__(self, nom=None, RefAero=RefAero(), 
         Maillage = Maillage(), 
         omega_par_blocs=[29210. * numpy.pi/30.] * 18 + [0.0] * 7, 
         timestep=0.0, itime=None, 
         inititer=None, _vtkDataObject=None):
     attributs = locals().copy()
     del attributs['self']
     #initialisation de la classe parente
     ObjetPyturbo.__init__(self, **attributs)
Ejemplo n.º 3
0
 def __init__(self, input=None, acces_fichier=None, fmt_fichier='bin', precision='i4r8',
         endian='big', 
         ecrire_maillage=False,
         donnees_aux_cellules = False, 
         numbloc=1):
     attributs = locals().copy()
     del attributs['self']
     #initialisation de la classe parente
     ObjetPyturbo.__init__(self, **attributs)
Ejemplo n.º 4
0
 def __init__(self, 
         maillage, 
         liste_acces_fichiers, 
         liste_numblocs, 
         liste_frontieres, 
         liste_directions=[],
         dict_fenetres_blocs={},
         liste_dossiers = None, 
         ):
     #Initialisation de la classe parente
     attributs = locals().copy()
     del attributs['self']
     ObjetPyturbo.__init__(self, **attributs)
     
     #Coefficients de Fourier
     coeffs_a = None
     coeffs_b = None
     
     #lecture des fichiers chorochroniques si le dictionnaire de description des frontieres a ete renseigne
     self.update()
Ejemplo n.º 5
0
    def __init__(
        self,
        fmt_fichier="bin",
        precision="i4r8",
        endian="big",
        acces_fichier=None,
        compter_saut_de_ligne=False,
        decalage_numbloc_lus=0,
        assembler_vecteurs=True,
        traitement_non_numeros=False,
        seulement_les_numeros=None,
    ):
        attributs = locals().copy()
        del attributs["self"]
        self._mettre_a_jour = True
        # initialisation de la classe parente
        ObjetPyturbo.__init__(self, **attributs)

        # sortie du lecteur
        self.output = None
Ejemplo n.º 6
0
 def __init__(self, input=None, acces_fichier=None):
     attributs = locals().copy()
     del attributs['self']
     #initialisation de la classe parente
     ObjetPyturbo.__init__(self, **attributs)
Ejemplo n.º 7
0
    def __init__(self, 
            input=None, a_calculer = None, nom_resultat = None, 
            RefAero=RefAero(), \
            momentumRelativeFormulation=True, \
            keepIntermediateVariables=False, 
            hubFileName = "/media/FreeAgent GoFlex Drive/DATA_PI4/hub",
            tipFileName = "/media/FreeAgent GoFlex Drive/DATA_PI4/shroud",
            use_cell_data = False,
            ):
        """fonction d'initialisation
        
        c'est ici qu'est defini le dictionnaire contenant les formules pour le 
        calcul des grandeurs
        
        les noms des arrays a utiliser sont aussi definis
            - vitesse
            - moment cinetique
            - masse volumique
            - vitesse de rotation
            - etc... 
        
        """
        #initialisation de la classe parente
        attributs = locals().copy()
        del attributs['self']
        ObjetPyturbo.__init__(self, **attributs)
        
        # initialisation particuliere
        self._mettre_a_jour = True
        
        #definition des noms qui vont etre utilises pour le calcul
        # ils peuvent etre changes par l'utilisateur
        self.densityArrayName = 'ro'
        self.totalEnergyPerUnitOfVolumeArrayName = 'roe'
        self.momentumArrayName = 'momentum'
        self.omegaArrayName = 'omega'
        
        self.relativeVelocityArrayName = 'vrel'
        self.absoluteVelocityArrayName = 'vabs'
        self.absoluteCineticEnergyArrayName = 'ecin'
        self.relativeCineticEnergyArrayName = 'ecinrel'
        self.internalEnergyArrayName = 'e_interne'
        self.staticTemperatureArrayName = 'ts'
        self.absoluteTotalTemperatureArrayName = 'tt'
        self.relativeTotalTemperatureArrayName = 'ttrel'
        self.staticPressureArrayName = 'ps'
        self.absoluteTotalPressureArrayName = 'pt'
        self.relativeTotalPressureArrayName = 'ptrel'
        self.absoluteMachNumberArrayName = 'mabs'
        self.relativeMachNumberArrayName = 'mrel'
        self.entropyArrayName = 's'
        self.radialCoordinateArrayName = 'coordr'
        self.angularCoordinateArrayName = 'coordtheta'
        
        self.radialUnitVectorArrayName = 'er'
        self.angularUnitVectorArrayName = 'etheta'
        
        self.yZRelativeAngleArrayName = 'alphaYZrel'
        self.yZAbsoluteAngleArrayName = 'alphaYZabs'
        
        self.xRelativeAngleArrayName = 'alphaXrel'
        self.xAbsoluteAngleArrayName = 'alphaXabs'
        
        self.AbsoluteMeridionalAngleArrayName = 'alpha_m'
        self.RelativeMeridionalAngleArrayName = 'alpha_m_rel'
        
       
        self.dictionnaire_des_formules = {
            'RelativeVelocity': [
                {'omega': self.omegaArrayName, 
                    'ro': self.densityArrayName, 
                    'momentum': self.momentumArrayName},
                'momentum * 1 / ro' if self.momentumRelativeFormulation else 
                    'momentum * 1 / ro + omega * coordz * {0} * jHat - omega * coordy * {0} * kHat'
                    .format(self.RefAero.l_ref),
                self.relativeVelocityArrayName],
                
            'AbsoluteVelocity': [
                {'omega': self.omegaArrayName, 
                    'ro': self.densityArrayName,
                    'momentum': self.momentumArrayName},
                'momentum * 1 / ro - omega * coordz * {0} * jHat + omega * coordy * {0} * kHat'
                    .format(self.RefAero.l_ref) if self.momentumRelativeFormulation else
                    'momentum * 1 / ro',
                self.absoluteVelocityArrayName],
                
            'AbsoluteCineticEnergy': [
                {'vabs': self.absoluteVelocityArrayName},
                'vabs . vabs * 1 / 2',
                self.absoluteCineticEnergyArrayName],
                
            'RelativeCineticEnergy': [
                {'vrel': self.relativeVelocityArrayName},
                'vrel . vrel * 1 / 2',
                self.relativeCineticEnergyArrayName],
            
            'InternalEnergy': [
                {'ro': self.densityArrayName,
                    'roEt': self.totalEnergyPerUnitOfVolumeArrayName,
                    'ecin': self.relativeCineticEnergyArrayName if self.momentumRelativeFormulation \
                        else self.absoluteCineticEnergyArrayName},
                'roEt / ro - ecin',
                self.internalEnergyArrayName],
            
            'StaticTemperature': [
                {'e_interne': self.internalEnergyArrayName},
                'e_interne * ({0} - 1) / {1}'.format(self.RefAero.gamma_ref, self.RefAero.r_gaz_ref),
                self.staticTemperatureArrayName],
            
            'AbsoluteTotalTemperature': [
                {'ts': self.staticTemperatureArrayName,
                    'ecin': self.absoluteCineticEnergyArrayName},
                'ts + ecin * ( {0} - 1) / ( {0} * {1} )'.format(self.RefAero.gamma_ref, self.RefAero.r_gaz_ref),
                self.absoluteTotalTemperatureArrayName],
            
            'RelativeTotalTemperature': [
                {'ts': self.staticTemperatureArrayName,
                    'ecinrel': self.relativeCineticEnergyArrayName},
                'ts + ecinrel * ( {0} - 1) / ( {0} * {1} )'.format(self.RefAero.gamma_ref, self.RefAero.r_gaz_ref),
                self.relativeTotalTemperatureArrayName],
            
            'StaticPressure': [
                {'ro': self.densityArrayName,
                    'ts': self.staticTemperatureArrayName},
                'ro * {0} * ts'.format(self.RefAero.r_gaz_ref),
                self.staticPressureArrayName],
            
            'AbsoluteTotalPressure': [
                {'ps': self.staticPressureArrayName,
                    'tt': self.absoluteTotalTemperatureArrayName,
                    'ts': self.staticTemperatureArrayName},
                'ps * (tt / ts) ^ ({0} / ({0} - 1))'.format(self.RefAero.gamma_ref),
                self.absoluteTotalPressureArrayName],
            
            'RelativeTotalPressure': [
                {'ps': self.staticPressureArrayName,
                    'ttrel': self.relativeTotalTemperatureArrayName,
                    'ts': self.staticTemperatureArrayName},
                'ps * (ttrel / ts) ^ ({0} / ({0} - 1))'.format(self.RefAero.gamma_ref),
                self.relativeTotalPressureArrayName],
            
            'AbsoluteMachNumber': [
                {'ts': self.staticTemperatureArrayName,
                    'vabs': self.absoluteVelocityArrayName},
                'mag(vabs) / sqrt({0} * {1} * ts)'.format(self.RefAero.gamma_ref, self.RefAero.r_gaz_ref),
                self.absoluteMachNumberArrayName],
            
            'RelativeMachNumber': [
                {'ts': self.staticTemperatureArrayName, 
                    'vrel': self.relativeVelocityArrayName},
                'mag(vrel) / sqrt({0} * {1} * ts)'.format(self.RefAero.gamma_ref, self.RefAero.r_gaz_ref),
                self.relativeMachNumberArrayName],
            
            'Entropy': [
                {'ts': self.staticTemperatureArrayName,
                    'ps': self.staticPressureArrayName},
                '{0} * {1} / ({0} - 1) * ln(ts / {2}) - {1} * ln(ps / {3})'
                .format(self.RefAero.gamma_ref, self.RefAero.r_gaz_ref, self.RefAero.t_ref, self.RefAero.p_ref),
                self.entropyArrayName],
            
            'RadialCoordinate': [
                {},
                'sqrt(coordy ^ 2 + coordz ^ 2)',
                self.radialCoordinateArrayName],
            
            'AngularCoordinate': [
                {'coordr':  self.radialCoordinateArrayName},
                'acos(coordy / coordr) * coordz / abs(coordz) + 2 * acos(-1.0)  * (1 - coordz / abs(coordz))/2.0',
                self.angularCoordinateArrayName],
            
            'RadialUnitVector': [
                {'coordtheta':  self.angularCoordinateArrayName},
                'cos(coordtheta) * jHat + sin(coordtheta) * kHat',
                self.radialUnitVectorArrayName],
            
            'AngularUnitVector': [
                {'coordtheta':  self.angularCoordinateArrayName},
                '-sin(coordtheta) * jHat + cos(coordtheta) * kHat',
                self.angularUnitVectorArrayName],
            
            'YZRelativeAngle': [
                {
                    'coordtheta':  self.angularCoordinateArrayName, 
                    'vrel': self.relativeVelocityArrayName,
                    'er': self.radialUnitVectorArrayName,
                    'etheta': self.angularUnitVectorArrayName},
                'acos( (vrel . er) / mag(vrel) ) * sign(vrel . etheta) * 90.0 / acos(0.0)',
                self.yZRelativeAngleArrayName],
            
            'YZAbsoluteAngle': [
                {
                    'coordtheta':  self.angularCoordinateArrayName, 
                    'vabs': self.absoluteVelocityArrayName,
                    'er': self.radialUnitVectorArrayName,
                    'etheta': self.angularUnitVectorArrayName},
                'acos( (vabs . er) / mag(vabs) ) * sign(vabs . etheta) * 90.0 / acos(0.0)',
                self.yZAbsoluteAngleArrayName],
            
            
            'XRelativeAngle': [
                {
                    'vrel': self.relativeVelocityArrayName,
                    'er': self.radialUnitVectorArrayName},
                'acos( (vrel - (vrel . er) * er) . iHat / mag((vrel - (vrel . er) * er)) ) * sign((vrel - (vrel . er) * er) . jHat) * 90.0 / acos(0.0)',
                self.xRelativeAngleArrayName],
            
            'XAbsoluteAngle': [
                {
                    'vabs': self.absoluteVelocityArrayName,
                    'er': self.radialUnitVectorArrayName,
                    'etheta': self.angularUnitVectorArrayName},
                'acos(((vabs - (vabs . er) * er) . iHat)/ mag(vabs - (vabs . er) * er)) * sign((vabs - (vabs . er) * er) . etheta) * 90.0 / acos(0.0)',
                self.xAbsoluteAngleArrayName],
            
            'XCoordinate': [
                {},
                'coordx',
                'coordx'],
            
            'YCoordinate': [
                {},
                'coordy',
                'coordy'],
            
            'ZCoordinate': [
                {},
                'coordz',
                'coordz'],
            
            'UVParametrization_RelativeMeridionalAbscissa': [
                {},
                'UVParametrization',
                'xm'],
            
            'UVParametrization_hsH': [
                {},
                'UVParametrization',
                'hsH'],

            'gradPs_adv': [
                {
                    'vabs': self.absoluteVelocityArrayName,
                    'grad(ps)': 'grad(' + self.staticPressureArrayName + ')'
                    },
                'grad(ps).vabs/mag(vabs)',
                'gradPs_adv'],
            
            'angle_meridien_absolu': [
                {
                    'vabs': self.absoluteVelocityArrayName,
                    'er': self.radialUnitVectorArrayName, 
                    'etheta': self.angularUnitVectorArrayName
                    },
                'acos( mag(vabs - (vabs.etheta) * etheta) / mag(vabs) ) * sign(vabs . etheta) * 90.0 / acos(0.0)',
                self.AbsoluteMeridionalAngleArrayName],
            
            'angle_meridien_relatif': [
                {
                    'vrel': self.absoluteVelocityArrayName,
                    'er': self.radialUnitVectorArrayName, 
                    'etheta': self.angularUnitVectorArrayName
                    },
                'acos( mag(vrel - (vrel.etheta) * etheta) / mag(vrel) ) * sign(vrel . etheta) * 90.0 / acos(0.0)',
                self.RelativeMeridionalAngleArrayName],
            
            #'Q_criterion': [
                #{},
                #'Q_criterion',
                #'Q_criterion'],