Changeset 21065
- Timestamp:
- 08/04/16 02:11:14 (9 years ago)
- Location:
- issm/trunk-jpl/src/m
- Files:
-
- 32 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/SMBforcing.js
r20902 r21065 34 34 this.checkconsistency = function(md,solution,analyses) { //{{{ 35 35 36 if(ArrayAnyEqual(ArrayIsMember( MasstransportAnalysisEnum(),analyses),1)){36 if(ArrayAnyEqual(ArrayIsMember('MasstransportAnalysis',analyses),1)){ 37 37 checkfield(md,'fieldname','smb.mass_balance','timeseries',1,'NaN',1,'Inf',1); 38 38 } 39 if(ArrayAnyEqual(ArrayIsMember( BalancethicknessAnalysisEnum(),analyses),1)){39 if(ArrayAnyEqual(ArrayIsMember('BalancethicknessAnalysis',analyses),1)){ 40 40 checkfield(md,'fieldname','smb.mass_balance','size',[md.mesh.numberofvertices,1],'NaN',1,'Inf',1); 41 41 } -
issm/trunk-jpl/src/m/classes/autodiff.js
r20777 r21065 112 112 indep=this.independents[i]; 113 113 114 names[i]= StringToEnum(indep.name);114 names[i]=indep.name; 115 115 types[i]=indep.typetoscalar(); 116 116 } 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'); 118 118 WriteData(fid,prefix,'data',types,'name','md.autodiff.independent_object_types','format','IntMat','mattype',3); 119 119 } -
issm/trunk-jpl/src/m/classes/balancethickness.js
r20896 r21065 26 26 this.checkconsistency = function(md,solution,analyses){ // {{{ 27 27 //Early return 28 if (solution!= BalancethicknessSolutionEnum())return;28 if (solution!='BalancethicknessSolution')return; 29 29 30 30 checkfield(md,'fieldname','balancethickness.spcthickness'); -
issm/trunk-jpl/src/m/classes/basalforcings.js
r20916 r21065 41 41 this.checkconsistency = function(md,solution,analyses) { //{{{ 42 42 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)){ 45 45 checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1); 46 46 checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1); … … 48 48 } 49 49 50 if(ArrayAnyEqual(ArrayIsMember( BalancethicknessAnalysisEnum(),analyses),1)){50 if(ArrayAnyEqual(ArrayIsMember('BalancethicknessAnalysis',analyses),1)){ 51 51 checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); 52 52 checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); 53 53 } 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)){ 56 56 checkfield(md,'fieldname','basalforcings.groundedice_melting_rate','NaN',1,'Inf',1,'timeseries',1); 57 57 checkfield(md,'fieldname','basalforcings.floatingice_melting_rate','NaN',1,'Inf',1,'timeseries',1); -
issm/trunk-jpl/src/m/classes/calving.js
r20916 r21065 26 26 this.checkconsistency = function(md,solution,analyses) { // {{{ 27 27 //Early return 28 if (solution!= TransientSolutionEnum()| md.trans.ismovingfront==0) return;28 if (solution!='TransientSolution' | md.trans.ismovingfront==0) return; 29 29 30 30 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 43 43 fid=fopen(modelname+'.queue','w'); 44 44 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); 46 46 fclose(fid); 47 47 } //}}} -
issm/trunk-jpl/src/m/classes/damage.js
r20969 r21065 92 92 } 93 93 else if (this.law!=0){ 94 if (solution== DamageEvolutionSolutionEnum()){94 if (solution=='DamageEvolutionSolution'){ 95 95 throw Error('Invalid evolution law (md.damage.law) for a damage solution'); 96 96 } -
issm/trunk-jpl/src/m/classes/flaim.js
r20777 r21065 37 37 38 38 //Early return 39 if (solution!= FlaimSolutionEnum()) return;39 if (solution!='FlaimSolution') return; 40 40 41 41 checkfield(md,'fieldname','flaim.tracks','file',1); -
issm/trunk-jpl/src/m/classes/flowequation.js
r20993 r21065 49 49 50 50 //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) 53 53 ) return ; 54 54 … … 90 90 md = checkmessage(md,['no element types set for this model']); 91 91 } 92 if(ArrayAnyEqual(ArrayIsMember( StressbalanceSIAAnalysisEnum(), analyses),1)){92 if(ArrayAnyEqual(ArrayIsMember('StressbalanceSIAAnalysis', analyses),1)){ 93 93 if (ArrayAnyEqual(this.element_equation,1)){ 94 94 if(this.vertex_equation & ArrayAnyBelowStrict(md.mask.groundedice_levelset)){ … … 117 117 WriteData(fid,prefix,'object',this,'fieldname','borderFS','format','DoubleMat','mattype',1); 118 118 119 //convert approximations to enums119 //convert approximations to integers 120 120 WriteData(fid,prefix,'data',this.vertex_equation,'name','md.flowequation.vertex_equation','format','DoubleMat','mattype',1); 121 121 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 27 27 28 28 //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))){ 30 30 return; 31 31 } -
issm/trunk-jpl/src/m/classes/geometry.js
r20902 r21065 29 29 this.checkconsistency = function(md,solution,analyses) { //{{{ 30 30 31 if ((solution== TransientSolutionEnum() & md.trans.isgia) | (solution==GiaSolutionEnum())){31 if ((solution=='TransientSolution' & md.trans.isgia) | (solution=='GiaSolution')){ 32 32 checkfield(md,'fieldname','geometry.thickness','timeseries',1,'NaN',1,'Inf',1,'>=',0); 33 33 } … … 42 42 } 43 43 } 44 if (solution== TransientSolutionEnum()& md.trans.isgroundingline){44 if (solution=='TransientSolution' & md.trans.isgroundingline){ 45 45 checkfield(md,'fieldname','geometry.bed','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); 46 46 } -
issm/trunk-jpl/src/m/classes/gia.js
r20777 r21065 25 25 this.checkconsistency = function(md,solution,analyses) { // {{{ 26 26 27 if(!ArrayAnyEqual(ArrayIsMember( GiaAnalysisEnum(),analyses),1))return;27 if(!ArrayAnyEqual(ArrayIsMember('GiaAnalysis',analyses),1))return; 28 28 29 29 checkfield(md,'fieldname','gia.mantle_viscosity','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices,1],'>',0); … … 33 33 //be sure that if we are running a masstransport ice flow model coupled with gia, that thickness forcings 34 34 //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){ 36 36 //figure out if thickness is a transient forcing: 37 37 if (md.geometry.thickness.length == (md.mesh.numberofvertices+1)){ -
issm/trunk-jpl/src/m/classes/hydrologyshreve.js
r20917 r21065 33 33 34 34 //Early return 35 if(!ArrayAnyEqual(ArrayIsMember( HydrologyShreveAnalysisEnum(),analyses),1)) return;35 if(!ArrayAnyEqual(ArrayIsMember('HydrologyShreveAnalysis',analyses),1)) return; 36 36 37 37 checkfield(md,'fieldname','hydrology.spcwatercolumn','Inf',1,'timeseries',1); -
issm/trunk-jpl/src/m/classes/initialization.js
r20896 r21065 41 41 }//}}} 42 42 this.checkconsistency = function(md,solution,analyses) { //{{{ 43 if(ArrayAnyEqual(ArrayIsMember( StressbalanceAnalysisEnum(),analyses),1)){43 if(ArrayAnyEqual(ArrayIsMember('StressbalanceAnalysis',analyses),1)){ 44 44 if (!(isNaN(md.initialization.vx) | isNaN(md.initialization.vy))){ 45 45 checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); … … 47 47 } 48 48 } 49 if(ArrayAnyEqual(ArrayIsMember( MasstransportAnalysisEnum(),analyses),1)){49 if(ArrayAnyEqual(ArrayIsMember('MasstransportAnalysis',analyses),1)){ 50 50 checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); 51 51 checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); 52 52 } 53 if(ArrayAnyEqual(ArrayIsMember( BalancethicknessSolutionEnum(),analyses),1) & (solution==BalancethicknessSolutionEnum())){53 if(ArrayAnyEqual(ArrayIsMember('BalancethicknessSolution',analyses),1) & (solution=='BalancethicknessSolution')){ 54 54 checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); 55 55 checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); … … 65 65 } 66 66 } 67 if(ArrayAnyEqual(ArrayIsMember( ThermalAnalysisEnum(),analyses),1)){67 if(ArrayAnyEqual(ArrayIsMember('ThermalAnalysis',analyses),1)){ 68 68 checkfield(md,'fieldname','initialization.vx','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); 69 69 checkfield(md,'fieldname','initialization.vy','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); … … 74 74 checkfield(md,'fieldname','initialization.temperature','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices ,1]); 75 75 } 76 if( ArrayAnyEqual(ArrayIsMember( EnthalpyAnalysisEnum(),analyses),1) & md.thermal.isenthalpy){76 if( ArrayAnyEqual(ArrayIsMember('EnthalpyAnalysis',analyses),1) & md.thermal.isenthalpy){ 77 77 checkfield(md,'fieldname','initialization.waterfraction','>=',0,'size',[md.mesh.numberofvertices, 1]); 78 78 checkfield(md,'fieldname','initialization.watercolumn' ,'>=',0,'size',[md.mesh.numberofvertices, 1]); 79 79 } 80 if(ArrayAnyEqual(ArrayIsMember( HydrologyShreveAnalysisEnum(),analyses),1)){80 if(ArrayAnyEqual(ArrayIsMember('HydrologyShreveAnalysis',analyses),1)){ 81 81 if (md.hydrology.type() == 'hydrologyshreve'){ 82 82 checkfield(md,'fieldname','initialization.watercolumn','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices ,1]); 83 83 } 84 84 } 85 if(ArrayAnyEqual(ArrayIsMember( HydrologyDCInefficientAnalysisEnum(),analyses),1)){85 if(ArrayAnyEqual(ArrayIsMember('HydrologyDCInefficientAnalysis',analyses),1)){ 86 86 if (md.hydrology.type() == 'hydrologydc'){ 87 87 checkfield(md,'fieldname','initialization.sediment_head','NaN',1,'Inf',1,'size',[md.mesh.numberofvertices, 1]); 88 88 } 89 89 } 90 if(ArrayAnyEqual(ArrayIsMember( HydrologyDCEfficientAnalysisEnum(),analyses),1)){90 if(ArrayAnyEqual(ArrayIsMember('HydrologyDCEfficientAnalysis',analyses),1)){ 91 91 if (md.hydrology.type() == 'hydrologydc'){ 92 92 if (md.hydrology.isefficientlayer==1){ -
issm/trunk-jpl/src/m/classes/inversion.js
r20896 r21065 116 116 117 117 //Only SSA, HO and FS are supported right now 118 if (solution== StressbalanceSolutionEnum()){118 if (solution=='StressbalanceSolution'){ 119 119 if (!(md.flowequation.isSSA | md.flowequation.isHO | md.flowequation.isFS | md.flowequation.isL1L2)){ 120 120 md.checkmessage('inversion can only be performed for SSA, HO or FS ice flow models'); … … 122 122 } 123 123 124 if (solution== BalancethicknessSolutionEnum()){124 if (solution=='BalancethicknessSolution'){ 125 125 checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices ,1],'NaN',1,'Inf',1); 126 126 } 127 else if (solution== BalancethicknessSoftSolutionEnum()){127 else if (solution=='BalancethicknessSoftSolution'){ 128 128 checkfield(md,'fieldname','inversion.thickness_obs','size',[md.mesh.numberofvertices, 1],'NaN',1,'Inf',1); 129 129 } -
issm/trunk-jpl/src/m/classes/levelset.js
r20929 r21065 30 30 this.checkconsistency = function(md,solution,analyses) { // {{{ 31 31 //Early return 32 if (solution!= TransientSolutionEnum()| md.trans.ismovingfront==0) return;32 if (solution!='TransientSolution' | md.trans.ismovingfront==0) return; 33 33 34 34 checkfield(md,'fieldname','levelset.spclevelset','Inf',1,'timeseries',1); -
issm/trunk-jpl/src/m/classes/masstransport.js
r20940 r21065 48 48 49 49 //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; 51 51 52 52 checkfield(md,'fieldname','masstransport.spcthickness','Inf',1,'timeseries',1); -
issm/trunk-jpl/src/m/classes/matice.js
r20947 r21065 101 101 checkfield(md,'fieldname','materials.rheology_law','values',['None','Cuffey','CuffeyTemperate','Paterson','Arrhenius','LliboutryDuval']); 102 102 103 if(ArrayAnyEqual(ArrayIsMember( GiaAnalysisEnum(),analyses),1)){103 if(ArrayAnyEqual(ArrayIsMember('GiaAnalysis',analyses),1)){ 104 104 checkfield(md,'fieldname','materials.lithosphere_shear_modulus','>',0,'numel',1); 105 105 checkfield(md,'fieldname','materials.lithosphere_density','>',0,'numel',1); … … 107 107 checkfield(md,'fieldname','materials.mantle_density','>',0,'numel',1); 108 108 } 109 if (ArrayAnyEqual(ArrayIsMember( SealevelriseAnalysisEnum(),analyses),1)){109 if (ArrayAnyEqual(ArrayIsMember('SealevelriseAnalysis',analyses),1)){ 110 110 checkfield(md,'fieldname','materials.earth_density','>',0,'numel',1); 111 111 } -
issm/trunk-jpl/src/m/classes/mesh2d.js
r20969 r21065 72 72 73 73 switch(solution){ 74 case ThermalSolutionEnum():74 case 'ThermalSolution': 75 75 checkmessage(md,'thermal not supported for 2d mesh'); 76 76 break; -
issm/trunk-jpl/src/m/classes/outputdefinition.js
r20777 r21065 29 29 this.marshall=function(md,prefix,fid) { //{{{ 30 30 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'); 41 42 }//}}} 42 43 this.fix=function() { //{{{ -
issm/trunk-jpl/src/m/classes/outputdefinition.m
r21049 r21065 37 37 end % }}} 38 38 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 end47 WriteData(fid,prefix,'data',enums,'name','md.outputdefinition.list','format','DoubleMat','mattype',1);48 %}49 39 data={}; 50 40 for i=1:length(self.definitions) -
issm/trunk-jpl/src/m/classes/rifts.js
r20777 r21065 39 39 } 40 40 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']); 42 42 } 43 43 } … … 50 50 var numrifts; 51 51 //Process rift info 52 if ((this.riftstruct.length==0) | isNaN(this.riftstruct)){52 if ((this.riftstruct.length==0) | (this.riftstruct == null)){ 53 53 numrifts=0; 54 54 } … … 77 77 } 78 78 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'); 80 80 }//}}} 81 81 this.fix=function() { //{{{ 82 this.riftstruct=NullFix(this.riftstruct, NaN);82 this.riftstruct=NullFix(this.riftstruct,''); 83 83 this.riftproperties=NullFix(this.riftproperties,NaN); 84 84 }//}}} -
issm/trunk-jpl/src/m/classes/slr.js
r21000 r21065 37 37 38 38 //Early return 39 if(ArrayAnyEqual(ArrayIsMember( SealevelriseAnalysisEnum(),analyses),0))return;39 if(ArrayAnyEqual(ArrayIsMember('SealevelriseAnalysis',analyses),0))return; 40 40 41 41 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 35 35 36 36 //Early return 37 if (solution!= SteadystateSolutionEnum()) return;37 if (solution!='SteadystateSolution') return; 38 38 39 39 if (md.timestepping.time_step!=0){ -
issm/trunk-jpl/src/m/classes/stressbalance.js
r20902 r21065 87 87 88 88 //Early return 89 if(ArrayAnyEqual(ArrayIsMember( StressbalanceAnalysisEnum(),analyses),0))return;89 if(ArrayAnyEqual(ArrayIsMember('StressbalanceAnalysis',analyses),0))return; 90 90 91 91 checkfield(md,'fieldname','stressbalance.spcvx','Inf',1,'timeseries',1); -
issm/trunk-jpl/src/m/classes/thermal.js
r20902 r21065 67 67 68 68 //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; 70 70 71 71 checkfield(md,'fieldname','thermal.stabilization','numel',[1],'values',[0 ,1, 2]); 72 72 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){ 74 74 75 75 for(var i=0;i<md.mesh.numberofvertices;i++){ -
issm/trunk-jpl/src/m/classes/toolkits.js
r19860 r21065 67 67 68 68 //first write analysis: 69 string += sprintf('\n+%s\n',analysis); //append a + to recognize it's an analysis enum69 string += sprintf('\n+%s\n',analysis); //append a + to recognize it's an analysis string 70 70 71 71 //now, write options -
issm/trunk-jpl/src/m/classes/trans.js
r20777 r21065 50 50 51 51 //Early return 52 if (solution!= TransientSolutionEnum()) return;52 if (solution!='TransientSolution') return; 53 53 54 54 checkfield(md,'fieldname','trans.issmb','numel',[1],'values',[0 ,1]); -
issm/trunk-jpl/src/m/consistency/ismodelselfconsistent.js
r20259 r21065 10 10 //Get solution and associated analyses 11 11 solution=md.priv.solution; 12 if(typeof solution != 'number')throw Error('ismodelselfconsistent: did not providesolution type in the private class!');12 if(typeof solution !== 'string')throw Error('ismodelselfconsistent: did not provide correct solution type in the private class!'); 13 13 14 14 var analyses = AnalysisConfiguration(solution); … … 44 44 45 45 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']; 50 49 break; 51 50 52 case SteadystateSolutionEnum():53 analyses=[ StressbalanceAnalysisEnum(),StressbalanceVerticalAnalysisEnum(),StressbalanceSIAAnalysisEnum(),L2ProjectionBaseAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum()];51 }else if(solutiontype ==='SteadystateSolution'){ 52 analyses=['StressbalanceAnalysis','StressbalanceVerticalAnalysis','StressbalanceSIAAnalysis','L2ProjectionBaseAnalysis','ThermalAnalysis','MeltingAnalysis']; 54 53 break; 55 54 56 case ThermalSolutionEnum():57 analyses=[ EnthalpyAnalysisEnum(),ThermalAnalysisEnum(),MeltingAnalysisEnum()];55 }else if(solutiontype ==='ThermalSolution'){ 56 analyses=['EnthalpyAnalysis','ThermalAnalysis','MeltingAnalysis']; 58 57 break; 59 58 60 case MasstransportSolutionEnum():61 analyses=[ MasstransportAnalysisEnum()];59 }else if(solutiontype ==='MasstransportSolution'){ 60 analyses=['MasstransportAnalysis']; 62 61 break; 63 62 64 case BalancethicknessSolutionEnum():65 analyses=[ BalancethicknessAnalysisEnum()];63 }else if(solutiontype ==='BalancethicknessSolution'){ 64 analyses=['BalancethicknessAnalysis']; 66 65 break; 67 66 68 case Balancethickness2SolutionEnum():69 analyses=[ Balancethickness2AnalysisEnum()];67 }else if(solutiontype ==='Balancethickness2Solution'){ 68 analyses=['Balancethickness2Analysis']; 70 69 break; 71 70 72 case BalancethicknessSoftSolutionEnum():73 analyses=[ BalancethicknessAnalysisEnum()];71 }else if(solutiontype ==='BalancethicknessSoftSolution'){ 72 analyses=['BalancethicknessAnalysis']; 74 73 break; 75 74 76 case BalancevelocitySolutionEnum():77 analyses=[ BalancevelocityAnalysisEnum()];75 }else if(solutiontype ==='BalancevelocitySolution'){ 76 analyses=['BalancevelocityAnalysis']; 78 77 break; 79 78 80 case SurfaceSlopeSolutionEnum():81 analyses=[ L2ProjectionBaseAnalysisEnum()];79 }else if(solutiontype ==='SurfaceSlopeSolution'){ 80 analyses=['L2ProjectionBaseAnalysis']; 82 81 break; 83 82 84 case BedSlopeSolutionEnum():85 analyses=[ L2ProjectionBaseAnalysisEnum()];83 }else if(solutiontype ==='BedSlopeSolution'){ 84 analyses=['L2ProjectionBaseAnalysis']; 86 85 break; 87 86 88 case GiaSolutionEnum():89 analyses=[ GiaAnalysisEnum()];87 }else if(solutiontype ==='GiaSolution'){ 88 analyses=['GiaAnalysis']; 90 89 break; 91 90 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']; 94 93 break; 95 94 96 case FlaimSolutionEnum():97 analyses=[ FlaimAnalysisEnum()];95 }else if(solutiontype ==='FlaimSolution'){ 96 analyses=['FlaimAnalysis']; 98 97 break; 99 98 100 case SealevelriseSolutionEnum():101 analyses=[ SealevelriseAnalysisEnum()];99 }else if(solutiontype ==='SealevelriseSolution'){ 100 analyses=['SealevelriseAnalysis']; 102 101 break; 103 102 104 case HydrologySolutionEnum():105 analyses=[ L2ProjectionBaseAnalysisEnum(),HydrologyShreveAnalysisEnum(),HydrologyDCInefficientAnalysisEnum(),HydrologyDCEfficientAnalysisEnum()];103 }else if(solutiontype ==='HydrologySolution'){ 104 analyses=['L2ProjectionBaseAnalysis','HydrologyShreveAnalysis','HydrologyDCInefficientAnalysis','HydrologyDCEfficientAnalysis']; 106 105 break; 107 106 108 case DamageEvolutionSolutionEnum():109 analyses=[ DamageEvolutionAnalysisEnum()];107 }else if(solutiontype ==='DamageEvolutionSolution'){ 108 analyses=['DamageEvolutionAnalysis']; 110 109 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 } 114 113 } 115 114 return analyses; -
issm/trunk-jpl/src/m/inversions/marshallcostfunctions.js
r19823 r21065 1 1 function marshallcostfunctions(cost_functions){ 2 2 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'; 17 17 } 18 18 return data; -
issm/trunk-jpl/src/m/solve/WriteData.js
r20898 r21065 8 8 var args = Array.prototype.slice.call(arguments); 9 9 var options = new pairoptions(args.slice(2,args.length)); 10 var enumm;10 var name; 11 11 var dataini; 12 12 var data; … … 14 14 //Get data properties 15 15 if (options.exist('object')){ 16 //This is a object field, construct enumand data16 //This is a object field, construct string name and data 17 17 obj = options.getfieldvalue('object'); 18 18 fieldname = options.getfieldvalue('fieldname'); … … 80 80 //Step 2: write the data itself. 81 81 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)); 83 83 84 84 //first write length of record … … 92 92 } // }}} 93 93 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)); 95 95 96 96 //first write length of record … … 104 104 } // }}} 105 105 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)); 107 107 108 108 //first write length of record … … 196 196 //first write length of record 197 197 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)); 199 199 fid.fwrite(recordlength,'int'); 200 200 … … 276 276 else { 277 277 throw Error(sprintf("WriteData error message: data type: %s not supported yet! ('%s')", 278 format.toString(), EnumToString(enumm)));278 format.toString(),name)); 279 279 } 280 280 } -
issm/trunk-jpl/src/m/solve/solve.js
r21028 r21065 1 function solve(md,solution enum){1 function solve(md,solutionstring){ 2 2 //SOLVE - apply solution sequence for this model 3 3 // 4 4 // Usage: 5 // solve(md,solution enum,varargin)5 // solve(md,solutionstring,varargin) 6 6 // where varargin is a lit of paired arguments of string OR enums 7 7 // 8 8 // 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' 19 22 // 20 23 // extra options: … … 26 29 // 27 30 // Examples: 28 // md=solve(md,StressbalanceSolutionEnum); 31 // md=solve(md,'Stressbalance'); 32 // md=solve(md,'sb'); 29 33 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 32 38 //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!')); 35 67 } 36 68 … … 49 81 console.log('checking model consistency'); 50 82 } 51 if (solution enum == FlaimSolutionEnum()){83 if (solutionstring === 'FlaimSolution'){ 52 84 md.priv.isconsistent=true; 53 85 md.mesh.checkconsistency(md,solutionenum);
Note:
See TracChangeset
for help on using the changeset viewer.