Changeset 17422


Ignore:
Timestamp:
03/12/14 11:20:26 (11 years ago)
Author:
bdef
Message:

NEW: Adding new stuff to deal with moulin input

Location:
issm/trunk-jpl
Files:
13 edited

Legend:

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

    r17375 r17422  
    8686        iomodel->FetchDataToInput(elements,MeshElementonbedEnum);
    8787        iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
     88        iomodel->FetchDataToInput(elements,HydrologydcBasalMoulinInputEnum);
    8889        iomodel->FetchDataToInput(elements,SedimentHeadEnum);
    8990        iomodel->FetchDataToInput(elements,HydrologydcSedimentTransmitivityEnum);
     
    278279        /*Intermediaries */
    279280        bool       active_element,isefficientlayer;
    280         IssmDouble dt,scalar,water_head;
     281        IssmDouble dt,scalar;
     282        IssmDouble moulin_load,water_head;
    281283        IssmDouble water_load,transfer;
    282284        IssmDouble Jdet;
     
    304306        Input* thickness_input   = basalelement->GetInput(ThicknessEnum);
    305307        Input* bed_input         = basalelement->GetInput(BedEnum);
    306         Input* water_input       = basalelement->GetInput(BasalforcingsMeltingRateEnum); _assert_(water_input);
    307         if(dt!= 0.){old_wh_input = basalelement->GetInput(SedimentHeadOldEnum);          _assert_(old_wh_input);}
     308        Input* water_input       = basalelement->GetInput(BasalforcingsMeltingRateEnum);    _assert_(water_input);
     309        Input* moulin_input      = basalelement->GetInput(HydrologydcBasalMoulinInputEnum); _assert_(moulin_input);
     310        if(dt!= 0.){old_wh_input = basalelement->GetInput(SedimentHeadOldEnum);             _assert_(old_wh_input);}
    308311
    309312        IssmDouble sediment_storing    = SedimentStoring(basalelement);
     
    324327                /*Loading term*/
    325328                water_input->GetInputValue(&water_load,gauss);
     329                moulin_input->GetInputValue(&moulin_load,gauss);
    326330       
    327331                scalar = Jdet*gauss->weight*(water_load);
     332                scalar = scalar + Jdet* moulin_load;
    328333                if(dt!=0.) scalar = scalar*dt;
    329334                for(int i=0;i<numnodes;i++){
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r17398 r17422  
    126126        HydrologydcPenaltyFactorEnum,
    127127        HydrologydcPenaltyLockEnum,
     128        HydrologydcBasalMoulinInputEnum,
    128129        HydrologyLayerEnum,
    129130        HydrologySedimentEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r17398 r17422  
    134134                case HydrologydcPenaltyFactorEnum : return "HydrologydcPenaltyFactor";
    135135                case HydrologydcPenaltyLockEnum : return "HydrologydcPenaltyLock";
     136                case HydrologydcBasalMoulinInputEnum : return "HydrologydcBasalMoulinInput";
    136137                case HydrologyLayerEnum : return "HydrologyLayer";
    137138                case HydrologySedimentEnum : return "HydrologySediment";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r17398 r17422  
    134134              else if (strcmp(name,"HydrologydcPenaltyFactor")==0) return HydrologydcPenaltyFactorEnum;
    135135              else if (strcmp(name,"HydrologydcPenaltyLock")==0) return HydrologydcPenaltyLockEnum;
     136              else if (strcmp(name,"HydrologydcBasalMoulinInput")==0) return HydrologydcBasalMoulinInputEnum;
    136137              else if (strcmp(name,"HydrologyLayer")==0) return HydrologyLayerEnum;
    137138              else if (strcmp(name,"HydrologySediment")==0) return HydrologySedimentEnum;
    138               else if (strcmp(name,"HydrologyEfficient")==0) return HydrologyEfficientEnum;
    139139         else stage=2;
    140140   }
    141141   if(stage==2){
    142               if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum;
     142              if (strcmp(name,"HydrologyEfficient")==0) return HydrologyEfficientEnum;
     143              else if (strcmp(name,"HydrologySedimentKmax")==0) return HydrologySedimentKmaxEnum;
    143144              else if (strcmp(name,"IndependentObject")==0) return IndependentObjectEnum;
    144145              else if (strcmp(name,"InversionControlParameters")==0) return InversionControlParametersEnum;
     
    259260              else if (strcmp(name,"MaxIterationConvergenceFlag")==0) return MaxIterationConvergenceFlagEnum;
    260261              else if (strcmp(name,"SteadystateMaxiter")==0) return SteadystateMaxiterEnum;
    261               else if (strcmp(name,"SteadystateNumRequestedOutputs")==0) return SteadystateNumRequestedOutputsEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum;
     265              if (strcmp(name,"SteadystateNumRequestedOutputs")==0) return SteadystateNumRequestedOutputsEnum;
     266              else if (strcmp(name,"SteadystateReltol")==0) return SteadystateReltolEnum;
    266267              else if (strcmp(name,"SteadystateRequestedOutputs")==0) return SteadystateRequestedOutputsEnum;
    267268              else if (strcmp(name,"Surface")==0) return SurfaceEnum;
     
    382383              else if (strcmp(name,"Nodes")==0) return NodesEnum;
    383384              else if (strcmp(name,"Contours")==0) return ContoursEnum;
    384               else if (strcmp(name,"Parameters")==0) return ParametersEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"Vertices")==0) return VerticesEnum;
     388              if (strcmp(name,"Parameters")==0) return ParametersEnum;
     389              else if (strcmp(name,"Vertices")==0) return VerticesEnum;
    389390              else if (strcmp(name,"Results")==0) return ResultsEnum;
    390391              else if (strcmp(name,"GenericParam")==0) return GenericParamEnum;
     
    505506              else if (strcmp(name,"VzSSA")==0) return VzSSAEnum;
    506507              else if (strcmp(name,"VzHO")==0) return VzHOEnum;
    507               else if (strcmp(name,"VzPicard")==0) return VzPicardEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"VzFS")==0) return VzFSEnum;
     511              if (strcmp(name,"VzPicard")==0) return VzPicardEnum;
     512              else if (strcmp(name,"VzFS")==0) return VzFSEnum;
    512513              else if (strcmp(name,"VxMesh")==0) return VxMeshEnum;
    513514              else if (strcmp(name,"VyMesh")==0) return VyMeshEnum;
     
    628629              else if (strcmp(name,"ToolkitsOptionsAnalyses")==0) return ToolkitsOptionsAnalysesEnum;
    629630              else if (strcmp(name,"ToolkitsOptionsStrings")==0) return ToolkitsOptionsStringsEnum;
    630               else if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
     634              if (strcmp(name,"QmuErrName")==0) return QmuErrNameEnum;
     635              else if (strcmp(name,"QmuInName")==0) return QmuInNameEnum;
    635636              else if (strcmp(name,"QmuOutName")==0) return QmuOutNameEnum;
    636637              else if (strcmp(name,"Regular")==0) return RegularEnum;
  • issm/trunk-jpl/src/m/classes/hydrologydc.m

    r17199 r17422  
    1616                transfer_flag            = 0;
    1717                leakage_factor           = 0;
     18                basal_moulin_input       = NaN;
    1819
    1920                spcsediment_head         = NaN;
     
    4243                end
    4344                % }}}
     45                function self = initialize(self,md) % {{{
     46                        if isnan(self.basal_moulin_input),
     47                                self.basal_moulin_input=zeros(md.mesh.numberofvertices,1);
     48                                disp('      no hydrology.basal_moulin_input specified: values set as zero');
     49                        end
     50
     51                end % }}}
    4452                % {{{ function obj = setdefaultparameters(obj)
    4553                function obj = setdefaultparameters(obj)
     
    8896                                md = checkfield(md,'fieldname','hydrology.leakage_factor','>',0,'numel',1);
    8997            end
     98                        md = checkfield(md,'fieldname','hydrology.basal_moulin_input','NaN',1,'forcing',1);
    9099
    91100                        md = checkfield(md,'fieldname','hydrology.spcsediment_head','forcing',1);
     
    129138                                fielddisplay(obj,'leakage_factor','user defined leakage factor [m]');
    130139            end
     140                        fielddisplay(obj,'basal_moulin_input','Figure out what it is');
    131141                        disp(sprintf('   - for the sediment layer'));
    132142                        fielddisplay(obj,'spcsediment_head','sediment water head constraints (NaN means no constraint) [m above MSL]');
     
    165175                                WriteData(fid,'object',obj,'fieldname','leakage_factor','format','Double');
    166176            end
     177                        WriteData(fid,'object',obj,'fieldname','basal_moulin_input','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1)
    167178
    168179                        WriteData(fid,'object',obj,'fieldname','spcsediment_head','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);
  • issm/trunk-jpl/src/m/classes/model.m

    r17367 r17422  
    727727                        md.stressbalance.referential=project3d(md,'vector',md.stressbalance.referential,'type','node');
    728728                        md.stressbalance.loadingforce=project3d(md,'vector',md.stressbalance.loadingforce,'type','node');
     729
     730                        % Hydrologydc variables
    729731                        if isa(md.hydrology,'hydrologydc');
    730732                                md.hydrology.spcsediment_head=project3d(md,'vector',md.hydrology.spcsediment_head,'type','node','layer',1);
     
    732734                                md.hydrology.mask_eplactive_node=project3d(md,'vector',md.hydrology.mask_eplactive_node,'type','node','layer',1);
    733735                                md.hydrology.sediment_transmitivity=project3d(md,'vector',md.hydrology.sediment_transmitivity,'type','node','layer',1);
     736                                md.hydrology.basal_moulin_input=project3d(md,'vector',md.hydrology.basal_moulin_input,'type','node','layer',1);
    734737            end
    735738
  • issm/trunk-jpl/src/m/contrib/paraview/exportVTK.m

    r17379 r17422  
    6060        timestep=step;
    6161
    62         FID = fopen(strcat(path,filesep,name,filesep,name,'.vtk',int2str(timestep),'.vtk'),'w+');
    63         fprintf(FID,'# vtk DataFile Version 2.0 \n');
    64         fprintf(FID,'Data for run %s \n',model.miscellaneous.name);
    65         fprintf(FID,'ASCII \n');
    66         fprintf(FID,'DATASET UNSTRUCTURED_GRID \n');
     62        fid = fopen(strcat(path,filesep,name,filesep,name,'.vtk',int2str(timestep),'.vtk'),'w+');
     63        fprintf(fid,'# vtk DataFile Version 2.0 \n');
     64        fprintf(fid,'Data for run %s \n',model.miscellaneous.name);
     65        fprintf(fid,'ASCII \n');
     66        fprintf(fid,'DATASET UNSTRUCTURED_GRID \n');
    6767       
    68         fprintf(FID,'POINTS %d float\n',num_of_points);
     68        fprintf(fid,'POINTS %d float\n',num_of_points);
    6969        if(dim==3);
    7070                s='%f %f %f \n';
     
    7373  end
    7474        P=[points zeros(num_of_points,3-dim)];
    75         fprintf(FID,s,P');
     75        fprintf(fid,s,P');
    7676       
    77         fprintf(FID,'CELLS %d %d\n',num_of_elt,num_of_elt*(point_per_elt+1));
     77        fprintf(fid,'CELLS %d %d\n',num_of_elt,num_of_elt*(point_per_elt+1));
    7878        s='%d';
    7979        for j=1:point_per_elt
     
    8181  end
    8282        s=cell2mat(horzcat(s,{'\n'}));
    83         fprintf(FID,s,[(point_per_elt)*ones(num_of_elt,1) model.mesh.elements-1]');
     83        fprintf(fid,s,[(point_per_elt)*ones(num_of_elt,1) model.mesh.elements-1]');
    8484       
    85         fprintf(FID,'CELL_TYPES %d\n',num_of_elt);
     85        fprintf(fid,'CELL_TYPES %d\n',num_of_elt);
    8686        s='%d\n';
    87         fprintf(FID,s,celltype*ones(num_of_elt,1));
    88         fprintf(FID,'POINT_DATA %s \n',num2str(num_of_points));
     87        fprintf(fid,s,celltype*ones(num_of_elt,1));
     88        fprintf(fid,'POINT_DATA %s \n',num2str(num_of_points));
    8989
    9090        %loop over the different solution structures
     
    112112                                        smallval=(abs(sol_struct{j}(timestep).(fieldnames{k}))<1.0e-20);
    113113                                        sol_struct{j}(timestep).(fieldnames{k})(smallval)=0.0;
    114                                         fprintf(FID,'SCALARS %s float 1 \n',fieldnames{k});
    115                                         fprintf(FID,'LOOKUP_TABLE default\n');
     114                                        fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
     115                                        fprintf(fid,'LOOKUP_TABLE default\n');
    116116                                        s='%e\n';
    117                                         fprintf(FID,s,sol_struct{j}(timestep).(fieldnames{k}));
     117                                        fprintf(fid,s,sol_struct{j}(timestep).(fieldnames{k}));
    118118                    end         
    119119            end
     
    134134                                smallval=(abs(res_struct.(fieldnames{k}))<1.0e-20);
    135135                                res_struct.(fieldnames{k})(smallval)=0.0;
    136                                 fprintf(FID,'SCALARS %s float 1 \n',fieldnames{k});
    137                                 fprintf(FID,'LOOKUP_TABLE default\n');
     136                                fprintf(fid,'SCALARS %s float 1 \n',fieldnames{k});
     137                                fprintf(fid,'LOOKUP_TABLE default\n');
    138138                                s='%e\n';
    139                                 fprintf(FID,s,res_struct.(fieldnames{k}));
     139                                fprintf(fid,s,res_struct.(fieldnames{k}));
    140140            end         
    141141                end
    142142        end
    143         fclose(FID);
     143        fclose(fid);
    144144end
  • issm/trunk-jpl/src/m/enum/EnumDefinitions.py

    r17399 r17422  
    126126def HydrologydcPenaltyFactorEnum(): return StringToEnum("HydrologydcPenaltyFactor")[0]
    127127def HydrologydcPenaltyLockEnum(): return StringToEnum("HydrologydcPenaltyLock")[0]
     128def HydrologydcBasalMoulinInputEnum(): return StringToEnum("HydrologydcBasalMoulinInput")[0]
    128129def HydrologyLayerEnum(): return StringToEnum("HydrologyLayer")[0]
    129130def HydrologySedimentEnum(): return StringToEnum("HydrologySediment")[0]
  • issm/trunk-jpl/test/NightlyRun/test3300.m

    r17376 r17422  
    55md.cluster=generic('name',oshostname(),'np',1);
    66md.hydrology=(hydrologydc);
     7md.hydrology=initialize(md.hydrology,md);
    78md.hydrology.isefficientlayer=1;
    89md.hydrology.sedimentlimit_flag=1;
  • issm/trunk-jpl/test/NightlyRun/test332.m

    r17059 r17422  
    55md.cluster=generic('name',oshostname(),'np',1);
    66md.hydrology=(hydrologydc);
     7md.hydrology=initialize(md.hydrology,md);
    78md.hydrology.isefficientlayer=0;
    89md.hydrology.sedimentlimit_flag=1;
  • issm/trunk-jpl/test/NightlyRun/test333.m

    r17218 r17422  
    55md.cluster=generic('name',oshostname(),'np',1);
    66md.hydrology=(hydrologydc);
     7md.hydrology=initialize(md.hydrology,md);
    78md.hydrology.isefficientlayer=1;
    89md.hydrology.sedimentlimit_flag=1;
  • issm/trunk-jpl/test/NightlyRun/test334.m

    r17059 r17422  
    55md.cluster=generic('name',oshostname(),'np',1);
    66md.hydrology=(hydrologydc);
     7md.hydrology=initialize(md.hydrology,md);
    78md.hydrology.isefficientlayer=0;
    89md.hydrology.sedimentlimit_flag=1;
  • issm/trunk-jpl/test/NightlyRun/test335.m

    r17060 r17422  
    55md.cluster=generic('name',oshostname(),'np',1);
    66md.hydrology=(hydrologydc);
     7md.hydrology=initialize(md.hydrology,md);
    78md.hydrology.isefficientlayer=1;
    89md.hydrology.sedimentlimit_flag=1;
Note: See TracChangeset for help on using the changeset viewer.