rbmatlab 0.10.01
datafunc/diffusivity/diffusivity_composite.m
00001 function diffusivity = diffusivity_composite(glob, params)
00002 %function diffusivity = diffusivity_composite(glob, params)
00003 %
00004 % function computing the diffusivity pointwise evaluation in the point
00005 % sequences indicated by global coordinates in the columns of the matrix glob.
00006 % It returns a piecewise constant diffusion coefficient.
00007 %
00008 % glob is a npoints times 2 matrix
00009 %
00010 % required fields of params:
00011 %       B1, B2: number of composite blocks
00012 %       mu1, mu2,.... mu(B1*B2-1)
00013 %
00014 % generated fields of diffusivity:
00015 %     diffusivity: vector with diffusivity values
00016 
00017 
00018 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
00019 %%%Diffu
00020 EPS = 1e-10;
00021 xB=params.B1;
00022 yB=params.B2;
00023 
00024 x_range=0:(1/xB):1;
00025 y_range=0:(1/yB):1;
00026 
00027 dx=1/params.B1;
00028 dy=1/params.B2;
00029 
00030 nob=xB*yB;
00031 
00032 % params.mu_names = {'mu1','mu2',..};
00033 % params.mu1 = 1; 
00034 % params.mu2 = 2;
00035 % params.mu3 = 3;
00036 % params....
00037 
00038 % diffu = [1,2,3]
00039 %diffu_value = params.get_mu(params);
00040 diffu_value = [params.get_mu(params), 1];
00041 %diffu_value=params.diffu;
00042 %DIFF_M=flipud(reshape(diffu_value, xB,yB));
00043 
00044 params.diffu_value=diffu_value;
00045 %das folgende ohne Schleife:
00046 % % diffu_value = get_mu(model);
00047 % % diffu_value = [mu(:);1];
00048 %dx ist 1/B1 , dy = 1/B2
00049 
00050 xblocknum = ceil(glob(:,1) /dx);
00051 yblocknum = ceil(glob(:,2) /dy);
00052 blocknum = xblocknum+ params.B1*(yblocknum-1);
00053 diffusivity = params.diffu_value(blocknum);
00054 
00055 diffusivity=diffusivity';
00056 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55
00057 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
00058 
00059 % i=0;
00060 % for i=1:length(com_t)
00061 %     x_check_com_t(i)=com_t{i}(1);
00062 %     y_check_com_t(i)=com_t{i}(2);
00063 %     
00064 %     tmp_x_range_sort=sort([x_range, x_check_com_t(i)]);
00065 %     tmp_y_range_sort=sort([y_range, y_check_com_t(i)]);
00066 %     
00067 %     xBlock(i)=find(tmp_x_range_sort <= (x_check_com_t(i)+EPS) & tmp_x_range_sort >= (x_check_com_t(i)-EPS))-1;
00068 %     yBlock(i)=find(tmp_y_range_sort <= (y_check_com_t(i)+EPS) & tmp_y_range_sort >= (y_check_com_t(i)-EPS))-1;  
00069 %     
00070 %     c_test(i)=DIFF_M(xBlock(i),yBlock(i));
00071 % end
00072 
00073 
00074 
00075 
00076 
00077 
00078 
00079 
00080 
00081 
00082 
00083 
00084 
00085 
00086 
00087 
00088 
00089 
00090 
00091 
00092 
00093 
00094 
 All Classes Namespaces Files Functions Variables