Changeset 24132


Ignore:
Timestamp:
09/03/19 17:41:22 (6 years ago)
Author:
felicity
Message:

NEW: allow channel area initialization in GlaDS

Location:
issm/trunk-jpl/src
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified issm/trunk-jpl/src/c/analyses/HydrologyGlaDSAnalysis.cpp

    r24080 r24132  
    2929
    3030        /*Add channels?*/
     31        int K,L;
    3132        bool ischannels;
     33        IssmDouble* channelarea;
    3234        iomodel->FindConstant(&ischannels,"md.hydrology.ischannels");
     35        iomodel->FetchData(&channelarea,&K,&L,"md.initialization.channelarea");
    3336        if(ischannels){
    3437                /*Get faces (edges in 2d)*/
     
    4245                        if(!iomodel->my_elements[element]) continue;
    4346
    44                         /* Add load */
    45                         loads->AddObject(new Channel(i+1,i,i,iomodel));
     47                        /*Add channelarea from initialization if exists*/
     48                        if(K!=0 && K!=iomodel->numberoffaces){
     49                                _error_("Unknown dimension for channel area initialization.");
     50                        }
     51                        if(K==0){
     52                                loads->AddObject(new Channel(i+1,0.,i,iomodel));
     53                        }
     54                        else{
     55                                loads->AddObject(new Channel(i+1,channelarea[i],i,iomodel));
     56                        }
     57                        iomodel->DeleteData(1,"md.initialization.channelarea");
    4658                }
    4759        }
  • TabularUnified issm/trunk-jpl/src/c/classes/Loads/Channel.cpp

    r24089 r24132  
    3939}
    4040/*}}}*/
    41 Channel::Channel(int channel_id,int i,int index,IoModel* iomodel){/*{{{*/
     41Channel::Channel(int channel_id,IssmDouble channelarea,int index,IoModel* iomodel){/*{{{*/
     42//Channel::Channel(int channel_id,int i,int index,IoModel* iomodel)
    4243
    4344        this->id=channel_id;
     
    4849
    4950        /*Set channel cross section to 0*/
    50         this->S    = 0.;
    51         this->Sold = 0.;
     51        //this->S    = 0.;
     52        //this->Sold = 0.;
     53        this->S    = channelarea;
     54        this->Sold = channelarea;
    5255
    5356        /*Get edge info*/
  • TabularUnified issm/trunk-jpl/src/c/classes/Loads/Channel.h

    r24070 r24132  
    4040                /*Channel constructors,destructors {{{*/
    4141                Channel();
    42                 Channel(int numericalflux_id,int i,int index,IoModel* iomodel);
     42                Channel(int numericalflux_id,IssmDouble channelarea,int index,IoModel* iomodel);
     43                //Channel(int numericalflux_id,int i,int index,IoModel* iomodel);
    4344                ~Channel();
    4445                /*}}}*/
  • TabularUnified issm/trunk-jpl/src/m/classes/initialization.m

    r23944 r24132  
    1919                watercolumn         = NaN;
    2020                hydraulic_potential = NaN;
     21                channelarea         = NaN;
    2122        end
    2223        methods
     
    9495                                        md = checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
    9596                                        md = checkfield(md,'fieldname','initialization.hydraulic_potential','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices 1]);
     97                                        md = checkfield(md,'fieldname','initialization.channelarea','NaN',1,'Inf',1,'>=',0,'size',[md.mesh.numberofedges 1]);
    9698                                end
    9799                        end
     
    126128                        fielddisplay(self,'watercolumn','subglacial water sheet thickness (for Shreve and GlaDS) [m]');
    127129                        fielddisplay(self,'hydraulic_potential','Hydraulic potential (for GlaDS) [Pa]');
     130                        fielddisplay(self,'channelarea','subglacial water channel area (for GlaDS) [m2]');
    128131
    129132                end % }}}
     
    142145                        WriteData(fid,prefix,'object',self,'fieldname','epl_thickness','format','DoubleMat','mattype',1);
    143146                        WriteData(fid,prefix,'object',self,'fieldname','watercolumn','format','DoubleMat','mattype',1);
     147                        WriteData(fid,prefix,'object',self,'fieldname','channelarea','format','DoubleMat','mattype',1);
    144148                        WriteData(fid,prefix,'object',self,'fieldname','hydraulic_potential','format','DoubleMat','mattype',1);
    145149
     
    172176                        writejs1Darray(fid,[modelname '.initialization.watercolumn'],self.watercolumn);
    173177                        writejs1Darray(fid,[modelname '.initialization.hydraulic_potential'],self.hydraulic_potential);
     178                        writejs1Darray(fid,[modelname '.initialization.channel'],self.channelarea);
    174179
    175180                end % }}}
Note: See TracChangeset for help on using the changeset viewer.