Changeset 17624


Ignore:
Timestamp:
04/01/14 20:09:03 (11 years ago)
Author:
cborstad
Message:

BUG: fixed problem for vector vs. array in damage calcs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/mech/damagefrominversion.py

    r17622 r17624  
    2424        if any(md.flowequation.element_equation!=2):
    2525                raise StandardError('Warning: the model has some non-SSA elements.  These will be treated like SSA elements')
     26        if npy.ndim(md.results.StressbalanceSolution.MaterialsRheologyBbar)==2:
     27                Bi=md.results.StressbalanceSolution.MaterialsRheologyBbar.reshape(-1,)
     28        else:
     29                Bi=md.results.StressbalanceSolution.MaterialsRheologyBbar
     30        if npy.ndim(md.materials.rheology_B)==2:
     31                BT=md.materials.rheology_B.reshape(-1,)
     32        else:
     33                BT=md.materials.rheology_B
    2634
    27         damage=npy.zeros((md.mesh.numberofvertices,))
     35        damage=npy.zeros_like(Bi)
     36
    2837        # Damage where Bi softer than B(T)
    29         pos=npy.nonzero(md.results.StressbalanceSolution.MaterialsRheologyBbar<md.materials.rheology_B)
    30         damage[pos]=1.-md.results.StressbalanceSolution.MaterialsRheologyBbar[pos]/md.materials.rheology_B[pos]
     38        pos=npy.nonzero(Bi<BT)[0]
     39        damage[pos]=1.-Bi[pos]/BT[pos]
     40       
     41        pos=npy.nonzero(damage<0)
     42        damage[pos]=0
    3143
    3244        return damage
Note: See TracChangeset for help on using the changeset viewer.