Changeset 109 for trunk/src/sub_field.m
- Timestamp:
- Oct 4, 2010, 10:39:11 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/sub_field.m
r89 r109 102 102 %check coincidence in positions 103 103 %unstructured coordinates 104 if testX 104 if testX 105 if testU % vector fields 106 U_1_Name=Field_1.ListVarName{VarType_1.vector_x}; 107 V_1_Name=Field_1.ListVarName{VarType_1.vector_y}; 108 eval(['vec_U_1=Field_1.' U_1_Name ';']) 109 eval(['vec_V_1=Field_1.' V_1_Name ';']) 110 nbpoints_x_1=size(vec_U_1,2); 111 nbpoints_y_1=size(vec_U_1,1); 112 vec_U_1=reshape(vec_U_1,nbpoints_x_1*nbpoints_y_1,1); 113 vec_V_1=reshape(vec_V_1,nbpoints_x_1*nbpoints_y_1,1); 114 if testfalse_1 115 vec_U_1=vec_U_1(indsel); 116 vec_V_1=vec_V_1(indsel); 117 end 118 else %(~testU && ~testU_1) 119 A_1_Name=Field_1.ListVarName{ivar_C_1}; 120 eval(['vec_A_1=Field_1.' A_1_Name ';']) 121 nbpoints_x_1=size(vec_A_1,2); 122 nbpoints_y_1=size(vec_A_1,1);%TODO: use a faster interpolation method for a regular grid (size(x)=2) 123 vec_A_1=reshape(vec_A_1,nbpoints_x_1*nbpoints_y_1,1); 124 if testfalse_1 125 vec_A_1=vec_A_1(indsel); 126 end 127 end 105 128 XName=Field.ListVarName{VarType.coord_x}; 106 129 YName=Field.ListVarName{VarType.coord_y}; … … 108 131 eval(['vec_Y=Field.' YName ';']) 109 132 nbpoints=numel(vec_X); 110 vec_X=reshape(vec_X, 1,nbpoints);111 vec_Y=reshape(vec_Y, 1,nbpoints);133 vec_X=reshape(vec_X,nbpoints,1); 134 vec_Y=reshape(vec_Y,nbpoints,1); 112 135 if testX_1 %unstructured coordinates for the second field 113 136 X_1_Name=Field_1.ListVarName{VarType_1.coord_x}; … … 115 138 eval(['vec_X_1=Field_1.' X_1_Name ';']) 116 139 eval(['vec_Y_1=Field_1.' Y_1_Name ';']) 117 nbpoints_1=numel(vec_X_1); 140 118 141 else %structured coordinates for the second field 119 142 y_1_Name=Field_1.ListVarName{VarType_1.coord(1)}; 120 143 x_1_Name=Field_1.ListVarName{VarType_1.coord(2)}; 121 144 eval(['y_1=Field_1.' y_1_Name ';']) 122 eval(['x_1=Field_1.' x_1_Name ';']) 123 npxy(1)=numel(y_1); 124 npxy(2)=numel(x_1); 125 nbpoints_1=npxy(1)*npxy(2); 145 eval(['x_1=Field_1.' x_1_Name ';']) 146 if isequal(numel(x_1),2) 147 x_1=linspace(x_1(1),x_1(2),nbpoints_x_1); 148 end 149 if isequal(numel(y_1),2) 150 y_1=linspace(y_1(1),y_1(2),nbpoints_y_1); 151 end 126 152 [vec_X_1,vec_Y_1]=meshgrid(x_1,y_1); 127 153 end 128 vec_X_1=reshape(vec_X_1, 1,nbpoints_1);129 vec_Y_1=reshape(vec_Y_1, 1,nbpoints_1);154 vec_X_1=reshape(vec_X_1,nbpoints_x_1*nbpoints_y_1,1); 155 vec_Y_1=reshape(vec_Y_1,nbpoints_x_1*nbpoints_y_1,1); 130 156 if testfalse_1 131 157 FFName_1=Field_1.ListVarName{VarType_1.errorflag}; 132 158 eval(['vec_FF_1=Field_1.' FFName_1 ';']) 133 vec_FF_1=reshape(vec_FF_1, 1,nbpoints_1);159 vec_FF_1=reshape(vec_FF_1,nbpoints_1,1); 134 160 indsel=find(~vec_FF_1); 135 161 vec_X_1=vec_X_1(indsel); 136 162 vec_Y_1=vec_Y_1(indsel); 137 end138 if testU % vector fields139 U_1_Name=Field_1.ListVarName{VarType_1.vector_x};140 V_1_Name=Field_1.ListVarName{VarType_1.vector_y};141 eval(['vec_U_1=Field_1.' U_1_Name ';'])142 eval(['vec_V_1=Field_1.' V_1_Name ';'])143 vec_U_1=reshape(vec_U_1,1,nbpoints_1);144 vec_V_1=reshape(vec_V_1,1,nbpoints_1);145 if testfalse_1146 vec_U_1=vec_U_1(indsel);147 vec_V_1=vec_V_1(indsel);148 end149 else150 A_1_Name=Field_1.ListVarName{ivar_C_1};151 eval(['vec_A_1=Field_1.' A_1_Name ';'])152 vec_A_1=reshape(vec_A_1,1,nbpoints_1);153 if testfalse_1154 vec_A_1=vec_A_1(indsel);155 end156 163 end 157 164 if ~isequal(vec_X_1,vec_X) && ~isequal(vec_Y_1,vec_Y) % if the unstructured positions are not the same … … 160 167 vec_V_1=griddata_uvmat(vec_X_1,vec_Y_1,vec_V_1,vec_X,vec_Y); %interpolate vectors in the second field 161 168 else 162 vec_A_1=griddata_uvmat(vec_X_1,vec_Y_1, vec_A_1,vec_X,vec_Y); %interpolate vectors in the second field169 vec_A_1=griddata_uvmat(vec_X_1,vec_Y_1,double(vec_A_1),vec_X,vec_Y); %interpolate vectors in the second field 163 170 end 164 171 end … … 168 175 eval(['vec_U=Field.' UName ';']) 169 176 eval(['vec_V=Field.' VName ';']) 170 vec_U=reshape(vec_U, 1,numel(vec_U));171 vec_V=reshape(vec_V, 1,numel(vec_V));177 vec_U=reshape(vec_U,numel(vec_U),1); 178 vec_V=reshape(vec_V,numel(vec_V),1); 172 179 eval(['SubData.' UName '=vec_U-vec_U_1;']) 173 180 eval(['SubData.' VName '=vec_V-vec_V_1;']) 174 181 else 175 182 AName=Field.ListVarName{ivar_C}; 183 size(Field.vort) 176 184 eval(['SubData.' AName '=Field.' AName '-vec_A_1;']) 177 185 end
Note: See TracChangeset
for help on using the changeset viewer.