Changeset 785


Ignore:
Timestamp:
06/04/09 16:58:21 (16 years ago)
Author:
seroussi
Message:

fixed minor problems in transient 3d for ice

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk/src/m/solutions/ice/transient3d.m

    r770 r785  
    1111
    1212%Figure out which type of elements are present
    13 [fem.ishutter,fem.ismacayealpattyn,fem.isstokes]=DiagnosticSolutionType(md.elements_type);
     13fem.ishutter=md.ishutter;
     14fem.ismacayealpattyn=md.ismacayealpattyn;
     15fem.isstokes=md.isstokes;
    1416
    1517%First, build elements,grids,loads, etc ... for horizontal, base vertical and vertical model
     
    2527        fem.m_ds=CreateFemModel(md,'diagnostic_stokes');
    2628end
    27 fem.m_dbv=CreateFemModel(md,'diagnostic_basevert');
    2829fem.m_dv=CreateFemModel(md,'diagnostic_vert');
    2930
     
    3435
    3536%initialize (velocity,pressure,...)
    36 solution.u_g=zeros(fem.m_dhu.gridset.gsize,1);
    37 if ~isnan(md.vx), solution.u_g(1:6:fem.m_dhu.gridset.gsize)=md.vx/md.yts; end
    38 if ~isnan(md.vy), solution.u_g(2:6:fem.m_dhu.gridset.gsize)=md.vy/md.yts; end
    39 if ~isnan(md.vz), solution.u_g(3:6:fem.m_dhu.gridset.gsize)=md.vz/md.yts; end
    40 solution.pressure=zeros(fem.m_dhu.gridset.gsize,1); solution.pressure(1:6:fem.m_dhu.gridset.gsize)=md.rho_ice*md.g*(md.surface-md.z); %lithostatic pressure to spin up
     37solution.u_g=zeros(fem.m_dh.gridset.gsize,1);
     38if ~isnan(md.vx), solution.u_g(1:6:fem.m_dh.gridset.gsize)=md.vx/md.yts; end
     39if ~isnan(md.vy), solution.u_g(2:6:fem.m_dh.gridset.gsize)=md.vy/md.yts; end
     40if ~isnan(md.vz), solution.u_g(3:6:fem.m_dh.gridset.gsize)=md.vz/md.yts; end
     41solution.pressure=zeros(fem.m_dh.gridset.gsize,1); solution.pressure(1:6:fem.m_dh.gridset.gsize)=md.rho_ice*md.g*(md.surface-md.z); %lithostatic pressure to spin up
    4142solution.t_g=zeros(fem.m_t.gridset.gsize,1);
    4243if ~isempty(md.temperature),
     
    5152%initialize geometry and time
    5253solution.mesh=struct('elements',md.elements,'grids',[md.x md.y md.z]);
    53 solution.thickness=zeros(fem.m_dhu.gridset.gsize,1);solution.thickness(1:6:fem.m_dhu.gridset.gsize)=md.thickness;
    54 solution.surface=zeros(fem.m_dhu.gridset.gsize,1);solution.surface(1:6:fem.m_dhu.gridset.gsize)=md.surface;
    55 solution.bed=zeros(fem.m_dhu.gridset.gsize,1);solution.bed(1:6:fem.m_dhu.gridset.gsize)=md.bed;
     54solution.thickness=zeros(fem.m_dh.gridset.gsize,1);solution.thickness(1:6:fem.m_dh.gridset.gsize)=md.thickness;
     55solution.surface=zeros(fem.m_dh.gridset.gsize,1);solution.surface(1:6:fem.m_dh.gridset.gsize)=md.surface;
     56solution.bed=zeros(fem.m_dh.gridset.gsize,1);solution.bed(1:6:fem.m_dh.gridset.gsize)=md.bed;
    5657solution.time=0;
    5758
     
    8384        fem.inputs.surface=solution(n).surface;
    8485
    85         %%Deal with temperature first
    86         %disp('   computing temperature...');
    87         %[solution(n+1).t_g loads_t melting_offset]=thermal_core(fem.m_t,'thermaltransient',fem.inputs);
    88         solution(n+1).t_g=solution(1).t_g;
    89         %disp('   computing melting...');
    90         %fem.inputs.temperature=full(solution(n+1).t_g);
    91         %fem.inputs.melting_offset=melting_offset;
    92         %solution(n+1).melting_g=melting_core(fem.m_m,'thermaltransient',fem.inputs);
    93         solution(n+1).melting_g=solution(1).melting_g;
     86        %Deal with temperature first
     87        disp('   computing temperature...');
     88        [solution(n+1).t_g loads_t melting_offset]=thermal_core(fem.m_t,'thermaltransient',fem.inputs);
     89        disp('   computing melting...');
     90        fem.inputs.temperature=full(solution(n+1).t_g);
     91        fem.inputs.melting_offset=melting_offset;
     92        solution(n+1).melting_g=melting_core(fem.m_m,'thermaltransient',fem.inputs);
    9493
    9594        %Compute depth averaged temperature for 2d type elements.
    96         %temperature_average2d=DepthAverage(md,solution(n+1).t_g(1:6:fem.m_t.gridset.gsize));
    97         %temperature_average=project3d(md,temperature_average2d,'node');
    98         %temperature_average_g=zeros(fem.m_t.gridset.gsize,1);temperature_average_g(1:6:fem.m_t.gridset.gsize)=temperature_average;
    99         %fem.inputs.temperature_average=temperature_average_g;
     95        temperature_average2d=DepthAverage(md,solution(n+1).t_g(1:6:fem.m_t.gridset.gsize));
     96        temperature_average=project3d(md,temperature_average2d,'node');
     97        temperature_average_g=zeros(fem.m_t.gridset.gsize,1);temperature_average_g(1:6:fem.m_t.gridset.gsize)=temperature_average;
     98        fem.inputs.temperature_average=temperature_average_g;
    10099       
    101100        %Deal with velocities.
     
    135134        disp(sprintf('%s','   updating grid positions...'));
    136135        grids_t=UpdateGridPosition(md,fem.m_t.grids,new_bed,new_thickness);
    137         grids_dhu=UpdateGridPosition(md,fem.m_dhu.grids,new_bed,new_thickness);
    138         grids_dbv=UpdateGridPosition(md,fem.m_dbv.grids,new_bed,new_thickness);
     136        grids_dh=UpdateGridPosition(md,fem.m_dh.grids,new_bed,new_thickness);
    139137        grids_dv=UpdateGridPosition(md,fem.m_dv.grids,new_bed,new_thickness);
    140138        grids_p=UpdateGridPosition(md,fem.m_p.grids,new_bed,new_thickness);
Note: See TracChangeset for help on using the changeset viewer.