This commit is contained in:
xinxiao
2026-03-13 11:24:41 +08:00
commit 04e2bb29c7
238 changed files with 29102 additions and 0 deletions
+241
View File
@@ -0,0 +1,241 @@
function plotDis_3D_to_2D_1to3(i, r, OutputRs, type)
coordinate=r.coordinates;
nodes=r.nodes;
cell_divided_by_fracture_flag = r.cell_divided_by_fracture_flag;
nmc = size(nodes,1);
% nel = size(nodes,2);
nel = 4;
if type == 1
v = OutputRs{i}.p;
else
v = 1-OutputRs{i}.sw;%
end
number_divided_cells = size(cell_divided_by_fracture_flag,1);
dis = zeros(nel, nmc-number_divided_cells);
x = zeros(nel, nmc-number_divided_cells);
y = zeros(nel, nmc-number_divided_cells);
the_numbering = 0;
for i = 1 :nmc
if ~ismember(i,cell_divided_by_fracture_flag)
the_numbering = the_numbering +1;
for j = 1 :nel
x(j, the_numbering) = coordinate(nodes(i,j), 1);
y(j, the_numbering) = coordinate(nodes(i,j), 2);
if j == 3
x(j, the_numbering) = coordinate(nodes(i,4), 1);
y(j, the_numbering) = coordinate(nodes(i,4), 2);
end
if j == 4
x(j, the_numbering) = coordinate(nodes(i,3), 1);
y(j, the_numbering) = coordinate(nodes(i,3), 2);
end
dis(j, the_numbering) = v(i);
end
end
end
%
nel = 3;
% if type == 1
% v = OutputRs{i}.p;
% else
% v = 1-OutputRs{i}.sw;%
% end
fractureCell_matrixCell_addedMatrixCell = r.fractureCell_matrixCell_addedMatrixCell;
volume_ratio = r.volume_ratio;
number_divided_cells = size(cell_divided_by_fracture_flag,1);
% dis_division = zeros(nel, 2*number_divided_cells);
% x_division = zeros(nel, 2*number_divided_cells);
% y_division = zeros(nel, 2*number_divided_cells);
dis_division_type1 = [];
x_division_type1 = [];
y_division_type1 = [];
nel_type1 = 4;
dis_division_type2 = [];
x_division_type2 = [];
y_division_type2 = [];
nel_type2 = 3;
the_numbering_division = 0;
for i = 1:nmc
if ismember(i,cell_divided_by_fracture_flag)
aaa = find(cell_divided_by_fracture_flag==i);
theVolumeRatio = volume_ratio(aaa);
theMatrixCell = cell_divided_by_fracture_flag(aaa);
bbb = find(fractureCell_matrixCell_addedMatrixCell(:,2) == theMatrixCell);
theAddedMatrixCell = fractureCell_matrixCell_addedMatrixCell(bbb,3);
if theVolumeRatio == 5/6
% % % % ,
% % % the_x_division_type1 = [coordinate(nodes(i,1), 1);coordinate(nodes(i,2), 1);coordinate(nodes(i,4), 1);2/3*coordinate(nodes(i,3), 1)+1/3*coordinate(nodes(i,4), 1)];
% % % x_division_type1 = [x_division_type1, the_x_division_type1];
% % %
% % % the_y_division_type1 = [coordinate(nodes(i,1), 2);coordinate(nodes(i,2), 2);coordinate(nodes(i,4), 2);2/3*coordinate(nodes(i,3), 2)+1/3*coordinate(nodes(i,4), 2)];
% % % y_division_type1 = [y_division_type1, the_y_division_type1];
% % %
% % % the_dis_division_type1 = v(theAddedMatrixCell)*ones(4,1);
% % % dis_division_type1 = [dis_division_type1, the_dis_division_type1];
% ,
the_x_division_type2 = [2/3*coordinate(nodes(i,3), 1)+1/3*coordinate(nodes(i,4), 1);coordinate(nodes(i,1), 1);coordinate(nodes(i,3), 1);];
x_division_type2 = [x_division_type2, the_x_division_type2];
the_y_division_type2 = [2/3*coordinate(nodes(i,3), 2)+1/3*coordinate(nodes(i,4), 2);coordinate(nodes(i,1), 2);coordinate(nodes(i,3), 2);];
y_division_type2 = [y_division_type2, the_y_division_type2];
the_dis_division_type2 = v(theMatrixCell)*ones(3,1);
dis_division_type2 = [dis_division_type2, the_dis_division_type2];
end
if theVolumeRatio == 1/2
% % % %
% % % the_x_division_type1 = [2/3*coordinate(nodes(i,1), 1)+1/3*coordinate(nodes(i,2), 1);coordinate(nodes(i,2), 1);coordinate(nodes(i,4), 1);1/3*coordinate(nodes(i,3), 1)+2/3*coordinate(nodes(i,4), 1)];
% % % x_division_type1 = [x_division_type1, the_x_division_type1];
% % %
% % % the_y_division_type1 = [2/3*coordinate(nodes(i,1), 2)+1/3*coordinate(nodes(i,2), 2);coordinate(nodes(i,2), 2);coordinate(nodes(i,4), 2);1/3*coordinate(nodes(i,3), 2)+2/3*coordinate(nodes(i,4), 2)];
% % % y_division_type1 = [y_division_type1, the_y_division_type1];
% % %
% % % the_dis_division_type1 = v(theAddedMatrixCell)*ones(4,1);
% % % dis_division_type1 = [dis_division_type1, the_dis_division_type1];
%
the_x_division_type1 = [2/3*coordinate(nodes(i,1), 1)+1/3*coordinate(nodes(i,2), 1);1/3*coordinate(nodes(i,3), 1)+2/3*coordinate(nodes(i,4), 1); coordinate(nodes(i,3), 1);coordinate(nodes(i,1), 1);];
x_division_type1 = [x_division_type1, the_x_division_type1];
the_y_division_type1 = [2/3*coordinate(nodes(i,1), 2)+1/3*coordinate(nodes(i,2), 2);1/3*coordinate(nodes(i,3), 2)+2/3*coordinate(nodes(i,4), 2); coordinate(nodes(i,3), 2);coordinate(nodes(i,1), 2);];
y_division_type1 = [y_division_type1, the_y_division_type1];
the_dis_division_type1 = v(theMatrixCell)*ones(4,1);
dis_division_type1 = [dis_division_type1, the_dis_division_type1];
end
if theVolumeRatio == 1/6
% ,
the_x_division_type1 = [coordinate(nodes(i,1), 1);1/3*coordinate(nodes(i,1), 1)+2/3*coordinate(nodes(i,2), 1);coordinate(nodes(i,4), 1);coordinate(nodes(i,3), 1);];
x_division_type1 = [x_division_type1, the_x_division_type1];
the_y_division_type1 = [coordinate(nodes(i,1), 2);1/3*coordinate(nodes(i,1), 2)+2/3*coordinate(nodes(i,2), 2);coordinate(nodes(i,4), 2);coordinate(nodes(i,3), 2);];
y_division_type1 = [y_division_type1, the_y_division_type1];
the_dis_division_type1 = v(theMatrixCell)*ones(4,1);
dis_division_type1 = [dis_division_type1, the_dis_division_type1];
% % % % ,
% % % the_x_division_type2 = [1/3*coordinate(nodes(i,1), 1)+2/3*coordinate(nodes(i,2), 1); coordinate(nodes(i,2), 1);coordinate(nodes(i,4), 1);];
% % % x_division_type2 = [x_division_type2, the_x_division_type2];
% % %
% % % the_y_division_type2 = [1/3*coordinate(nodes(i,1), 2)+2/3*coordinate(nodes(i,2), 2); coordinate(nodes(i,2), 2);coordinate(nodes(i,4), 2);];
% % % y_division_type2 = [y_division_type2, the_y_division_type2];
% % %
% % % the_dis_division_type2 = v(theAddedMatrixCell)*ones(3,1);
% % % dis_division_type2 = [dis_division_type2, the_dis_division_type2];
end
end
end
% fill(x,y,dis,'EdgeAlpha',1);
figure('color','w');
fill(x,y,dis,'EdgeColor','interp');
hold on;
fill(x_division_type2,y_division_type2,dis_division_type2,'EdgeColor','interp');
hold on;
fill(x_division_type1,y_division_type1,dis_division_type1,'EdgeColor','interp');
%
dis_division_type1 = [];
x_division_type1 = [];
y_division_type1 = [];
nel_type1 = 4;
dis_division_type2 = [];
x_division_type2 = [];
y_division_type2 = [];
nel_type2 = 3;
for i = 1:nmc
if ismember(i,cell_divided_by_fracture_flag)
aaa = find(cell_divided_by_fracture_flag==i);
theVolumeRatio = volume_ratio(aaa);
theMatrixCell = cell_divided_by_fracture_flag(aaa);
bbb = find(fractureCell_matrixCell_addedMatrixCell(:,2) == theMatrixCell);
theAddedMatrixCell = fractureCell_matrixCell_addedMatrixCell(bbb,3);
if theVolumeRatio == 5/6
% ,
the_x_division_type1 = [coordinate(nodes(i,1), 1);coordinate(nodes(i,2), 1);coordinate(nodes(i,4), 1);2/3*coordinate(nodes(i,3), 1)+1/3*coordinate(nodes(i,4), 1)];
x_division_type1 = [x_division_type1, the_x_division_type1];
the_y_division_type1 = [coordinate(nodes(i,1), 2);coordinate(nodes(i,2), 2);coordinate(nodes(i,4), 2);2/3*coordinate(nodes(i,3), 2)+1/3*coordinate(nodes(i,4), 2)];
y_division_type1 = [y_division_type1, the_y_division_type1];
the_dis_division_type1 = v(theAddedMatrixCell)*ones(4,1);
dis_division_type1 = [dis_division_type1, the_dis_division_type1];
% % % % ,
% % % the_x_division_type2 = [2/3*coordinate(nodes(i,3), 1)+1/3*coordinate(nodes(i,4), 1);coordinate(nodes(i,1), 1);coordinate(nodes(i,3), 1);];
% % % x_division_type2 = [x_division_type2, the_x_division_type2];
% % %
% % % the_y_division_type2 = [2/3*coordinate(nodes(i,3), 2)+1/3*coordinate(nodes(i,4), 2);coordinate(nodes(i,1), 2);coordinate(nodes(i,3), 2);];
% % % y_division_type2 = [y_division_type2, the_y_division_type2];
% % %
% % % the_dis_division_type2 = v(theMatrixCell)*ones(3,1);
% % % dis_division_type2 = [dis_division_type2, the_dis_division_type2];
end
if theVolumeRatio == 1/2
%
the_x_division_type1 = [2/3*coordinate(nodes(i,1), 1)+1/3*coordinate(nodes(i,2), 1);coordinate(nodes(i,2), 1);coordinate(nodes(i,4), 1);1/3*coordinate(nodes(i,3), 1)+2/3*coordinate(nodes(i,4), 1)];
x_division_type1 = [x_division_type1, the_x_division_type1];
the_y_division_type1 = [2/3*coordinate(nodes(i,1), 2)+1/3*coordinate(nodes(i,2), 2);coordinate(nodes(i,2), 2);coordinate(nodes(i,4), 2);1/3*coordinate(nodes(i,3), 2)+2/3*coordinate(nodes(i,4), 2)];
y_division_type1 = [y_division_type1, the_y_division_type1];
the_dis_division_type1 = v(theAddedMatrixCell)*ones(4,1);
dis_division_type1 = [dis_division_type1, the_dis_division_type1];
%
% % % the_x_division_type1 = [2/3*coordinate(nodes(i,1), 1)+1/3*coordinate(nodes(i,2), 1);1/3*coordinate(nodes(i,3), 1)+2/3*coordinate(nodes(i,4), 1); coordinate(nodes(i,3), 1);coordinate(nodes(i,1), 1);];
% % % x_division_type1 = [x_division_type1, the_x_division_type1];
% % %
% % % the_y_division_type1 = [2/3*coordinate(nodes(i,1), 2)+1/3*coordinate(nodes(i,2), 2);1/3*coordinate(nodes(i,3), 2)+2/3*coordinate(nodes(i,4), 2); coordinate(nodes(i,3), 2);coordinate(nodes(i,1), 2);];
% % % y_division_type1 = [y_division_type1, the_y_division_type1];
% % %
% % % the_dis_division_type1 = v(theMatrixCell)*ones(4,1);
% % % dis_division_type1 = [dis_division_type1, the_dis_division_type1];
end
if theVolumeRatio == 1/6
% % % % ,
% % % the_x_division_type1 = [coordinate(nodes(i,1), 1);1/3*coordinate(nodes(i,1), 1)+2/3*coordinate(nodes(i,2), 1);coordinate(nodes(i,4), 1);coordinate(nodes(i,3), 1);];
% % % x_division_type1 = [x_division_type1, the_x_division_type1];
% % %
% % % the_y_division_type1 = [coordinate(nodes(i,1), 2);1/3*coordinate(nodes(i,1), 2)+2/3*coordinate(nodes(i,2), 2);coordinate(nodes(i,4), 2);coordinate(nodes(i,3), 2);];
% % % y_division_type1 = [y_division_type1, the_y_division_type1];
% % %
% % % the_dis_division_type1 = v(theMatrixCell)*ones(4,1);
% % % dis_division_type1 = [dis_division_type1, the_dis_division_type1];
% ,
the_x_division_type2 = [1/3*coordinate(nodes(i,1), 1)+2/3*coordinate(nodes(i,2), 1); coordinate(nodes(i,2), 1);coordinate(nodes(i,4), 1);];
x_division_type2 = [x_division_type2, the_x_division_type2];
the_y_division_type2 = [1/3*coordinate(nodes(i,1), 2)+2/3*coordinate(nodes(i,2), 2); coordinate(nodes(i,2), 2);coordinate(nodes(i,4), 2);];
y_division_type2 = [y_division_type2, the_y_division_type2];
the_dis_division_type2 = v(theAddedMatrixCell)*ones(3,1);
dis_division_type2 = [dis_division_type2, the_dis_division_type2];
end
end
end
hold on;
fill(x_division_type2,y_division_type2,dis_division_type2,'EdgeColor','interp');
hold on;
fill(x_division_type1,y_division_type1,dis_division_type1,'EdgeColor','interp');
%
xlabel( 'x, m' );
ylabel( 'y, m' );
axis equal;
axis tight
xlim([0,60]);
ylim([0,60]);
colorbar
colormap jet
if type == 1
caxis([14,43]);
end
% fill(x,y,dis);
% axis off