Ignore:
Timestamp:
10/20/13 20:31:07 (11 years ago)
Author:
Mathieu Morlighem
Message:

NEW: merging thermal_core with enthalpy_core (removing EnthalpySolution), and replacing InputToResult by OutputRequest

File:
1 edited

Legend:

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

    r16325 r16470  
    3737end
    3838
    39 %Process Patch
    40 if isstruct(data)
    41         if (isprop(data,'index') & isprop(data,'value')),
    42                 if data.interpolation(1)==P1Enum(),
    43                         data=data.value;
    44                         data=data';
    45                         data=data(:);
    46                         datatype=4;
    47                 elseif data.interpolation(1)==P0Enum(),
    48                         data=data.value;
    49                         datatype=5;
    50                 else
    51                         error(['interpolation ' data.interpolation(1) ' not supported yet']);
    52                 end
    53         else
    54                 error('structure other than Patch not supported yet');
    55         end
    56 else
    57         %initialize datatype
    58         datatype=0;
    59 end
     39%initialize datatype
     40datatype=0;
    6041
    6142%get datasize
    6243datasize=size(data);
    6344
    64 %non patch processing
    65 if datatype~=4 & datatype~=5,
     45%transpose data if necessary
     46if (size(data,2) > size(data,1)),
     47        data=data';
     48end
     49datasize=size(data);
    6650
    67         %transpose data if necessary
    68         if (size(data,2) > size(data,1)),
    69                 data=data';
    70         end
    71         datasize=size(data);
     51%convert to double if necessary
     52if ~isnumeric(data);
     53        disp('processdata info message: data is not numeric (logical?). Converted to double');
     54        data=double(data);
     55end
    7256
    73         %convert to double if necessary
    74         if ~isnumeric(data);
    75                 disp('processdata info message: data is not numeric (logical?). Converted to double');
    76                 data=double(data);
    77         end
     57%check length
     58if datasize(1)~=md.mesh.numberofvertices & datasize(1)~=md.mesh.numberofelements & datasize(1)~=md.mesh.numberofvertices*6 & (md.mesh.dimension==3 & ~(datasize(1)==numberofelements2d | datasize(1)==numberofvertices2d))
     59        error('plotmodel error message: data not supported yet');
     60end
    7861
    79         %check length
    80         if datasize(1)~=md.mesh.numberofvertices & datasize(1)~=md.mesh.numberofelements & datasize(1)~=md.mesh.numberofvertices*6 & (md.mesh.dimension==3 & ~(datasize(1)==numberofelements2d | datasize(1)==numberofvertices2d))
    81                 error('plotmodel error message: data not supported yet');
    82         end
     62%quiver?
     63if datasize(2)>1,
     64        datatype=3;
    8365
    84         %quiver?
    85         if datasize(2)>1,
    86                 datatype=3;
    87 
    88                 %check number of columns, add zeros if necessary,
    89                 if (md.mesh.dimension==3)
    90                         if datasize(2)==2,
    91                                 data=[data, zeros(datasize(1),1)];
    92                         elseif datasize(2)~=3,
    93                                 error('plotmodel error message: data provided should have 2 or 3 columns for quiver plot, and 1 for regular plot');
    94                         end
     66        %check number of columns, add zeros if necessary,
     67        if (md.mesh.dimension==3)
     68                if datasize(2)==2,
     69                        data=[data, zeros(datasize(1),1)];
     70                elseif datasize(2)~=3,
     71                        error('plotmodel error message: data provided should have 2 or 3 columns for quiver plot, and 1 for regular plot');
     72                end
    9573                %elseif ((md.mesh.dimension==2) & datasize(2)~=2),
    9674                %       error('plotmodel error message: data provided should have 2 columns for quiver plot, and 1 for regular plot');
    97                 end
    9875        end
     76end
    9977
    100         %treat the case datasize(1)=6*nodes
    101         if datasize(1)==6*md.mesh.numberofvertices
    102                 %keep the only norm of data
    103                 data1=data(1:6:md.mesh.numberofvertices*6,:);
    104                 data2=data(2:6:md.mesh.numberofvertices*6,:);
    105                 data=sqrt(data1.^2+data2.^2);
    106                 datasize(1)=md.mesh.numberofvertices;
    107                 %---> go to node data
    108         end
     78%treat the case datasize(1)=6*nodes
     79if datasize(1)==6*md.mesh.numberofvertices
     80        %keep the only norm of data
     81        data1=data(1:6:md.mesh.numberofvertices*6,:);
     82        data2=data(2:6:md.mesh.numberofvertices*6,:);
     83        data=sqrt(data1.^2+data2.^2);
     84        datasize(1)=md.mesh.numberofvertices;
     85        %---> go to node data
     86end
    10987
    110         %treat the case datasize(1)=nodes2d
    111         if (md.mesh.dimension==3 & datasize(1)==numberofvertices2d),
    112                 data=project3d(md,'vector',data,'type','node');
    113                 datasize(1)=md.mesh.numberofvertices;
    114                 %---> go to node data
    115         end
     88%treat the case datasize(1)=nodes2d
     89if (md.mesh.dimension==3 & datasize(1)==numberofvertices2d),
     90        data=project3d(md,'vector',data,'type','node');
     91        datasize(1)=md.mesh.numberofvertices;
     92        %---> go to node data
     93end
    11694
    117         %treat the case datasize(1)=nodes2d
    118         if (md.mesh.dimension==3 & datasize(1)==numberofelements2d),
    119                 data=project3d(md,'vector',data,'type','element');
    120                 datasize(1)=md.mesh.numberofelements;
    121                 %---> go to node data
    122         end
     95%treat the case datasize(1)=nodes2d
     96if (md.mesh.dimension==3 & datasize(1)==numberofelements2d),
     97        data=project3d(md,'vector',data,'type','element');
     98        datasize(1)=md.mesh.numberofelements;
     99        %---> go to node data
     100end
    123101
    124         %smoothing?
    125         if exist(options,'smooth')
    126                 data=averaging(md,data,getfieldvalue(options,'smooth'));
    127                 datasize(1)=md.mesh.numberofvertices;
    128                 %---> go to node data
    129         end
     102%smoothing?
     103if exist(options,'smooth')
     104        data=averaging(md,data,getfieldvalue(options,'smooth'));
     105        datasize(1)=md.mesh.numberofvertices;
     106        %---> go to node data
    130107end
    131108
Note: See TracChangeset for help on using the changeset viewer.