Changeset 9691
- Timestamp:
- 09/08/11 14:08:39 (14 years ago)
- Location:
- issm/trunk
- Files:
-
- 2 added
- 88 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/EnumDefinitions/EnumDefinitions.h
r9681 r9691 136 136 DiagnosticNumRequestedOutputsEnum, 137 137 DiagnosticViscosityOvershootEnum, 138 GeometryHydrostaticRatioEnum, 139 ThicknessEnum, 140 BedEnum, 141 BathymetryEnum, 142 SurfaceEnum, 138 143 /*}}}*/ 139 144 /*Datasets {{{1*/ … … 281 286 AdjointzEnum, 282 287 AdjointpEnum, 283 BedEnum,284 BathymetryEnum,285 288 BedSlopeXEnum, 286 289 BedSlopeYEnum, … … 317 320 SegmentOnIceShelfEnum, 318 321 SurfaceAreaEnum, 319 SurfaceEnum,320 322 SurfaceSlopeXEnum, 321 323 SurfaceSlopeYEnum, … … 323 325 TemperaturePicardEnum, 324 326 TemperatureOldEnum, 325 ThicknessEnum,326 ThicknessCoeffEnum,327 327 TypeEnum, 328 328 VelEnum, -
issm/trunk/src/c/modules/EnumToStringx/EnumToStringx.cpp
r9681 r9691 140 140 case DiagnosticNumRequestedOutputsEnum : return "DiagnosticNumRequestedOutputs"; 141 141 case DiagnosticViscosityOvershootEnum : return "DiagnosticViscosityOvershoot"; 142 case GeometryHydrostaticRatioEnum : return "GeometryHydrostaticRatio"; 143 case ThicknessEnum : return "Thickness"; 144 case BedEnum : return "Bed"; 145 case BathymetryEnum : return "Bathymetry"; 146 case SurfaceEnum : return "Surface"; 142 147 case ConstraintsEnum : return "Constraints"; 143 148 case ElementsEnum : return "Elements"; … … 248 253 case AdjointzEnum : return "Adjointz"; 249 254 case AdjointpEnum : return "Adjointp"; 250 case BedEnum : return "Bed";251 case BathymetryEnum : return "Bathymetry";252 255 case BedSlopeXEnum : return "BedSlopeX"; 253 256 case BedSlopeYEnum : return "BedSlopeY"; … … 284 287 case SegmentOnIceShelfEnum : return "SegmentOnIceShelf"; 285 288 case SurfaceAreaEnum : return "SurfaceArea"; 286 case SurfaceEnum : return "Surface";287 289 case SurfaceSlopeXEnum : return "SurfaceSlopeX"; 288 290 case SurfaceSlopeYEnum : return "SurfaceSlopeY"; … … 290 292 case TemperaturePicardEnum : return "TemperaturePicard"; 291 293 case TemperatureOldEnum : return "TemperatureOld"; 292 case ThicknessEnum : return "Thickness";293 case ThicknessCoeffEnum : return "ThicknessCoeff";294 294 case TypeEnum : return "Type"; 295 295 case VelEnum : return "Vel"; -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp
r9681 r9691 49 49 /*Create inputs: */ 50 50 iomodel->FetchDataToInput(elements,ThicknessEnum); 51 iomodel->FetchDataToInput(elements, ThicknessCoeffEnum);51 iomodel->FetchDataToInput(elements,GeometryHydrostaticRatioEnum); 52 52 iomodel->FetchDataToInput(elements,SurfaceEnum); 53 53 iomodel->FetchDataToInput(elements,BedEnum); -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticHutter/UpdateElementsDiagnosticHutter.cpp
r9661 r9691 40 40 41 41 iomodel->FetchDataToInput(elements,ThicknessEnum); 42 iomodel->FetchDataToInput(elements, ThicknessCoeffEnum);42 iomodel->FetchDataToInput(elements,GeometryHydrostaticRatioEnum); 43 43 44 44 /*Free data: */ -
issm/trunk/src/c/modules/ModelProcessorx/DiagnosticVert/UpdateElementsDiagnosticVert.cpp
r9641 r9691 40 40 41 41 iomodel->FetchDataToInput(elements,ThicknessEnum); 42 iomodel->FetchDataToInput(elements, ThicknessCoeffEnum);42 iomodel->FetchDataToInput(elements,GeometryHydrostaticRatioEnum); 43 43 iomodel->FetchDataToInput(elements,SurfaceEnum); 44 44 iomodel->FetchDataToInput(elements,BedEnum); -
issm/trunk/src/c/modules/StringToEnumx/StringToEnumx.cpp
r9681 r9691 138 138 else if (strcmp(name,"DiagnosticNumRequestedOutputs")==0) return DiagnosticNumRequestedOutputsEnum; 139 139 else if (strcmp(name,"DiagnosticViscosityOvershoot")==0) return DiagnosticViscosityOvershootEnum; 140 else if (strcmp(name,"GeometryHydrostaticRatio")==0) return GeometryHydrostaticRatioEnum; 141 else if (strcmp(name,"Thickness")==0) return ThicknessEnum; 142 else if (strcmp(name,"Bed")==0) return BedEnum; 143 else if (strcmp(name,"Bathymetry")==0) return BathymetryEnum; 144 else if (strcmp(name,"Surface")==0) return SurfaceEnum; 140 145 else if (strcmp(name,"Constraints")==0) return ConstraintsEnum; 141 146 else if (strcmp(name,"Elements")==0) return ElementsEnum; … … 246 251 else if (strcmp(name,"Adjointz")==0) return AdjointzEnum; 247 252 else if (strcmp(name,"Adjointp")==0) return AdjointpEnum; 248 else if (strcmp(name,"Bed")==0) return BedEnum;249 else if (strcmp(name,"Bathymetry")==0) return BathymetryEnum;250 253 else if (strcmp(name,"BedSlopeX")==0) return BedSlopeXEnum; 251 254 else if (strcmp(name,"BedSlopeY")==0) return BedSlopeYEnum; … … 282 285 else if (strcmp(name,"SegmentOnIceShelf")==0) return SegmentOnIceShelfEnum; 283 286 else if (strcmp(name,"SurfaceArea")==0) return SurfaceAreaEnum; 284 else if (strcmp(name,"Surface")==0) return SurfaceEnum;285 287 else if (strcmp(name,"SurfaceSlopeX")==0) return SurfaceSlopeXEnum; 286 288 else if (strcmp(name,"SurfaceSlopeY")==0) return SurfaceSlopeYEnum; … … 288 290 else if (strcmp(name,"TemperaturePicard")==0) return TemperaturePicardEnum; 289 291 else if (strcmp(name,"TemperatureOld")==0) return TemperatureOldEnum; 290 else if (strcmp(name,"Thickness")==0) return ThicknessEnum;291 else if (strcmp(name,"ThicknessCoeff")==0) return ThicknessCoeffEnum;292 292 else if (strcmp(name,"Type")==0) return TypeEnum; 293 293 else if (strcmp(name,"Vel")==0) return VelEnum; -
issm/trunk/src/c/objects/Elements/Penta.cpp
r9681 r9691 6485 6485 double thickness[6]; 6486 6486 double thickness_init[6]; 6487 double thickness_coeff[6];6487 double hydrostatic_ratio[6]; 6488 6488 double surface[6]; 6489 6489 double bed[6]; … … 6491 6491 /*retrieve inputs: */ 6492 6492 GetParameterListOnVertices(&thickness_init[0],ThicknessEnum); 6493 GetParameterListOnVertices(& thickness_coeff[0],ThicknessCoeffEnum);6493 GetParameterListOnVertices(&hydrostatic_ratio[0],GeometryHydrostaticRatioEnum); 6494 6494 GetParameterListOnVertices(&bed[0],BedEnum); 6495 6495 GetParameterListOnVertices(&surface[0],SurfaceEnum); … … 6510 6510 for (j=0; j<6; j++) { 6511 6511 /* for observed/interpolated/hydrostatic thickness, remove scaling from any hydrostatic thickness */ 6512 if ( thickness_coeff[j] >= 0.)6513 thickness[j]=values[j]-(values[j]/thickness_init[j]-1.)* thickness_coeff[j]*surface[j]/(1.-di);6512 if (hydrostatic_ratio[j] >= 0.) 6513 thickness[j]=values[j]-(values[j]/thickness_init[j]-1.)*hydrostatic_ratio[j]*surface[j]/(1.-di); 6514 6514 /* for minimum thickness, don't scale */ 6515 6515 else … … 6531 6531 for (j=0; j<6; j++) { 6532 6532 /* for observed thickness, use scaled value */ 6533 if (thickness_coeff[j] >= 0.)6533 if(hydrostatic_ratio[j] >= 0.) 6534 6534 thickness[j]=values[j]; 6535 6535 /* for minimum thickness, don't scale */ -
issm/trunk/src/c/objects/Elements/Tria.cpp
r9681 r9691 3777 3777 double thickness[3]; 3778 3778 double thickness_init[3]; 3779 double thickness_coeff[3];3779 double hydrostatic_ratio[3]; 3780 3780 double surface[3]; 3781 3781 double bed[3]; … … 3783 3783 /*retrieve inputs: */ 3784 3784 GetParameterListOnVertices(&thickness_init[0],ThicknessEnum); 3785 GetParameterListOnVertices(& thickness_coeff[0],ThicknessCoeffEnum);3785 GetParameterListOnVertices(&hydrostatic_ratio[0],GeometryHydrostaticRatioEnum); 3786 3786 GetParameterListOnVertices(&bed[0],BedEnum); 3787 3787 GetParameterListOnVertices(&surface[0],SurfaceEnum); … … 3802 3802 for (j=0; j<3; j++) { 3803 3803 /* for observed/interpolated/hydrostatic thickness, remove scaling from any hydrostatic thickness */ 3804 if ( thickness_coeff[j] >= 0.)3805 thickness[j]=values[j]-(values[j]/thickness_init[j]-1.)* thickness_coeff[j]*surface[j]/(1.-di);3804 if (hydrostatic_ratio[j] >= 0.) 3805 thickness[j]=values[j]-(values[j]/thickness_init[j]-1.)*hydrostatic_ratio[j]*surface[j]/(1.-di); 3806 3806 /* for minimum thickness, don't scale */ 3807 3807 else … … 3823 3823 for (j=0; j<3; j++) { 3824 3824 /* for observed thickness, use scaled value */ 3825 if (thickness_coeff[j] >= 0.)3825 if (hydrostatic_ratio[j] >= 0.) 3826 3826 thickness[j]=values[j]; 3827 3827 /* for minimum thickness, don't scale */ -
issm/trunk/src/m/classes/model/model.m
r9685 r9691 38 38 diagnostic = modelfield('default',0,'marshall',true); 39 39 initialization = modelfield('default',0,'marshall',true); 40 geometry = modelfield('default',0,'marshall',true); 40 41 41 42 %FIXME: all other fields should belong to other classes … … 86 87 extractednodes = modelfield('default',NaN,'marshall',false); 87 88 extractedelements = modelfield('default',NaN,'marshall',false); 88 89 %Materials parameters90 91 %Geometrical parameters92 surface = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);93 thickness = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);94 thickness_coeff = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);95 bed = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);96 bathymetry = modelfield('default',NaN,'marshall',true,'format','DoubleMat','mattype',1);97 89 98 90 %Boundary conditions … … 351 343 if isfield(structmd,'waterfraction'), md.initialization.waterfraction=structmd.waterfraction; end 352 344 if isfield(structmd,'watercolumn'), md.initialization.watercolumn=structmd.watercolumn; end 345 if isfield(structmd,'surface'), md.geometry.surface=structmd.surface; end 346 if isfield(structmd,'bed'), md.geometry.bed=structmd.bed; end 347 if isfield(structmd,'bathymetry'), md.geometry.bathymetry=structmd.bathymetry; end 348 if isfield(structmd,'thickness_coeff'), md.geometry.hydrostatic_ratio=structmd.thickness_coeff; end 353 349 354 350 %Field changes … … 478 474 md.inversion = inversion; 479 475 md.transient = transient; 480 md.diagnostic =diagnostic; 481 md.initialization =initialization; 476 md.diagnostic = diagnostic; 477 md.initialization = initialization; 478 md.geometry = geometry; 482 479 483 480 %Solver parameters -
issm/trunk/src/m/model/DepthAverage.m
r9684 r9691 19 19 vector_average=vector_average+(project2d(md,vector,i)+project2d(md,vector,i+1))/2.*(project2d(md,md.z,i+1)-project2d(md,md.z,i)); 20 20 end 21 vector_average=vector_average./project2d(md,md. thickness,1);21 vector_average=vector_average./project2d(md,md.geometry.thickness,1); 22 22 23 23 %element data … … 27 27 vector_average=vector_average+project2d(md,vector,i).*(project2d(md,md.z,i+1)-project2d(md,md.z,i)); 28 28 end 29 vector_average=vector_average./project2d(md,md. thickness,1);29 vector_average=vector_average./project2d(md,md.geometry.thickness,1); 30 30 31 31 else -
issm/trunk/src/m/model/SectionValues.m
r8298 r9691 94 94 %Get bed and surface for each 2d point, offset to make sure that it is inside the glacier system 95 95 offset=10^-3; 96 bed=InterpFromMeshToMesh2d(md.elements2d,md.x2d,md.y2d,project2d(md,md. bed,1),X,Y)+offset;97 surface=InterpFromMeshToMesh2d(md.elements2d,md.x2d,md.y2d,project2d(md,md. surface,1),X,Y)-offset;96 bed=InterpFromMeshToMesh2d(md.elements2d,md.x2d,md.y2d,project2d(md,md.geometry.bed,1),X,Y)+offset; 97 surface=InterpFromMeshToMesh2d(md.elements2d,md.x2d,md.y2d,project2d(md,md.geometry.surface,1),X,Y)-offset; 98 98 99 99 %Some useful parameters 100 layers=ceil(mean(md. thickness)/res_v);100 layers=ceil(mean(md.geometry.thickness)/res_v); 101 101 nodesperlayer=numberofnodes; 102 102 nodestot=nodesperlayer*layers; -
issm/trunk/src/m/model/ThicknessCorrection.m
r9641 r9691 18 18 19 19 %initialize thickness with the observations, and get hydrostatic thickness from the dem 20 thickness=md. thickness;21 thickness_hydro=md. surface/(1-md.materials.rho_ice/md.materials.rho_water);22 thickness_coeff=zeros(size(md.thickness));20 thickness=md.geometry.thickness; 21 thickness_hydro=md.geometry.surface/(1-md.materials.rho_ice/md.materials.rho_water); 22 hydrostatic_ratio=zeros(size(md.geometry.thickness)); 23 23 24 24 %get nodes on ice sheet and on ice shelf … … 53 53 54 54 %if d > 15km, hydrostatic equilibrium 55 thickness_coeff(pos_shelf(i))=1;55 hydrostatic_ratio(pos_shelf(i))=1; 56 56 thickness(pos_shelf(i))=thickness_hydro(pos_shelf(i)); 57 57 … … 59 59 60 60 %else: quadratic combination of hydrostatic equilibrium and observations 61 thickness_coeff(pos_shelf(i))=(d/distance)^2;62 thickness(pos_shelf(i))=(1- thickness_coeff(pos_shelf(i)))*thickness(pos_shelf(i))+thickness_coeff(pos_shelf(i))*thickness_hydro(pos_shelf(i));61 hydrostatic_ratio(pos_shelf(i))=(d/distance)^2; 62 thickness(pos_shelf(i))=(1-hydrostatic_ratio(pos_shelf(i)))*thickness(pos_shelf(i))+hydrostatic_ratio(pos_shelf(i))*thickness_hydro(pos_shelf(i)); 63 63 64 64 end … … 70 70 pos=find(isnan(thickness) | (thickness<=0)); 71 71 thickness(pos)=minth; 72 thickness_coeff(pos)=-1;72 hydrostatic_ratio(pos)=-1; 73 73 74 74 %change bed to take into account the changes in thickness 75 md. thickness=thickness;76 md. thickness_coeff=thickness_coeff;77 md. bed=md.surface-md.thickness;75 md.geometry.thickness=thickness; 76 md.geometry.hydrostatic_ratio=hydrostatic_ratio; 77 md.geometry.bed=md.geometry.surface-md.geometry.thickness; -
issm/trunk/src/m/model/bamg.m
r9681 r9691 46 46 % Examples: 47 47 % md=bamg(md,'domain','DomainOutline.exp','hmax',3000); 48 % md=bamg(md,'field',[md.inversion.vel_obs md. thickness],'hmax',20000,'hmin',1000);48 % md=bamg(md,'field',[md.inversion.vel_obs md.geometry.thickness],'hmax',20000,'hmin',1000); 49 49 % md=bamg(md,'metric',A,'hmin',1000,'hmax',20000,'gradation',3,'anisomax',1); 50 50 -
issm/trunk/src/m/model/basalstress.m
r9684 r9691 18 18 19 19 %compute basal drag 20 bx=(md.constants.g*(md.materials.rho_ice*md. thickness+md.materials.rho_water*md.bed)).^r.*(md.friction.coefficient).^2.*ubx.^s;21 by=(md.constants.g*(md.materials.rho_ice*md. thickness+md.materials.rho_water*md.bed)).^r.*(md.friction.coefficient).^2.*uby.^s;22 b=(md.constants.g*(md.materials.rho_ice*md. thickness+md.materials.rho_water*md.bed)).^r.*(md.friction.coefficient).^2.*ub.^s;20 bx=(md.constants.g*(md.materials.rho_ice*md.geometry.thickness+md.materials.rho_water*md.geometry.bed)).^r.*(md.friction.coefficient).^2.*ubx.^s; 21 by=(md.constants.g*(md.materials.rho_ice*md.geometry.thickness+md.materials.rho_water*md.geometry.bed)).^r.*(md.friction.coefficient).^2.*uby.^s; 22 b=(md.constants.g*(md.materials.rho_ice*md.geometry.thickness+md.materials.rho_water*md.geometry.bed)).^r.*(md.friction.coefficient).^2.*ub.^s; -
issm/trunk/src/m/model/basevert.m
r9684 r9691 20 20 end 21 21 22 hu=md. thickness.*md.initialization.vx;23 hv=md. thickness.*md.initialization.vy;22 hu=md.geometry.thickness.*md.initialization.vx; 23 hv=md.geometry.thickness.*md.initialization.vy; 24 24 25 25 summation=[1;1;1]; … … 30 30 velem=md.initialization.vy(md.elements)*summation/3; 31 31 32 dbdx=(md. bed(md.elements).*alpha)*summation;33 dbdy=(md. bed(md.elements).*beta)*summation;32 dbdx=(md.geometry.bed(md.elements).*alpha)*summation; 33 dbdy=(md.geometry.bed(md.elements).*beta)*summation; 34 34 35 35 wb=-md.materials.rho_ice/md.materials.rho_water*(hux+hvy)+uelem.*dbdx+velem.*dbdy; -
issm/trunk/src/m/model/bedslope.m
r9451 r9691 22 22 23 23 summation=[1;1;1]; 24 bx=(md. bed(index).*alpha)*summation;25 by=(md. bed(index).*beta)*summation;24 bx=(md.geometry.bed(index).*alpha)*summation; 25 by=(md.geometry.bed(index).*beta)*summation; 26 26 b=sqrt(bx.^2+by.^2); 27 27 -
issm/trunk/src/m/model/collapse.m
r9684 r9691 80 80 81 81 %parameters 82 md. surface=project2d(md,md.surface,1);83 md. thickness=project2d(md,md.thickness,1);84 md. bed=project2d(md,md.bed,1);82 md.geometry.surface=project2d(md,md.geometry.surface,1); 83 md.geometry.thickness=project2d(md,md.geometry.thickness,1); 84 md.geometry.bed=project2d(md,md.geometry.bed,1); 85 85 md.nodeonboundary=project2d(md,md.nodeonboundary,1); 86 86 md.mask.elementonfloatingice=project2d(md,md.mask.elementonfloatingice,1); -
issm/trunk/src/m/model/contourmassbalance.m
r9684 r9691 30 30 vx=mean(md.initialization.vx(segments(:,1:end-1)),2); 31 31 vy=mean(md.initialization.vy(segments(:,1:end-1)),2); 32 H=mean(md. thickness(segments(:,1:end-1)),2);32 H=mean(md.geometry.thickness(segments(:,1:end-1)),2); 33 33 nx=cos(atan2((x(segments(:,1))-x(segments(:,2))) , (y(segments(:,2))-y(segments(:,1))))); 34 34 ny=sin(atan2((x(segments(:,1))-x(segments(:,2))) , (y(segments(:,2))-y(segments(:,1))))); -
issm/trunk/src/m/model/drivingstress.m
r9636 r9691 12 12 13 13 %Average thickness over elements 14 thickness_bar=(md. thickness(md.elements(:,1))+md.thickness(md.elements(:,2))+md.thickness(md.elements(:,3)))/3;14 thickness_bar=(md.geometry.thickness(md.elements(:,1))+md.geometry.thickness(md.elements(:,2))+md.geometry.thickness(md.elements(:,3)))/3; 15 15 16 16 px=md.materials.rho_ice*md.constants.g*thickness_bar.*sx; -
issm/trunk/src/m/model/effectivepressure.m
r9636 r9691 8 8 % Neff=effectivepressure(md) 9 9 10 Neff=md.materials.rho_ice*md.constants.g*md. thickness+md.materials.rho_ice*md.constants.g*md.bed;10 Neff=md.materials.rho_ice*md.constants.g*md.geometry.thickness+md.materials.rho_ice*md.constants.g*md.geometry.bed; 11 11 pos=find(Neff<0); 12 12 Neff(pos)=0; -
issm/trunk/src/m/model/extrude.m
r9684 r9691 67 67 y3d=[]; 68 68 z3d=[]; %the lower node is on the bed 69 thickness3d=md. thickness; %thickness and bed for these nodes70 bed3d=md. bed;69 thickness3d=md.geometry.thickness; %thickness and bed for these nodes 70 bed3d=md.geometry.bed; 71 71 72 72 %Create the new layers … … 197 197 198 198 %parameters 199 md. surface=project3d(md,'vector',md.surface,'type','node');200 md. thickness=project3d(md,'vector',md.thickness,'type','node');201 md. thickness_coeff=project3d(md,'vector',md.thickness_coeff,'type','node');202 md. bed=project3d(md,'vector',md.bed,'type','node');203 md. bathymetry=project3d(md,'vector',md.bathymetry,'type','node');199 md.geometry.surface=project3d(md,'vector',md.geometry.surface,'type','node'); 200 md.geometry.thickness=project3d(md,'vector',md.geometry.thickness,'type','node'); 201 md.geometry.hydrostatic_ratio=project3d(md,'vector',md.geometry.hydrostatic_ratio,'type','node'); 202 md.geometry.bed=project3d(md,'vector',md.geometry.bed,'type','node'); 203 md.geometry.bathymetry=project3d(md,'vector',md.geometry.bathymetry,'type','node'); 204 204 md.nodeonboundary=project3d(md,'vector',md.nodeonboundary,'type','node'); 205 205 md.mask.elementonfloatingice=project3d(md,'vector',md.mask.elementonfloatingice,'type','element'); … … 213 213 %Put lithostatic pressure is there is an existing pressure 214 214 if ~isnan(md.initialization.pressure), 215 md.initialization.pressure=md.constants.g*md.materials.rho_ice*(md. surface-md.z);215 md.initialization.pressure=md.constants.g*md.materials.rho_ice*(md.geometry.surface-md.z); 216 216 end 217 217 -
issm/trunk/src/m/model/ismodelselfconsistent.m
r9684 r9691 83 83 %NO NAN {{{1 84 84 fields={'numberofelements','numberofnodes','x','y','z','friction.coefficient','friction.p','friction.q',... 85 'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice',' surface','thickness','bed','constants.g','settings.lowmem','inversion.nsteps','inversion.maxiter_per_step',...85 'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','geometry.surface','geometry.thickness','geometry.bed','constants.g','settings.lowmem','inversion.nsteps','inversion.maxiter_per_step',... 86 86 'diagnostic.restol','diagnostic.maxiter','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface','elementconnectivity'}; 87 87 checknan(md,fields); … … 89 89 %FIELDS >= 0 {{{1 90 90 fields={'numberofelements','numberofnodes','elements','friction.coefficient','friction.p','friction.q',... 91 'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice',' thickness','constants.g','diagnostic.restol','diagnostic.maxiter','diagnostic.reltol',...91 'materials.rho_ice','materials.rho_water','materials.rheology_B','mask.elementonfloatingice','geometry.thickness','constants.g','diagnostic.restol','diagnostic.maxiter','diagnostic.reltol',... 92 92 'diagnostic.abstol','inversion.nsteps','inversion.maxiter_per_step',... 93 93 'settings.lowmem','materials.rheology_n','nodeonbed','nodeonsurface','elementonbed','elementonsurface'}; … … 96 96 %FIELDS > 0 {{{1 97 97 fields={'numberofelements','numberofnodes','elements','friction.p',... 98 'materials.rho_ice','materials.rho_water','materials.rheology_B',' thickness','constants.g','diagnostic.maxiter','diagnostic.restol','diagnostic.reltol','diagnostic.abstol','inversion.maxiter_per_step'};98 'materials.rho_ice','materials.rho_water','materials.rheology_B','geometry.thickness','constants.g','diagnostic.maxiter','diagnostic.restol','diagnostic.reltol','diagnostic.abstol','inversion.maxiter_per_step'}; 99 99 checkgreaterstrict(md,fields,0); 100 100 %}}} … … 104 104 %}}} 105 105 %SIZE NUMBEROFNODES {{{1 106 fields={'x','y','z','materials.rheology_B','friction.coefficient','basalforcings.melting_rate',' surface','thickness','bed','nodeonbed','nodeonsurface'};106 fields={'x','y','z','materials.rheology_B','friction.coefficient','basalforcings.melting_rate','geometry.surface','geometry.thickness','geometry.bed','nodeonbed','nodeonsurface'}; 107 107 checksize(md,fields,[md.numberofnodes 1]); 108 108 %}}} … … 117 117 %}}} 118 118 %THICKNESS = SURFACE - BED {{{1 119 if any((md. thickness-md.surface+md.bed)>tolerance),119 if any((md.geometry.thickness-md.geometry.surface+md.geometry.bed)>tolerance), 120 120 message(['model not consistent: model ' md.miscellaneous.name ' violates the equality thickness=surface-bed!']); 121 121 end … … 128 128 message(['model ' md.miscellaneous.name ' requesting grounding line migration, but grounding line module only implemented for 2d models and parallel runs!']); 129 129 end 130 if isnan(md. bathymetry),130 if isnan(md.geometry.bathymetry), 131 131 message(['model not consistent: model ' md.miscellaneous.name ' requesting grounding line migration, but bathymetry is absent!']); 132 132 end 133 133 pos=find(md.mask.vertexongroundedice); 134 if any(md. bed(pos)-md.bathymetry(pos)),134 if any(md.geometry.bed(pos)-md.geometry.bathymetry(pos)), 135 135 message(['model not consistent: model ' md.miscellaneous.name ' bathymetry not equal to bed on grounded ice !']); 136 136 end 137 137 pos=find(md.mask.vertexonfloatingice); 138 if any(md. bathymetry(pos)-md.bed(pos)>tolerance),138 if any(md.geometry.bathymetry(pos)-md.geometry.bed(pos)>tolerance), 139 139 message(['model not consistent: model ' md.miscellaneous.name ' bathymetry superior to bed on floating ice !']); 140 140 end … … 244 244 245 245 %DIRICHLET IF THICKNESS <= 0 246 if any(md. thickness<=0),247 pos=find(md. thickness<=0);246 if any(md.geometry.thickness<=0), 247 pos=find(md.geometry.thickness<=0); 248 248 if any(isnan(md.balancethickness.spcthickness(pos))), 249 249 message(['model not consistent: model ' md.miscellaneous.name ' has some nodes with 0 thickness']); … … 468 468 %DIRICHLET IF THICKNESS <= 0 469 469 %Check the size of prognostic.spcthickness 470 if any(md. thickness<=0),471 pos=find(md. thickness<=0);470 if any(md.geometry.thickness<=0), 471 pos=find(md.geometry.thickness<=0); 472 472 if any(isnan(md.prognostic.spcthickness(pos))), 473 473 message(['model not consistent: model ' md.miscellaneous.name ' has some nodes with 0 thickness']); -
issm/trunk/src/m/model/plot/plot_basaldrag.m
r9684 r9691 30 30 31 31 %compute basal drag 32 drag=(max(md.constants.g*(md.materials.rho_ice*md. thickness+md.materials.rho_water*md.bed),0)).^r.*(md.friction.coefficient).^2.*ub.^s/1000;32 drag=(max(md.constants.g*(md.materials.rho_ice*md.geometry.thickness+md.materials.rho_water*md.geometry.bed),0)).^r.*(md.friction.coefficient).^2.*ub.^s/1000; 33 33 34 34 %Figure out if this is a Section plot -
issm/trunk/src/m/model/sia.m
r9636 r9691 17 17 %Average thickness and B over all elements. 18 18 summer=[1;1;1]; 19 hel=md. thickness(md.elements)*summer/3;19 hel=md.geometry.thickness(md.elements)*summer/3; 20 20 Bel=md.B(md.elements)*summer/3; 21 21 -
issm/trunk/src/m/model/slope.m
r9451 r9691 22 22 23 23 summation=[1;1;1]; 24 sx=(md. surface(index).*alpha)*summation;25 sy=(md. surface(index).*beta)*summation;24 sx=(md.geometry.surface(index).*alpha)*summation; 25 sy=(md.geometry.surface(index).*beta)*summation; 26 26 s=sqrt(sx.^2+sy.^2); 27 27 -
issm/trunk/src/m/model/thicknessevolution.m
r9684 r9691 14 14 15 15 %load some variables 16 H=md. thickness;16 H=md.geometry.thickness; 17 17 vx=md.initialization.vx; 18 18 vy=md.initialization.vy; -
issm/trunk/src/m/utils/Interp/FillHole.m
r8298 r9691 6 6 % 7 7 % Example: 8 % md. surface=FillHole(md.elements,x,md.y,md.surface)8 % md.geometry.surface=FillHole(md.elements,x,md.y,md.geometry.surface) 9 9 % 10 10 -
issm/trunk/src/m/utils/Interp/InterpFromFile.m
r8298 r9691 19 19 % 20 20 % Example: 21 % md. surface=InterpFromFile(md.x,md.y,'surfacefile.mat',0);21 % md.geometry.surface=InterpFromFile(md.x,md.y,'surfacefile.mat',0); 22 22 % 23 23 % See also: PLUGVELOCITIES, INTERPFROMGRID, INTERPFROMMESH2D, INTERPFROMMESH3D -
issm/trunk/template
r9681 r9691 43 43 extractedelements 44 44 }}} 45 geometry {{{46 surface47 thickness48 bed49 bathymetry50 51 thickness_coeff -> rename hydrostatic_ratio (change ThicknessCorrection.m accordingly)52 }}}53 initialization{{{54 vx55 vy56 vz57 vel58 pressure59 temperature60 watercolumn61 waterfraction62 }}}63 45 64 46 %To be completed -
issm/trunk/test/Miscellaneous/Bump/Bump.par
r9679 r9691 7 7 ymin=min(md.y); 8 8 ymax=max(md.y); 9 md. thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin);10 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness+10;11 md. surface=md.bed+md.thickness;12 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness+height*exp(-((md.x-50000).^2+(md.y-50000).^2)/(4000)^2)+10;13 md. thickness=md.surface-md.bed;9 md.geometry.thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin); 10 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness+10; 11 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 12 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness+height*exp(-((md.x-50000).^2+(md.y-50000).^2)/(4000)^2)+10; 13 md.geometry.thickness=md.geometry.surface-md.geometry.bed; 14 14 15 15 md.drag_type=2; %0 none 1 plastic 2 viscous -
issm/trunk/test/Miscellaneous/GJM_test1/SquareShelf.par
r9684 r9691 6 6 ymin=min(md.y); 7 7 ymax=max(md.y); 8 md. thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin);9 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;10 md. surface=md.bed+md.thickness;8 md.geometry.thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin); 9 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 10 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 11 11 12 12 %Materials -
issm/trunk/test/Miscellaneous/connectivity/Square.par
r9642 r9691 11 11 ymin=min(md.y); 12 12 ymax=max(md.y); 13 md. thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin);14 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;15 md. surface=md.bed+md.thickness;13 md.geometry.thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin); 14 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 15 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 16 16 17 17 md.drag_type=2; %0 none 1 plastic 2 viscous -
issm/trunk/test/NightlyRun/test111.m
r9664 r9691 6 6 md.cluster=none; 7 7 md.prognostic.stabilization=3; 8 md.prognostic.spcthickness=md. thickness;8 md.prognostic.spcthickness=md.geometry.thickness; 9 9 md=solve(md,PrognosticSolutionEnum); 10 10 -
issm/trunk/test/NightlyRun/test1110.m
r9679 r9691 85 85 end 86 86 87 plotmodel(md,'data',PatchToVec(md.results.TransientSolution(end).Surface)-md. surface,'layer',md.numlayers,'sectionvalue','../Exp/ISMIP100000.exp','title','','xlabel','','ylabel','Surface (m)','linewidth',3,'grid','on','unit','km','ylim',[-30 50])87 plotmodel(md,'data',PatchToVec(md.results.TransientSolution(end).Surface)-md.geometry.surface,'layer',md.numlayers,'sectionvalue','../Exp/ISMIP100000.exp','title','','xlabel','','ylabel','Surface (m)','linewidth',3,'grid','on','unit','km','ylim',[-30 50]) 88 88 if printingflag, 89 89 set(gcf,'Color','w') … … 124 124 PatchToVec(result.Vy),... 125 125 PatchToVec(result.Vz),... 126 PatchToVec(result.Surface)-md. surface,...126 PatchToVec(result.Surface)-md.geometry.surface,... 127 127 }; 128 128 end -
issm/trunk/test/NightlyRun/test112.m
r9664 r9691 6 6 md.cluster=generic('name',oshostname(),'np',3); 7 7 md.prognostic.stabilization=3; 8 md.prognostic.spcthickness=md. thickness;8 md.prognostic.spcthickness=md.geometry.thickness; 9 9 md=solve(md,PrognosticSolutionEnum); 10 10 -
issm/trunk/test/NightlyRun/test1205.m
r9681 r9691 13 13 %Calculation of the analytical 2d velocity field 14 14 constant=0.3; 15 vx_obs=constant/2*md.x.*(md. thickness).^-1;16 vy_obs=constant/2*md.y.*(md. thickness).^-1;15 vx_obs=constant/2*md.x.*(md.geometry.thickness).^-1; 16 vy_obs=constant/2*md.y.*(md.geometry.thickness).^-1; 17 17 vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2)); 18 18 -
issm/trunk/test/NightlyRun/test1206.m
r9681 r9691 13 13 %Calculation of the analytical 2d velocity field 14 14 constant=0.3; 15 vx_obs=constant/2*md.x.*(md. thickness).^-1;16 vy_obs=constant/2*md.y.*(md. thickness).^-1;15 vx_obs=constant/2*md.x.*(md.geometry.thickness).^-1; 16 vy_obs=constant/2*md.y.*(md.geometry.thickness).^-1; 17 17 vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2)); 18 18 -
issm/trunk/test/NightlyRun/test1207.m
r9681 r9691 13 13 %Calculation of the analytical 2d velocity field 14 14 constant=0.3; 15 vx_obs=constant/2*md.x.*(md. thickness).^-1;16 vy_obs=constant/2*md.y.*(md. thickness).^-1;15 vx_obs=constant/2*md.x.*(md.geometry.thickness).^-1; 16 vy_obs=constant/2*md.y.*(md.geometry.thickness).^-1; 17 17 vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2)); 18 18 -
issm/trunk/test/NightlyRun/test1303.m
r9684 r9691 18 18 %d2T/dz2=0 T(bed)=10 T(surface)=0 => T=0*(z-bed)/thickness+10*(surface-z)/thickness 19 19 %each layer of the 3d mesh must have a constant value 20 md.initialization.temperature=10*(md. surface-md.z)./md.thickness;20 md.initialization.temperature=10*(md.geometry.surface-md.z)./md.geometry.thickness; 21 21 22 22 %modeled results -
issm/trunk/test/NightlyRun/test1304.m
r9684 r9691 19 19 %the result is linear with depth and is equal to 0 on the upper surface (See BC) 20 20 %d2T/dz2=0 -k*dT/dz(bed)=G T(surface)=0 => T=-G/k*(z-surface) 21 md.initialization.temperature=-0.1/md.thermalconductivity*(md.z-md. surface); %G=0.1 W/m221 md.initialization.temperature=-0.1/md.thermalconductivity*(md.z-md.geometry.surface); %G=0.1 W/m2 22 22 23 23 %modeled results -
issm/trunk/test/NightlyRun/test131.m
r9664 r9691 4 4 %Add boundary conditions on thickness on the border 5 5 pos=find(md.nodeonboundary); 6 md.balancethickness.spcthickness(pos)=md. thickness(pos);6 md.balancethickness.spcthickness(pos)=md.geometry.thickness(pos); 7 7 md=setflowequation(md,'macayeal','all'); 8 8 md.cluster=none; -
issm/trunk/test/NightlyRun/test132.m
r9664 r9691 4 4 %Add boundary conditions on thickness on the border 5 5 pos=find(md.nodeonboundary); 6 md.balancethickness.spcthickness(pos)=md. thickness(pos);6 md.balancethickness.spcthickness(pos)=md.geometry.thickness(pos); 7 7 md=setflowequation(md,'macayeal','all'); 8 8 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test133.m
r9664 r9691 5 5 %Add boundary conditions on thickness on the border 6 6 pos=find(md.nodeonboundary); 7 md.balancethickness.spcthickness(pos)=md. thickness(pos);7 md.balancethickness.spcthickness(pos)=md.geometry.thickness(pos); 8 8 md=setflowequation(md,'macayeal','all'); 9 9 md.cluster=none; -
issm/trunk/test/NightlyRun/test134.m
r9664 r9691 5 5 %Add boundary conditions on thickness on the border 6 6 pos=find(md.nodeonboundary); 7 md.balancethickness.spcthickness(pos)=md. thickness(pos);7 md.balancethickness.spcthickness(pos)=md.geometry.thickness(pos); 8 8 md=setflowequation(md,'macayeal','all'); 9 9 md.cluster=generic('name',oshostname(),'np',3); -
issm/trunk/test/NightlyRun/test1501.m
r9664 r9691 21 21 for i=1:10 22 22 md=solve(md,PrognosticSolutionEnum); 23 md.surfaceforcings.mass_balance= md.surfaceforcings.mass_balance - (PatchToVec(md.results.PrognosticSolution.Thickness)-md. thickness);23 md.surfaceforcings.mass_balance= md.surfaceforcings.mass_balance - (PatchToVec(md.results.PrognosticSolution.Thickness)-md.geometry.thickness); 24 24 end 25 25 -
issm/trunk/test/NightlyRun/test1502.m
r9664 r9691 22 22 for i=1:10 23 23 md=solve(md,PrognosticSolutionEnum); 24 md.surfaceforcings.mass_balance= md.surfaceforcings.mass_balance - (PatchToVec(md.results.PrognosticSolution.Thickness)-md. thickness);24 md.surfaceforcings.mass_balance= md.surfaceforcings.mass_balance - (PatchToVec(md.results.PrognosticSolution.Thickness)-md.geometry.thickness); 25 25 end 26 26 -
issm/trunk/test/NightlyRun/test233.m
r9684 r9691 21 21 22 22 h=1000; 23 md. thickness=h*ones(md.numberofnodes,1);24 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;25 md. surface=md.bed+md.thickness;23 md.geometry.thickness=h*ones(md.numberofnodes,1); 24 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 25 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 26 26 27 27 %Initial velocity and pressure … … 61 61 62 62 %create analytical solution: strain rate is constant = ((rho_ice*g*h)/4B)^3 (Paterson, 4th Edition, page 292. 63 %ey_c=(md.materials.rho_ice*md.constants.g*(1-di)*md. thickness./(4*md.materials.rheology_B)).^3;63 %ey_c=(md.materials.rho_ice*md.constants.g*(1-di)*md.geometry.thickness./(4*md.materials.rheology_B)).^3; 64 64 %vy_c=ey_c.*md.y*md.constants.yts; 65 65 -
issm/trunk/test/NightlyRun/test234.m
r9684 r9691 21 21 22 22 h=1000; 23 md. thickness=h*ones(md.numberofnodes,1);24 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;25 md. surface=md.bed+md.thickness;23 md.geometry.thickness=h*ones(md.numberofnodes,1); 24 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 25 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 26 26 27 27 %Initial velocity and pressure … … 61 61 62 62 %create analytical solution: strain rate is constant = ((rho_ice*g*h)/4B)^3 (Paterson, 4th Edition, page 292. 63 %ey_c=(md.materials.rho_ice*md.constants.g*(1-di)*md. thickness./(4*md.materials.rheology_B)).^3;63 %ey_c=(md.materials.rho_ice*md.constants.g*(1-di)*md.geometry.thickness./(4*md.materials.rheology_B)).^3; 64 64 %vy_c=ey_c.*md.y*md.constants.yts; 65 65 -
issm/trunk/test/NightlyRun/test235.m
r9684 r9691 18 18 19 19 h=1000; 20 md. thickness=h*ones(md.numberofnodes,1);21 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;22 md. surface=md.bed+md.thickness;20 md.geometry.thickness=h*ones(md.numberofnodes,1); 21 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 22 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 23 23 24 24 %Initial velocity and pressure -
issm/trunk/test/NightlyRun/test236.m
r9684 r9691 18 18 19 19 h=1000; 20 md. thickness=h*ones(md.numberofnodes,1);21 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;22 md. surface=md.bed+md.thickness;20 md.geometry.thickness=h*ones(md.numberofnodes,1); 21 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 22 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 23 23 24 24 %Initial velocity and pressure -
issm/trunk/test/NightlyRun/test245.m
r9664 r9691 3 3 md=parameterize(md,'../Par/SquareShelf.par'); 4 4 md=setflowequation(md,'macayeal','all'); 5 md. bed=md.bed+50; md.surface=md.surface+50;5 md.geometry.bed=md.geometry.bed+50; md.geometry.surface=md.geometry.surface+50; 6 6 md.cluster=none; 7 7 md.prognostic.hydrostatic_adjustment='Incremental'; -
issm/trunk/test/NightlyRun/test246.m
r9664 r9691 3 3 md=parameterize(md,'../Par/SquareShelf.par'); 4 4 md=setflowequation(md,'macayeal','all'); 5 md. bed=md.bed+50; md.surface=md.surface+50;5 md.geometry.bed=md.geometry.bed+50; md.geometry.surface=md.geometry.surface+50; 6 6 md.cluster=generic('name',oshostname(),'np',3); 7 7 md.prognostic.hydrostatic_adjustment='Incremental'; -
issm/trunk/test/NightlyRun/test249.m
r9664 r9691 4 4 md=extrude(md,3,1); 5 5 md=setflowequation(md,'pattyn','all'); 6 md. bed=md.bed+50; md.surface=md.surface+50;6 md.geometry.bed=md.geometry.bed+50; md.geometry.surface=md.geometry.surface+50; 7 7 md.cluster=none; 8 8 md.prognostic.hydrostatic_adjustment='Incremental'; -
issm/trunk/test/NightlyRun/test250.m
r9664 r9691 4 4 md=extrude(md,3,1); 5 5 md=setflowequation(md,'pattyn','all'); 6 md. bed=md.bed+50; md.surface=md.surface+50;6 md.geometry.bed=md.geometry.bed+50; md.geometry.surface=md.geometry.surface+50; 7 7 md.cluster=generic('name',oshostname(),'np',3); 8 8 md.prognostic.hydrostatic_adjustment='Incremental'; -
issm/trunk/test/NightlyRun/test319.m
r9664 r9691 5 5 md=setflowequation(md,'macayeal','all'); 6 6 md.prognostic.stabilization=3; 7 md.prognostic.spcthickness=md. thickness;7 md.prognostic.spcthickness=md.geometry.thickness; 8 8 md.cluster=none; 9 9 md=solve(md,PrognosticSolutionEnum); -
issm/trunk/test/NightlyRun/test320.m
r9664 r9691 5 5 md=setflowequation(md,'macayeal','all'); 6 6 md.prognostic.stabilization=3; 7 md.prognostic.spcthickness=md. thickness;7 md.prognostic.spcthickness=md.geometry.thickness; 8 8 md.cluster=generic('name',oshostname(),'np',3); 9 9 md=solve(md,PrognosticSolutionEnum); -
issm/trunk/test/NightlyRun/test427.m
r9679 r9691 5 5 md.cluster=none; 6 6 md.materials.rho_ice=10^7; %involved in the mass flux, make it easy 7 md. thickness(:)=1; %make it easy7 md.geometry.thickness(:)=1; %make it easy 8 8 9 9 %constrain all velocities to 1 m/yr, in the y-direction -
issm/trunk/test/NightlyRun/test428.m
r9679 r9691 5 5 md.cluster=generic('name',oshostname(),'np',3); 6 6 md.materials.rho_ice=10^7; %involved in the mass flux, make it easy 7 md. thickness(:)=1; %make it easy7 md.geometry.thickness(:)=1; %make it easy 8 8 9 9 %constrain all velocities to 1 m/yr, in the y-direction -
issm/trunk/test/NightlyRun/test434.m
r9679 r9691 5 5 md.cluster=generic('name',oshostname(),'np',3); 6 6 md.materials.rho_ice=10^7; %involved in the mass flux, make it easy 7 md. thickness(:)=1; %make it easy7 md.geometry.thickness(:)=1; %make it easy 8 8 9 9 %constrain all velocities to 1 m/yr, in the y-direction -
issm/trunk/test/NightlyRun/test446.m
r9664 r9691 26 26 rad=sqrt((md.x).*md.x+(md.y).*md.y); 27 27 pos=find(rad<200000); 28 md. thickness(pos)=100;29 md. bed(pos)=-di*md.thickness(pos)-20;30 md. surface(pos)=md.bed(pos)+md.thickness(pos);28 md.geometry.thickness(pos)=100; 29 md.geometry.bed(pos)=-di*md.geometry.thickness(pos)-20; 30 md.geometry.surface(pos)=md.geometry.bed(pos)+md.geometry.thickness(pos); 31 31 32 32 pos=find(md.x<.2*1e6 & md.x>-.2*1e6 & md.y>0); 33 md. thickness(pos)=100;34 md. bed(pos)=-di*md.thickness(pos)-20;35 md. surface(pos)=md.bed(pos)+md.thickness(pos);33 md.geometry.thickness(pos)=100; 34 md.geometry.bed(pos)=-di*md.geometry.thickness(pos)-20; 35 md.geometry.surface(pos)=md.geometry.bed(pos)+md.geometry.thickness(pos); 36 36 37 37 pos=find(md.x<.1*1e6 & md.x>-.1*1e6 & md.y<-.5*1e6 & md.y>-.6*1e6); 38 md. thickness(pos)=100;39 md. bed(pos)=-di*md.thickness(pos)-20;40 md. surface(pos)=md.bed(pos)+md.thickness(pos);38 md.geometry.thickness(pos)=100; 39 md.geometry.bed(pos)=-di*md.geometry.thickness(pos)-20; 40 md.geometry.surface(pos)=md.geometry.bed(pos)+md.geometry.thickness(pos); 41 41 %}}} 42 42 -
issm/trunk/test/NightlyRun/test521.m
r9684 r9691 4 4 5 5 %impose hydrostatic equilibrium (required by Stokes) 6 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;7 md. surface=md.bed+md.thickness;6 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 7 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 8 8 md=extrude(md,3,1); 9 9 md=setflowequation(md,'stokes','all'); -
issm/trunk/test/NightlyRun/test522.m
r9684 r9691 4 4 5 5 %impose hydrostatic equilibrium (required by Stokes) 6 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;7 md. surface=md.bed+md.thickness;6 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 7 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 8 8 md=extrude(md,3,1); 9 9 md=setflowequation(md,'stokes','all'); -
issm/trunk/test/NightlyRun/test527.m
r9681 r9691 39 39 40 40 %refine existing mesh 5 41 md2=bamg(md,'field',[md.inversion.vy_obs md. thickness],'hmin',1000,'hmax',20000,'gradation',3,'geometricalmetric',1,'Hessiantype',1,'err',[10 100]);41 md2=bamg(md,'field',[md.inversion.vy_obs md.geometry.thickness],'hmin',1000,'hmax',20000,'gradation',3,'geometricalmetric',1,'Hessiantype',1,'err',[10 100]); 42 42 x7=md2.x; 43 43 y7=md2.y; -
issm/trunk/test/NightlyRun/test603.m
r9664 r9691 5 5 md=setflowequation(md,'macayeal','all'); 6 6 md.prognostic.stabilization=3; 7 md.prognostic.spcthickness=md. thickness;7 md.prognostic.spcthickness=md.geometry.thickness; 8 8 md.cluster=none; 9 9 md=solve(md,PrognosticSolutionEnum); -
issm/trunk/test/NightlyRun/test604.m
r9664 r9691 5 5 md=setflowequation(md,'macayeal','all'); 6 6 md.prognostic.stabilization=3; 7 md.prognostic.spcthickness=md. thickness;7 md.prognostic.spcthickness=md.geometry.thickness; 8 8 md.cluster=generic('name',oshostname(),'np',3); 9 9 md=solve(md,PrognosticSolutionEnum); -
issm/trunk/test/NightlyRun/test621.m
r9681 r9691 9 9 md.inversion.iscontrol=1; 10 10 md.inversion.control_parameters={'BalancethicknessThickeningRate'}; 11 md.inversion.thickness_obs=md. thickness;11 md.inversion.thickness_obs=md.geometry.thickness; 12 12 md.inversion.min_parameters=-50*ones(md.numberofnodes,1); 13 13 md.inversion.max_parameters=50*ones(md.numberofnodes,1); -
issm/trunk/test/NightlyRun/test622.m
r9681 r9691 9 9 md.inversion.iscontrol=1; 10 10 md.inversion.control_parameters={'BalancethicknessThickeningRate'}; 11 md.inversion.thickness_obs=md. thickness;11 md.inversion.thickness_obs=md.geometry.thickness; 12 12 md.inversion.min_parameters=-50*ones(md.numberofnodes,1); 13 13 md.inversion.max_parameters=50*ones(md.numberofnodes,1); -
issm/trunk/test/NightlyRun/test623.m
r9681 r9691 10 10 md.inversion.iscontrol=1; 11 11 md.inversion.control_parameters={'BalancethicknessThickeningRate'}; 12 md.inversion.thickness_obs=md. thickness;12 md.inversion.thickness_obs=md.geometry.thickness; 13 13 md.inversion.min_parameters=-50*ones(md.numberofnodes,1); 14 14 md.inversion.max_parameters=50*ones(md.numberofnodes,1); -
issm/trunk/test/NightlyRun/test624.m
r9681 r9691 10 10 md.inversion.iscontrol=1; 11 11 md.inversion.control_parameters={'BalancethicknessThickeningRate'}; 12 md.inversion.thickness_obs=md. thickness;12 md.inversion.thickness_obs=md.geometry.thickness; 13 13 md.inversion.min_parameters=-50*ones(md.numberofnodes,1); 14 14 md.inversion.max_parameters=50*ones(md.numberofnodes,1); -
issm/trunk/test/NightlyRun/test625.m
r9681 r9691 8 8 md=modelextract(md,md.mask.elementongroundedice); 9 9 pos=find(md.nodeonboundary); 10 md.balancethickness.spcthickness(pos)=md. thickness(pos);10 md.balancethickness.spcthickness(pos)=md.geometry.thickness(pos); 11 11 12 12 %control parameters 13 md.inversion.thickness_obs=md. thickness;13 md.inversion.thickness_obs=md.geometry.thickness; 14 14 md.inversion.iscontrol=1; 15 md.inversion.thickness_obs=md. thickness;15 md.inversion.thickness_obs=md.geometry.thickness; 16 16 md.inversion.nsteps=2; 17 17 md.inversion.control_parameters={'Vx' 'Vy'}; -
issm/trunk/test/NightlyRun/test626.m
r9681 r9691 8 8 md=modelextract(md,md.mask.elementongroundedice); 9 9 pos=find(md.nodeonboundary); 10 md.balancethickness.spcthickness(pos)=md. thickness(pos);10 md.balancethickness.spcthickness(pos)=md.geometry.thickness(pos); 11 11 12 12 %control parameters 13 md.inversion.thickness_obs=md. thickness;13 md.inversion.thickness_obs=md.geometry.thickness; 14 14 md.inversion.iscontrol=1; 15 md.inversion.thickness_obs=md. thickness;15 md.inversion.thickness_obs=md.geometry.thickness; 16 16 md.inversion.nsteps=2; 17 17 md.inversion.control_parameters={'Vx' 'Vy'}; -
issm/trunk/test/Par/79North.par
r9684 r9691 5 5 md.initialization.vx =InterpFromMeshToMesh2d(index,x,y,vx,md.x,md.y); 6 6 md.initialization.vy =InterpFromMeshToMesh2d(index,x,y,vy,md.x,md.y); 7 md. surface =InterpFromMeshToMesh2d(index,x,y,surface,md.x,md.y);8 md. thickness=InterpFromMeshToMesh2d(index,x,y,thickness,md.x,md.y);9 md. bed=md.surface-md.thickness;7 md.geometry.surface =InterpFromMeshToMesh2d(index,x,y,surface,md.x,md.y); 8 md.geometry.thickness=InterpFromMeshToMesh2d(index,x,y,thickness,md.x,md.y); 9 md.geometry.bed=md.geometry.surface-md.geometry.thickness; 10 10 clear surface thickness vx vy x y index; 11 11 … … 45 45 md=SetMarineIceSheetBC(md); 46 46 pos=find(md.nodeonboundary); 47 md.balancethickness.spcthickness(pos)=md. thickness(pos);48 md.prognostic.spcthickness(pos)=md. thickness(pos);47 md.balancethickness.spcthickness(pos)=md.geometry.thickness(pos); 48 md.prognostic.spcthickness(pos)=md.geometry.thickness(pos); 49 49 50 50 %Change name so that no test have the same name -
issm/trunk/test/Par/ISMIPA.par
r9641 r9691 2 2 3 3 disp(' creating thickness'); 4 md. surface=-md.x*tan(0.5*pi/180);5 md. bed=md.surface-1000+500*sin(md.x*2*pi/max(md.x)).*sin(md.y*2*pi/max(md.x));6 md. thickness=md.surface-md.bed;4 md.geometry.surface=-md.x*tan(0.5*pi/180); 5 md.geometry.bed=md.geometry.surface-1000+500*sin(md.x*2*pi/max(md.x)).*sin(md.y*2*pi/max(md.x)); 6 md.geometry.thickness=md.geometry.surface-md.geometry.bed; 7 7 8 8 disp(' creating drag'); -
issm/trunk/test/Par/ISMIPB.par
r9641 r9691 2 2 3 3 disp(' creating thickness'); 4 md. surface=-md.x*tan(0.5*pi/180);5 md. bed=md.surface-1000+500*sin(md.x*2*pi/max(md.x));6 md. thickness=md.surface-md.bed;4 md.geometry.surface=-md.x*tan(0.5*pi/180); 5 md.geometry.bed=md.geometry.surface-1000+500*sin(md.x*2*pi/max(md.x)); 6 md.geometry.thickness=md.geometry.surface-md.geometry.bed; 7 7 8 8 disp(' creating drag'); -
issm/trunk/test/Par/ISMIPC.par
r9641 r9691 2 2 3 3 disp(' creating thickness'); 4 md. surface=2000-md.x*tan(0.1*pi/180); %to have z>05 md. bed=md.surface-1000;6 md. thickness=md.surface-md.bed;4 md.geometry.surface=2000-md.x*tan(0.1*pi/180); %to have z>0 5 md.geometry.bed=md.geometry.surface-1000; 6 md.geometry.thickness=md.geometry.surface-md.geometry.bed; 7 7 8 8 disp(' creating drag'); 9 %md.friction.coefficient=sqrt(md.constants.yts.*(1000+1000*sin(md.x*2*pi/max(md.x/2)).*sin(md.y*2*pi/max(md.x/2)))./(md.constants.g*(md.materials.rho_ice*md. thickness+md.materials.rho_water*md.bed)));9 %md.friction.coefficient=sqrt(md.constants.yts.*(1000+1000*sin(md.x*2*pi/max(md.x/2)).*sin(md.y*2*pi/max(md.x/2)))./(md.constants.g*(md.materials.rho_ice*md.geometry.thickness+md.materials.rho_water*md.geometry.bed))); 10 10 md.friction.coefficient=sqrt(md.constants.yts.*(1000+1000*sin(md.x*2*pi/max(md.x)).*sin(md.y*2*pi/max(md.x)))); 11 11 %Take care of iceshelves: no basal drag -
issm/trunk/test/Par/ISMIPD.par
r9641 r9691 2 2 3 3 disp(' creating thickness'); 4 md. surface=2000-md.x*tan(0.1*pi/180); %to have z>05 md. bed=md.surface-1000;6 md. thickness=md.surface-md.bed;4 md.geometry.surface=2000-md.x*tan(0.1*pi/180); %to have z>0 5 md.geometry.bed=md.geometry.surface-1000; 6 md.geometry.thickness=md.geometry.surface-md.geometry.bed; 7 7 8 8 disp(' creating drag'); -
issm/trunk/test/Par/ISMIPE.par
r9636 r9691 4 4 data=load('../Data/ISMIPE.data','-mat'); 5 5 data=data.data; 6 md. surface=zeros(md.numberofnodes,1);7 md. bed=zeros(md.numberofnodes,1);6 md.geometry.surface=zeros(md.numberofnodes,1); 7 md.geometry.bed=zeros(md.numberofnodes,1); 8 8 for i=1:md.numberofnodes 9 9 y=md.y(i); … … 11 11 point2=min(point1+1,51); 12 12 coeff=(y-(point1-1)*100)/100; 13 md. bed(i)=(1-coeff)*data(point1,2)+coeff*data(point2,2);14 md. surface(i)=(1-coeff)*data(point1,3)+coeff*data(point2,3);13 md.geometry.bed(i)=(1-coeff)*data(point1,2)+coeff*data(point2,2); 14 md.geometry.surface(i)=(1-coeff)*data(point1,3)+coeff*data(point2,3); 15 15 end 16 md. thickness=md.surface-md.bed;17 md. thickness(find(~md.thickness))=0.01;18 md. bed=md.surface-md.thickness;16 md.geometry.thickness=md.geometry.surface-md.geometry.bed; 17 md.geometry.thickness(find(~md.geometry.thickness))=0.01; 18 md.geometry.bed=md.geometry.surface-md.geometry.thickness; 19 19 20 20 disp(' creating drag'); -
issm/trunk/test/Par/ISMIPF.par
r9684 r9691 3 3 4 4 disp(' creating thickness'); 5 md. surface=-md.x*tan(3*pi/180);6 %md. bed=md.surface-1000;7 md. bed=md.surface-1000+100*exp(-((md.x-max(md.x)/2).^2+(md.y-max(md.y)/2).^2)/(10000^2));8 md. thickness=md.surface-md.bed;5 md.geometry.surface=-md.x*tan(3*pi/180); 6 %md.geometry.bed=md.geometry.surface-1000; 7 md.geometry.bed=md.geometry.surface-1000+100*exp(-((md.x-max(md.x)/2).^2+(md.y-max(md.y)/2).^2)/(10000^2)); 8 md.geometry.thickness=md.geometry.surface-md.geometry.bed; 9 9 10 10 disp(' creating drag'); … … 30 30 pos=find(md.x==min(md.x) | md.x==max(md.x) | md.y==min(md.y) | md.y==max(md.y)); 31 31 md.balancethickness.spcthickness=NaN*ones(md.numberofnodes,1); 32 md.balancethickness.spcthickness(pos)=md. thickness(pos);32 md.balancethickness.spcthickness(pos)=md.geometry.thickness(pos); 33 33 md.prognostic.spcthickness=NaN*ones(md.numberofnodes,1); 34 md.prognostic.spcthickness(pos)=md. thickness(pos);34 md.prognostic.spcthickness(pos)=md.geometry.thickness(pos); 35 35 md.thermal.spctemperature=255*ones(md.numberofnodes,1); 36 36 md.basalforcings.geothermalflux=0.4*ones(md.numberofnodes,1); -
issm/trunk/test/Par/Pig.par
r9684 r9691 5 5 md.inversion.vx_obs =InterpFromMeshToMesh2d(index,x,y,vx_obs,md.x,md.y); 6 6 md.inversion.vy_obs =InterpFromMeshToMesh2d(index,x,y,vy_obs,md.x,md.y); 7 md. surface =InterpFromMeshToMesh2d(index,x,y,surface,md.x,md.y);8 md. thickness=InterpFromMeshToMesh2d(index,x,y,thickness,md.x,md.y);9 md. bed=md.surface-md.thickness;7 md.geometry.surface =InterpFromMeshToMesh2d(index,x,y,surface,md.x,md.y); 8 md.geometry.thickness=InterpFromMeshToMesh2d(index,x,y,thickness,md.x,md.y); 9 md.geometry.bed=md.geometry.surface-md.geometry.thickness; 10 10 clear surface thickness vx_obs vy_obs x y index; 11 11 md.initialization.vx=md.inversion.vx_obs; -
issm/trunk/test/Par/RoundSheetEISMINT.par
r9684 r9691 1 1 %Ok, start defining model parameters here 2 2 disp(' creating thickness'); 3 md. thickness=10*ones(md.numberofnodes,1);4 md. bed=zeros(md.numberofnodes,1);5 md. surface=md.bed+md.thickness;3 md.geometry.thickness=10*ones(md.numberofnodes,1); 4 md.geometry.bed=zeros(md.numberofnodes,1); 5 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 6 6 7 7 disp(' creating drag'); … … 29 29 disp(' creating velocities'); 30 30 constant=0.3; 31 md.inversion.vx_obs=constant/2*md.x.*(md. thickness).^-1;32 md.inversion.vy_obs=constant/2*md.y.*(md. thickness).^-1;31 md.inversion.vx_obs=constant/2*md.x.*(md.geometry.thickness).^-1; 32 md.inversion.vy_obs=constant/2*md.y.*(md.geometry.thickness).^-1; 33 33 md.inversion.vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2)); 34 34 md.initialization.vx=zeros(md.numberofnodes,1); -
issm/trunk/test/Par/RoundSheetShelf.par
r9684 r9691 10 10 ymin=min(radius); 11 11 ymax=max(radius); 12 md. thickness=hmax+(hmin-hmax)*(radius-ymin)/(ymax-ymin);13 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;12 md.geometry.thickness=hmax+(hmin-hmax)*(radius-ymin)/(ymax-ymin); 13 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 14 14 15 15 pos=find(md.mask.vertexongroundedice); 16 md. bed(pos)=md.bed(pos)-300*(radius(pos)-(rad-shelfextent))/(rad-shelfextent);17 md. surface=md.bed+md.thickness;16 md.geometry.bed(pos)=md.geometry.bed(pos)-300*(radius(pos)-(rad-shelfextent))/(rad-shelfextent); 17 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 18 18 19 19 pos=find(radius<200000); 20 md. thickness(pos)=100;21 md. bed(pos)=-di*md.thickness(pos)-20;22 md. surface(pos)=md.bed(pos)+md.thickness(pos);20 md.geometry.thickness(pos)=100; 21 md.geometry.bed(pos)=-di*md.geometry.thickness(pos)-20; 22 md.geometry.surface(pos)=md.geometry.bed(pos)+md.geometry.thickness(pos); 23 23 24 24 25 25 pos=find(md.x<.2*1e6 & md.x>-.2*1e6 & md.y>0); 26 md. thickness(pos)=100;27 md. bed(pos)=-di*md.thickness(pos)-20;28 md. surface(pos)=md.bed(pos)+md.thickness(pos);26 md.geometry.thickness(pos)=100; 27 md.geometry.bed(pos)=-di*md.geometry.thickness(pos)-20; 28 md.geometry.surface(pos)=md.geometry.bed(pos)+md.geometry.thickness(pos); 29 29 30 30 pos=find(md.x<.1*1e6 & md.x>-.1*1e6 & md.y<-.5*1e6 & md.y>-.6*1e6); 31 md. thickness(pos)=100;32 md. bed(pos)=-di*md.thickness(pos)-20;33 md. surface(pos)=md.bed(pos)+md.thickness(pos);31 md.geometry.thickness(pos)=100; 32 md.geometry.bed(pos)=-di*md.geometry.thickness(pos)-20; 33 md.geometry.surface(pos)=md.geometry.bed(pos)+md.geometry.thickness(pos); 34 34 35 35 %Initial velocity … … 71 71 %bathymetry and grounding line migration: 72 72 md.groundingline.migration='AgressiveMigration'; 73 md. bathymetry=md.bed;74 pos=find(md.mask.vertexonfloatingice); md. bathymetry(pos)=md.bed(pos)-900;73 md.geometry.bathymetry=md.geometry.bed; 74 pos=find(md.mask.vertexonfloatingice); md.geometry.bathymetry(pos)=md.geometry.bed(pos)-900; 75 75 76 76 %Deal with boundary conditions: -
issm/trunk/test/Par/RoundSheetStaticEISMINT.par
r9684 r9691 4 4 radius=(sqrt((md.x).^2+(md.y).^2)); 5 5 radiusmax=max(radius); 6 md. thickness=hmin*ones(size(md.x,1),1)+hmax*(4*((1/2)^(4/3)*ones(size(md.x,1),1)-((radius)./(2*radiusmax)).^(4/3))).^(3/8);7 md. bed=0*md.thickness;8 md. surface=md.bed+md.thickness;6 md.geometry.thickness=hmin*ones(size(md.x,1),1)+hmax*(4*((1/2)^(4/3)*ones(size(md.x,1),1)-((radius)./(2*radiusmax)).^(4/3))).^(3/8); 7 md.geometry.bed=0*md.geometry.thickness; 8 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 9 9 10 10 disp(' creating drag'); … … 34 34 disp(' creating velocities'); 35 35 constant=0.3; 36 md.inversion.vx_obs=constant/2*md.x.*(md. thickness).^-1;37 md.inversion.vy_obs=constant/2*md.y.*(md. thickness).^-1;36 md.inversion.vx_obs=constant/2*md.x.*(md.geometry.thickness).^-1; 37 md.inversion.vy_obs=constant/2*md.y.*(md.geometry.thickness).^-1; 38 38 md.inversion.vel_obs=(sqrt((md.inversion.vx_obs).^2+(md.inversion.vy_obs).^2)); 39 39 md.initialization.vx=zeros(md.numberofnodes,1); -
issm/trunk/test/Par/SquareEISMINT.par
r9684 r9691 4 4 ymin=min(md.y); 5 5 ymax=max(md.y); 6 md. thickness=500*ones(md.numberofnodes,1);7 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;8 md. surface=md.bed+md.thickness;6 md.geometry.thickness=500*ones(md.numberofnodes,1); 7 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 8 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 9 9 10 10 disp(' creating drag'); -
issm/trunk/test/Par/SquareSheetConstrained.par
r9684 r9691 6 6 ymin=min(md.y); 7 7 ymax=max(md.y); 8 md. thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin);9 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness+20;10 md. surface=md.bed+md.thickness;8 md.geometry.thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin); 9 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness+20; 10 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 11 11 12 12 %Initial velocity -
issm/trunk/test/Par/SquareSheetShelf.par
r9684 r9691 6 6 ymin=min(md.y); 7 7 ymax=max(md.y); 8 md. thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin);9 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;8 md.geometry.thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin); 9 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 10 10 bed_sheet=-md.materials.rho_ice/md.materials.rho_water*(hmax+(hmin-hmax)*(ymax/2-ymin)/(ymax-ymin)); 11 11 pos=find(md.y<=ymax/2); 12 md. bed(pos)=bed_sheet;13 md. surface=md.bed+md.thickness;12 md.geometry.bed(pos)=bed_sheet; 13 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 14 14 15 15 %Initial velocity -
issm/trunk/test/Par/SquareShelf.par
r9684 r9691 6 6 ymin=min(md.y); 7 7 ymax=max(md.y); 8 md. thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin);9 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;10 md. surface=md.bed+md.thickness;8 md.geometry.thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin); 9 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 10 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 11 11 12 12 %Initial velocity and pressure -
issm/trunk/test/Par/SquareShelfConstrained.par
r9684 r9691 6 6 ymin=min(md.y); 7 7 ymax=max(md.y); 8 md. thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin);9 md. bed=-md.materials.rho_ice/md.materials.rho_water*md.thickness;10 md. surface=md.bed+md.thickness;8 md.geometry.thickness=hmax+(hmin-hmax)*(md.y-ymin)/(ymax-ymin); 9 md.geometry.bed=-md.materials.rho_ice/md.materials.rho_water*md.geometry.thickness; 10 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 11 11 12 12 %Initial velocity -
issm/trunk/test/Par/SquareThermal.par
r9684 r9691 5 5 disp(' creating thickness'); 6 6 h=1000; 7 md. thickness=h*ones(md.numberofnodes,1);8 md. bed=-1000*ones(md.numberofnodes,1);9 md. surface=md.bed+md.thickness;7 md.geometry.thickness=h*ones(md.numberofnodes,1); 8 md.geometry.bed=-1000*ones(md.numberofnodes,1); 9 md.geometry.surface=md.geometry.bed+md.geometry.thickness; 10 10 11 11 disp(' creating velocities');
Note:
See TracChangeset
for help on using the changeset viewer.