Changeset 1754


Ignore:
Timestamp:
08/18/09 15:10:30 (16 years ago)
Author:
seroussi
Message:

changed utils

Location:
issm/trunk/src/m/utils
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/utils/BC/SetIceSheetBC.m

    r1747 r1754  
    99%grid on Dirichlet
    1010pos=find(md.gridonboundary);
    11 md.gridondirichlet_diag=zeros(md.numberofgrids,1);
    12 md.gridondirichlet_diag(pos)=1;
     11md.spcvelocity=zeros(md.numberofgrids,6);
     12md.spcvelocity(pos,1:3)=1;
    1313
    1414%Dirichlet Values
    15 md.dirichletvalues_diag=zeros(md.numberofgrids,2);
    1615if (length(md.vx_obs)==md.numberofgrids & length(md.vy_obs)==md.numberofgrids)
    1716        disp('      boundary conditions for diagnostic model: spc set as observed velocities');
    18         md.dirichletvalues_diag=[md.vx_obs md.vy_obs];
     17        md.spcvelocity(:,4:5)=[md.vx_obs md.vy_obs]; %vz is zero
    1918else
    2019        disp('      boundary conditions for diagnostic model: spc set as zero');
     
    2221
    2322%segment on neumann (Ice Front) -> none
    24 md.segmentonneumann_diag=zeros(0,3);
    25 md.neumannvalues_diag=[];
     23md.pressureload=zeros(0,3);
    2624
    2725%Create zeros melting and accumulation if not specified
     
    3634
    3735displaystring(md.debug,'%s',['      boundary conditions for prognostic model initialization']);
    38 md.gridondirichlet_prog=zeros(md.numberofgrids,1);
    39 md.dirichletvalues_prog=zeros(md.numberofgrids,1);
    40 md.segmentonneumann_prog=[];
    41 md.neumannvalues_prog=[];
     36md.spcthickness=zeros(md.numberofgrids,2);
    4237
    4338if (length(md.observed_temperature)==md.numberofgrids),
    4439        displaystring(md.debug,'%s',['      boundary conditions for thermal model']);
    45         md.gridondirichlet_thermal=ones(md.numberofgrids,1); %surface temperature
    46         md.dirichletvalues_thermal=md.observed_temperature;
     40        md.spctemperature=ones(md.numberofgrids,2); %observed temperauture everywhere
     41        md.spctemperature(:,2)=md.observed_temperature; %values of the spcs
    4742        if (length(md.geothermalflux)~=md.numberofgrids),
    4843                md.geothermalflux=50*10^-3*ones(md.numberofgrids,1); %50 mW/m^2
  • issm/trunk/src/m/utils/BC/SetIceShelfBC.m

    r1275 r1754  
    2121gridonicefront=double(md.gridonboundary & gridinsideicefront);
    2222pos=find(md.gridonboundary & ~gridonicefront);
    23 md.gridondirichlet_diag=zeros(md.numberofgrids,1);
    24 md.gridondirichlet_diag(pos)=1;
     23md.spcvelocity=zeros(md.numberofgrids,6);
     24md.spcvelocity(pos,1:3)=1;
    2525
    2626%Dirichlet Values
    27 md.dirichletvalues_diag=zeros(md.numberofgrids,2);
    2827if (length(md.vx_obs)==md.numberofgrids & length(md.vy_obs)==md.numberofgrids)
    2928        disp('      boundary conditions for diagnostic model: spc set as observed velocities');
    30         md.dirichletvalues_diag(pos,:)=[md.vx_obs(pos) md.vy_obs(pos)];
     29        md.spcvelocity(pos,4:5)=[md.vx_obs(pos) md.vy_obs(pos)]; %zeros for vz
    3130else
    3231        disp('      boundary conditions for diagnostic model: spc set as zero');
    3332end
    3433
    35 %segment on Neumann (Ice Front)
     34%segment on Ice Front
    3635pos=find(gridonicefront(md.segments(:,1)) | gridonicefront(md.segments(:,2)));
    37 md.segmentonneumann_diag=md.segments(pos,:);
    38 md.neumannvalues_diag=NaN*ones(length(md.segmentonneumann_diag),1); %dynamic boundary conditions (water pressure)
     36md.pressureload=md.segments(pos,:);
    3937
    4038%Create zeros melting and accumulation if not specified
     
    4947
    5048displaystring(md.debug,'%s',['      boundary conditions for prognostic model initialization']);
    51 md.gridondirichlet_prog=zeros(md.numberofgrids,1);
    52 md.dirichletvalues_prog=zeros(md.numberofgrids,1);
    53 md.segmentonneumann_prog=[];
    54 md.neumannvalues_prog=[];
     49md.spcthickness=zeros(md.numberofgrids,1);
    5550
    5651if (length(md.observed_temperature)==md.numberofgrids),
    5752        displaystring(md.debug,'%s',['      boundary conditions for thermal model']);
    58         md.gridondirichlet_thermal=ones(md.numberofgrids,1); %surface temperature
    59         md.dirichletvalues_thermal=md.observed_temperature;
     53        md.spctemperature=ones(md.numberofgrids,2); %surface temperature
     54        md.spctemperature(:,2)=md.observed_temperature; %values of the spcs
    6055        if (length(md.geothermalflux)~=md.numberofgrids),
    6156                md.geothermalflux=zeros(md.numberofgrids,1);
  • issm/trunk/src/m/utils/BC/SetMarineIceSheetBC.m

    r1275 r1754  
    3333        error('SetMarineIceSheetBC error message: ice front all around the glacier, no dirichlet found. Set BC manually')
    3434end
    35 md.gridondirichlet_diag=zeros(md.numberofgrids,1);
    36 md.gridondirichlet_diag(pos)=1;
     35md.spcvelocity=zeros(md.numberofgrids,6);
     36md.spcvelocity(pos,1:3)=1;
    3737
    3838%Dirichlet Values
    39 md.dirichletvalues_diag=zeros(md.numberofgrids,2);
    4039if (length(md.vx_obs)==md.numberofgrids & length(md.vy_obs)==md.numberofgrids)
    4140        disp('      boundary conditions for diagnostic model: spc set as observed velocities');
    42         md.dirichletvalues_diag(pos,:)=[md.vx_obs(pos) md.vy_obs(pos)];
     41        md.spcvelocity(pos,4:5)=[md.vx_obs(pos) md.vy_obs(pos)]; %zeros for vz
    4342else
    4443        disp('      boundary conditions for diagnostic model: spc set as zero');
     
    4746%segment on Neumann (Ice Front)
    4847pos=find(gridonicefront(md.segments(:,1)) | gridonicefront(md.segments(:,2)));
    49 md.segmentonneumann_diag=md.segments(pos,:);
    50 md.neumannvalues_diag=NaN*ones(length(md.segmentonneumann_diag),1); %dynamic boundary conditions (water pressure)
     48md.pressureload=md.segments(pos,:);
    5149
    5250%Create zeros melting and accumulation if not specified
     
    6159
    6260displaystring(md.debug,'%s',['      boundary conditions for prognostic model initialization']);
    63 md.gridondirichlet_prog=zeros(md.numberofgrids,1);
    64 md.dirichletvalues_prog=zeros(md.numberofgrids,1);
    65 md.segmentonneumann_prog=[];
    66 md.neumannvalues_prog=[];
     61md.spcthickness=zeros(md.numberofgrids,2);
    6762
    6863if (length(md.observed_temperature)==md.numberofgrids),
    6964        displaystring(md.debug,'%s',['      boundary conditions for thermal model']);
    70         md.gridondirichlet_thermal=ones(md.numberofgrids,1); %surface temperature
    71         md.dirichletvalues_thermal=md.observed_temperature;
     65        md.spctemperature=ones(md.numberofgrids,2); %surface temperature
     66        md.spctemperature(:,2)=md.observed_temperature; %values of the spcs
    7267        if (length(md.geothermalflux)~=md.numberofgrids),
    7368                md.geothermalflux=zeros(md.numberofgrids,1);
  • issm/trunk/src/m/utils/Mesh/zerothickness_icesheetfront.m

    r1247 r1754  
    1313
    1414%retrieve elements on ice sheet front
    15 segments=md.segmentonneumann_diag;
     15segments=md.pressureload;
    1616els=segments(:,3);
    1717pos=find(md.elementonicesheet(els));
Note: See TracChangeset for help on using the changeset viewer.