Changeset 18757 for issm/trunk-jpl/src/m/classes/masstransport.m
- Timestamp:
- 11/07/14 15:38:27 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/classes/masstransport.m
r18738 r18757 7 7 properties (SetAccess=public) 8 8 spcthickness = NaN; 9 iscalvingrate = 0;10 calvingrate = NaN;11 levermann_calving_coeff= 0;12 9 isfreesurface = 0; 13 10 min_thickness = 0; … … 45 42 end 46 43 methods 47 function createxml(obj,fid) % {{{48 fprintf(fid, '<!-- masstransport -->\n');49 50 % Masstransport solution parameters51 fprintf(fid,'%s\n%s\n%s\n','<frame key="1" label="Masstransport solution parameters">','<section name="masstransport" />');52 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="spcthickness" type="',class(obj.spcthickness),'" default="',convert2str(obj.spcthickness),'">',' <section name="masstransport" />',' <help> thickness constraints (NaN means no constraint) [m] </help>',' </parameter>');53 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="iscalvingrate" type="',class(obj.iscalvingrate),'" default="',convert2str(obj.iscalvingrate),'">',' <section name="masstransport" />',' <help> do we use calving (loss of ice) </help>',' </parameter>');54 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="calvingrate" type="',class(obj.calvingrate),'" default="',convert2str(obj.calvingrate),'">',' <section name="masstransport" />',' <help> calving rate at given location [m/a] </help>',' </parameter>');55 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="levermann_calving_coeff" type="',class(obj.levermann_calving_coeff),'" default="',convert2str(obj.levermann_calving_coeff),'">',' <section name="masstransport" />',' <help> Proportionality coefficient in Levermann model </help>',' </parameter>');56 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="isfreesurface" type="',class(obj.isfreesurface),'" default="',convert2str(obj.isfreesurface),'">',' <section name="masstransport" />',' <help> do we use free surfaces (FS only) are mass conservation </help>',' </parameter>');57 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="min_thickness" type="',class(obj.min_thickness),'" default="',convert2str(obj.min_thickness),'">',' <section name="masstransport" />',' <help> minimum ice thickness allowed [m] </help>',' </parameter>');58 59 % hydrostatic_adjustment drop-down (incremental or absolute )60 fprintf(fid,'%s\n%s\n%s\n%s\n',' <parameter key ="hydrostatic_adjustment" type="alternative" optional ="false">',' <section name="masstransport" />',' <help> adjustment of ice shelves surface and bed elevations: ''Incremental'' or ''Absolute'' </help>');61 fprintf(fid,'%s\n',' <option value="Incremental" type="string" default="true"> </option>');62 fprintf(fid,'%s\n%s\n',' <option value="Absolute" type="string" default="false"> </option>','</parameter>');63 64 %stabilization drop-down (0, 1, 2, or 3)65 fprintf(fid,'%s\n%s\n%s\n%s\n',' <parameter key ="stabilization" type="alternative" optional="false">',' <section name="masstransport" />',' <help> 0: no, 1: artificial_diffusivity, 2: streamline upwinding, 3: discontinuous Galerkin </help>');66 fprintf(fid,'%s\n',' <option value="0" type="string" default="true"> </option>');67 fprintf(fid,'%s\n',' <option value="1" type="string" default="false"> </option>');68 fprintf(fid,'%s\n',' <option value="2" type="string" default="false"> </option>');69 fprintf(fid,'%s\n%s\n',' <option value="3" type="string" default="false"> </option>','</parameter>');70 71 fprintf(fid,'%s\n%s\n','</frame>');72 73 %Penalty options74 fprintf(fid,'%s\n%s\n%s\n','<frame key="2" label="Penalty options">','<section name="masstransport" />');75 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="vertex_pairing" type="',class(obj.vertex_pairing),'" default="',convert2str(obj.vertex_pairing),'">',' <section name="masstransport" />',' <help> offset used by penalties: penalty = Kmax*10^offset </help>',' </parameter>');76 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="penalty_factor" type="',class(obj.penalty_factor),'" default="',convert2str(obj.penalty_factor),'">',' <section name="masstransport" />',' <help> pairs of vertices that are penalized </help>',' </parameter>');77 fprintf(fid,'%s%s%s%s%s\n%s\n%s\n%s\n',' <parameter key ="requested_outputs" type="',class(obj.requested_outputs),'" default="',convert2str(obj.requested_outputs),'">',' <section name="masstransport" />',' <help> additional outputs requested </help>',' </parameter>');78 fprintf(fid,'%s\n%s\n','</frame>');79 80 end % }}}81 44 function obj = masstransport(varargin) % {{{ 82 45 switch nargin … … 104 67 function obj = setdefaultparameters(obj) % {{{ 105 68 106 %Proportionality coefficient in Levermann model107 obj.levermann_calving_coeff=8e21;108 109 69 %Type of stabilization to use 0:nothing 1:artificial_diffusivity 3:Discontinuous Galerkin 110 70 obj.stabilization=1; … … 128 88 129 89 md = checkfield(md,'fieldname','masstransport.spcthickness','forcing',1); 130 if(ismember(LevelsetAnalysisEnum(), analyses) & md.transient.islevelset)131 md = checkfield(md,'fieldname','masstransport.iscalvingrate','values',[0 1]);132 md = checkfield(md,'fieldname','masstransport.calvingrate','NaN',1,'size',[md.mesh.numberofvertices 1],'>=',0);133 md = checkfield(md,'fieldname','masstransport.levermann_calving_coeff','>',0);134 end135 136 90 md = checkfield(md,'fieldname','masstransport.isfreesurface','values',[0 1]); 137 91 md = checkfield(md,'fieldname','masstransport.hydrostatic_adjustment','values',{'Absolute' 'Incremental'}); … … 144 98 disp(sprintf(' Masstransport solution parameters:')); 145 99 fielddisplay(obj,'spcthickness','thickness constraints (NaN means no constraint) [m]'); 146 fielddisplay(obj,'iscalvingrate','do we use calving (loss of ice)');147 fielddisplay(obj,'calvingrate','calving rate at given location [m/a]');148 fielddisplay(obj,'levermann_calving_coeff','proportionality coefficient in Levermann model');149 100 fielddisplay(obj,'isfreesurface','do we use free surfaces (FS only) are mass conservation'); 150 101 fielddisplay(obj,'min_thickness','minimum ice thickness allowed [m]'); … … 163 114 164 115 WriteData(fid,'object',obj,'fieldname','spcthickness','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1); 165 WriteData(fid,'object',obj,'fieldname','calvingrate','format','DoubleMat','mattype',1,'forcinglength',md.mesh.numberofvertices+1,'scale',1./yts);166 WriteData(fid,'object',obj,'fieldname','iscalvingrate','format','Boolean');167 116 WriteData(fid,'object',obj,'fieldname','isfreesurface','format','Boolean'); 168 WriteData(fid,'object',obj,'fieldname','levermann_calving_coeff','format','Double');169 117 WriteData(fid,'object',obj,'fieldname','min_thickness','format','Double'); 170 118 WriteData(fid,'data',StringToEnum(obj.hydrostatic_adjustment),'format','Integer','enum',MasstransportHydrostaticAdjustmentEnum());
Note:
See TracChangeset
for help on using the changeset viewer.