Changeset 17079
- Timestamp:
- 01/09/14 11:55:33 (11 years ago)
- Location:
- issm/trunk-jpl/src/m/classes
- Files:
-
- 1 deleted
- 14 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/SMB.m
r17074 r17079 15 15 error('constructor not supported'); 16 16 end 17 end % }}} 18 function self = extrude(self,md) % {{{ 19 20 self.mass_balance=project3d(md,'vector',self.mass_balance,'type','node'); 21 17 22 end % }}} 18 23 function self = initialize(self,md) % {{{ -
issm/trunk-jpl/src/m/classes/SMB.py
r17074 r17079 2 2 from EnumDefinitions import * 3 3 from checkfield import * 4 from project3d import * 4 5 from WriteData import * 5 6 … … 20 21 return string 21 22 #}}} 23 def extrude(self,md): # {{{ 24 25 self.mass_balance=project3d(md,'vector',self.mass_balance,'type','node'); 26 return self 27 #}}} 22 28 def initialize(self,md): # {{{ 23 29 -
issm/trunk-jpl/src/m/classes/SMBgradients.m
r17078 r17079 19 19 error('constructor not supported'); 20 20 end 21 end % }}} 22 function self = extrude(self,md) % {{{ 23 24 %Nothing for now 25 21 26 end % }}} 22 27 function self = initialize(self,md) % {{{ -
issm/trunk-jpl/src/m/classes/SMBgradients.py
r17078 r17079 2 2 from EnumDefinitions import * 3 3 from checkfield import * 4 from project3d import * 4 5 from WriteData import * 5 6 … … 29 30 return string 30 31 #}}} 32 def extrude(self,md): # {{{ 33 34 #Nothing for now 35 return self 36 #}}} 31 37 def initialize(self,md): # {{{ 32 38 -
issm/trunk-jpl/src/m/classes/SMBpdd.m
r17078 r17079 25 25 error('constructor not supported'); 26 26 end 27 end % }}} 28 function self = extrude(self,md) % {{{ 29 30 self.precipitation=project3d(md,'vector',self.precipitation,'type','node'); 31 self.monthlytemperatures=project3d(md,'vector',self.monthlytemperatures,'type','node'); 32 if(self.isdelta18o),self.temperatures_lgm=project3d(md,'vector',self.temperatures_lgm,'type','node');end 33 if(self.isdelta18o),self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node');end 34 if(self.isdelta18o),self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node');end 35 36 27 37 end % }}} 28 38 function self = initialize(self,md) % {{{ -
issm/trunk-jpl/src/m/classes/SMBpdd.py
r17078 r17079 2 2 from EnumDefinitions import * 3 3 from checkfield import * 4 from project3d import * 4 5 from WriteData import * 5 6 … … 43 44 return string 44 45 #}}} 46 def extrude(self,md): # {{{ 47 48 self.precipitation=project3d(md,'vector',self.precipitation,'type','node'); 49 self.monthlytemperatures=project3d(md,'vector',self.monthlytemperatures,'type','node'); 50 if self.isdelta18o: self.temperatures_lgm=project3d(md,'vector',self.temperatures_lgm,'type','node') 51 if self.isdelta18o: self.temperatures_presentday=project3d(md,'vector',self.temperatures_presentday,'type','node') 52 if self.isdelta18o: self.precipitations_presentday=project3d(md,'vector',self.precipitations_presentday,'type','node') 53 return self 54 #}}} 45 55 def initialize(self,md): # {{{ 46 56 -
issm/trunk-jpl/src/m/classes/model.m
r17022 r17079 103 103 if ~isa(md.outputdefinition,'outputdefinition'), 104 104 md.outputdefinition=outputdefinition(); 105 end 106 %2014 January 9th 107 if isa(md.surfaceforcings,'surfaceforcings'), 108 disp('Recovering old surfaceforcings class'); 109 mass_balance=md.surfaceforcings.mass_balance; 110 md.surfaceforcings=SMB(); 111 md.surfaceforcings.mass_balance=mass_balance; 105 112 end 106 113 end% }}} … … 673 680 md.inversion.vel_obs=project3d(md,'vector',md.inversion.vel_obs,'type','node'); 674 681 md.inversion.thickness_obs=project3d(md,'vector',md.inversion.thickness_obs,'type','node'); 675 md.surfaceforcings.mass_balance=project3d(md,'vector',md.surfaceforcings.mass_balance,'type','node'); 676 md.surfaceforcings.precipitation=project3d(md,'vector',md.surfaceforcings.precipitation,'type','node'); 682 md.surfaceforcings = extrude(md.surfaceforcings,md); 677 683 md.balancethickness.thickening_rate=project3d(md,'vector',md.balancethickness.thickening_rate,'type','node'); 678 md.surfaceforcings.monthlytemperatures=project3d(md,'vector',md.surfaceforcings.monthlytemperatures,'type','node');679 684 680 685 %results … … 760 765 if ~isnan(md.inversion.max_parameters),md.inversion.max_parameters=project3d(md,'vector',md.inversion.max_parameters,'type','node');end; 761 766 if ~isnan(md.qmu.partition),md.qmu.partition=project3d(md,'vector',md.qmu.partition','type','node');end 762 if(md.surfaceforcings.isdelta18o),md.surfaceforcings.temperatures_lgm=project3d(md,'vector',md.surfaceforcings.temperatures_lgm,'type','node');end763 if(md.surfaceforcings.isdelta18o),md.surfaceforcings.temperatures_presentday=project3d(md,'vector',md.surfaceforcings.temperatures_presentday,'type','node');end764 if(md.surfaceforcings.isdelta18o),md.surfaceforcings.precipitations_presentday=project3d(md,'vector',md.surfaceforcings.precipitations_presentday,'type','node');end765 767 766 768 %Put lithostatic pressure if there is an existing pressure … … 1064 1066 md.geometry = geometry(); 1065 1067 md.initialization = initialization(); 1066 md.surfaceforcings = surfaceforcings();1068 md.surfaceforcings = SMB(); 1067 1069 md.basalforcings = basalforcings(); 1068 1070 md.friction = friction(); … … 1079 1081 md.cluster = generic(); 1080 1082 md.balancethickness = balancethickness(); 1081 md.stressbalance 1083 md.stressbalance = stressbalance(); 1082 1084 md.hydrology = hydrologyshreve(); 1083 md.masstransport 1085 md.masstransport = masstransport(); 1084 1086 md.thermal = thermal(); 1085 1087 md.steadystate = steadystate(); -
issm/trunk-jpl/src/m/classes/model.py
r17078 r17079 60 60 self.geometry = geometry() 61 61 self.constants = constants() 62 self.surfaceforcings = surfaceforcings()62 self.surfaceforcings = SMB() 63 63 self.basalforcings = basalforcings() 64 64 self.materials = matice() … … 576 576 md.inversion.vel_obs=project3d(md,'vector',md.inversion.vel_obs,'type','node') 577 577 md.inversion.thickness_obs=project3d(md,'vector',md.inversion.thickness_obs,'type','node') 578 md.surfaceforcings.mass_balance=project3d(md,'vector',md.surfaceforcings.mass_balance,'type','node') 579 md.surfaceforcings.precipitation=project3d(md,'vector',md.surfaceforcings.precipitation,'type','node') 578 md.surfaceforcings.extrude(md) 580 579 md.balancethickness.thickening_rate=project3d(md,'vector',md.balancethickness.thickening_rate,'type','node') 581 md.surfaceforcings.monthlytemperatures=project3d(md,'vector',md.surfaceforcings.monthlytemperatures,'type','node')582 580 583 581 #results … … 662 660 if not numpy.any(numpy.isnan(md.qmu.partition)): 663 661 md.qmu.partition=project3d(md,'vector',numpy.transpose(md.qmu.partition),'type','node') 664 if(md.surfaceforcings.isdelta18o):665 md.surfaceforcings.temperatures_lgm=project3d(md,'vector',md.surfaceforcings.temperatures_lgm,'type','node')666 if(md.surfaceforcings.isdelta18o):667 md.surfaceforcings.temperatures_presentday=project3d(md,'vector',md.surfaceforcings.temperatures_presentday,'type','node')668 if(md.surfaceforcings.isdelta18o):669 md.surfaceforcings.precipitations_presentday=project3d(md,'vector',md.surfaceforcings.precipitations_presentday,'type','node')670 662 671 663 #Put lithostatic pressure if there is an existing pressure -
issm/trunk-jpl/src/m/classes/oldclasses/README
r13239 r17079 1 1 We put here all old classes so that matlab can still load old models 2 2 When an object is renamed or deleted, matlab is not able to load it 3 anymore. We keep it here so that matlab can load the object 3 anymore. We keep it here so that matlab can load the object (just remove all 4 methods) -
issm/trunk-jpl/src/m/classes/oldclasses/diagnostic.m
r15987 r17079 26 26 requested_outputs = NaN; 27 27 end 28 methods29 function obj = diagnostic(varargin) % {{{30 switch nargin31 case 032 obj=setdefaultparameters(obj);33 otherwise34 error('constructor not supported');35 end36 end % }}}37 function obj = setdefaultparameters(obj) % {{{38 39 %maximum of non-linear iterations.40 obj.maxiter=100;41 42 %Convergence criterion: absolute, relative and residual43 obj.restol=10^-4;44 obj.reltol=0.01;45 obj.abstol=10;46 47 obj.FSreconditioning=10^13;48 obj.shelf_dampening=0;49 50 %Penalty factor applied kappa=max(stiffness matrix)*10^penalty_factor51 obj.penalty_factor=3;52 53 %coefficient to update the viscosity between each iteration of54 %a diagnostic according to the following formula55 %viscosity(n)=viscosity(n)+viscosity_overshoot(viscosity(n)-viscosity(n-1))56 obj.viscosity_overshoot=0;57 58 %Stop the iterations of rift if below a threshold59 obj.rift_penalty_threshold=0;60 61 %in some solutions, it might be needed to stop a run when only62 %a few constraints remain unstable. For thermal computation, this63 %parameter is often used.64 obj.rift_penalty_lock=10;65 66 end % }}}67 function disp(obj) % {{{68 69 disp(sprintf(' Stressbalance solution parameters:'));70 71 disp(sprintf('\n %s','Convergence criteria:'));72 fielddisplay(obj,'restol','mechanical equilibrium residual convergence criterion');73 fielddisplay(obj,'reltol','velocity relative convergence criterion, NaN: not applied');74 fielddisplay(obj,'abstol','velocity absolute convergence criterion, NaN: not applied');75 fielddisplay(obj,'isnewton','0: Picard''s fixed point, 1: Newton''s method, 2: hybrid');76 fielddisplay(obj,'maxiter','maximum number of nonlinear iterations');77 fielddisplay(obj,'viscosity_overshoot','over-shooting constant new=new+C*(new-old)');78 79 disp(sprintf('\n %s','boundary conditions:'));80 fielddisplay(obj,'spcvx','x-axis velocity constraint (NaN means no constraint) [m/yr]');81 fielddisplay(obj,'spcvy','y-axis velocity constraint (NaN means no constraint) [m/yr]');82 fielddisplay(obj,'spcvz','z-axis velocity constraint (NaN means no constraint) [m/yr]');83 fielddisplay(obj,'icefront','segments on ice front list (last column 0: Air, 1: Water, 2: Ice)');84 85 disp(sprintf('\n %s','Rift options:'));86 fielddisplay(obj,'rift_penalty_threshold','threshold for instability of mechanical constraints');87 fielddisplay(obj,'rift_penalty_lock','number of iterations before rift penalties are locked');88 89 disp(sprintf('\n %s','Penalty options:'));90 fielddisplay(obj,'penalty_factor','offset used by penalties: penalty = Kmax*10^offset');91 fielddisplay(obj,'vertex_pairing','pairs of vertices that are penalized');92 93 disp(sprintf('\n %s','Other:'));94 fielddisplay(obj,'shelf_dampening','use dampening for floating ice ? Only for FS model');95 fielddisplay(obj,'FSreconditioning','multiplier for incompressibility equation. Only for FS model');96 fielddisplay(obj,'referential','local referential');97 fielddisplay(obj,'loadingforce','loading force applied on each point [N/m^3]');98 fielddisplay(obj,'requested_outputs','additional outputs requested');99 100 end % }}}101 102 function marshall(obj,md,fid) % {{{103 WriteData(fid,'object',obj,'fieldname','spcvx','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);104 WriteData(fid,'object',obj,'fieldname','spcvy','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);105 WriteData(fid,'object',obj,'fieldname','spcvz','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);106 WriteData(fid,'object',obj,'fieldname','restol','format','Double');107 WriteData(fid,'object',obj,'fieldname','reltol','format','Double');108 WriteData(fid,'object',obj,'fieldname','abstol','format','Double');109 WriteData(fid,'object',obj,'fieldname','isnewton','format','Integer');110 WriteData(fid,'object',obj,'fieldname','FSreconditioning','format','Double');111 WriteData(fid,'object',obj,'fieldname','viscosity_overshoot','format','Double');112 WriteData(fid,'object',obj,'fieldname','maxiter','format','Integer');113 WriteData(fid,'object',obj,'fieldname','shelf_dampening','format','Integer');114 WriteData(fid,'object',obj,'fieldname','vertex_pairing','format','DoubleMat','mattype',3);115 WriteData(fid,'object',obj,'fieldname','penalty_factor','format','Double');116 WriteData(fid,'object',obj,'fieldname','rift_penalty_lock','format','Integer');117 WriteData(fid,'object',obj,'fieldname','rift_penalty_threshold','format','Integer');118 WriteData(fid,'object',obj,'fieldname','referential','format','DoubleMat','mattype',1);119 WriteData(fid,'data',obj.loadingforce(:,1),'format','DoubleMat','mattype',1,'enum',LoadingforceXEnum);120 WriteData(fid,'data',obj.loadingforce(:,2),'format','DoubleMat','mattype',1,'enum',LoadingforceYEnum);121 WriteData(fid,'data',obj.loadingforce(:,3),'format','DoubleMat','mattype',1,'enum',LoadingforceZEnum);122 WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3);123 124 %marshall ice front125 data=obj.icefront;126 pos=find(data(:,end)==0); data(pos,end)=AirEnum();127 pos=find(data(:,end)==1); data(pos,end)=WaterEnum();128 pos=find(data(:,end)==2); data(pos,end)=IceEnum();129 WriteData(fid,'data',data,'enum',StressbalanceIcefrontEnum(),'format','DoubleMat','mattype',3);130 end % }}}131 end132 28 end -
issm/trunk-jpl/src/m/classes/oldclasses/hydrology.m
r15131 r17079 14 14 stabilization = 0; 15 15 end 16 methods17 function obj = hydrology(varargin) % {{{18 switch nargin19 case 020 obj=setdefaultparameters(obj);21 otherwise22 error('constructor not supported');23 end24 end % }}}25 function obj = setdefaultparameters(obj) % {{{26 27 %Parameters from Johnson's 2002 thesis, section 3.5.428 obj.n=.02;29 obj.CR=.01;30 obj.p=2;31 obj.q=1;32 obj.kn=0;33 34 %Type of stabilization to use 0:nothing 1:artificial_diffusivity35 obj.stabilization=1;36 end % }}}37 function md = checkconsistency(obj,md,solution,analyses) % {{{38 39 %Early return40 if ~ismember(HydrologyAnalysisEnum(),analyses), return; end41 42 md = checkfield(md,'hydrology.spcwatercolumn','forcing',1);43 md = checkfield(md,'hydrology.stabilization','>=',0);44 end % }}}45 function disp(obj) % {{{46 disp(sprintf(' hydrology solution parameters:'));47 48 fielddisplay(obj,'spcwatercolumn','water thickness constraints (NaN means no constraint)');49 fielddisplay(obj,'n','Manning roughness coefficient');50 fielddisplay(obj,'CR','tortuosity parameter');51 fielddisplay(obj,'p','dimensionless exponent in Manning velocity formula');52 fielddisplay(obj,'q','dimensionless exponent in Manning velocity formula');53 fielddisplay(obj,'kn','parameter in effective pressure formula');54 fielddisplay(obj,'stabilization','artificial diffusivity (default is 1). can be more than 1 to increase diffusivity.');55 56 end % }}}57 function marshall(obj,md,fid) % {{{58 WriteData(fid,'object',obj,'fieldname','spcwatercolumn','format','DoubleMat','mattype',1);59 WriteData(fid,'object',obj,'fieldname','n','format','Double');60 WriteData(fid,'object',obj,'fieldname','CR','format','Double');61 WriteData(fid,'object',obj,'fieldname','p','format','Double');62 WriteData(fid,'object',obj,'fieldname','q','format','Double');63 WriteData(fid,'object',obj,'fieldname','kn','format','Double');64 WriteData(fid,'object',obj,'fieldname','stabilization','format','Double');65 end % }}}66 end67 16 end -
issm/trunk-jpl/src/m/classes/oldclasses/prognostic.m
r15767 r17079 14 14 requested_outputs = NaN; 15 15 end 16 methods17 function obj = prognostic(varargin) % {{{18 switch nargin19 case 020 obj=setdefaultparameters(obj);21 otherwise22 error('constructor not supported');23 end24 end % }}}25 function obj = setdefaultparameters(obj) % {{{26 27 %Type of stabilization to use 0:nothing 1:artificial_diffusivity 3:Discontinuous Galerkin28 obj.stabilization=1;29 30 %Factor applied to compute the penalties kappa=max(stiffness matrix)*10^penalty_factor31 obj.penalty_factor=3;32 33 %Minimum ice thickness that can be used34 obj.min_thickness=1;35 36 %Hydrostatic adjustment37 obj.hydrostatic_adjustment='Absolute';38 end % }}}39 function md = checkconsistency(obj,md,solution,analyses) % {{{40 41 %Early return42 if ~ismember(PrognosticAnalysisEnum(),analyses) | (solution==TransientSolutionEnum() & md.transient.isprognostic==0), return; end43 44 md = checkfield(md,'prognostic.spcthickness','forcing',1);45 md = checkfield(md,'prognostic.hydrostatic_adjustment','values',{'Absolute' 'Incremental'});46 md = checkfield(md,'prognostic.stabilization','values',[0 1 2 3]);47 md = checkfield(md,'prognostic.min_thickness','>',0);48 if ~isempty(md.prognostic.requested_outputs),49 md = checkfield(md,'prognostic.requested_outputs','size',[NaN 1]);50 end51 52 end % }}}53 function disp(obj) % {{{54 disp(sprintf(' Prognostic solution parameters:'));55 fielddisplay(obj,'spcthickness','thickness constraints (NaN means no constraint) [m]');56 fielddisplay(obj,'min_thickness','minimum ice thickness allowed [m]');57 fielddisplay(obj,'hydrostatic_adjustment','adjustment of ice shelves surface and bed elevations: ''Incremental'' or ''Absolute'' ');58 fielddisplay(obj,'stabilization','0: no, 1: artificial_diffusivity, 2: streamline upwinding, 3: discontinuous Galerkin');59 60 disp(sprintf('\n %s','Penalty options:'));61 fielddisplay(obj,'penalty_factor','offset used by penalties: penalty = Kmax*10^offset');62 fielddisplay(obj,'vertex_pairing','pairs of vertices that are penalized');63 fielddisplay(obj,'requested_outputs','additional outputs requested');64 65 end % }}}66 function marshall(obj,md,fid) % {{{67 WriteData(fid,'object',obj,'fieldname','spcthickness','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);68 WriteData(fid,'object',obj,'fieldname','min_thickness','format','Double');69 WriteData(fid,'data',StringToEnum(obj.hydrostatic_adjustment),'format','Integer','enum',PrognosticHydrostaticAdjustmentEnum());70 WriteData(fid,'object',obj,'fieldname','stabilization','format','Integer');71 WriteData(fid,'object',obj,'fieldname','vertex_pairing','format','DoubleMat','mattype',3);72 WriteData(fid,'object',obj,'fieldname','penalty_factor','format','Double');73 WriteData(fid,'object',obj,'fieldname','requested_outputs','format','DoubleMat','mattype',3);74 end % }}}75 end76 16 end -
issm/trunk-jpl/src/m/classes/oldclasses/surfaceforcings.m
r17078 r17079 24 24 s0p = 0; 25 25 end 26 methods27 function obj = surfaceforcings(varargin) % {{{28 switch nargin29 case 030 obj=setdefaultparameters(obj);31 otherwise32 error('constructor not supported');33 end34 end % }}}35 function self = initialize(self,md) % {{{36 37 if (isnan(self.precipitation) & (self.ispdd==1)),38 self.precipitation=zeros(md.mesh.numberofvertices,1);39 disp(' no surfaceforcings.precipitation specified: values set as zero');40 end41 if (isnan(self.mass_balance) & (self.ispdd==0)),42 self.mass_balance=zeros(md.mesh.numberofvertices,1);43 disp(' no surfaceforcings.mass_balance specified: values set as zero');44 end45 46 end % }}}47 function obj = setdefaultparameters(obj) % {{{48 49 %pdd method not used in default mode50 obj.ispdd=0;51 obj.issmbgradients=0;52 obj.isdelta18o=0;53 obj.desfac=0.5;54 obj.s0p=0;55 end % }}}56 function md = checkconsistency(obj,md,solution,analyses) % {{{57 58 if ismember(MasstransportAnalysisEnum(),analyses),59 md = checkfield(md,'fieldname','surfaceforcings.ispdd','numel',[1],'values',[0 1]);60 md = checkfield(md,'fieldname','surfaceforcings.issmbgradients','numel',[1],'values',[0 1]);61 if(obj.ispdd)62 md = checkfield(md,'fieldname','surfaceforcings.desfac','<=',1,'numel',1);63 md = checkfield(md,'fieldname','surfaceforcings.s0p','>=',0,'numel',1);64 if(obj.isdelta18o==0)65 md = checkfield(md,'fieldname','surfaceforcings.monthlytemperatures','forcing',1,'NaN',1);66 md = checkfield(md,'fieldname','surfaceforcings.precipitation','forcing',1,'NaN',1);67 else68 md = checkfield(md,'fieldname','surfaceforcings.delta18o','NaN',1);69 md = checkfield(md,'fieldname','surfaceforcings.delta18o_surface','NaN',1);70 md = checkfield(md,'fieldname','surfaceforcings.temperatures_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);71 md = checkfield(md,'fieldname','surfaceforcings.temperatures_lgm','size',[md.mesh.numberofvertices+1 12],'NaN',1);72 md = checkfield(md,'fieldname','surfaceforcings.precipitations_presentday','size',[md.mesh.numberofvertices+1 12],'NaN',1);73 end74 elseif(obj.issmbgradients)75 md = checkfield(md,'fieldname','surfaceforcings.href','forcing',1,'NaN',1);76 md = checkfield(md,'fieldname','surfaceforcings.smbref','forcing',1,'NaN',1);77 md = checkfield(md,'fieldname','surfaceforcings.b_pos','forcing',1,'NaN',1);78 md = checkfield(md,'fieldname','surfaceforcings.b_neg','forcing',1,'NaN',1);79 else80 md = checkfield(md,'fieldname','surfaceforcings.mass_balance','forcing',1,'NaN',1);81 end82 end83 if ismember(BalancethicknessAnalysisEnum(),analyses),84 md = checkfield(md,'fieldname','surfaceforcings.mass_balance','size',[md.mesh.numberofvertices 1],'NaN',1);85 end86 end % }}}87 function disp(obj) % {{{88 disp(sprintf(' surface forcings parameters:'));89 90 disp(sprintf('\n General parameters:'));91 fielddisplay(obj,'mass_balance','surface mass balance [m/yr ice eq]');92 93 disp(sprintf('\n PDD and deltaO18 parameters:'));94 fielddisplay(obj,'ispdd','is pdd activated (0 or 1, default is 0)');95 fielddisplay(obj,'isdelta18o','is temperature and precipitation delta18o parametrisation activated (0 or 1, default is 0)');96 fielddisplay(obj,'desfac','desertification elevation factor (between 0 and 1, default is 0.5) [m]');97 fielddisplay(obj,'s0p','should be set to elevation from precip source (between 0 and a few 1000s m, default is 0) [m]');98 fielddisplay(obj,'monthlytemperatures','monthly surface temperatures [K], required if pdd is activated and delta18o not activated');99 fielddisplay(obj,'precipitation','surface precipitation [m/yr water eq]');100 fielddisplay(obj,'temperatures_presentday','monthly present day surface temperatures [K], required if pdd is activated and delta18o activated');101 fielddisplay(obj,'temperatures_lgm','monthly LGM surface temperatures [K], required if pdd is activated and delta18o activated');102 fielddisplay(obj,'precipitations_presentday','monthly surface precipitation [m/yr water eq], required if pdd is activated and delta18o activated');103 fielddisplay(obj,'delta18o','delta18o, required if pdd is activated and delta18o activated');104 fielddisplay(obj,'delta18o_surface','surface elevation of the delta18o site, required if pdd is activated and delta18o activated');105 106 disp(sprintf('\n SMB gradients parameters:'));107 fielddisplay(obj,'issmbgradients','is smb gradients method activated (0 or 1, default is 0)');108 fielddisplay(obj,'href',' reference elevation from which deviation is used to calculate SMB adjustment in smb gradients method');109 fielddisplay(obj,'smbref',' reference smb from which deviation is calculated in smb gradients method');110 fielddisplay(obj,'b_pos',' slope of hs - smb regression line for accumulation regime required if smb gradients is activated');111 fielddisplay(obj,'b_neg',' slope of hs - smb regression line for ablation regime required if smb gradients is activated');112 113 end % }}}114 function marshall(obj,md,fid) % {{{115 116 yts=365.0*24.0*3600.0;117 118 WriteData(fid,'enum',SurfaceforcingsEnum(),'data',SurfaceforcingsEnum(),'format','Integer');119 120 WriteData(fid,'object',obj,'fieldname','precipitation','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);121 WriteData(fid,'object',obj,'fieldname','mass_balance','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);122 WriteData(fid,'object',obj,'fieldname','ispdd','format','Boolean');123 WriteData(fid,'object',obj,'fieldname','isdelta18o','format','Boolean');124 if obj.ispdd,125 WriteData(fid,'object',obj,'fieldname','desfac','format','Double');126 WriteData(fid,'object',obj,'fieldname','s0p','format','Double');127 if obj.isdelta18o128 WriteData(fid,'object',obj,'fieldname','temperatures_presentday','format','DoubleMat','mattype',1);129 WriteData(fid,'object',obj,'fieldname','temperatures_lgm','format','DoubleMat','mattype',1);130 WriteData(fid,'object',obj,'fieldname','precipitations_presentday','format','DoubleMat','mattype',1);131 WriteData(fid,'object',obj,'fieldname','delta18o_surface','format','DoubleMat','mattype',1);132 WriteData(fid,'object',obj,'fieldname','delta18o','format','DoubleMat','mattype',1);133 else134 WriteData(fid,'object',obj,'fieldname','monthlytemperatures','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);135 end136 end137 WriteData(fid,'object',obj,'fieldname','issmbgradients','format','Boolean');138 if obj.issmbgradients,139 WriteData(fid,'object',obj,'fieldname','href','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1);140 WriteData(fid,'object',obj,'fieldname','smbref','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);141 WriteData(fid,'object',obj,'fieldname','b_pos','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);142 WriteData(fid,'object',obj,'fieldname','b_neg','format','DoubleMat','mattype',1,'scale',1./yts,'forcinglength',md.mesh.numberofvertices+1);143 end144 145 end % }}}146 end147 26 end -
issm/trunk-jpl/src/m/classes/transient.m
r17075 r17079 6 6 classdef transient 7 7 properties (SetAccess=public) 8 ismasstransport 9 isstressbalance 8 ismasstransport = 0; 9 isstressbalance = 0; 10 10 isthermal = 0; 11 11 isgroundingline = 0; 12 12 isgia = 0; 13 isdamage 14 islevelset= 0;13 isdamage = 0; 14 islevelset = 0; 15 15 requested_outputs = {}; 16 16 end -
issm/trunk-jpl/src/m/classes/transient.py
r17075 r17079 13 13 14 14 def __init__(self): # {{{ 15 self.ismasstransport 16 self.isstressbalance 15 self.ismasstransport = False 16 self.isstressbalance = False 17 17 self.isthermal = False 18 18 self.isgroundingline = False
Note:
See TracChangeset
for help on using the changeset viewer.