Changeset 23697


Ignore:
Timestamp:
02/06/19 03:09:00 (6 years ago)
Author:
rueckamp
Message:

CHG: added different computations for the Effective Conductivity.

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

Legend:

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

    r23645 r23697  
    11721172        /*Get pressures and enthalpies on vertices*/
    11731173        int         numvertices = element->GetNumberOfVertices();
     1174        int         effectiveconductivity_averaging;
    11741175        IssmDouble* pressures   = xNew<IssmDouble>(numvertices);
    11751176        IssmDouble* enthalpies  = xNew<IssmDouble>(numvertices);
     
    11781179        element->GetInputListOnVertices(pressures,PressureEnum);
    11791180        element->GetInputListOnVertices(enthalpies,enthalpy_enum);
     1181        element->FindParam(&effectiveconductivity_averaging,MaterialsEffectiveconductivityAveragingEnum);
     1182
    11801183        for(iv=0;iv<numvertices;iv++){
    11811184                PIE[iv]   = PureIceEnthalpy(element,pressures[iv]);
     
    11951198        }
    11961199        else{
    1197                 /* return harmonic mean of thermal conductivities, weighted by fraction of cold/temperate ice,
    1198                         cf Patankar 1980, pp44 */
    11991200                kappa_c = EnthalpyDiffusionParameter(element,PureIceEnthalpy(element,0.)-1.,0.);
    12001201                kappa_t = EnthalpyDiffusionParameter(element,PureIceEnthalpy(element,0.)+1.,0.);
     1202
    12011203                Hc=0.; Ht=0.;
    12021204                for(iv=0; iv<numvertices;iv++){
     
    12101212                _assert_(lambda>=0.);
    12111213                _assert_(lambda<=1.);
    1212                 kappa  = kappa_c*kappa_t/(lambda*kappa_t+(1.-lambda)*kappa_c); // ==(lambda/kappa_c + (1.-lambda)/kappa_t)^-1
     1214
     1215                if(effectiveconductivity_averaging==0){
     1216                        /* return arithmetic mean (volume average) of thermal conductivities, weighted by fraction of cold/temperate ice */
     1217                        kappa=kappa_c*lambda+(1.-lambda)*kappa_t;
     1218                }
     1219                else if(effectiveconductivity_averaging==1){
     1220                        /* return harmonic mean (reciprocal avarage) of thermal conductivities, weighted by fraction of cold/temperate ice, cf Patankar 1980, pp44 */
     1221                        kappa=kappa_c*kappa_t/(lambda*kappa_t+(1.-lambda)*kappa_c);
     1222                }
     1223                else if(effectiveconductivity_averaging==2){
     1224                        /* return geometric mean (power law) of thermal conductivities, weighted by fraction of cold/temperate ice */
     1225                        kappa=pow(kappa_c,lambda)*pow(kappa_t,1.-lambda);
     1226                }
     1227                else{
     1228                        _error_("effectiveconductivity_averaging not supported yet");
     1229                }
    12131230        }       
    12141231
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r23657 r23697  
    288288                        parameters->AddObject(iomodel->CopyConstantObject("md.materials.thermalconductivity",MaterialsThermalconductivityEnum));
    289289                        parameters->AddObject(iomodel->CopyConstantObject("md.materials.temperateiceconductivity",MaterialsTemperateiceconductivityEnum));
     290                        parameters->AddObject(iomodel->CopyConstantObject("md.materials.effectiveconductivity_averaging",MaterialsEffectiveconductivityAveragingEnum));
    290291                        parameters->AddObject(iomodel->CopyConstantObject("md.materials.latentheat",MaterialsLatentheatEnum));
    291292                        parameters->AddObject(iomodel->CopyConstantObject("md.materials.beta",MaterialsBetaEnum));
     
    325326                                                parameters->AddObject(iomodel->CopyConstantObject("md.materials.thermalconductivity",MaterialsThermalconductivityEnum));
    326327                                                parameters->AddObject(iomodel->CopyConstantObject("md.materials.temperateiceconductivity",MaterialsTemperateiceconductivityEnum));
     328                                                parameters->AddObject(iomodel->CopyConstantObject("md.materials.effectiveconductivity_averaging",MaterialsEffectiveconductivityAveragingEnum));
    327329                                                parameters->AddObject(iomodel->CopyConstantObject("md.materials.latentheat",MaterialsLatentheatEnum));
    328330                                                parameters->AddObject(iomodel->CopyConstantObject("md.materials.beta",MaterialsBetaEnum));
  • issm/trunk-jpl/src/c/shared/Enum/EnumDefinitions.h

    r23657 r23697  
    240240        MaterialsRhoSeawaterEnum,
    241241        MaterialsTemperateiceconductivityEnum,
     242        MaterialsEffectiveconductivityAveragingEnum,
    242243        MaterialsThermalconductivityEnum,
    243244        MaterialsThermalExchangeVelocityEnum,
  • issm/trunk-jpl/src/c/shared/Enum/EnumToStringx.cpp

    r23657 r23697  
    248248                case MaterialsRhoSeawaterEnum : return "MaterialsRhoSeawater";
    249249                case MaterialsTemperateiceconductivityEnum : return "MaterialsTemperateiceconductivity";
     250                case MaterialsEffectiveconductivityAveragingEnum : return "MaterialsEffectiveconductivityAveraging";
    250251                case MaterialsThermalconductivityEnum : return "MaterialsThermalconductivity";
    251252                case MaterialsThermalExchangeVelocityEnum : return "MaterialsThermalExchangeVelocity";
  • issm/trunk-jpl/src/c/shared/Enum/StringToEnumx.cpp

    r23657 r23697  
    251251              else if (strcmp(name,"MaterialsRhoSeawater")==0) return MaterialsRhoSeawaterEnum;
    252252              else if (strcmp(name,"MaterialsTemperateiceconductivity")==0) return MaterialsTemperateiceconductivityEnum;
     253              else if (strcmp(name,"MaterialsEffectiveconductivityAveraging")==0) return MaterialsEffectiveconductivityAveragingEnum;
    253254              else if (strcmp(name,"MaterialsThermalconductivity")==0) return MaterialsThermalconductivityEnum;
    254255              else if (strcmp(name,"MaterialsThermalExchangeVelocity")==0) return MaterialsThermalExchangeVelocityEnum;
     
    259260              else if (strcmp(name,"MeshNumberofvertices")==0) return MeshNumberofverticesEnum;
    260261              else if (strcmp(name,"ModelId")==0) return ModelIdEnum;
    261               else if (strcmp(name,"Nodes")==0) return NodesEnum;
    262262         else stage=3;
    263263   }
    264264   if(stage==3){
    265               if (strcmp(name,"NumModels")==0) return NumModelsEnum;
     265              if (strcmp(name,"Nodes")==0) return NodesEnum;
     266              else if (strcmp(name,"NumModels")==0) return NumModelsEnum;
    266267              else if (strcmp(name,"OceanGridNx")==0) return OceanGridNxEnum;
    267268              else if (strcmp(name,"OceanGridNy")==0) return OceanGridNyEnum;
     
    382383              else if (strcmp(name,"StressbalanceMaxiter")==0) return StressbalanceMaxiterEnum;
    383384              else if (strcmp(name,"StressbalanceNumRequestedOutputs")==0) return StressbalanceNumRequestedOutputsEnum;
    384               else if (strcmp(name,"StressbalancePenaltyFactor")==0) return StressbalancePenaltyFactorEnum;
    385385         else stage=4;
    386386   }
    387387   if(stage==4){
    388               if (strcmp(name,"StressbalanceReltol")==0) return StressbalanceReltolEnum;
     388              if (strcmp(name,"StressbalancePenaltyFactor")==0) return StressbalancePenaltyFactorEnum;
     389              else if (strcmp(name,"StressbalanceReltol")==0) return StressbalanceReltolEnum;
    389390              else if (strcmp(name,"StressbalanceRequestedOutputs")==0) return StressbalanceRequestedOutputsEnum;
    390391              else if (strcmp(name,"StressbalanceRestol")==0) return StressbalanceRestolEnum;
     
    505506              else if (strcmp(name,"FrictionAs")==0) return FrictionAsEnum;
    506507              else if (strcmp(name,"FrictionC")==0) return FrictionCEnum;
    507               else if (strcmp(name,"FrictionCoefficientcoulomb")==0) return FrictionCoefficientcoulombEnum;
    508508         else stage=5;
    509509   }
    510510   if(stage==5){
    511               if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum;
     511              if (strcmp(name,"FrictionCoefficientcoulomb")==0) return FrictionCoefficientcoulombEnum;
     512              else if (strcmp(name,"FrictionCoefficient")==0) return FrictionCoefficientEnum;
    512513              else if (strcmp(name,"FrictionEffectivePressure")==0) return FrictionEffectivePressureEnum;
    513514              else if (strcmp(name,"FrictionM")==0) return FrictionMEnum;
     
    628629              else if (strcmp(name,"SmbD")==0) return SmbDEnum;
    629630              else if (strcmp(name,"SmbDini")==0) return SmbDiniEnum;
    630               else if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
    631631         else stage=6;
    632632   }
    633633   if(stage==6){
    634               if (strcmp(name,"SmbDswrf")==0) return SmbDswrfEnum;
     634              if (strcmp(name,"SmbDlwrf")==0) return SmbDlwrfEnum;
     635              else if (strcmp(name,"SmbDswrf")==0) return SmbDswrfEnum;
    635636              else if (strcmp(name,"SmbDz")==0) return SmbDzEnum;
    636637              else if (strcmp(name,"SmbDzini")==0) return SmbDziniEnum;
     
    751752              else if (strcmp(name,"AdjointBalancethicknessAnalysis")==0) return AdjointBalancethicknessAnalysisEnum;
    752753              else if (strcmp(name,"AdjointHorizAnalysis")==0) return AdjointHorizAnalysisEnum;
    753               else if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
    754754         else stage=7;
    755755   }
    756756   if(stage==7){
    757               if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
     757              if (strcmp(name,"Adjointp")==0) return AdjointpEnum;
     758              else if (strcmp(name,"AggressiveMigration")==0) return AggressiveMigrationEnum;
    758759              else if (strcmp(name,"AmrBamg")==0) return AmrBamgEnum;
    759760              else if (strcmp(name,"AmrNeopz")==0) return AmrNeopzEnum;
     
    874875              else if (strcmp(name,"GroundedArea")==0) return GroundedAreaEnum;
    875876              else if (strcmp(name,"GroundedAreaScaled")==0) return GroundedAreaScaledEnum;
    876               else if (strcmp(name,"GroundingOnly")==0) return GroundingOnlyEnum;
    877877         else stage=8;
    878878   }
    879879   if(stage==8){
    880               if (strcmp(name,"Gset")==0) return GsetEnum;
     880              if (strcmp(name,"GroundingOnly")==0) return GroundingOnlyEnum;
     881              else if (strcmp(name,"Gset")==0) return GsetEnum;
    881882              else if (strcmp(name,"Gsl")==0) return GslEnum;
    882883              else if (strcmp(name,"HOApproximation")==0) return HOApproximationEnum;
     
    997998              else if (strcmp(name,"Outputdefinition13")==0) return Outputdefinition13Enum;
    998999              else if (strcmp(name,"Outputdefinition14")==0) return Outputdefinition14Enum;
    999               else if (strcmp(name,"Outputdefinition15")==0) return Outputdefinition15Enum;
    10001000         else stage=9;
    10011001   }
    10021002   if(stage==9){
    1003               if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum;
     1003              if (strcmp(name,"Outputdefinition15")==0) return Outputdefinition15Enum;
     1004              else if (strcmp(name,"Outputdefinition16")==0) return Outputdefinition16Enum;
    10041005              else if (strcmp(name,"Outputdefinition17")==0) return Outputdefinition17Enum;
    10051006              else if (strcmp(name,"Outputdefinition18")==0) return Outputdefinition18Enum;
     
    11201121              else if (strcmp(name,"Regular")==0) return RegularEnum;
    11211122              else if (strcmp(name,"Riftfront")==0) return RiftfrontEnum;
    1122               else if (strcmp(name,"Scaled")==0) return ScaledEnum;
    11231123         else stage=10;
    11241124   }
    11251125   if(stage==10){
    1126               if (strcmp(name,"SealevelAbsolute")==0) return SealevelAbsoluteEnum;
     1126              if (strcmp(name,"Scaled")==0) return ScaledEnum;
     1127              else if (strcmp(name,"SealevelAbsolute")==0) return SealevelAbsoluteEnum;
    11271128              else if (strcmp(name,"SealevelEmotion")==0) return SealevelEmotionEnum;
    11281129              else if (strcmp(name,"SealevelInertiaTensorXZ")==0) return SealevelInertiaTensorXZEnum;
  • issm/trunk-jpl/src/m/classes/matdamageice.m

    r23005 r23697  
    1414                thermalconductivity        = 0.;
    1515                temperateiceconductivity   = 0.;
     16                effectiveconductivity_averaging = 0.;
    1617                meltingpoint               = 0.;
    1718                beta                       = 0.;
     
    8182                        self.temperateiceconductivity=.24;
    8283
     84                        %computation of effective conductivity
     85                        self.effectiveconductivity_averaging=2;
     86           
    8387                        %the melting point of ice at 1 atmosphere of pressure in K
    8488                        self.meltingpoint=273.15;
     
    115119                        md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]);
    116120                        md = checkfield(md,'fieldname','materials.rheology_law','values',{'None' 'BuddJacka' 'Cuffey' 'CuffeyTemperate' 'Paterson' 'Arrhenius' 'LliboutryDuval'});
    117 
     121                        md = checkfield(md,'fieldname','materials.effectiveconductivity_averaging','numel',[1],'values',[0 1 2]);
     122           
    118123                        if ismember('GiaAnalysis',analyses),
    119124                                md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',1);
     
    138143                        fielddisplay(self,'thermalconductivity',['ice thermal conductivity [W/m/K]']);
    139144                        fielddisplay(self,'temperateiceconductivity','temperate ice thermal conductivity [W/m/K]');
     145                        fielddisplay(self,'effectiveconductivity_averaging','computation of effective conductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)');
    140146                        fielddisplay(self,'meltingpoint','melting point of ice at 1atm in K');
    141147                        fielddisplay(self,'latentheat','latent heat of fusion [J/kg]');
     
    162168                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double');
    163169                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double');
     170                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer');
    164171                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double');
    165172                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double');
  • issm/trunk-jpl/src/m/classes/matdamageice.py

    r23005 r23697  
    2121                self.thermalconductivity       = 0.
    2222                self.temperateiceconductivity  = 0.
     23                self.effectiveconductivity_averaging = 0.
    2324                self.meltingpoint              = 0.
    2425                self.beta                      = 0.
     
    5152                string="%s\n%s"%(string,fielddisplay(self,"thermalconductivity","ice thermal conductivity [W/m/K]"))
    5253                string="%s\n%s"%(string,fielddisplay(self,"temperateiceconductivity","temperate ice thermal conductivity [W/m/K]"))
     54                string="%s\n%s"%(string,fielddisplay(self,"effectiveconductivity_averaging","computation of effective conductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)")
    5355                string="%s\n%s"%(string,fielddisplay(self,"meltingpoint","melting point of ice at 1atm in K"))
    5456                string="%s\n%s"%(string,fielddisplay(self,"latentheat","latent heat of fusion [J/m^3]"))
     
    98100                self.temperateiceconductivity=0.24
    99101
     102                #computation of effective conductivity
     103                self.effectiveconductivity_averaging=2
     104       
    100105                #the melting point of ice at 1 atmosphere of pressure in K
    101106                self.meltingpoint=273.15
     
    139144                md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',[1]);
    140145                md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',[1]);
     146                md = checkfield(md,'fieldname','materials.effectiveconductivity_averaging','numel',[1],'values',[0 1 2])
    141147
    142148                return md
     
    152158                WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double')
    153159                WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double')
     160                WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer');
    154161                WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double')
    155162                WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double')
  • issm/trunk-jpl/src/m/classes/matenhancedice.m

    r23005 r23697  
    1414                thermalconductivity        = 0.;
    1515                temperateiceconductivity   = 0.;
     16                effectiveconductivity_averaging = 0.;
    1617                meltingpoint               = 0.;
    1718                beta                       = 0.;
     
    8384                        self.temperateiceconductivity=.24;
    8485
     86                        %computation of effective conductivity
     87                        self.effectiveconductivity_averaging=2;
     88           
    8589                        %the melting point of ice at 1 atmosphere of pressure in K
    8690                        self.meltingpoint=273.15;
     
    118122                        md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]);
    119123                        md = checkfield(md,'fieldname','materials.rheology_law','values',{'None' 'BuddJacka' 'Cuffey' 'CuffeyTemperate' 'Paterson' 'Arrhenius' 'LliboutryDuval'});
    120 
     124                        md = checkfield(md,'fieldname','materials.effectiveconductivity_averaging','numel',[1],'values',[0 1 2]);
     125           
    121126                        if ismember('GiaAnalysis',analyses),
    122127                                md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',1);
     
    140145                        fielddisplay(self,'thermalconductivity',['ice thermal conductivity [W/m/K]']);
    141146                        fielddisplay(self,'temperateiceconductivity','temperate ice thermal conductivity [W/m/K]');
     147                        fielddisplay(self,'effectiveconductivity_averaging','computation of effective conductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)');
    142148                        fielddisplay(self,'meltingpoint','melting point of ice at 1atm in K');
    143149                        fielddisplay(self,'latentheat','latent heat of fusion [J/kg]');
     
    165171                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double');
    166172                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double');
     173                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer');
    167174                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double');
    168175                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double');
     
    190197                        writejsdouble(fid,[modelname '.materials.thermalconductivity'],self.thermalconductivity);
    191198                        writejsdouble(fid,[modelname '.materials.temperateiceconductivity'],self.temperateiceconductivity);
     199                        writejsdouble(fid,[modelname '.materials.effectiveconductivity_averaging'],self.effectiveconductivity_averaging);
    192200                        writejsdouble(fid,[modelname '.materials.meltingpoint'],self.meltingpoint);
    193201                        writejsdouble(fid,[modelname '.materials.beta'],self.beta);
  • issm/trunk-jpl/src/m/classes/matenhancedice.py

    r23005 r23697  
    2121                self.thermalconductivity       = 0.
    2222                self.temperateiceconductivity  = 0.
     23                self.effectiveconductivity_averaging = 0.
    2324                self.meltingpoint              = 0.
    2425                self.beta                      = 0.
     
    5152                string="%s\n%s"%(string,fielddisplay(self,"thermalconductivity","ice thermal conductivity [W/m/K]"))
    5253                string="%s\n%s"%(string,fielddisplay(self,"temperateiceconductivity","temperate ice thermal conductivity [W/m/K]"))
     54        string="%s\n%s"%(string,fielddisplay(self,"effectiveconductivity_averaging","computation of effective conductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)")
    5355                string="%s\n%s"%(string,fielddisplay(self,"meltingpoint","melting point of ice at 1atm in K"))
    5456                string="%s\n%s"%(string,fielddisplay(self,"latentheat","latent heat of fusion [J/m^3]"))
     
    98100                #temperate ice thermal conductivity (W/m/K)
    99101                self.temperateiceconductivity=0.24
     102       
     103                #computation of effective conductivity
     104                self.effectiveconductivity_averaging=2
    100105
    101106                #the melting point of ice at 1 atmosphere of pressure in K
     
    135140                md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements])
    136141                md = checkfield(md,'fieldname','materials.rheology_law','values',['None','BuddJacka','Cuffey','CuffeyTemperate','Paterson','Arrhenius','LliboutryDuval'])
    137 
     142                md = checkfield(md,'fieldname','materials.effectiveconductivity_averaging','numel',[1],'values',[0 1 2])
     143       
    138144                if 'GiaAnalysis' in analyses:
    139145                        md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',1)
     
    155161                WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double')
    156162                WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double')
     163                WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer');
    157164                WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double')
    158165                WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double')
  • issm/trunk-jpl/src/m/classes/matestar.m

    r23005 r23697  
    1414                thermalconductivity        = 0.;
    1515                temperateiceconductivity   = 0.;
     16                effectiveconductivity_averaging = 0.;
    1617                meltingpoint               = 0.;
    1718                beta                       = 0.;
     
    9091                        self.temperateiceconductivity=.24;
    9192
     93                        %computation of effective conductivity
     94                        self.effectiveconductivity_averaging=2;
     95           
    9296                        %the melting point of ice at 1 atmosphere of pressure in K
    9397                        self.meltingpoint=273.15;
     
    125129                        md = checkfield(md,'fieldname','materials.rheology_Es','>',0,'size',[md.mesh.numberofvertices 1],'NaN',1,'Inf',1);
    126130                        md = checkfield(md,'fieldname','materials.rheology_law','values',{'None' 'BuddJacka' 'Cuffey' 'CuffeyTemperate' 'Paterson' 'Arrhenius' 'LliboutryDuval'});
    127 
     131                        md = checkfield(md,'fieldname','materials.effectiveconductivity_averaging','numel',[1],'values',[0 1 2]);
     132           
    128133                        if ismember('GiaAnalysis',analyses),
    129134                                md = checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',1);
     
    147152                        fielddisplay(self,'thermalconductivity',['ice thermal conductivity [W/m/K]']);
    148153                        fielddisplay(self,'temperateiceconductivity','temperate ice thermal conductivity [W/m/K]');
     154                        fielddisplay(self,'effectiveconductivity_averaging','computation of effective conductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)');
    149155                        fielddisplay(self,'meltingpoint','melting point of ice at 1atm in K');
    150156                        fielddisplay(self,'latentheat','latent heat of fusion [J/kg]');
     
    172178                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double');
    173179                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double');
     180                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer');
    174181                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double');
    175182                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double');
     
    197204                        writejsdouble(fid,[modelname '.materials.thermalconductivity'],self.thermalconductivity);
    198205                        writejsdouble(fid,[modelname '.materials.temperateiceconductivity'],self.temperateiceconductivity);
     206                        writejsdouble(fid,[modelname '.materials.effectiveconductivity_averaging'],self.effectiveconductivity_averaging);
    199207                        writejsdouble(fid,[modelname '.materials.meltingpoint'],self.meltingpoint);
    200208                        writejsdouble(fid,[modelname '.materials.beta'],self.beta);
  • issm/trunk-jpl/src/m/classes/matestar.py

    r23005 r23697  
    2323                thermalconductivity        = 0.
    2424                temperateiceconductivity   = 0.
     25                self.effectiveconductivity_averaging = 0.
    2526                meltingpoint               = 0.
    2627                beta                       = 0.
     
    5455                string="%s\n%s"%(string,fielddisplay(self,'thermalconductivity',['ice thermal conductivity [W/m/K]']))
    5556                string="%s\n%s"%(string,fielddisplay(self,'temperateiceconductivity','temperate ice thermal conductivity [W/m/K]'))
     57                string="%s\n%s"%(string,fielddisplay(self,"effectiveconductivity_averaging","computation of effective conductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)")
    5658                string="%s\n%s"%(string,fielddisplay(self,'meltingpoint','melting point of ice at 1atm in K'))
    5759                string="%s\n%s"%(string,fielddisplay(self,'latentheat','latent heat of fusion [J/kg]'))
     
    102104                self.temperateiceconductivity=.24
    103105
     106                #computation of effective conductivity
     107                self.effectiveconductivity_averaging=2
     108       
    104109                #the melting point of ice at 1 atmosphere of pressure in K
    105110                self.meltingpoint=273.15
     
    138143                md = checkfield(md,'fieldname','materials.rheology_Es','>',0,'size',[md.mesh.numberofvertices],'NaN',1,'Inf',1)
    139144                md = checkfield(md,'fieldname','materials.rheology_law','values',['None','BuddJacka', 'Cuffey','CuffeyTemperate','Paterson','Arrhenius','LliboutryDuval'])
     145                md = checkfield(md,'fieldname','materials.effectiveconductivity_averaging','numel',[1],'values',[0 1 2])
    140146
    141147                if 'GiaAnalysis' in analyses:
     
    159165                WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double')
    160166                WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double')
     167                WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer');
    161168                WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double')
    162169                WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double')
  • issm/trunk-jpl/src/m/classes/matice.m

    r23005 r23697  
    1414                thermalconductivity        = 0.;
    1515                temperateiceconductivity   = 0.;
     16                effectiveconductivity_averaging = 0.;
    1617                meltingpoint               = 0.;
    1718                beta                       = 0.;
     
    8081                        %wet ice thermal conductivity (W/m/K)
    8182                        self.temperateiceconductivity=.24;
     83                       
     84                        %computation of effective conductivity
     85                        self.effectiveconductivity_averaging=2;
    8286
    8387                        %the melting point of ice at 1 atmosphere of pressure in K
     
    115119                        md = checkfield(md,'fieldname','materials.rheology_n','>',0,'size',[md.mesh.numberofelements 1]);
    116120                        md = checkfield(md,'fieldname','materials.rheology_law','values',{'None' 'BuddJacka' 'Cuffey' 'CuffeyTemperate' 'Paterson' 'Arrhenius' 'LliboutryDuval'});
     121                        md = checkfield(md,'fieldname','materials.effectiveconductivity_averaging','numel',[1],'values',[0 1 2]);
    117122
    118123                        if ismember('GiaAnalysis',analyses),
     
    137142                        fielddisplay(self,'thermalconductivity',['ice thermal conductivity [W/m/K]']);
    138143                        fielddisplay(self,'temperateiceconductivity','temperate ice thermal conductivity [W/m/K]');
     144                        fielddisplay(self,'effectiveconductivity_averaging','computation of effective conductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)');
    139145                        fielddisplay(self,'meltingpoint','melting point of ice at 1atm in K');
    140146                        fielddisplay(self,'latentheat','latent heat of fusion [J/kg]');
     
    161167                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double');
    162168                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double');
     169                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer');
    163170                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double');
    164171                        WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double');
     
    185192                        writejsdouble(fid,[modelname '.materials.thermalconductivity'],self.thermalconductivity);
    186193                        writejsdouble(fid,[modelname '.materials.temperateiceconductivity'],self.temperateiceconductivity);
     194                        writejsdouble(fid,[modelname '.materials.effectiveconductivity_averaging'],self.effectiveconductivity_averaging);
    187195                        writejsdouble(fid,[modelname '.materials.meltingpoint'],self.meltingpoint);
    188196                        writejsdouble(fid,[modelname '.materials.beta'],self.beta);
  • issm/trunk-jpl/src/m/classes/matice.py

    r23005 r23697  
    2121                self.thermalconductivity       = 0.
    2222                self.temperateiceconductivity  = 0.
     23                self.effectiveconductivity_averaging = 0.
    2324                self.meltingpoint              = 0.
    2425                self.beta                      = 0.
     
    5253                string="%s\n%s"%(string,fielddisplay(self,"thermalconductivity","ice thermal conductivity [W/m/K]"))
    5354                string="%s\n%s"%(string,fielddisplay(self,"temperateiceconductivity","temperate ice thermal conductivity [W/m/K]"))
     55                string="%s\n%s"%(string,fielddisplay(self,"effectiveconductivity_averaging","computation of effective conductivity: (0) arithmetic mean, (1) harmonic mean, (2) geometric mean (default)")
    5456                string="%s\n%s"%(string,fielddisplay(self,"meltingpoint","melting point of ice at 1atm in K"))
    5557                string="%s\n%s"%(string,fielddisplay(self,"latentheat","latent heat of fusion [J/m^3]"))
     
    99101                self.temperateiceconductivity=0.24
    100102
     103                #computation of effective conductivity
     104                self.effectiveconductivity_averaging=2
     105
    101106                #the melting point of ice at 1 atmosphere of pressure in K
    102107                self.meltingpoint=273.15
     
    140145                md = checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',[1]);
    141146                md = checkfield(md,'fieldname','materials.earth_density','>',0,'numel',[1]);
     147                md = checkfield(md,'fieldname','materials.effectiveconductivity_averaging','numel',[1],'values',[0 1 2])
    142148
    143149                return md
     
    153159                WriteData(fid,prefix,'object',self,'class','materials','fieldname','thermalconductivity','format','Double')
    154160                WriteData(fid,prefix,'object',self,'class','materials','fieldname','temperateiceconductivity','format','Double')
     161                WriteData(fid,prefix,'object',self,'class','materials','fieldname','effectiveconductivity_averaging','format','Integer');       
    155162                WriteData(fid,prefix,'object',self,'class','materials','fieldname','meltingpoint','format','Double')
    156163                WriteData(fid,prefix,'object',self,'class','materials','fieldname','beta','format','Double')
Note: See TracChangeset for help on using the changeset viewer.