Exemple #1
0
    def _read(self):
        """ Read the file (overrided)
        """
        # initializng data dictionary
        self.data = {}

        f = FortranFile(self.filename)
        # Default omnivor binary header
        self.data['MK'] = f.readInts('i')
        self.data['itime'] = f.readInts('i')
        self.data['version'] = f.readString()
        self.data['file_id'] = f.readInts('i')
        self.data['sversion'] = f.readString()
        # Velocity field
        self.data['stype'] = f.readString()
        self.data['is_grid'] = f.readInts('i')
        nCPs = f.readInts('i')
        self.data['nCPs'] = nCPs
        if self.data['MK'] == 8:
            real_char = 'd'
        else:
            real_char = 'f'
        if self.data['is_grid']:
            #print('File is a velocity grid file')
            n1 = f.readInts('i')
            n2 = f.readInts('i')
            n3 = f.readInts('i')
            self.data['n1'] = n1
            self.data['n2'] = n2
            self.data['n3'] = n3
            self.data['is_straight'] = f.readInts('i')
            self.data['v1'] = f.readReals(real_char)
            self.data['v2'] = f.readReals(real_char)
            self.data['v3'] = f.readReals(real_char)

        CPs_raw = f.readReals(real_char)
        Utot_raw = f.readReals(real_char)
        CPs = np.reshape(CPs_raw, (3, nCPs), order='F')
        Utot = np.reshape(Utot_raw, (3, nCPs), order='F')

        acc = -1
        CPsTab = np.zeros((3, n1, n2, n3))
        UtotTab = np.zeros((3, n1, n2, n3))
        # Reshaping the nasty way (this is natural order).
        for i in range(0, n1):
            for j in range(0, n2):
                for k in range(0, n3):
                    acc = acc + 1
                    CPsTab[0:3, i, j, k] = CPs[0:3, acc]
                    UtotTab[0:3, i, j, k] = Utot[0:3, acc]

        self.data['CPs'] = CPs
        self.data['CPsTab'] = CPsTab
        self.data['Utot'] = Utot
        self.data['UtotTab'] = UtotTab
Exemple #2
0
    def _read(self):
        """ Read the file (overrided)
        """
        # initializng data dictionary
        self.data={}

        f = FortranFile(self.filename)
        # Default omnivor binary header
        self.data['MK']       = f.readInts('i')
        self.data['itime']    = f.readInts('i')
        self.data['version']  = f.readString()
        self.data['file_id']  = f.readInts('i')
        self.data['sversion'] = f.readString()
        # Velocity field
        self.data['stype']   = f.readString()
        self.data['is_grid'] = f.readInts('i')
        nCPs                 = f.readInts('i')
        self.data['nCPs']    = nCPs
        if self.data['MK'] == 8:
            real_char='d'
        else:
            real_char='f'
        if self.data['is_grid']:
            #print('File is a velocity grid file')
            n1                       = f.readInts('i')
            n2                       = f.readInts('i')
            n3                       = f.readInts('i')
            self.data['n1']          = n1
            self.data['n2']          = n2
            self.data['n3']          = n3
            self.data['is_straight'] = f.readInts('i')
            self.data['v1']          = f.readReals(real_char)
            self.data['v2']          = f.readReals(real_char)
            self.data['v3']          = f.readReals(real_char)

        CPs_raw  = f.readReals(real_char)
        Utot_raw = f.readReals(real_char)
        CPs      = np.reshape(CPs_raw,(3,nCPs),order  = 'F')
        Utot     = np.reshape(Utot_raw,(3,nCPs),order = 'F')

        acc=-1
        CPsTab  = np.zeros((3, n1,n2,n3))
        UtotTab = np.zeros((3, n1,n2,n3))
        # Reshaping the nasty way (this is natural order). 
        for i in range(0,n1):
            for j in range(0,n2):
                for k in range(0,n3):
                    acc=acc+1
                    CPsTab[0:3,i,j,k]  = CPs[0:3,acc]
                    UtotTab[0:3,i,j,k] = Utot[0:3,acc]

        self.data['CPs']  = CPs
        self.data['CPsTab']  = CPsTab
        self.data['Utot'] = Utot
        self.data['UtotTab'] = UtotTab
Exemple #3
0
    def _write(self):
        """ Write a file (overrided)
        """
        f = FortranFile(self.filename, mode='w')
        # Default omnivor binary header
        f.writeInts(self.data['MK'], 'i')
        f.writeInts(self.data['itime'], 'i')
        f.writeString(self.data['version'])
        f.writeInts(self.data['file_id'], 'i')
        f.writeString(self.data['sversion'])
        # Velocity field
        f.writeString(self.data['stype'])
        f.writeInts(self.data['is_grid'], 'i')
        f.writeInts(self.data['nCPs'], 'i')
        if self.data['MK'] == 8:
            real_char = 'd'
        else:
            real_char = 'f'
        if self.data['is_grid']:
            f.writeInts(self.data['n1'], 'i')
            f.writeInts(self.data['n2'], 'i')
            f.writeInts(self.data['n3'], 'i')
            f.writeInts(self.data['is_straight'], 'i')
            f.writeReals(self.data['v1'], real_char)
            f.writeReals(self.data['v2'], real_char)
            f.writeReals(self.data['v3'], real_char)

        CPs = self.data['CPs'].flatten(order='F')
        Utot = self.data['Utot'].flatten(order='F')
        f.writeReals(CPs, real_char)
        f.writeReals(Utot, real_char)
Exemple #4
0
    def _write(self):
        """ Write a file (overrided)
        """
        f = FortranFile(self.filename,mode='w')
        # Default omnivor binary header
        f.writeInts   ( self.data['MK']       , 'i' ) 
        f.writeInts   ( self.data['itime']    , 'i' ) 
        f.writeString ( self.data['version']  ) 
        f.writeInts   ( self.data['file_id']  , 'i' ) 
        f.writeString ( self.data['sversion'] ) 
        # Velocity field
        f.writeString ( self.data['stype']   ) 
        f.writeInts   ( self.data['is_grid'] , 'i' ) 
        f.writeInts   ( self.data['nCPs']    , 'i' ) 
        if self.data['MK'] == 8:
            real_char='d'
        else:
            real_char='f'
        if self.data['is_grid']:
            f.writeInts  ( self.data['n1']          , 'i'       ) 
            f.writeInts  ( self.data['n2']          , 'i'       ) 
            f.writeInts  ( self.data['n3']          , 'i'       ) 
            f.writeInts  ( self.data['is_straight'] , 'i'       ) 
            f.writeReals ( self.data['v1']          , real_char ) 
            f.writeReals ( self.data['v2']          , real_char ) 
            f.writeReals ( self.data['v3']          , real_char ) 

        CPs  = self.data['CPs'].flatten(order   = 'F')
        Utot = self.data['Utot'].flatten(order = 'F')
        f.writeReals(CPs,real_char)
        f.writeReals(Utot,real_char)