Changeset 4876
- Timestamp:
- 07/29/10 10:43:53 (15 years ago)
- Location:
- issm/trunk/test/Validation/ThermalTests
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/test/Validation/ThermalTests/Melting/Square.par
r3768 r4876 3 3 %parallelization 4 4 md.cluster='none'; 5 md.np=3; 6 md.dt=0; 5 7 6 8 disp(' creating thickness'); … … 39 41 40 42 disp(' boundary conditions for diagnostic model'); 41 md=Set IceShelfBC(md,'Front.exp');43 md=SetMarineIceSheetBC(md,'Front.exp'); 42 44 43 45 disp(' boundary conditions for thermal model'); 44 md.gridondirichlet_thermal=ones(md.numberofgrids,1); %surface temperature 45 md.dirichletvalues_thermal=md.observed_temperature; 46 md.temperature=md.observed_temperature; 47 md.spctemperature(:,1)=ones(md.numberofgrids,1); %surface temperature 48 md.spctemperature(:,2)=md.observed_temperature; 46 49 md.geothermalflux=zeros(md.numberofgrids,1); 47 50 pos=find(md.elementonicesheet);md.geothermalflux(md.elements(pos,:))=1*10^-3; %1 mW/m^2 -
issm/trunk/test/Validation/ThermalTests/Melting/runme.m
r2553 r4876 22 22 23 23 %modeled results 24 %md=solve(md,'analysis_type','thermal','sub_analysis_type','steady'); 25 md=solve(md,'analysis_type','thermal','sub_analysis_type','steady'); 24 md=solve(md,'analysis_type',ThermalSolutionEnum); 26 25 27 26 %plot results 28 relative=abs((md.results.thermal.melting-melting)./melting)*100; 29 relative(find(md.results.thermal.melting==melting))=0; 30 plotmodel(md,'data','melting','title','modeled melting','data',melting,'title','analytical melting','data',md.results.thermal.melting-melting,'title','absolute error','data',relative,'title','relative error [%]','layer#all',1) 27 comp_melting=zeros(md.numberofgrids,1); 28 comp_melting(md.results.ThermalSolution.MeltingRate.index)=md.results.ThermalSolution.MeltingRate.value; 29 relative=abs((comp_melting-melting)./melting)*100; 30 relative(find(comp_melting==melting))=0; 31 plotmodel(md,'data',comp_melting,'title','modeled melting','data',melting,'title','analytical melting','data',comp_melting-melting,'title','absolute error','data',relative,'title','relative error [%]','layer#all',1) -
issm/trunk/test/Validation/ThermalTests/Melting/thermalboundarycondition.m
r16 r4876 2 2 %Ok, start defining model BC 3 3 disp(' boundary conditions for thermal model '); 4 if strcmp(md.type,'3d')4 if md.dim==3, 5 5 % pos2=find(md.elementonsurface); md.gridondirichlet_thermal(md.elements(pos2,4:6))=1; md.dirichletvalues_thermal(md.elements(pos2,4:6))=0; 6 6 md.vx=zeros(md.numberofgrids,1); -
issm/trunk/test/Validation/ThermalTests/Simpleadvection/Square.par
r3768 r4876 3 3 %parallelization 4 4 md.cluster='none'; 5 md.dt=0; 5 6 6 7 disp(' creating thickness'); … … 37 38 38 39 %Deal with boundary conditions: 39 40 40 disp(' boundary conditions for diagnostic model'); 41 md=Set IceShelfBC(md,'Front.exp');41 md=SetMarineIceSheetBC(md,'Front.exp'); 42 42 43 43 disp(' boundary conditions for thermal model'); 44 md.gridondirichlet_thermal=ones(md.numberofgrids,1); %surface temperature 45 md.dirichletvalues_thermal=md.observed_temperature; 44 md.temperature=md.observed_temperature; 45 md.spctemperature(:,1)=ones(md.numberofgrids,1); %surface temperature 46 md.spctemperature(:,2)=md.observed_temperature; 46 47 md.geothermalflux=zeros(md.numberofgrids,1); 47 48 pos=find(md.elementonicesheet);md.geothermalflux(md.elements(pos,:))=50*10^-3; %50 mW/m^2 49 50 disp(' cluster properties'); 51 md.np=3; -
issm/trunk/test/Validation/ThermalTests/Simpleadvection/runme.m
r899 r4876 23 23 24 24 %modeled results 25 md=solve(md,'analysis_type', 'thermal','sub_analysis_type','steady','package','ice');25 md=solve(md,'analysis_type',ThermalSolutionEnum); 26 26 27 27 %plot results 28 relative=abs((md.results.thermal.temperature-md.observed_temperature)./md.observed_temperature)*100; 29 relative(find(md.results.thermal.temperature==md.observed_temperature))=0; 30 plotmodel(md,'data',md.results.thermal.temperature,'title','modeled temperature','data','observed_temperature','view',3,'title','analytical temperature','view',3,'data',md.results.thermal.temperature-md.observed_temperature,'title','absolute error','view',3,'data',relative,'title','relative error [%]','view',3) 28 comp_temp=zeros(md.numberofgrids,1); 29 comp_temp(md.results.ThermalSolution.Temperature.index)=md.results.ThermalSolution.Temperature.value; 30 relative=abs((comp_temp-md.observed_temperature)./md.observed_temperature)*100; 31 relative(find(comp_temp==md.observed_temperature))=0; 32 plotmodel(md,'data',comp_temp,'title','modeled temperature','data','observed_temperature','view',3,'title','analytical temperature','view',3,'data',comp_temp-md.observed_temperature,'title','absolute error','view',3,'data',relative,'title','relative error [%]','view',3) -
issm/trunk/test/Validation/ThermalTests/Simpleadvection/thermalboundarycondition.m
r16 r4876 2 2 %Ok, start defining model BC 3 3 disp(' boundary conditions for thermal model '); 4 if strcmp(md.type,'3d')5 pos1=find(md.elementonbed); md. gridondirichlet_thermal(md.elements(pos1,1:3))=1; md.dirichletvalues_thermal(md.elements(pos1,1:3))=10;6 pos2=find(md.elementonsurface); md. gridondirichlet_thermal(md.elements(pos2,4:6))=1; md.dirichletvalues_thermal(md.elements(pos2,4:6))=0;4 if md.dim==3, 5 pos1=find(md.elementonbed); md.spctemperature(md.elements(pos1,1:3),1)=1; md.spctemperature(md.elements(pos1,1:3),2)=10; 6 pos2=find(md.elementonsurface); md.spctemperature(md.elements(pos2,4:6),1)=1; md.spctemperature(md.elements(pos2,4:6),2)=0; 7 7 md.vx=zeros(md.numberofgrids,1); 8 8 md.vy=zeros(md.numberofgrids,1); -
issm/trunk/test/Validation/ThermalTests/Simpleconduction/Square.par
r3768 r4876 1 1 %Ok, start defining model parameters here 2 2 3 %parallelization 4 md.cluster='none'; 3 md.dt=0; 5 4 6 disp(' creating thickness'); 7 h=1000; 8 md.thickness=h*ones(md.numberofgrids,1); 9 md.firn_layer=10*ones(md.numberofgrids,1); 10 md.bed=zeros(md.numberofgrids,1); 11 md.surface=md.thickness; 5 %parallelization 6 md.np=3; 12 7 13 disp(' creating velocities'); 14 md.vx_obs=zeros(md.numberofgrids,1); 15 md.vy_obs=zeros(md.numberofgrids,1); 16 md.vel_obs=sqrt(md.vx_obs.^2+md.vy_obs.^2); 17 18 disp(' creating drag'); 19 md.drag_type=2; %0 none 1 plastic 2 viscous 20 md.drag_coefficient=200*ones(md.numberofgrids,1); %q=1. 21 %Take care of iceshelves: no basal drag 22 pos=find(md.elementoniceshelf); 23 md.drag_coefficient(md.elements(pos,:))=0; 24 md.drag_p=ones(md.numberofelements,1); 25 md.drag_q=ones(md.numberofelements,1); 8 disp(' creating thickness'); 9 h=1000; 10 md.thickness=h*ones(md.numberofgrids,1); 11 md.firn_layer=10*ones(md.numberofgrids,1); 12 md.bed=zeros(md.numberofgrids,1); 13 md.surface=md.thickness; 26 14 27 disp(' creating temperatures'); 28 md.observed_temperature=(273-20)*ones(md.numberofgrids,1); 15 disp(' creating velocities'); 16 md.vx_obs=zeros(md.numberofgrids,1); 17 md.vy_obs=zeros(md.numberofgrids,1); 18 md.vel_obs=sqrt(md.vx_obs.^2+md.vy_obs.^2); 29 19 30 disp(' creating flow law paramter'); 31 md.rheology_B=paterson(md.observed_temperature); 32 md.rheology_n=3*ones(md.numberofelements,1); 33 34 disp(' creating accumulation rates'); 35 md.accumulation_rate=ones(md.numberofgrids,1)/md.yts; %1m/a 36 md.melting_rate=0*ones(md.numberofgrids,1)/md.yts; %1m/a 20 disp(' creating drag'); 21 md.drag_type=2; %0 none 1 plastic 2 viscous 22 md.drag_coefficient=200*ones(md.numberofgrids,1); %q=1. 23 %Take care of iceshelves: no basal drag 24 pos=find(md.elementoniceshelf); 25 md.drag_coefficient(md.elements(pos,:))=0; 26 md.drag_p=ones(md.numberofelements,1); 27 md.drag_q=ones(md.numberofelements,1); 37 28 38 %Deal with boundary conditions: 39 40 disp(' boundary conditions for diagnostic model'); 41 md=SetIceShelfBC(md,'Front.exp'); 42 43 disp(' boundary conditions for thermal model'); 44 md.gridondirichlet_thermal=ones(md.numberofgrids,1); %surface temperature 45 md.dirichletvalues_thermal=md.observed_temperature; 46 md.geothermalflux=zeros(md.numberofgrids,1); 47 pos=find(md.elementonicesheet);md.geothermalflux(md.elements(pos,:))=50*10^-3; %50 mW/m^2 29 disp(' creating temperatures'); 30 md.observed_temperature=(273-20)*ones(md.numberofgrids,1); 31 32 disp(' creating flow law paramter'); 33 md.rheology_B=paterson(md.observed_temperature); 34 md.rheology_n=3*ones(md.numberofelements,1); 35 36 disp(' creating accumulation rates'); 37 md.accumulation_rate=ones(md.numberofgrids,1)/md.yts; %1m/a 38 md.melting_rate=0*ones(md.numberofgrids,1)/md.yts; %1m/a 39 40 %Deal with boundary conditions: 41 42 disp(' boundary conditions for diagnostic model'); 43 md=SetMarineIceSheetBC(md,'Front.exp'); 44 45 disp(' boundary conditions for thermal model'); 46 md.spctemperature(:,1)=ones(md.numberofgrids,1); %surface temperature 47 md.spctemperature(:,2)=md.observed_temperature; 48 md.geothermalflux=zeros(md.numberofgrids,1); 49 pos=find(md.elementonicesheet);md.geothermalflux(md.elements(pos,:))=50*10^-3; %50 mW/m^2 -
issm/trunk/test/Validation/ThermalTests/Simpleconduction/runme.m
r2553 r4876 22 22 23 23 %modeled results 24 md=solve(md,'analysis_type', 'thermal','sub_analysis_type','steady');24 md=solve(md,'analysis_type',ThermalSolutionEnum); 25 25 26 26 %plot results 27 relative=abs((md.results.thermal.temperature-md.observed_temperature)./md.observed_temperature)*100; 28 relative(find(md.results.thermal.temperature==md.observed_temperature))=0; 29 plotmodel(md,'data','temperature','title','modeled temperature','data','observed_temperature','view',3,'title','analytical temperature','view',3,'data',md.results.thermal.temperature-md.observed_temperature,'title','absolute error','view',3,'data',relative,'title','relative error [%]','view',3) 27 comp_temp=zeros(md.numberofgrids,1); 28 comp_temp(md.results.ThermalSolution.Temperature.index)=md.results.ThermalSolution.Temperature.value; 29 relative=abs((comp_temp-md.observed_temperature)./md.observed_temperature)*100; 30 relative(find(comp_temp==md.observed_temperature))=0; 31 plotmodel(md,'data',comp_temp,'title','modeled temperature','data','observed_temperature','view',3,'title','analytical temperature','view',3,'data',comp_temp-md.observed_temperature,'title','absolute error','view',3,'data',relative,'title','relative error [%]','view',3) -
issm/trunk/test/Validation/ThermalTests/Simpleconduction/thermalboundarycondition.m
r16 r4876 2 2 %Ok, start defining model BC 3 3 disp(' boundary conditions for thermal model '); 4 if strcmp(md.type,'3d')5 pos1=find(md.elementonbed); md. gridondirichlet_thermal(md.elements(pos1,1:3))=1; md.dirichletvalues_thermal(md.elements(pos1,1:3))=10;6 pos2=find(md.elementonsurface); md. gridondirichlet_thermal(md.elements(pos2,4:6))=1; md.dirichletvalues_thermal(md.elements(pos2,4:6))=0;4 if md.dim==3, 5 pos1=find(md.elementonbed); md.spctemperature(md.elements(pos1,1:3),1)=1; md.spctemperature(md.elements(pos1,1:3),2)=10; 6 pos2=find(md.elementonsurface); md.spctemperature(md.elements(pos2,4:6),1)=1; md.spctemperature(md.elements(pos2,4:6),2)=0; 7 7 md.vx=zeros(md.numberofgrids,1); 8 8 md.vy=zeros(md.numberofgrids,1); -
issm/trunk/test/Validation/ThermalTests/Simplegeothermalflux/Square.par
r3768 r4876 1 1 %Ok, start defining model parameters here 2 2 3 md.dt=0; 3 4 %parallelization 4 md. cluster='none';5 md.np=3; 5 6 6 7 disp(' creating thickness'); … … 39 40 40 41 disp(' boundary conditions for diagnostic model'); 41 md=Set IceShelfBC(md,'Front.exp');42 md=SetMarineIceSheetBC(md,'Front.exp'); 42 43 43 44 disp(' boundary conditions for thermal model'); 44 md. gridondirichlet_thermal=ones(md.numberofgrids,1); %surface temperature45 md. dirichletvalues_thermal=md.observed_temperature;45 md.spctemperature(:,1)=ones(md.numberofgrids,1); %surface temperature 46 md.spctemperature(:,2)=md.observed_temperature; 46 47 md.geothermalflux=zeros(md.numberofgrids,1); 47 48 pos=find(md.elementonicesheet);md.geothermalflux(md.elements(pos,:))=0.1; %100 mW/m^2 -
issm/trunk/test/Validation/ThermalTests/Simplegeothermalflux/runme.m
r2553 r4876 22 22 23 23 %modeled results 24 md=solve(md,'analysis_type', 'thermal','sub_analysis_type','steady');24 md=solve(md,'analysis_type',ThermalSolutionEnum); 25 25 26 26 %plot results 27 relative=abs((md.results.thermal.temperature-md.observed_temperature)./md.observed_temperature)*100; 28 relative(find(md.results.thermal.temperature==md.observed_temperature))=0; 29 plotmodel(md,'data','temperature','title','modeled temperature','data','observed_temperature','view',3,'title','analytical temperature','view',3,'data',md.results.thermal.temperature-md.observed_temperature,'title','absolute error','view',3,'data',relative,'title','relative error [%]','view',3) 27 comp_temp=zeros(md.numberofgrids,1); 28 comp_temp(md.results.ThermalSolution.Temperature.index)=md.results.ThermalSolution.Temperature.value; 29 relative=abs((comp_temp-md.observed_temperature)./md.observed_temperature)*100; 30 relative(find(comp_temp==md.observed_temperature))=0; 31 plotmodel(md,'data',comp_temp,'title','modeled temperature','data','observed_temperature','view',3,'title','analytical temperature','view',3,'data',comp_temp-md.observed_temperature,'title','absolute error','view',3,'data',relative,'title','relative error [%]','view',3) -
issm/trunk/test/Validation/ThermalTests/Simplegeothermalflux/thermalboundarycondition.m
r16 r4876 2 2 %Ok, start defining model BC 3 3 disp(' boundary conditions for thermal model '); 4 if strcmp(md.type,'3d')5 pos2=find(md.elementonsurface); md. gridondirichlet_thermal(md.elements(pos2,4:6))=1; md.dirichletvalues_thermal(md.elements(pos2,4:6))=0;4 if md.dim==3, 5 pos2=find(md.elementonsurface); md.spctemperature(md.elements(pos2,4:6),1)=1; md.spctemperature(md.elements(pos2,4:6),2)=0; 6 6 md.vx=zeros(md.numberofgrids,1); 7 7 md.vy=zeros(md.numberofgrids,1);
Note:
See TracChangeset
for help on using the changeset viewer.