Changeset 21065


Ignore:
Timestamp:
08/04/16 02:11:14 (9 years ago)
Author:
agscott1
Message:

CHG: Replaced all javascript enums with solution strings and analyses strings to match matlab and python code

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

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/SMBforcing.js

    r20902 r21065  
    3434    this.checkconsistency = function(md,solution,analyses) { //{{{
    3535
    36         if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){
     36        if(ArrayAnyEqual(ArrayIsMember('MasstransportAnalysis',analyses),1)){
    3737            checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1,'Inf',1);
    3838        }
    39         if(ArrayAnyEqual(ArrayIsMember(BalancethicknessAnalysisEnum(),analyses),1)){
     39        if(ArrayAnyEqual(ArrayIsMember('BalancethicknessAnalysis',analyses),1)){
    4040            checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices,1],'NaN',1,'Inf',1);
    4141        }
  • issm/trunk-jpl/src/m/classes/autodiff.js

    r20777 r21065  
    112112                                        indep=this.independents[i];
    113113
    114                                         names[i]=StringToEnum(indep.name);
     114                                        names[i]=indep.name;
    115115                                        types[i]=indep.typetoscalar();
    116116                                }
    117                                 WriteData(fid,prefix,'data',names,'name','md.autodiff.independent_object_names','format','IntMat','mattype',3);
     117                                WriteData(fid,prefix,'data',names,'name','md.autodiff.independent_object_names','format','StringArray');
    118118                                WriteData(fid,prefix,'data',types,'name','md.autodiff.independent_object_types','format','IntMat','mattype',3);
    119119                        }
  • issm/trunk-jpl/src/m/classes/balancethickness.js

    r20896 r21065  
    2626                this.checkconsistency = function(md,solution,analyses){ // {{{
    2727                        //Early return
    28                         if (solution!=BalancethicknessSolutionEnum())return;
     28                        if (solution!='BalancethicknessSolution')return;
    2929
    3030                        checkfield(md,'fieldname','balancethickness.spcthickness');
  • issm/trunk-jpl/src/m/classes/basalforcings.js

    r20916 r21065  
    4141                this.checkconsistency = function(md,solution,analyses) { //{{{
    4242
    43                         if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){
    44                                 if (!(solution==TransientSolutionEnum() & md.trans.ismasstransport==0)){
     43                        if(ArrayAnyEqual(ArrayIsMember('MasstransportAnalysis',analyses),1)){
     44                                if (!(solution=='TransientSolution' & md.trans.ismasstransport==0)){
    4545                                        checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
    4646                                        checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
     
    4848                        }
    4949
    50                         if(ArrayAnyEqual(ArrayIsMember(BalancethicknessAnalysisEnum(),analyses),1)){
     50                        if(ArrayAnyEqual(ArrayIsMember('BalancethicknessAnalysis',analyses),1)){
    5151                                checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
    5252                                checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
    5353                        }
    54                         if(ArrayAnyEqual(ArrayIsMember(ThermalAnalysisEnum(),analyses),1)){
    55                                 if (!(solution==TransientSolutionEnum() & md.trans.isthermal==0)){
     54                        if(ArrayAnyEqual(ArrayIsMember('ThermalAnalysis',analyses),1)){
     55                                if (!(solution=='TransientSolution' & md.trans.isthermal==0)){
    5656                                        checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
    5757                                        checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1);
  • issm/trunk-jpl/src/m/classes/calving.js

    r20916 r21065  
    2626        this.checkconsistency = function(md,solution,analyses) { // {{{
    2727                //Early return
    28                 if (solution!=TransientSolutionEnum() | md.trans.ismovingfront==0) return;
     28                if (solution!='TransientSolution' | md.trans.ismovingfront==0) return;
    2929
    3030                checkfield(md,'fieldname','calving.calvingrate(1:md.mesh.numberofvertices,:)','>=',0,'timeseries',1,'NaN',1,'Inf',1);
  • issm/trunk-jpl/src/m/classes/clusters/generic.js

    r21028 r21065  
    4343                        fid=fopen(modelname+'.queue','w');
    4444                        fprintf(fid,'#!%s\n',cluster.shell);
    45                         fprintf(fid,'mpiexec -np %i %s/%s %s %s %s 2> %s.errlog >%s.outlog ',cluster.np,cluster.codepath,executable,EnumToString(solution),cluster.executionpath+'/'+dirname,modelname,modelname,modelname);                                   
     45                        fprintf(fid,'mpiexec -np %i %s/%s %s %s %s 2> %s.errlog >%s.outlog ',cluster.np,cluster.codepath,executable,solution,cluster.executionpath+'/'+dirname,modelname,modelname,modelname);                                 
    4646                        fclose(fid);
    4747        } //}}}
  • issm/trunk-jpl/src/m/classes/damage.js

    r20969 r21065  
    9292                        }
    9393                        else if (this.law!=0){
    94                                 if (solution==DamageEvolutionSolutionEnum()){
     94                                if (solution=='DamageEvolutionSolution'){
    9595                                        throw Error('Invalid evolution law (md.damage.law) for a damage solution');
    9696                                }
  • issm/trunk-jpl/src/m/classes/flaim.js

    r20777 r21065  
    3737
    3838                //Early return
    39                 if (solution!=FlaimSolutionEnum()) return;
     39                if (solution!='FlaimSolution') return;
    4040
    4141                checkfield(md,'fieldname','flaim.tracks','file',1);
  • issm/trunk-jpl/src/m/classes/flowequation.js

    r20993 r21065  
    4949
    5050                        //Early return
    51                         if ( ((!ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1)) & (!ArrayAnyEqual(ArrayIsMember(StressbalanceSIAAnalysisEnum(),analyses),1))) |
    52                                         (solution==TransientSolutionEnum() & md.trans.isstressbalance==0)
     51                        if ( ((!ArrayAnyEqual(ArrayIsMember('StressbalanceAnalysis',analyses),1)) & (!ArrayAnyEqual(ArrayIsMember('StressbalanceSIAAnalysis',analyses),1))) |
     52                                        (solution=='TransientSolution' & md.trans.isstressbalance==0)
    5353                           ) return ;
    5454
     
    9090                                md = checkmessage(md,['no element types set for this model']);
    9191                        }
    92                         if(ArrayAnyEqual(ArrayIsMember(StressbalanceSIAAnalysisEnum(), analyses),1)){
     92                        if(ArrayAnyEqual(ArrayIsMember('StressbalanceSIAAnalysis', analyses),1)){
    9393                                if (ArrayAnyEqual(this.element_equation,1)){
    9494                                        if(this.vertex_equation & ArrayAnyBelowStrict(md.mask.groundedice_levelset)){
     
    117117                        WriteData(fid,prefix,'object',this,'fieldname','borderFS','format','DoubleMat','mattype',1);
    118118
    119                         //convert approximations to enums
     119                        //convert approximations to integers
    120120                        WriteData(fid,prefix,'data',this.vertex_equation,'name','md.flowequation.vertex_equation','format','DoubleMat','mattype',1);
    121121                        WriteData(fid,prefix,'data',this.element_equation,'name','md.flowequation.element_equation','format','DoubleMat','mattype',2);
  • issm/trunk-jpl/src/m/classes/friction.js

    r20902 r21065  
    2727
    2828                        //Early return
    29                         if ((!ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1)) & (!ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1))){
     29                        if ((!ArrayAnyEqual(ArrayIsMember('StressbalanceAnalysis',analyses),1)) & (!ArrayAnyEqual(ArrayIsMember('StressbalanceAnalysis',analyses),1))){
    3030                                return;
    3131                        }
  • issm/trunk-jpl/src/m/classes/geometry.js

    r20902 r21065  
    2929                this.checkconsistency = function(md,solution,analyses) { //{{{
    3030
    31                         if ((solution==TransientSolutionEnum() & md.trans.isgia) | (solution==GiaSolutionEnum())){
     31                        if ((solution=='TransientSolution' & md.trans.isgia) | (solution=='GiaSolution')){
    3232                                checkfield(md,'fieldname','geometry.thickness','timeseries',1,'NaN',1,'Inf',1,'>=',0);
    3333                        }
     
    4242                                        }
    4343                                }
    44                                 if (solution==TransientSolutionEnum() & md.trans.isgroundingline){
     44                                if (solution=='TransientSolution' & md.trans.isgroundingline){
    4545                                        checkfield(md,'fieldname','geometry.bed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
    4646                                }
  • issm/trunk-jpl/src/m/classes/gia.js

    r20777 r21065  
    2525        this.checkconsistency = function(md,solution,analyses) { // {{{
    2626
    27                 if(!ArrayAnyEqual(ArrayIsMember(GiaAnalysisEnum(),analyses),1))return;
     27                if(!ArrayAnyEqual(ArrayIsMember('GiaAnalysis',analyses),1))return;
    2828
    2929                checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1],'>',0);
     
    3333                //be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings
    3434                //are not provided into the future.
    35                 if (solution==TransientSolutionEnum() & md.trans.ismasstransport & md.trans.isgia){
     35                if (solution=='TransientSolution' & md.trans.ismasstransport & md.trans.isgia){
    3636                        //figure out if thickness is a transient forcing:
    3737                        if (md.geometry.thickness.length == (md.mesh.numberofvertices+1)){
  • issm/trunk-jpl/src/m/classes/hydrologyshreve.js

    r20917 r21065  
    3333
    3434                        //Early return
    35                         if(!ArrayAnyEqual(ArrayIsMember(HydrologyShreveAnalysisEnum(),analyses),1)) return;
     35                        if(!ArrayAnyEqual(ArrayIsMember('HydrologyShreveAnalysis',analyses),1)) return;
    3636
    3737                        checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1);
  • issm/trunk-jpl/src/m/classes/initialization.js

    r20896 r21065  
    4141    }//}}}
    4242                this.checkconsistency = function(md,solution,analyses) { //{{{
    43                         if(ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),1)){
     43                        if(ArrayAnyEqual(ArrayIsMember('StressbalanceAnalysis',analyses),1)){
    4444                                if (!(isNaN(md.initialization.vx) | isNaN(md.initialization.vy))){
    4545                                        checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
     
    4747                                }
    4848                        }
    49                         if(ArrayAnyEqual(ArrayIsMember(MasstransportAnalysisEnum(),analyses),1)){
     49                        if(ArrayAnyEqual(ArrayIsMember('MasstransportAnalysis',analyses),1)){
    5050                                checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
    5151                                checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
    5252                        }
    53                         if(ArrayAnyEqual(ArrayIsMember(BalancethicknessSolutionEnum(),analyses),1) & (solution==BalancethicknessSolutionEnum())){
     53                        if(ArrayAnyEqual(ArrayIsMember('BalancethicknessSolution',analyses),1) & (solution=='BalancethicknessSolution')){
    5454                                checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
    5555                                checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
     
    6565                                }
    6666                        }
    67                         if(ArrayAnyEqual(ArrayIsMember(ThermalAnalysisEnum(),analyses),1)){
     67                        if(ArrayAnyEqual(ArrayIsMember('ThermalAnalysis',analyses),1)){
    6868                                checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
    6969                                checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
     
    7474                                checkfield(md,'fieldname','initialization.temperature','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices ,1]);
    7575                        }
    76                         if( ArrayAnyEqual(ArrayIsMember(EnthalpyAnalysisEnum(),analyses),1) & md.thermal.isenthalpy){
     76                        if( ArrayAnyEqual(ArrayIsMember('EnthalpyAnalysis',analyses),1) & md.thermal.isenthalpy){
    7777                                checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices, 1]);
    7878                                checkfield(md,'fieldname','initialization.watercolumn'  ,'>=',0,'size',[md.mesh.numberofvertices, 1]);
    7979                        }
    80                         if(ArrayAnyEqual(ArrayIsMember(HydrologyShreveAnalysisEnum(),analyses),1)){
     80                        if(ArrayAnyEqual(ArrayIsMember('HydrologyShreveAnalysis',analyses),1)){
    8181                                if (md.hydrology.type() == 'hydrologyshreve'){
    8282                                        checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices ,1]);
    8383                                }
    8484                        }
    85                         if(ArrayAnyEqual(ArrayIsMember(HydrologyDCInefficientAnalysisEnum(),analyses),1)){
     85                        if(ArrayAnyEqual(ArrayIsMember('HydrologyDCInefficientAnalysis',analyses),1)){
    8686                                if (md.hydrology.type() == 'hydrologydc'){
    8787                                        checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]);
    8888                                }
    8989                        }
    90                         if(ArrayAnyEqual(ArrayIsMember(HydrologyDCEfficientAnalysisEnum(),analyses),1)){
     90                        if(ArrayAnyEqual(ArrayIsMember('HydrologyDCEfficientAnalysis',analyses),1)){
    9191                                if (md.hydrology.type() == 'hydrologydc'){
    9292                                        if (md.hydrology.isefficientlayer==1){
  • issm/trunk-jpl/src/m/classes/inversion.js

    r20896 r21065  
    116116
    117117                        //Only SSA, HO and FS are supported right now
    118                         if (solution==StressbalanceSolutionEnum()){
     118                        if (solution=='StressbalanceSolution'){
    119119                                if (!(md.flowequation.isSSA | md.flowequation.isHO | md.flowequation.isFS | md.flowequation.isL1L2)){
    120120                                        md.checkmessage('inversion can only be performed for SSA, HO or FS ice flow models');
     
    122122                        }
    123123
    124                         if (solution==BalancethicknessSolutionEnum()){
     124                        if (solution=='BalancethicknessSolution'){
    125125                                checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices ,1],'NaN',1,'Inf',1);
    126126                        }
    127                         else if (solution==BalancethicknessSoftSolutionEnum()){
     127                        else if (solution=='BalancethicknessSoftSolution'){
    128128                                checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1,'Inf',1);
    129129                        }
  • issm/trunk-jpl/src/m/classes/levelset.js

    r20929 r21065  
    3030        this.checkconsistency = function(md,solution,analyses) { // {{{
    3131                //Early return
    32                 if (solution!=TransientSolutionEnum() | md.trans.ismovingfront==0) return;
     32                if (solution!='TransientSolution' | md.trans.ismovingfront==0) return;
    3333
    3434                checkfield(md,'fieldname','levelset.spclevelset','Inf',1,'timeseries',1);
  • issm/trunk-jpl/src/m/classes/masstransport.js

    r20940 r21065  
    4848
    4949                        //Early return
    50                         if(!ArrayAnyEqual(ArrayIsMember(HydrologyShreveAnalysisEnum(),analyses),1) | (solution==TransientSolutionEnum() & md.trans.ismasstransport==0)) return;
     50                        if(!ArrayAnyEqual(ArrayIsMember('HydrologyShreveAnalysis',analyses),1) | (solution=='TransientSolution' & md.trans.ismasstransport==0)) return;
    5151
    5252                        checkfield(md,'fieldname','masstransport.spcthickness','Inf',1,'timeseries',1);
  • issm/trunk-jpl/src/m/classes/matice.js

    r20947 r21065  
    101101                        checkfield(md,'fieldname','materials.rheology_law','values',['None','Cuffey','CuffeyTemperate','Paterson','Arrhenius','LliboutryDuval']);
    102102
    103                         if(ArrayAnyEqual(ArrayIsMember(GiaAnalysisEnum(),analyses),1)){
     103                        if(ArrayAnyEqual(ArrayIsMember('GiaAnalysis',analyses),1)){
    104104                                checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',1);
    105105                                checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',1);
     
    107107                                checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1);
    108108                        }
    109                         if (ArrayAnyEqual(ArrayIsMember(SealevelriseAnalysisEnum(),analyses),1)){
     109                        if (ArrayAnyEqual(ArrayIsMember('SealevelriseAnalysis',analyses),1)){
    110110                                checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1);
    111111                        }
  • issm/trunk-jpl/src/m/classes/mesh2d.js

    r20969 r21065  
    7272
    7373                        switch(solution){
    74                         case ThermalSolutionEnum():
     74                        case 'ThermalSolution':
    7575                                checkmessage(md,'thermal not supported for 2d mesh');
    7676                                break;
  • issm/trunk-jpl/src/m/classes/outputdefinition.js

    r20777 r21065  
    2929                this.marshall=function(md,prefix,fid) { //{{{
    3030
    31                 var enums=NewArrayFill(this.definitions.length,0);
    32                 for (var i=0;i<this.definitions.length;i++){
    33                         this.definitions[i].marshall(md,fid,prefix);
    34                         classdefinition=this.definitions[i].classname();
    35                         classdefinition=classdefinition.charAt(0).tuUpperCase() + classdefinition.slice(1); //so it matches our enums definitions.
    36                         enums[i]=StringToEnum(classdefinition);
    37                 }
    38                 enums=ArrayUnique(enums);
    39                 if (enums.length==0){ enums=NaN; }
    40                 WriteData(fid,prefix,'data',enums,'name','md.outputdefinition.list','format','DoubleMat','mattype',1);
     31                        var data=NewArrayFill(this.definitions.length,'');     
     32                        for(var i=0;i<this.definitions.length;i++){
     33                                this.definitions[i].marshall(md,fid,prefix);
     34                                classdefinition=this.definitions[i].classname();
     35                                classdefinition=classdefinition.charAt(0).toUpperCase() + classdefinition.slice(1); // we match our string definitions
     36                                data[i]=classdefinition;
     37                        }
     38                        data=ArrayUnique(data);
     39                        if(data.length==0){ data=''; }
     40
     41                        WriteData(fid,prefix,'data',data,'name','md.outputdefinition.list','format','StringArray');
    4142                }//}}}
    4243                this.fix=function() { //{{{
  • issm/trunk-jpl/src/m/classes/outputdefinition.m

    r21049 r21065  
    3737                end % }}}
    3838                function marshall(self,prefix,md,fid) % {{{
    39                 %{
    40                 enums=zeros(length(self.definitions),1);
    41                 for i=1:length(self.definitions),
    42                         self.definitions{i}.marshall(prefix,md,fid);
    43                         classdefinition=class(self.definitions{i});
    44                         classdefinition(1)=upper(classdefinition(1)); %so it matches our enums definitions.
    45                         enums(i)=StringToEnum(classdefinition);
    46                 end
    47                 WriteData(fid,prefix,'data',enums,'name','md.outputdefinition.list','format','DoubleMat','mattype',1);
    48                 %}
    4939                data={};
    5040                for i=1:length(self.definitions)
  • issm/trunk-jpl/src/m/classes/rifts.js

    r20777 r21065  
    3939                                }
    4040                                for (var i=0;i<numrifts;i++){
    41                                         md = checkfield(md,'fieldname',sprintf('rifts.riftstruct[%i].fill',i),'values',[WaterEnum(), AirEnum(), IceEnum(), MelangeEnum()]);
     41                                        md = checkfield(md,'fieldname',sprintf('rifts.riftstruct[%i].fill',i),'values',['Water', 'Air', 'Ice', 'Melange']);
    4242                                }
    4343                        }
     
    5050                        var numrifts;
    5151                        //Process rift info
    52                         if ((this.riftstruct.length==0) | isNaN(this.riftstruct)){
     52                        if ((this.riftstruct.length==0) | (this.riftstruct == null)){
    5353                                numrifts=0;
    5454                        }
     
    7777                        }
    7878                        WriteData(fid,prefix,'data',numrifts,'name','md.rifts.numrifts','format','Integer');
    79                         WriteData(fid,prefix,'data',data,'name','md.rifts.riftstruct','format','DoubleMat','mattype',3);
     79                        WriteData(fid,prefix,'data',data,'name','md.rifts.riftstruct','format','StringArray');
    8080                }//}}}
    8181                this.fix=function() { //{{{
    82                         this.riftstruct=NullFix(this.riftstruct,NaN);
     82                        this.riftstruct=NullFix(this.riftstruct,'');
    8383                        this.riftproperties=NullFix(this.riftproperties,NaN);
    8484                }//}}}
  • issm/trunk-jpl/src/m/classes/slr.js

    r21000 r21065  
    3737
    3838                        //Early return
    39                         if(ArrayAnyEqual(ArrayIsMember(SealevelriseAnalysisEnum(),analyses),0))return;
     39                        if(ArrayAnyEqual(ArrayIsMember('SealevelriseAnalysis',analyses),0))return;
    4040                       
    4141                        md = checkfield(md,'fieldname','slr.deltathickness','NaN',1,'Inf',1,'size',[md.mesh.numberofelements, 1]);
  • issm/trunk-jpl/src/m/classes/steadystate.js

    r20777 r21065  
    3535
    3636                //Early return
    37                 if (solution!=SteadystateSolutionEnum()) return;
     37                if (solution!='SteadystateSolution') return;
    3838
    3939                if (md.timestepping.time_step!=0){
  • issm/trunk-jpl/src/m/classes/stressbalance.js

    r20902 r21065  
    8787
    8888                //Early return
    89                 if(ArrayAnyEqual(ArrayIsMember(StressbalanceAnalysisEnum(),analyses),0))return;
     89                if(ArrayAnyEqual(ArrayIsMember('StressbalanceAnalysis',analyses),0))return;
    9090
    9191                checkfield(md,'fieldname','stressbalance.spcvx','Inf',1,'timeseries',1);
  • issm/trunk-jpl/src/m/classes/thermal.js

    r20902 r21065  
    6767
    6868                //Early return
    69                 if(!ArrayAnyEqual(ArrayIsMember(ThermalAnalysisEnum(),analyses),1) & !ArrayAnyEqual(ArrayIsMember(EnthalpyAnalysisEnum(),analyses),1)  | (solution == TransientSolutionEnum() & md.trans.isthermal==0)) return;
     69                if(!ArrayAnyEqual(ArrayIsMember('ThermalAnalysis',analyses),1) & !ArrayAnyEqual(ArrayIsMember('EnthalpyAnalysis',analyses),1)  | (solution == 'TransientSolution' & md.trans.isthermal==0)) return;
    7070
    7171                checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0 ,1, 2]);
    7272                checkfield(md,'fieldname','thermal.spctemperature','Inf',1,'timeseries',1);
    73                 if(ArrayAnyEqual(ArrayIsMember(EnthalpyAnalysisEnum(),analyses),1) & md.thermal.isenthalpy & md.mesh.dimension() == 3){
     73                if(ArrayAnyEqual(ArrayIsMember('EnthalpyAnalysis',analyses),1) & md.thermal.isenthalpy & md.mesh.dimension() == 3){
    7474                       
    7575                        for(var i=0;i<md.mesh.numberofvertices;i++){
  • issm/trunk-jpl/src/m/classes/toolkits.js

    r19860 r21065  
    6767
    6868                                 //first write analysis:
    69                                  string += sprintf('\n+%s\n',analysis); //append a + to recognize it's an analysis enum
     69                                 string += sprintf('\n+%s\n',analysis); //append a + to recognize it's an analysis string
    7070
    7171                                 //now, write options
  • issm/trunk-jpl/src/m/classes/trans.js

    r20777 r21065  
    5050
    5151                        //Early return
    52                         if (solution!=TransientSolutionEnum()) return;
     52                        if (solution!='TransientSolution') return;
    5353
    5454                        checkfield(md,'fieldname','trans.issmb','numel',[1],'values',[0 ,1]);
  • issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.js

    r20259 r21065  
    1010        //Get solution and associated analyses
    1111        solution=md.priv.solution;
    12         if(typeof solution != 'number')throw Error('ismodelselfconsistent: did not provide solution type in the private class!');
     12        if(typeof solution !== 'string')throw Error('ismodelselfconsistent: did not provide correct solution type in the private class!');
    1313       
    1414        var analyses = AnalysisConfiguration(solution);
     
    4444
    4545        var analyses=[];
    46         switch (solutiontype){
    47 
    48                 case StressbalanceSolutionEnum():
    49                         analyses=[StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum()];
     46               
     47        if(solutiontype === 'StressbalanceSolution'){
     48                        analyses=['StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis'];
    5049                        break;
    5150
    52                 case SteadystateSolutionEnum():
    53                         analyses=[StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum()];
     51                }else if(solutiontype ==='SteadystateSolution'){
     52                        analyses=['StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis'];
    5453                        break;
    5554
    56                 case ThermalSolutionEnum():
    57                         analyses=[EnthalpyAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum()];
     55                }else if(solutiontype ==='ThermalSolution'){
     56                        analyses=['EnthalpyAnalysis','ThermalAnalysis','MeltingAnalysis'];
    5857                        break;
    5958
    60                 case MasstransportSolutionEnum():
    61                         analyses=[MasstransportAnalysisEnum()];
     59                }else if(solutiontype ==='MasstransportSolution'){
     60                        analyses=['MasstransportAnalysis'];
    6261                        break;
    6362
    64                 case BalancethicknessSolutionEnum():
    65                         analyses=[BalancethicknessAnalysisEnum()];
     63                }else if(solutiontype ==='BalancethicknessSolution'){
     64                        analyses=['BalancethicknessAnalysis'];
    6665                        break;
    6766
    68                 case Balancethickness2SolutionEnum():
    69                         analyses=[Balancethickness2AnalysisEnum()];
     67                }else if(solutiontype ==='Balancethickness2Solution'){
     68                        analyses=['Balancethickness2Analysis'];
    7069                        break;
    7170
    72                 case BalancethicknessSoftSolutionEnum():
    73                         analyses=[BalancethicknessAnalysisEnum()];
     71                }else if(solutiontype ==='BalancethicknessSoftSolution'){
     72                        analyses=['BalancethicknessAnalysis'];
    7473                        break;
    7574
    76                 case BalancevelocitySolutionEnum():
    77                         analyses=[BalancevelocityAnalysisEnum()];
     75                }else if(solutiontype ==='BalancevelocitySolution'){
     76                        analyses=['BalancevelocityAnalysis'];
    7877                        break;
    7978
    80                 case SurfaceSlopeSolutionEnum():
    81                         analyses=[L2ProjectionBaseAnalysisEnum()];
     79                }else if(solutiontype ==='SurfaceSlopeSolution'){
     80                        analyses=['L2ProjectionBaseAnalysis'];
    8281                        break;
    8382
    84                 case BedSlopeSolutionEnum():
    85                         analyses=[L2ProjectionBaseAnalysisEnum()];
     83                }else if(solutiontype ==='BedSlopeSolution'){
     84                        analyses=['L2ProjectionBaseAnalysis'];
    8685                        break;
    8786
    88                 case GiaSolutionEnum():
    89                         analyses=[GiaAnalysisEnum()];
     87                }else if(solutiontype ==='GiaSolution'){
     88                        analyses=['GiaAnalysis'];
    9089                        break;
    9190
    92                 case TransientSolutionEnum():
    93                         analyses=[StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum(),EnthalpyAnalysisEnum(),MasstransportAnalysisEnum(),HydrologySommersAnalysisEnum];
     91                }else if(solutiontype ==='TransientSolution'){
     92                        analyses=['StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis','EnthalpyAnalysis','MasstransportAnalysis','HydrologySommersAnalysis'];
    9493                        break;
    9594
    96                 case FlaimSolutionEnum():
    97                         analyses=[FlaimAnalysisEnum()];
     95                }else if(solutiontype ==='FlaimSolution'){
     96                        analyses=['FlaimAnalysis'];
    9897                        break;
    9998       
    100                 case SealevelriseSolutionEnum():
    101                         analyses=[SealevelriseAnalysisEnum()];
     99                }else if(solutiontype ==='SealevelriseSolution'){
     100                        analyses=['SealevelriseAnalysis'];
    102101                        break;
    103102
    104                 case HydrologySolutionEnum():
    105                         analyses=[L2ProjectionBaseAnalysisEnum(),HydrologyShreveAnalysisEnum(),HydrologyDCInefficientAnalysisEnum(),HydrologyDCEfficientAnalysisEnum()];
     103                }else if(solutiontype ==='HydrologySolution'){
     104                        analyses=['L2ProjectionBaseAnalysis','HydrologyShreveAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis'];
    106105                        break;
    107106
    108                 case DamageEvolutionSolutionEnum():
    109                         analyses=[DamageEvolutionAnalysisEnum()];
     107                }else if(solutiontype ==='DamageEvolutionSolution'){
     108                        analyses=['DamageEvolutionAnalysis'];
    110109                        break;
    111 
    112                 default:
    113                         throw Error(sprintf("%s%s%s\n",' solution type: ',EnumToString(solutiontype),' not supported yet!'));
     110                }else{
     111                        throw Error(sprintf("%s%s%s\n",' solution type: ',solutiontype,' not supported yet!'));
     112                }
    114113        }
    115114        return analyses;
  • issm/trunk-jpl/src/m/inversions/marshallcostfunctions.js

    r19823 r21065  
    11function  marshallcostfunctions(cost_functions){
    22        for(var i=0;i<cost_functions.length;i++){
    3                 if(cost_functions[i]==101) data[i]=SurfaceAbsVelMisfitEnum();
    4                 if(cost_functions[i]==102) data[i]=SurfaceRelVelMisfitEnum();
    5                 if(cost_functions[i]==103) data[i]=SurfaceLogVelMisfitEnum();
    6                 if(cost_functions[i]==104) data[i]=SurfaceLogVxVyMisfitEnum();
    7                 if(cost_functions[i]==105) data[i]=SurfaceAverageVelMisfitEnum();
    8                 if(cost_functions[i]==201) data[i]=ThicknessAbsMisfitEnum();
    9                 if(cost_functions[i]==501) data[i]=DragCoefficientAbsGradientEnum();
    10                 if(cost_functions[i]==502) data[i]=RheologyBbarAbsGradientEnum();
    11                 if(cost_functions[i]==503) data[i]=ThicknessAbsGradientEnum();
    12                 if(cost_functions[i]==504) data[i]=ThicknessAlongGradientEnum();
    13                 if(cost_functions[i]==505) data[i]=ThicknessAcrossGradientEnum();
    14                 if(cost_functions[i]==506) data[i]=BalancethicknessMisfitEnum();
    15                 if(cost_functions[i]==507) data[i]=RheologyBAbsGradientEnum();
    16                 if(cost_functions[i]==601) data[i]=SurfaceAbsMisfitEnum();
     3                if(cost_functions[i]==101) data[i]='SurfaceAbsVelMisfit';
     4                if(cost_functions[i]==102) data[i]='SurfaceRelVelMisfit';
     5                if(cost_functions[i]==103) data[i]='SurfaceLogVelMisfit';
     6                if(cost_functions[i]==104) data[i]='SurfaceLogVxVyMisfit';
     7                if(cost_functions[i]==105) data[i]='SurfaceAverageVelMisfit';
     8                if(cost_functions[i]==201) data[i]='ThicknessAbsMisfit';
     9                if(cost_functions[i]==501) data[i]='DragCoefficientAbsGradient';
     10                if(cost_functions[i]==502) data[i]='RheologyBbarAbsGradient';
     11                if(cost_functions[i]==503) data[i]='ThicknessAbsGradient';
     12                if(cost_functions[i]==504) data[i]='ThicknessAlongGradient';
     13                if(cost_functions[i]==505) data[i]='ThicknessAcrossGradient';
     14                if(cost_functions[i]==506) data[i]='BalancethicknessMisfit';
     15                if(cost_functions[i]==507) data[i]='RheologyBAbsGradient';
     16                if(cost_functions[i]==601) data[i]='SurfaceAbsMisfit';
    1717        }
    1818        return data;
  • issm/trunk-jpl/src/m/solve/WriteData.js

    r20898 r21065  
    88        var args = Array.prototype.slice.call(arguments);
    99        var options = new pairoptions(args.slice(2,args.length));
    10         var enumm;
     10        var name;
    1111        var dataini;
    1212        var data;
     
    1414        //Get data properties
    1515        if (options.exist('object')){
    16                 //This is a object field, construct enum and data
     16                //This is a object field, construct string name and data
    1717                obj       = options.getfieldvalue('object');
    1818                fieldname = options.getfieldvalue('fieldname');
     
    8080        //Step 2: write the data itself.
    8181        if (format == 'Boolean'){// {{{
    82                 if(IsArray(data)) throw  Error(sprintf("field '%s' cannot be marshalled as it has more than one element!",EnumToString(enumm)));
     82                if(IsArray(data)) throw  Error(sprintf("field '%s' cannot be marshalled as it has more than one element!",name));
    8383
    8484                //first write length of record
     
    9292        } // }}}
    9393        else if (format == 'Integer'){ // {{{
    94                 if(IsArray(data)) throw  Error(sprintf("field '%s' cannot be marshalled as it has more than one element!",EnumToString(enumm)));
     94                if(IsArray(data)) throw  Error(sprintf("field '%s' cannot be marshalled as it has more than one element!",name));
    9595
    9696                //first write length of record
     
    104104        } // }}}
    105105        else if (format == 'Double'){ // {{{
    106                 if(IsArray(data)) throw  Error(sprintf("field '%s' cannot be marshalled as it has more than one element!",EnumToString(enumm)));
     106                if(IsArray(data)) throw  Error(sprintf("field '%s' cannot be marshalled as it has more than one element!",name));
    107107
    108108                //first write length of record
     
    196196                //first write length of record
    197197                var recordlength=4+4+8*s[0]*s[1]+4+4; //2 integers (32 bits) + the double matrix + code + matrix type
    198                 if (recordlength>Math.pow(2,31)) throw Error(sprintf("field '%s' cannot be marshalled because it is larger than 2^31 bytes!",EnumToString(enumm)));
     198                if (recordlength>Math.pow(2,31)) throw Error(sprintf("field '%s' cannot be marshalled because it is larger than 2^31 bytes!",name));
    199199                fid.fwrite(recordlength,'int');
    200200
     
    276276        else {
    277277                throw Error(sprintf("WriteData error message: data type: %s not supported yet! ('%s')",
    278                                         format.toString(),EnumToString(enumm)));
     278                                        format.toString(),name));
    279279        }
    280280}
  • issm/trunk-jpl/src/m/solve/solve.js

    r21028 r21065  
    1 function solve(md,solutionenum){
     1function solve(md,solutionstring){
    22//SOLVE - apply solution sequence for this model
    33//
    44//   Usage:
    5 //      solve(md,solutionenum,varargin)
     5//      solve(md,solutionstring,varargin)
    66//      where varargin is a lit of paired arguments of string OR enums
    77//
    88//   solution types available comprise:
    9 //               - StressbalanceSolutionEnum
    10 //               - MasstransportSolutionEnum
    11 //               - ThermalSolutionEnum
    12 //               - SteadystateSolutionEnum
    13 //               - TransientSolutionEnum
    14 //               - BalancethicknessSolutionEnum
    15 //               - BedSlopeSolutionEnum
    16 //               - SurfaceSlopeSolutionEnum
    17 //               - HydrologySolutionEnum
    18 //               - FlaimSolutionEnum
     9//               - 'Stressbalance'      or 'sb'
     10//               - 'Masstransport'      or 'mt'
     11//               - 'Thermal'            or 'th'
     12//               - 'Steadystate'        or 'ss'
     13//               - 'Transient'          or 'tr'
     14//               - 'Balancethickness'   or 'mc'
     15//      - 'Balancevelocity'   or 'bv'
     16//               - 'BedSlope'           or 'bsl'
     17//               - 'SurfaceSlope'       or 'ssl'
     18//               - 'Hydrology'          or 'hy'
     19//      - 'DamageEvolution'   or 'da'
     20//               - 'Gia'                or 'gia'
     21//               - 'Sealevelrise'       or 'slr'
    1922//
    2023//  extra options:
     
    2629//
    2730//   Examples:
    28 //      md=solve(md,StressbalanceSolutionEnum);
     31//      md=solve(md,'Stressbalance');
     32//      md=solve(md,'sb');
    2933
    30         solutionstring=EnumToString(solutionenum);
    31        
     34        if(typeof solutionstring !== 'string') {
     35                throw Error(sprintf("%s\n", "ISSM's solve function only accepts strings for solution sequences. Type help solve to get a list of supported solutions.");
     36        }
     37
    3238        //recover and process solve options
    33         if (solutionstring.slice(-8) !== 'Solution'){
    34                 throw Error(sprintf("%s%s%s\n",'solutionenum ',solutionstring,' not supported!'));
     39        if((solutionstring.toUpperCase() === 'sb') || (solutionstring.toUpperCase() === 'stressbalance')){
     40                solutionstring = 'StressbalanceSolution';
     41        }else if((solutionstring.toUpperCase() === 'mt') || (solutionstring.toUpperCase() === 'masstransport')){
     42                solutionstring = 'MasstransportSolution';       
     43        }else if((solutionstring.toUpperCase() === 'th') || (solutionstring.toUpperCase() === 'thermal')){
     44                solutionstring = 'ThermalSolution';
     45        }else if((solutionstring.toUpperCase() === 'st') || (solutionstring.toUpperCase() === 'steadystate')){
     46                solutionstring = 'SteadystateSolution';
     47        }else if((solutionstring.toUpperCase() === 'tr') || (solutionstring.toUpperCase() === 'transient')){
     48                solutionstring = 'TransientSolution';
     49        }else if((solutionstring.toUpperCase() === 'mc') || (solutionstring.toUpperCase() === 'balancethickness')){
     50                solutionstring = 'BalancethicknessSolution';
     51        }else if((solutionstring.toUpperCase() === 'bv') || (solutionstring.toUpperCase() === 'balancevelocity')){
     52                solutionstring = 'BalancevelocitySolution';
     53        }else if((solutionstring.toUpperCase() === 'bsl') || (solutionstring.toUpperCase() === 'bedslope')){
     54                solutionstring = 'BedSlopeSolution';
     55        }else if((solutionstring.toUpperCase() === 'ssl') || (solutionstring.toUpperCase() === 'surfaceslope')){
     56                solutionstring = 'SurfaceSlopeSolution';
     57        }else if((solutionstring.toUpperCase() === 'hy') || (solutionstring.toUpperCase() === 'hydrology')){
     58                solutionstring = 'HydrologySolution';
     59        }else if((solutionstring.toUpperCase() === 'da') || (solutionstring.toUpperCase() === 'damageevolution')){
     60                solutionstring = 'DamageEvolutionSolution';
     61        }else if((solutionstring.toUpperCase() === 'gia') || (solutionstring.toUpperCase() === 'gia')){
     62                solutionstring = 'GiaSolution';
     63        }else if((solutionstring.toUpperCase() === 'slr') || (solutionstring.toUpperCase() === 'sealevelrise')){
     64                solutionstring = 'SealevelriseSolution';
     65        }else{
     66                throw Error(sprintf("%s%s%s\n",'solutionstring ',solutionstring,' not supported!'));
    3567        }
    3668       
     
    4981                        console.log('checking model consistency');
    5082                }
    51                 if (solutionenum == FlaimSolutionEnum()){
     83                if (solutionstring === 'FlaimSolution'){
    5284                        md.priv.isconsistent=true;
    5385                        md.mesh.checkconsistency(md,solutionenum);
Note: See TracChangeset for help on using the changeset viewer.