Changeset 25620


Ignore:
Timestamp:
10/01/20 13:54:11 (4 years ago)
Author:
Eric.Larour
Message:

CHG: merging of 2d meshes, no earth involved.

File:
1 edited

Legend:

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

    r25502 r25620  
    168168                        self.basins{end+1}=bas;
    169169                end % }}}
     170                function intersections2d(self,varargin) % {{{
     171
     172                        options=pairoptions(varargin{:});
     173                        force=getfieldvalue(options,'force',0);
     174                       
     175                        %initialize, to avoid issues of having more transitions than meshes.
     176                        self.transitions={};
     177                        self.eltransitions={};
     178
     179                        %for elements:
     180                        xe=self.earth.mesh.x(self.earth.mesh.elements)*[1;1;1]/3;
     181                        ye=self.earth.mesh.y(self.earth.mesh.elements)*[1;1;1]/3;
     182                       
     183                        for i=1:length(self.icecaps),
     184                                mdi=self.icecaps{i};
     185               
     186                                %for elements:
     187                                xei=mdi.mesh.x(mdi.mesh.elements)*[1;1;1]/3;
     188                                yei=mdi.mesh.y(mdi.mesh.elements)*[1;1;1]/3;
     189               
     190                                disp(sprintf('Computing vertex intersections for basin %s',self.basins{i}.name));
     191                       
     192                                self.transitions{end+1}=meshintersect2d(self.earth.mesh.x,self.earth.mesh.y,mdi.mesh.x,mdi.mesh.y,'force',force);
     193
     194                                self.eltransitions{end+1}=meshintersect2d(xe,ye,xei,yei,'force',force);
     195                        end
     196                end % }}}
    170197                function intersections(self,varargin) % {{{
    171198
     
    360387
    361388                end % }}}
    362                 function viscousiterations(self) % {{{
    363                         for  i=1:length(self.icecaps),
    364                                 ic=self.icecaps{i};
    365                                 mvi=ic.results.TransientSolution(1).StressbalanceConvergenceNumSteps;
    366                                 for j=2:length(ic.results.TransientSolution)-1,
    367                                         mvi=max(mvi,ic.results.TransientSolution(j).StressbalanceConvergenceNumSteps);
    368                                 end
    369                                 disp(sprintf('%i, %s: %i',i,self.icecaps{i}.miscellaneous.name,mvi));
    370                         end
    371                 end % }}}
     389                function caticecaps2d(self,varargin) % {{{
     390
     391                        %recover options:
     392                        options=pairoptions(varargin{:});
     393                        tolerance=getfieldvalue(options,'tolerance',1e-5);
     394                        loneedgesdetect=getfieldvalue(options,'loneedgesdetect',0);
     395                        models=self.icecaps;
     396
     397                        %Plug all models together:
     398                        md=models{1};
     399                        for i=2:length(models),
     400                                md=modelmerge2d(md,models{i},'tolerance',tolerance);
     401                        end
     402
     403                        %Look for lone edges if asked for it: {{{
     404                        if loneedgesdetect,
     405                                edges=loneedges(md);
     406                                hold on;
     407                                for i=1:length(edges),
     408                                        ind1=edges(i,1);
     409                                        ind2=edges(i,2);
     410                                        plot([md.mesh.x(ind1),md.mesh.x(ind2)],[md.mesh.y(ind1),md.mesh.y(ind2)],'g*-');
     411                                end
     412                        end %}}}
     413
     414                        %Plug into earth:
     415                        self.earth=md;
     416
     417                end % }}}
     418function viscousiterations(self) % {{{
     419        for  i=1:length(self.icecaps),
     420                ic=self.icecaps{i};
     421                mvi=ic.results.TransientSolution(1).StressbalanceConvergenceNumSteps;
     422                for j=2:length(ic.results.TransientSolution)-1,
     423                        mvi=max(mvi,ic.results.TransientSolution(j).StressbalanceConvergenceNumSteps);
     424                end
     425                disp(sprintf('%i, %s: %i',i,self.icecaps{i}.miscellaneous.name,mvi));
     426        end
     427end % }}}
    372428                function maxtimestep(self) % {{{
    373429                        for  i=1:length(self.icecaps),
Note: See TracChangeset for help on using the changeset viewer.