Changeset 18592


Ignore:
Timestamp:
10/08/14 09:13:19 (10 years ago)
Author:
bdef
Message:

BUG: fixing of python hydrology

Location:
issm/trunk-jpl/src/m
Files:
5 edited

Legend:

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

    r18586 r18592  
    125125                        return md
    126126
    127                 md = checkfield(md,'fieldname','hydrology.water_compressibility','>',0,'numel',1)
     127                md = checkfield(md,'fieldname','hydrology.water_compressibility','>',0,'numel',1)
    128128                md = checkfield(md,'fieldname','hydrology.isefficientlayer','numel',[1],'values',[0,1])
    129129                md = checkfield(md,'fieldname','hydrology.penalty_factor','>',0,'numel',1)
  • TabularUnified issm/trunk-jpl/src/m/classes/initialization.m

    r17720 r18592  
    9191                                if isa(md.hydrology,'hydrologydc'),
    9292                                        if md.hydrology.isefficientlayer==1,
    93                                                 md = checkfield(md,'fieldname', ...
    94                                                                                                                 'initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices 1]);
     93                                                md = checkfield(md,'fieldname','initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices 1]);
    9594                                                md = checkfield(md,'fieldname','initialization.epl_thickness','NaN',1,'size',[md.mesh.numberofvertices 1]);
    9695                                        end
  • TabularUnified issm/trunk-jpl/src/m/classes/initialization.py

    r17686 r18592  
    99        """
    1010        INITIALIZATION class definition
    11 
    12            Usage:
    13               initialization=initialization();
     11       
     12        Usage:
     13        initialization=initialization();
    1414        """
    1515
    1616        def __init__(self): # {{{
    17                
     17                                       
    1818                self.vx            = float('NaN')
    1919                self.vy            = float('NaN')
     
    2424                self.waterfraction = float('NaN')
    2525                self.watercolumn   = float('NaN')
    26                 self.sediment_head  = float('NaN')
     26                self.sediment_head = float('NaN')
     27                self.epl_head      = float('NaN')
     28                self.epl_thickness = float('NaN')
    2729
    2830                #set defaults
     
    3234        def __repr__(self): # {{{
    3335                string='   initial field values:'
    34 
    3536                string="%s\n%s"%(string,fielddisplay(self,'vx','x component of velocity [m/yr]'))
    3637                string="%s\n%s"%(string,fielddisplay(self,'vy','y component of velocity [m/yr]'))
     
    4243                string="%s\n%s"%(string,fielddisplay(self,'watercolumn','thickness of subglacial water [m]'))
    4344                string="%s\n%s"%(string,fielddisplay(self,'sediment_head','sediment water head of subglacial system [m]'))
     45                string="%s\n%s"%(string,fielddisplay(self,'epl_head','epl water head of subglacial system [m]'))
     46                string="%s\n%s"%(string,fielddisplay(self,'epl_thickness','thickness of the epl [m]'))
    4447
    4548                return string
     
    6972                                md = checkfield(md,'fieldname','initialization.vz','NaN',1,'size',[md.mesh.numberofvertices])
    7073                        md = checkfield(md,'fieldname','initialization.pressure','NaN',1,'size',[md.mesh.numberofvertices])
    71                 if (EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy):
     74                        if (EnthalpyAnalysisEnum() in analyses and md.thermal.isenthalpy):
    7275                        md = checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices])
    7376                        md = checkfield(md,'fieldname','initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices])
    7477                if HydrologyShreveAnalysisEnum() in analyses:
    7578                        md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'size',[md.mesh.numberofvertices])
     79                if HydrologyDCInefficientAnalysisEnum() in analyses:
     80                        if hasattr(md.hydrology,'hydrologydc'):
     81                                md = checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'size',[md.mesh.numberofvertices 1]);
     82                if HydrologyDCEfficientAnalysisEnum() in analyses:
     83                        if hasattr(md.hydrology,'hydrologydc'):
     84                                if md.hydrology.isefficientlayer==1,
     85                                        md = checkfield(md,'fieldname','initialization.epl_head','NaN',1,'size',[md.mesh.numberofvertices 1]);
     86                                        md = checkfield(md,'fieldname','initialization.epl_thickness','NaN',1,'size',[md.mesh.numberofvertices 1]);
     87                               
     88
     89
    7690                return md
    7791        # }}}
     
    88102                WriteData(fid,'data',self.watercolumn,'format','DoubleMat','mattype',1,'enum',WatercolumnEnum())
    89103                WriteData(fid,'data',self.sediment_head,'format','DoubleMat','mattype',1,'enum',SedimentHeadEnum())
     104                WriteData(fid,'data',self.epl_head,'format','DoubleMat','mattype',1,'enum',EplHeadEnum);
     105                WriteData(fid,'data',self.epl_thickness,'format','DoubleMat','mattype',1,'enum',HydrologydcEplThicknessEnum);
    90106
     107               
    91108                if md.thermal.isenthalpy:
    92109                        tpmp = md.materials.meltingpoint - md.materials.beta*md.initialization.pressure;
  • TabularUnified issm/trunk-jpl/src/m/classes/model.py

    r18578 r18592  
    667667                        md.hydrology.sediment_transmitivity=project3d(md,'vector',md.hydrology.sediment_transmitivity,'type','node','layer',1)
    668668                        md.hydrology.basal_moulin_input=project3d(md,'vector',md.hydrology.basal_moulin_input,'type','node','layer',1)
     669                if md.hydrology.isefficientlayer==1 :
     670                        md.hydrology.spcepl_head=project3d(md,'vector',md.hydrology.spcepl_head,'type','node','layer',1)
    669671
    670672                #connectivity
     
    760762                if not numpy.isnan(md.initialization.vel).all(): md.initialization.vel=DepthAverage(md,md.initialization.vel)
    761763                if not numpy.isnan(md.initialization.temperature).all(): md.initialization.temperature=DepthAverage(md,md.initialization.temperature)
     764                if not numpy.isnan(md.initialization.pressure).all(): md.initialization.pressure=project2d(md,md.initialization.pressure,1)
     765                if not numpy.isnan(md.initialization.sediment_head).all(): md.initialization.sediment_head=project2d(md,md.initialization.sediment_head,1)
     766                if not numpy.isnan(md.initialization.epl_head).all(): md.initialization.epl_head=project2d(md,md.initialization.epl_head,1)
     767                if not numpy.isnan(md.initialization.epl_thickness).all(): md.initialization.epl_thickness=project2d(md,md.initialization.epl_thickness,1)
    762768
    763769                #gia
     
    772778                        md.flowequation.borderHO=project2d(md,md.flowequation.borderHO,1)
    773779                        md.flowequation.borderFS=project2d(md,md.flowequation.borderFS,1)
     780
     781
     782                # Hydrologydc variables
     783                if hasattr(md.hydrology,'hydrologydc'):
     784                        md.hydrology.spcsediment_head=project2d(md,md.hydrology.spcsediment_head,1)
     785                        md.hydrology.mask_eplactive_node=project2d(md,md.hydrology.mask_eplactive_node,1)
     786                        md.hydrology.sediment_transmitivity=project2d(md,md.hydrology.sediment_transmitivity,1)
     787                        md.hydrology.basal_moulin_input=project2d(md,md.hydrology.basal_moulin_input,1)
     788                if md.hydrology.isefficientlayer == 1:
     789                        md.hydrology.spcepl_head=project2d(md,md.hydrology.spcepl_head,1)
    774790
    775791                #boundary conditions
  • TabularUnified issm/trunk-jpl/src/m/exp/expdisp.m

    r17379 r18592  
    4747        if domain(i).nods==1
    4848                plot(domain(i).x*unitmultiplier,domain(i).y*unitmultiplier,'o','MarkerEdgeColor','k','MarkerFaceColor','r','MarkerSize',10);
     49                text(domain(i).x*unitmultiplier,domain(i).y*unitmultiplier, ...
     50                                 domain(i).name,'BackgroundColor',[1. .0 .0]);
    4951        else
    5052                if (isnumeric(linestyle))
     
    5355                        plot(domain(i).x*unitmultiplier,domain(i).y*unitmultiplier,linestyle,'linewidth',linewidth);
    5456          end
     57                text(domain(i).x(1)*unitmultiplier,domain(i).y(1)*unitmultiplier,domain(i).name,'BackgroundColor',[.7 .9 .7]);
    5558  end
    5659end
Note: See TracChangeset for help on using the changeset viewer.