rbmatlab  1.16.09
 All Classes Namespaces Files Functions Variables Modules Pages
diffusivity_composite.m
1 function diffusivity = diffusivity_composite(glob, params)
2 %function diffusivity = diffusivity_composite(glob, params)
3 %
4 % function computing the diffusivity pointwise evaluation in the point
5 % sequences indicated by global coordinates in the columns of the matrix glob.
6 % It returns a piecewise constant diffusion coefficient.
7 %
8 % glob is a npoints times 2 matrix
9 %
10 % required fields of params:
11 % B1, B2: number of composite blocks
12 % mu1, mu2,.... mu(B1*B2-1)
13 %
14 % generated fields of diffusivity:
15 % diffusivity: vector with diffusivity values
16 
17 
18 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
19 %%%Diffu
20 EPS = 1e-10;
21 xB=params.B1;
22 yB=params.B2;
23 
24 x_range=0:(1/xB):1;
25 y_range=0:(1/yB):1;
26 
27 dx=1/params.B1;
28 dy=1/params.B2;
29 
30 nob=xB*yB;
31 
32 % params.mu_names = {'mu1','mu2',..};
33 % params.mu1 = 1;
34 % params.mu2 = 2;
35 % params.mu3 = 3;
36 % params....
37 
38 % diffu = [1,2,3]
39 %diffu_value = params.get_mu(params);
40 diffu_value = [params.get_mu(params), 1];
41 %diffu_value=params.diffu;
42 %DIFF_M=flipud(reshape(diffu_value, xB,yB));
43 
44 params.diffu_value=diffu_value;
45 %das folgende ohne Schleife:
46 % % diffu_value = get_mu(model);
47 % % diffu_value = [mu(:);1];
48 %dx ist 1/B1 , dy = 1/B2
49 
50 xblocknum = ceil(glob(:,1) /dx);
51 yblocknum = ceil(glob(:,2) /dy);
52 blocknum = xblocknum+ params.B1*(yblocknum-1);
53 diffusivity = params.diffu_value(blocknum);
54 
55 diffusivity=diffusivity';
56 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%55
57 %%%%%%%%%%%%%%%%%%%%%%%%%%%%
58 
59 % i=0;
60 % for i=1:length(com_t)
61 % x_check_com_t(i)=com_t{i}(1);
62 % y_check_com_t(i)=com_t{i}(2);
63 %
64 % tmp_x_range_sort=sort([x_range, x_check_com_t(i)]);
65 % tmp_y_range_sort=sort([y_range, y_check_com_t(i)]);
66 %
67 % xBlock(i)=find(tmp_x_range_sort <= (x_check_com_t(i)+EPS) & tmp_x_range_sort >= (x_check_com_t(i)-EPS))-1;
68 % yBlock(i)=find(tmp_y_range_sort <= (y_check_com_t(i)+EPS) & tmp_y_range_sort >= (y_check_com_t(i)-EPS))-1;
69 %
70 % c_test(i)=DIFF_M(xBlock(i),yBlock(i));
71 % end
72 
73 
74 
75 
76 
77 
78 
79 
80 
81 
82 
83 
84 
85 
86 
87 
88 
89 
90 
91 
92 
93 
94