0001 function [DIFF_cmpts,kappa_bdys,IC_cmpts,OUT_cmpts_index,ECS_cmpts_index,IN_cmpts_index,Ncmpt,Nboundary] ...
0002 = PREPARE_PDE(ncell,cell_shape,params_domain_geom,params_domain_pde)
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033 Rratio_IN = params_domain_geom.Rratio_IN;
0034 include_ECS = params_domain_geom.include_ECS;
0035
0036 if (Rratio_IN <= 0 || Rratio_IN >= 1)
0037 Ncmpt = ncell;
0038 else
0039 Ncmpt = 2*ncell;
0040 end
0041
0042 if (include_ECS ~= 0)
0043 Ncmpt = Ncmpt + 1;
0044 end
0045
0046 if (Rratio_IN <= 0 || Rratio_IN >= 1)
0047 if (cell_shape == 2)
0048
0049 Nboundary = 2*ncell;
0050 elseif (cell_shape == 1)
0051
0052 Nboundary = ncell;
0053 else
0054 disp('wrong');
0055 stop
0056 end
0057 else
0058 if (cell_shape == 2)
0059
0060
0061 Nboundary = 4*ncell;
0062 elseif (cell_shape == 1)
0063
0064 Nboundary = 2*ncell;
0065 else
0066 disp('wrong');
0067 stop
0068 end
0069 end
0070
0071 if (include_ECS ~= 0)
0072 Nboundary = Nboundary+1;
0073 end
0074
0075 DIFF_cmpts = zeros(1,Ncmpt);
0076 kappa_bdys = zeros(1,Nboundary);
0077
0078 if (include_ECS ~= 0)
0079
0080
0081 ECS_cmpts_index = Ncmpt;
0082 Box_boundary = Nboundary;
0083 else
0084 ECS_cmpts_index = [];
0085 Box_boundary = [];
0086 end
0087
0088 DIFF_cmpts(1,ECS_cmpts_index) = params_domain_pde.dcoeff_ECS;
0089
0090 kappa_bdys(1,Box_boundary) = 0;
0091 IC_cmpts(1,ECS_cmpts_index) = params_domain_pde.ic_ECS;
0092
0093 if (cell_shape == 2)
0094 if (Rratio_IN <= 0 || Rratio_IN >= 1)
0095 OUT_cmpts_index = 1:ncell;
0096 IC_cmpts(1,OUT_cmpts_index) = params_domain_pde.ic_OUT;
0097 DIFF_cmpts(1,OUT_cmpts_index) = params_domain_pde.dcoeff_OUT;
0098 OUT_ECS_boundary = 1:2:2*ncell;
0099 if (include_ECS ~= 0)
0100 kappa_bdys(1,OUT_ECS_boundary) = params_domain_pde.kappa_OUT_ECS;
0101 end
0102 IN_cmpts_index = [];
0103 else
0104 IN_cmpts_index = 1:ncell;
0105 IC_cmpts(1,IN_cmpts_index) = params_domain_pde.ic_IN;
0106 DIFF_cmpts(1,IN_cmpts_index) = params_domain_pde.dcoeff_IN;
0107 OUT_cmpts_index = ncell+1:2*ncell;
0108 DIFF_cmpts(1,OUT_cmpts_index) = params_domain_pde.dcoeff_OUT;
0109 IC_cmpts(1,OUT_cmpts_index) = params_domain_pde.ic_OUT;
0110 IN_OUT_boundary = [1:4:4*ncell];
0111 kappa_bdys(1,IN_OUT_boundary) = params_domain_pde.kappa_IN_OUT;
0112 OUT_ECS_boundary = [3:4:4*ncell];
0113 if (include_ECS ~= 0)
0114 kappa_bdys(1,OUT_ECS_boundary) = params_domain_pde.kappa_OUT_ECS;
0115 end
0116 end
0117
0118 elseif (cell_shape == 1)
0119 OUT_cmpts_index = 1:ncell;
0120 IC_cmpts(1,OUT_cmpts_index) = params_domain_pde.ic_OUT;
0121 DIFF_cmpts(1,OUT_cmpts_index) = params_domain_pde.dcoeff_OUT;
0122 if (Rratio_IN <= 0 || Rratio_IN >= 1)
0123 OUT_ECS_boundary = [1:ncell];
0124 if (include_ECS ~= 0)
0125 kappa_bdys(1,OUT_ECS_boundary) = params_domain_pde.kappa_OUT_ECS;
0126 end
0127 IN_cmpts_index = [];
0128 else
0129 IN_cmpts_index = ncell+1:2*ncell;
0130 DIFF_cmpts(1,IN_cmpts_index) = params_domain_pde.dcoeff_IN;
0131 IC_cmpts(1,IN_cmpts_index) = params_domain_pde.ic_IN;
0132 IN_OUT_boundary = 2:2:2*ncell;
0133 kappa_bdys(1,IN_OUT_boundary) = params_domain_pde.kappa_IN_OUT;
0134 OUT_ECS_boundary = 1:2:2*ncell;
0135 if (include_ECS ~= 0)
0136 kappa_bdys(1,OUT_ECS_boundary) = params_domain_pde.kappa_OUT_ECS;
0137 end
0138 end
0139 end
0140
0141
0142
0143
0144
0145
0146
0147
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180