Changeset 411 for trunk/src/calc_field.m


Ignore:
Timestamp:
May 7, 2012, 3:32:21 PM (12 years ago)
Author:
sommeria
Message:

bugs corrected in uvmat: fixed x/y and calc_field for the new PIV data

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/calc_field.m

    r408 r411  
    168168                case 'velocity'
    169169                    ListFields={'U', 'V'};
    170                     VarAttributes{var_count+1}.Role='vector_x';
    171                     VarAttributes{var_count+2}.Role='vector_y';
     170                    VarAttribute{var_count+1}.Role='vector_x';
     171                    VarAttribute{var_count+2}.Role='vector_y';
    172172                    DataOut.U(ind_sel)=DataOut.U(ind_sel)+EM *DataIn.U_tps(1:nbvec_sub+3,isub);
    173173                    DataOut.V(ind_sel)=DataOut.V(ind_sel)+EM *DataIn.V_tps(1:nbvec_sub+3,isub);
    174174                case 'u'
    175175                    ListFields={'u'};
    176                     VarAttributes{var_count+1}.Role='scalar';
     176                    VarAttribute{var_count+1}.Role='scalar';
    177177                    DataOut.u(ind_sel)=DataOut.u(ind_sel)+EM *DataIn.U_tps(1:nbvec_sub+3,isub);
    178178                case 'v'
    179179                    ListFields={'v'};
    180                     VarAttributes{var_count+1}.Role='scalar';
     180                    VarAttribute{var_count+1}.Role='scalar';
    181181                    DataOut.v(ind_sel)=DataOut.v(ind_sel)+EM *DataIn.V_tps(1:nbvec_sub+3,isub);
    182182                case 'norm_vel'
    183183                    ListFields={'norm_vel'};
    184                     VarAttributes{var_count+1}.Role='scalar';
    185                     V=DataOut.U(ind_sel)+EM *DataIn.U_tps(1:nbvec_sub+3,isub);
     184                    VarAttribute{var_count+1}.Role='scalar';
     185                    U=DataOut.U(ind_sel)+EM *DataIn.U_tps(1:nbvec_sub+3,isub);
    186186                    V=DataOut.V(ind_sel)+EM *DataIn.V_tps(1:nbvec_sub+3,isub);
    187187                    DataOut.norm_vel(ind_sel)=sqrt(U.*U+V.*V);
    188188                case 'vort'
    189189                    ListFields={'vort'};
    190                     VarAttributes{var_count+1}.Role='scalar';
    191                     DataOut.vort(ind_sel)=DataOut.vort(ind_sel)+EMDY *DataIn.U_tps(1:nbvec_sub+3,isub)-EMDX *DataIn.V_tps(1:nbvec_sub+3,isub);
     190                    VarAttribute{var_count+1}.Role='scalar';
     191                    DataOut.vort(ind_sel)=DataOut.vort(ind_sel)-EMDY *DataIn.U_tps(1:nbvec_sub+3,isub)+EMDX *DataIn.V_tps(1:nbvec_sub+3,isub);
    192192                case 'div'
    193193                    ListFields={'div'};
    194                     VarAttributes{var_count+1}.Role='scalar';
     194                    VarAttribute{var_count+1}.Role='scalar';
    195195                    DataOut.div(ind_sel)=DataOut.div(ind_sel)+EMDX*DataIn.U_tps(1:nbvec_sub+3,isub)+EMDY *DataIn.V_tps(1:nbvec_sub+3,isub);
    196196                case 'strain'
    197197                    ListFields={'strain'};
    198                     VarAttributes{var_count+1}.Role='scalar';
     198                    VarAttribute{var_count+1}.Role='scalar';
    199199                    DataOut.strain(ind_sel)=DataOut.strain(ind_sel)+EMDY*DataIn.U_tps(1:nbvec_sub+3,isub)+EMDX *DataIn.V_tps(1:nbvec_sub+3,isub);
    200200            end
    201             DataOut.FF=nbval==0; %put errorflag to 1 for points outside the interpolation rang
    202             nbval(nbval==0)=1;
    203             DataOut.ListVarName=[DataOut.ListVarName ListFields {'FF'}];
    204             for ilist=1:numel(ListFields)
    205                 VarDimName{ilist}={'coord_y','coord_x'};
    206                 DataOut.(ListFields{ilist})=reshape(DataOut.(ListFields{ilist}),npy,npx);
    207             end
    208             DataOut.FF=reshape(DataOut.FF,npy,npx);
    209             DataOut.VarDimName=[DataOut.VarDimName VarDimName {{'coord_y','coord_x'}}] ;
    210             VarAttributes{length(ListFields)+1}.Role='errorflag';
    211             DataOut.VarAttribute=[DataOut.VarAttribute VarAttributes];
    212         end
    213     end
     201        end
     202    end
     203    DataOut.FF=nbval==0; %put errorflag to 1 for points outside the interpolation rang
     204    nbval(nbval==0)=1;
     205    if isempty(find(strcmp('FF',DataOut.ListVarName),1))% if FF is not already listed
     206        DataOut.ListVarName=[DataOut.ListVarName {'FF'}];
     207        DataOut.VarDimName=[DataOut.VarDimName {{'coord_y','coord_x'}}];
     208        DataOut.VarAttribute{length(DataOut.ListVarName)}.Role='errorflag';
     209    end
     210    DataOut.ListVarName=[DataOut.ListVarName ListFields];
     211    for ifield=1:numel(ListFields)
     212        VarDimName{ifield}={'coord_y','coord_x'};
     213        DataOut.(ListFields{ifield})=reshape(DataOut.(ListFields{ifield}),npy,npx);
     214    end
     215    DataOut.FF=reshape(DataOut.FF,npy,npx);
     216    DataOut.VarDimName=[DataOut.VarDimName VarDimName];     
     217    DataOut.VarAttribute=[DataOut.VarAttribute VarAttribute];
    214218else
    215219
Note: See TracChangeset for help on using the changeset viewer.