Changeset 9465
- Timestamp:
- 08/26/11 14:13:42 (14 years ago)
- Location:
- issm/trunk
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/modules/ModelProcessorx/CreateParameters.cpp
r9405 r9465 18 18 Parameters *parameters = NULL; 19 19 double *requestedoutputs = NULL; 20 char *rheology_law = NULL; 20 21 21 22 if(*pparameters)return; //do not create parameters twice! … … 23 24 /*Initialize dataset: */ 24 25 parameters = iomodel->CopyConstants(); 26 27 /*Convert some parameters to Enums*/ 28 iomodel->FetchData(&rheology_law,RheologyLawEnum); 29 if (strcmp(rheology_law,"none")==0) parameters->AddObject(new IntParam(RheologyLawEnum,NoneEnum)); 30 else if (strcmp(rheology_law,"paterson")==0) parameters->AddObject(new IntParam(RheologyLawEnum,PatersonEnum)); 31 else if (strcmp(rheology_law,"arrhenius")==0) parameters->AddObject(new IntParam(RheologyLawEnum,ArrheniusEnum)); 32 else _error_("rheology law %s not supported",rheology_law); 25 33 26 34 /*some parameters that did not come with the iomodel: */ -
issm/trunk/src/c/objects/Loads/Icefront.cpp
r9405 r9465 83 83 else _error_("in_icefront_type %s not supported yet!",EnumToStringx(in_icefront_type)); 84 84 85 if (in_icefront_type==PattynIceFrontEnum || in_icefront_type==StokesIceFrontEnum) num_nodes=4; 86 else num_nodes=2; 87 icefront_fill=(int)*(iomodel->Data(PressureloadEnum)+segment_width*i+segment_width-1); 85 if (in_icefront_type==PattynIceFrontEnum || in_icefront_type==StokesIceFrontEnum) 86 num_nodes=4; 87 else 88 num_nodes=2; 89 90 /*Fill*/ 91 switch((int)iomodel->Data(PressureloadEnum)[segment_width*i+segment_width-1]){ 92 case 0: icefront_fill=AirEnum; break; 93 case 1: icefront_fill=WaterEnum; break; 94 case 2: icefront_fill=IceEnum; break; 95 default: _error_("Fill %i not supported",iomodel->Data(PressureloadEnum)[segment_width*i+segment_width-1]); 96 } 88 97 89 98 /*Ok, we have everything to build the object: */ -
issm/trunk/src/m/classes/model.m
r9464 r9465 123 123 rheology_B = {NaN,true,'DoubleMat',1}; 124 124 rheology_n = {NaN,true,'DoubleMat',2}; 125 rheology_law = { 0,true,'Integer'};125 rheology_law = {'',true,'String'}; 126 126 127 127 %Geometrical parameters … … 448 448 if isfield(structmd,'gridonboundary'), md.nodeonboundary=structmd.gridonboundary; end 449 449 450 %Field class change 451 450 %Field changes 452 451 if (isfield(structmd,'type') & ischar(structmd.type)), 453 452 if strcmpi(structmd.type,'2d'), md.dim=2; end … … 473 472 pos=find(structmd.spcvelocity(:,3)); md.spcvz(pos)=structmd.spcvelocity(pos,6); 474 473 end 475 if ismember(structmd.pressureload(end,end),[AirEnum() WaterEnum() IceEnum()]), 476 pos=find(md.pressureload(:,end)==AirEnum); md.pressureload(pos,end)=0; 477 pos=find(md.pressureload(:,end)==WaterEnum); md.pressureload(pos,end)=1; 478 pos=find(md.pressureload(:,end)==IceEnum); md.pressureload(pos,end)=2; 474 if ismember(structmd.pressureload(end,end),[118 119 120]), 475 pos=find(structmd.pressureload(:,end)==120); md.pressureload(pos,end)=0; 476 pos=find(structmd.pressureload(:,end)==118); md.pressureload(pos,end)=1; 477 pos=find(structmd.pressureload(:,end)==119); md.pressureload(pos,end)=2; 478 end 479 if isnumeric(structmd.rheology_law), 480 if (structmd.rheology_law==272), md.rheology_law='none'; end 481 if (structmd.rheology_law==368), md.rheology_law='paterson'; end 482 if (structmd.rheology_law==369), md.rheology_law='arrhenius'; end 479 483 end 480 484 … … 717 721 718 722 %Rheology law: what is the temperature dependence of B with T 719 %available: None, Paterson and Arrhenius720 md.rheology_law= PatersonEnum;723 %available: none, paterson and arrhenius 724 md.rheology_law='paterson'; 721 725 722 726 %i/o: -
issm/trunk/src/m/model/display/displaymaterials.m
r8032 r9465 15 15 fielddisplay(md,'rheology_B','flow law parameter [Pa/s^(1/n)]'); 16 16 fielddisplay(md,'rheology_n','Glen''s flow law exponent'); 17 fielddisplay(md,'rheology_law','law for the temperature dependance of the rheology: NoneEnum, PatersonEnum or Arrhenius');17 fielddisplay(md,'rheology_law','law for the temperature dependance of the rheology: ''none'', ''paterson'' or ''arrhenius'''); 18 18 fielddisplay(md,'heatcapacity','heat capacity [J/kg/K]'); 19 19 fielddisplay(md,'thermalconductivity','ice thermal conductivity [W/m/K]'); -
issm/trunk/src/m/model/ismodelselfconsistent.m
r9464 r9465 176 176 message(['model not consistent: model ' md.name ' hydrostatic_adjustment field should be AbsoluteEnum or IncrementalEnum']); 177 177 end 178 if ~ismember( md.rheology_law,[NoneEnum PatersonEnum ArrheniusEnum]),179 message(['model not consistent: model ' md.name ' rheology_law field should be NoneEnum, PatersonEnum or ArrheniusEnum']);178 if ~ismember({md.rheology_law},{'none' 'paterson' 'arrhenius']), 179 message(['model not consistent: model ' md.name ' rheology_law field should be ''none'' ''paterson'' or ''arrhenius''']); 180 180 end 181 181 %}}} -
issm/trunk/test/Par/ISMIPF.par
r9455 r9465 17 17 md.rheology_B=1.4734*10^14*ones(md.numberofnodes,1); 18 18 md.rheology_n=1*ones(md.numberofelements,1); 19 md.rheology_law= NoneEnum;19 md.rheology_law='none'; 20 20 21 21 disp(' boundary conditions for diagnostic model');
Note:
See TracChangeset
for help on using the changeset viewer.