Changeset 21958


Ignore:
Timestamp:
08/15/17 14:17:24 (8 years ago)
Author:
Mathieu Morlighem
Message:

CHG: enable plot for amr

Location:
issm/trunk-jpl/src/m/plot
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/m/plot/processdata.m

    r21066 r21958  
    4747        numberofelements2d=NaN;
    4848end
     49numberofvertices = md.mesh.numberofvertices;
     50numberofelements = md.mesh.numberofelements;
     51if exist(options,'amr'),
     52        step = getfieldvalue(options,'amr');
     53        numberofvertices = numel(md.results.TransientSolution(step).MeshX);
     54        numberofelements = numel(md.results.TransientSolution(step).MeshElements);
     55end
    4956
    5057%initialize datatype
     
    6774
    6875%check length
    69 if datasize(1)~=md.mesh.numberofvertices & datasize(1)~=md.mesh.numberofelements & datasize(1)~=md.mesh.numberofvertices*6 & (strcmp(md.mesh.domaintype(),'3D') & ~(datasize(1)==numberofelements2d | datasize(1)==numberofvertices2d))
     76if datasize(1)~=numberofvertices & datasize(1)~=numberofelements & datasize(1)~=numberofvertices*6 & (strcmp(md.mesh.domaintype(),'3D') & ~(datasize(1)==numberofelements2d | datasize(1)==numberofvertices2d))
    7077        error('plotmodel error message: data not supported yet');
    7178end
     
    8693
    8794%treat the case datasize(1)=6*nodes
    88 if datasize(1)==6*md.mesh.numberofvertices
     95if datasize(1)==6*numberofvertices
    8996        %keep the only norm of data
    90         data1=data(1:6:md.mesh.numberofvertices*6,:);
    91         data2=data(2:6:md.mesh.numberofvertices*6,:);
     97        data1=data(1:6:numberofvertices*6,:);
     98        data2=data(2:6:numberofvertices*6,:);
    9299        data=sqrt(data1.^2+data2.^2);
    93         datasize(1)=md.mesh.numberofvertices;
     100        datasize(1)=numberofvertices;
    94101        %---> go to node data
    95102end
     
    98105if (dimension(md.mesh)==3 & datasize(1)==numberofvertices2d),
    99106        data=project3d(md,'vector',data,'type','node');
    100         datasize(1)=md.mesh.numberofvertices;
     107        datasize(1)=numberofvertices;
    101108        %---> go to node data
    102109end
     
    105112if (dimension(md.mesh)==3 & datasize(1)==numberofelements2d),
    106113        data=project3d(md,'vector',data,'type','element');
    107         datasize(1)=md.mesh.numberofelements;
     114        datasize(1)=numberofelements;
    108115        %---> go to node data
    109116end
     
    112119if exist(options,'smooth')
    113120        data=averaging(md,data,getfieldvalue(options,'smooth'));
    114         datasize(1)=md.mesh.numberofvertices;
     121        datasize(1)=numberofvertices;
    115122        %---> go to node data
    116123end
    117124
    118125%element data
    119 if (datasize(1)==md.mesh.numberofelements & datasize(2)==1),
     126if (datasize(1)==numberofelements & datasize(2)==1),
    120127
    121128        %Initialize datatype if non patch
     
    129136                maskvalue=getfieldvalue(options,'maskvalue',NaN);
    130137                pos=find(~flags);
    131                 if length(flags)==md.mesh.numberofvertices,
     138                if length(flags)==numberofvertices,
    132139                        [pos2 dummy]=find(ismember(md.mesh.elements,pos));
    133140                        data(pos2,:)=maskvalue;
    134                 elseif length(flags)==md.mesh.numberofelements
     141                elseif length(flags)==numberofelements
    135142                        data(pos,:)=maskvalue;
    136143                else
    137                         disp('plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements');
     144                        disp('plotmodel warning: mask length not supported yet (supported length are numberofvertices and numberofelements');
    138145                end
    139146        end
     
    152159
    153160%node data
    154 if (datasize(1)==md.mesh.numberofvertices & datasize(2)==1),
     161if (datasize(1)==numberofvertices & datasize(2)==1),
    155162        datatype=2;
    156163
     
    160167                maskvalue=getfieldvalue(options,'maskvalue',NaN);
    161168                pos=find(~flags);
    162                 if length(flags)==md.mesh.numberofvertices,
     169                if length(flags)==numberofvertices,
    163170                        data(pos,:)=maskvalue;
    164                 elseif length(flags)==md.mesh.numberofelements
     171                elseif length(flags)==numberofelements
    165172                        data(md.mesh.elements(pos,:),:)=maskvalue;
    166173                else
    167                         disp('plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements');
     174                        disp('plotmodel warning: mask length not supported yet (supported length are numberofvertices and numberofelements');
    168175                end
    169176        end
     
    199206                flags=getfieldvalue(options,'mask');
    200207                pos=find(~flags);
    201                 if length(flags)==md.mesh.numberofvertices,
     208                if length(flags)==numberofvertices,
    202209                        data(pos,:)=NaN;
    203                 elseif length(flags)==md.mesh.numberofelements
     210                elseif length(flags)==numberofelements
    204211                        data(md.mesh.elements(pos,:),:)=NaN;
    205212                else
    206                         disp('plotmodel warning: mask length not supported yet (supported length are md.mesh.numberofvertices and md.mesh.numberofelements');
     213                        disp('plotmodel warning: mask length not supported yet (supported length are numberofvertices and numberofelements');
    207214                end
    208215        end
  • issm/trunk-jpl/src/m/plot/processmesh.m

    r20200 r21958  
    2727end
    2828
    29 if ~strcmpi(getfieldvalue(options,'coord','xy'),'latlon'),
    30         x=md.mesh.x;
    31         if isprop(md.mesh,'x2d'), x2d=md.mesh.x2d; end
    32         y=md.mesh.y;
    33         if isprop(md.mesh,'y2d'), y2d=md.mesh.y2d; end
     29if isprop(md.mesh,'elements2d'), elements2d=md.mesh.elements2d; end
     30
     31if exist(options,'amr'),
     32        step = getfieldvalue(options,'amr');
     33        x = md.results.TransientSolution(step).MeshX;
     34        y = md.results.TransientSolution(step).MeshY;
     35        elements = md.results.TransientSolution(step).MeshElements;
    3436else
    35         x=md.mesh.long;
    36         y=md.mesh.lat;
     37        elements=md.mesh.elements;
     38        if ~strcmpi(getfieldvalue(options,'coord','xy'),'latlon') ,
     39                x=md.mesh.x;
     40                if isprop(md.mesh,'x2d'), x2d=md.mesh.x2d; end
     41                y=md.mesh.y;
     42                if isprop(md.mesh,'y2d'), y2d=md.mesh.y2d; end
     43        else
     44                x=md.mesh.long;
     45                y=md.mesh.lat;
     46        end
    3747end
    3848
     
    4656        z=md.(z);
    4757end
    48 
    49 if isprop(md.mesh,'elements2d'), elements2d=md.mesh.elements2d; end
    50 elements=md.mesh.elements;
    5158
    5259%is it a 2d plot?
Note: See TracChangeset for help on using the changeset viewer.