Changeset 17780


Ignore:
Timestamp:
04/18/14 18:16:57 (11 years ago)
Author:
Mathieu Morlighem
Message:

BUG: fixed matrix renumbering

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/inversion.py

    r17779 r17780  
    173173                num_cost_functions=numpy.size(self.cost_functions)
    174174                data=copy.deepcopy(self.cost_functions)
    175                 data=[SurfaceAbsVelMisfitEnum()        if x==101 else x for x in self.cost_functions]
    176                 data=[SurfaceRelVelMisfitEnum()        if x==102 else x for x in self.cost_functions]
    177                 data=[SurfaceLogVelMisfitEnum()        if x==103 else x for x in self.cost_functions]
    178                 data=[SurfaceLogVxVyMisfitEnum()       if x==104 else x for x in self.cost_functions]
    179                 data=[SurfaceAverageVelMisfitEnum()    if x==105 else x for x in self.cost_functions]
    180                 data=[ThicknessAbsMisfitEnum()         if x==201 else x for x in self.cost_functions]
    181                 data=[DragCoefficientAbsGradientEnum() if x==501 else x for x in self.cost_functions]
    182                 data=[RheologyBbarAbsGradientEnum()    if x==502 else x for x in self.cost_functions]
    183                 data=[ThicknessAbsGradientEnum()       if x==503 else x for x in self.cost_functions]
    184                 data=[ThicknessAlongGradientEnum()     if x==504 else x for x in self.cost_functions]
    185                 data=[ThicknessAcrossGradientEnum()    if x==505 else x for x in self.cost_functions]
     175                pos=[i for i,x in enumerate(self.cost_functions) if x==101];
     176                for i in pos: data[i]=SurfaceAbsVelMisfitEnum()       
     177                pos=[i for i,x in enumerate(self.cost_functions) if x==102];
     178                for i in pos: data[i]=SurfaceRelVelMisfitEnum()       
     179                pos=[i for i,x in enumerate(self.cost_functions) if x==103];
     180                for i in pos: data[i]=SurfaceLogVelMisfitEnum()       
     181                pos=[i for i,x in enumerate(self.cost_functions) if x==104];
     182                for i in pos: data[i]=SurfaceLogVxVyMisfitEnum()       
     183                pos=[i for i,x in enumerate(self.cost_functions) if x==105];
     184                for i in pos: data[i]=SurfaceAverageVelMisfitEnum()   
     185                pos=[i for i,x in enumerate(self.cost_functions) if x==201];
     186                for i in pos: data[i]=ThicknessAbsMisfitEnum()         
     187                pos=[i for i,x in enumerate(self.cost_functions) if x==501];
     188                for i in pos: data[i]=DragCoefficientAbsGradientEnum()
     189                pos=[i for i,x in enumerate(self.cost_functions) if x==502];
     190                for i in pos: data[i]=RheologyBbarAbsGradientEnum()   
     191                pos=[i for i,x in enumerate(self.cost_functions) if x==503];
     192                for i in pos: data[i]=ThicknessAbsGradientEnum()       
     193                pos=[i for i,x in enumerate(self.cost_functions) if x==504];
     194                for i in pos: data[i]=ThicknessAlongGradientEnum()     
     195                pos=[i for i,x in enumerate(self.cost_functions) if x==505];
     196                for i in pos: data[i]=ThicknessAcrossGradientEnum()   
    186197                WriteData(fid,'data',numpy.array(data).reshape(1,-1),'enum',InversionCostFunctionsEnum(),'format','DoubleMat','mattype',3)
    187198                WriteData(fid,'data',num_cost_functions,'enum',InversionNumCostFunctionsEnum(),'format','Integer')
Note: See TracChangeset for help on using the changeset viewer.