Changeset 24165


Ignore:
Timestamp:
09/27/19 10:50:57 (5 years ago)
Author:
Eric.Larour
Message:

CHG: added element transitions vector.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/classes/sealevelmodel.m

    r24156 r24165  
    2222                mergedcaps       = 0;
    2323                transitions      = {};
     24                eltransitions      = {};
    2425                %}}}
    2526        end
     
    8586                        slm.earth             = {};
    8687                        slm.miscellaneous     = miscellaneous();
    87                         slm.settings          = settings();
     88                        slm.settings          = issmsettings();
    8889                        slm.private           = private();
    8990                        slm.cluster           = generic();
    9091                        slm.range             = {};
    9192                        slm.transitions       = {};
     93                        slm.eltransitions       = {};
    9294                end
    9395                %}}}
     
    152154                force=getfieldvalue(options,'force',0);
    153155
     156                %for elements:
     157                xe=self.earth.mesh.x(self.earth.mesh.elements)*[1;1;1]/3;
     158                ye=self.earth.mesh.y(self.earth.mesh.elements)*[1;1;1]/3;
     159                ze=self.earth.mesh.z(self.earth.mesh.elements)*[1;1;1]/3;
     160
    154161                for i=1:length(self.icecaps),
    155162                        mdi=self.icecaps{i};
    156163                        mdi=TwoDToThreeD(mdi);
    157                
     164       
     165                        %for elements:
     166                        xei=mdi.mesh.x(mdi.mesh.elements)*[1;1;1]/3;
     167                        yei=mdi.mesh.y(mdi.mesh.elements)*[1;1;1]/3;
     168                        zei=mdi.mesh.z(mdi.mesh.elements)*[1;1;1]/3;
     169       
    158170                        disp(sprintf('Computing vertex intersections for basin %s',self.basins{i}.name));
    159171               
    160172                        self.transitions{end+1}=meshintersect3d(self.earth.mesh.x,self.earth.mesh.y,self.earth.mesh.z,mdi.mesh.x,mdi.mesh.y,mdi.mesh.z,'force',force);
    161173
     174                        self.eltransitions{end+1}=meshintersect3d(xe,ye,ze,xei,yei,zei,'force',force);
    162175                end
    163176
     
    335348                        disp(sprintf('Earth: %i/%g',mvi,timei));
    336349                end % }}}
     350                function transfer(self,string) % {{{
     351                        %Recover field size in one icecap:
     352                        eval(['n=length(self.icecaps{1}.' string ');']);
     353                        if n==self.icecaps{1}.mesh.numberofvertices,
     354                                eval(['self.earth.' string '=zeros(self.earth.mesh.numberofvertices,1);']);
     355                                for i=1:length(self.icecaps),
     356                                        eval(['self.earth.' string '(self.transitions{' num2str(i) '})=self.icecaps{' num2str(i) '}.' string ';']);
     357                                end
     358                        elseif n==self.icecaps{1} .mesh.numberofelements,
     359                                eval(['self.earth.' string '=zeros(self.earth.mesh.numberofelements,1);']);
     360                                for i=1:length(self.icecaps),
     361                                        eval(['self.earth.' string '(self.eltransitions{' num2str(i) '})=self.icecaps{' num2str(i) '}.' string ';']);
     362                                end
     363                        else
     364                                error('not supported yet');
     365                        end
     366                end % }}}
    337367                function self=homogeneize(self,noearth) % {{{
    338368                        if nargin==1,
Note: See TracChangeset for help on using the changeset viewer.