From 04e2bb29c7684975ad0d1c1eef8f3690991e0eeb Mon Sep 17 00:00:00 2001 From: xinxiao Date: Fri, 13 Mar 2026 11:24:41 +0800 Subject: [PATCH] init --- closeup.m | 1 + .../preprocess/EDFM_transFunction/Bpara.m | 17 + .../preprocess/EDFM_transFunction/Fpara.m | 14 + .../preprocess/EDFM_transFunction/anios.m | 4 + .../preprocess/EDFM_transFunction/finddg.m | 8 + .../preprocess/EDFM_transFunction/finddgAn.m | 15 + .../preprocess/EDFM_transFunction/findg.m | 7 + .../preprocess/EDFM_transFunction/findgAn.m | 16 + .../preprocess/EDFM_transFunction/transFunc.m | 35 + .../EDFM_transFunction/transFunc_aniso.m | 115 +++ .../EDFM_transFunction/transFuncdeltt.m | 29 + .../preprocess/EDFM_transFunction/transMF.m | 61 ++ core functions/preprocess/Ulit/ADI.m | 324 +++++++ core functions/preprocess/Ulit/ADtimestep.m | 6 + core functions/preprocess/Ulit/OperatorRS.m | 24 + core functions/preprocess/Ulit/dinterptable.m | 13 + core functions/preprocess/Ulit/fluidPVT.m | 17 + core functions/preprocess/Ulit/initialRS.m | 5 + core functions/preprocess/Ulit/intADI.m | 31 + core functions/preprocess/Ulit/intADI2.m | 44 + core functions/preprocess/Ulit/intADIz.m | 6 + core functions/preprocess/Ulit/interptable.m | 2 + .../preprocess/about_Well/WellEquation.m | 149 +++ .../preprocess/about_Well/calcTrans.m | 58 ++ .../preprocess/about_Well/calcWellequation.m | 100 ++ .../preprocess/about_Well/findWelloc.m | 32 + .../preprocess/about_Well/initalSchedule.m | 51 + .../preprocess/about_Well/wellperf.m | 8 + .../preprocess/about_equation/eqsOW_MB.m | 96 ++ .../about_equation/eqsOW_MB_2014.asv | 189 ++++ .../preprocess/about_equation/eqsOW_MB_2014.m | 187 ++++ .../preprocess/about_equation/equa_process.m | 56 ++ .../about_grid/GenerateNode_final.m | 96 ++ .../preprocess/about_grid/GridProplpr.m | 175 ++++ core functions/preprocess/about_grid/LGR3D.m | 7 + .../preprocess/about_grid/anosection.m | 28 + core functions/preprocess/about_grid/area.m | 13 + .../preprocess/about_grid/connections.asv | 286 ++++++ .../preprocess/about_grid/connections.m | 247 +++++ .../preprocess/about_grid/connections_2014.m | 529 +++++++++++ .../preprocess/about_grid/connections_PEDFM.m | 701 ++++++++++++++ .../connections_unstructured_EDFM.m | 495 ++++++++++ .../preprocess/about_grid/frac_cross_frac.m | 185 ++++ .../preprocess/about_grid/frac_frac_mesh.m | 152 +++ .../about_grid/frac_frac_mesh_modified.m | 206 ++++ .../preprocess/about_grid/frac_mat_mesh.m | 31 + core functions/preprocess/about_grid/fun1.m | 114 +++ core functions/preprocess/about_grid/fun2.m | 84 ++ core functions/preprocess/about_grid/fun3.m | 67 ++ .../preprocess/about_grid/interarea.m | 135 +++ .../preprocess/about_grid/interflowmf.asv | 303 ++++++ .../preprocess/about_grid/interflowmf1.m | 528 +++++++++++ .../about_grid/interflowmf_MODIFIED.m | 528 +++++++++++ .../preprocess/about_grid/intersectionsolve.m | 225 +++++ .../about_grid/intersectionsolve_new.m | 231 +++++ .../intersectionsolve_new_modified.m | 474 ++++++++++ .../intersectionsolve_new_modified_irr.m | 433 +++++++++ .../intersectionsolve_new_modified_r.m | 491 ++++++++++ core functions/preprocess/about_grid/lpr.m | 892 ++++++++++++++++++ .../preprocess/about_grid/network3D.m | 61 ++ core functions/preprocess/about_grid/outfp.m | 11 + .../preprocess/about_grid/plotmesh2D.m | 32 + .../preprocess/about_grid/plotmesh3D.m | 35 + core functions/preprocess/about_grid/trans.m | 166 ++++ .../about_grid/transFunc_aniso_MODIFIED.m | 119 +++ .../preprocess/about_grid/triint1lpr.m | 57 ++ .../preprocess/about_grid/triintlpr.m | 93 ++ core functions/preprocess/find_row.m | 20 + .../preprocess/physical_Prop_fun/Bg.m | 3 + .../preprocess/physical_Prop_fun/Bo.m | 2 + .../preprocess/physical_Prop_fun/Bw.m | 2 + .../physical_Prop_fun/cb_absorb_f.m | 3 + .../physical_Prop_fun/cs_absorb_f.m | 3 + .../preprocess/physical_Prop_fun/cs_to_Nc.m | 16 + .../preprocess/physical_Prop_fun/krg.m | 29 + .../preprocess/physical_Prop_fun/kro.m | 14 + .../preprocess/physical_Prop_fun/krw.m | 30 + .../preprocess/physical_Prop_fun/mug.m | 3 + .../preprocess/physical_Prop_fun/muo.m | 2 + .../preprocess/physical_Prop_fun/muw.m | 2 + .../preprocess/physical_Prop_fun/pc.m | 20 + .../preprocess/physical_Prop_fun/pcgl.m | 16 + .../preprocess/physical_Prop_fun/pcow.m | 16 + .../preprocess/physical_Prop_fun/por.m | 12 + core functions/气水两相流部分代码/Bg_gw.m | 3 + core functions/气水两相流部分代码/Bw_gw.m | 2 + .../WellEquation_gas_water_flow.m | 112 +++ .../calcWellequation_gas_water_flow.m | 98 ++ .../eqsOW_MB_gas_water_flow.m | 159 ++++ .../fluidPVT_gas_water_flow.m | 16 + .../initalSchedule_gas_water_flow.m | 53 ++ .../initialRS_gas_water_flow.m | 3 + .../intADI2_gas_water_flow.m | 18 + .../intADI_gas_water_flow.m | 10 + core functions/气水两相流部分代码/krrg_gw.m | 14 + core functions/气水两相流部分代码/krw_gw.m | 15 + .../mainRS_MB_gas_water_flow.m | 153 +++ core functions/气水两相流部分代码/mug_gw.m | 3 + core functions/气水两相流部分代码/muw_gw.m | 2 + core functions/气水两相流部分代码/pc_gw.m | 16 + core functions/油水两相流部分代码/Bo_ow.m | 3 + core functions/油水两相流部分代码/Bw_ow.m | 2 + .../WellEquation_oil_water_flow.m | 112 +++ .../油水两相流部分代码/cal_oil_prop.m | 5 + .../calcWellequation_oil_water_flow.m | 98 ++ .../eqsOW_MB_oil_water_flow.m | 155 +++ .../fluidPVT_oil_water_flow.m | 16 + .../initalSchedule_oil_water_flow.m | 53 ++ .../initialRS_oil_water_flow.m | 3 + .../intADI2_oil_water_flow.m | 18 + .../intADI_oil_water_flow.m | 10 + core functions/油水两相流部分代码/kro_ow.m | 14 + core functions/油水两相流部分代码/krw_ow.m | 15 + .../mainRS_MB_oil_water_flow.m | 153 +++ core functions/油水两相流部分代码/muo_ow.m | 3 + core functions/油水两相流部分代码/muw_ow.m | 2 + core functions/油水两相流部分代码/pcow.m | 16 + core functions/油水两相流部分代码/por.m | 12 + .../程序整合及组分流部分代码/GridProp_DP.asv | 523 ++++++++++ .../程序整合及组分流部分代码/GridProp_DP.m | 534 +++++++++++ .../程序整合及组分流部分代码/cal_gas_prop.m | 5 + .../connections_2014_DP.asv | 579 ++++++++++++ .../connections_2014_DP.m | 625 ++++++++++++ .../程序整合及组分流部分代码/fluidPVT.m | 18 + .../程序整合及组分流部分代码/fluidPVT_new.m | 22 + ...tureInformation_input_engineering_vector.m | 15 + .../grid_discretization_DP_model.asv | 49 + .../程序整合及组分流部分代码/handle_well1.m | 13 + .../handle_well1_well2.m | 36 + .../initalSchedule_2026.m | 54 ++ .../input_fracture_2D.m | 26 + .../程序整合及组分流部分代码/mainRS_MB_2026.m | 165 ++++ .../multi_component_flow.m | 242 +++++ .../smooth_relu_stable.m | 18 + .../程序整合及组分流部分代码/solver_NR.m | 28 + generic extended/GenerateNode_final_new.m | 90 ++ generic extended/GridProp_new.asv | 510 ++++++++++ generic extended/GridProp_new.m | 230 +++++ generic extended/calculate_relative_errors.m | 35 + .../calculate_relative_errors_vs_cellsize.m | 72 ++ .../connections_PEDFM_EX1_solutions.m | 642 +++++++++++++ .../connections_PEDFM_EX2_solutions.m | 707 ++++++++++++++ generic extended/connections_PEDFM_new.m | 735 +++++++++++++++ generic extended/connections_PEDFM_new_new.m | 714 ++++++++++++++ ...nections_unstructured_EDFM_EX1_solutions.m | 629 ++++++++++++ ...ons_unstructured_EDFM_EX2_1to2_solutions.m | 638 +++++++++++++ ...ons_unstructured_EDFM_EX2_1to3_solutions.m | 638 +++++++++++++ ...ons_unstructured_EDFM_EX2_1to4_solutions.m | 663 +++++++++++++ generic extended/plotDis_3D_to_2D_1to3.m | 241 +++++ generic extended/plotDis_3D_to_2D_new.m | 85 ++ generic extended/plotDislayer.m | 145 +++ generic extended/plotWellResponse.m | 15 + generic extended/plot_Newtons.m | 13 + generic extended/plot_continuous.m | 116 +++ generic extended/plotfigures.m | 42 + generic extended/plotwell.m | 14 + main.asv | 194 ++++ plotWellResponse.asv | 55 ++ post processor/plot functions/data_standard.m | 343 +++++++ post processor/plot functions/plotDis.m | 144 +++ .../plot functions/plotDis_3D_to_2D.m | 46 + .../plot functions/plotDis_ECLIPSE.m | 129 +++ .../plot functions/plotDislayer.asv | 147 +++ post processor/plot functions/plotDislayer.m | 153 +++ .../plot functions/plotDislayer_ECLIPSE.m | 131 +++ post processor/plot functions/plot_layer.asv | 48 + post processor/plot functions/plot_layer.m | 49 + .../plot functions/plot_reservoir_3D.m | 44 + post processor/plot functions/plotcp.m | 37 + post processor/plot functions/plotframe.m | 37 + post processor/plot functions/plotgraph.m | 63 ++ post processor/plot functions/plotwell.m | 19 + post processor/plot functions/plotwell_set.m | 130 +++ post processor/plot functions/refine.m | 64 ++ post processor/plotWellResponse.m | 55 ++ post processor/plot_2D_layer.m | 50 + post processor/plot_3D.m | 70 ++ post processor/plot_3D_dis.m | 144 +++ post processor/plot_3d_grid_data_scatter.m | 54 ++ post processor/plot_3d_grid_data_slice.m | 52 + post processor/plot_3d_grid_data_volume.m | 66 ++ post processor/plot_3d_grid_patch_optimized.m | 128 +++ post processor/plot_3d_grid_transparent.m | 105 +++ post processor/plot_3d_grid_voxel_full.m | 99 ++ post processor/plot_3d_grid_voxel_function.m | 105 +++ post processor/plot_SP_DP.m | 51 + post processor/pre_plot/preplot_dis.m | 40 + post processor/pre_plot/preplot_dislayer.m | 41 + post processor/pre_plot/sort_fracture.m | 27 + .../pre_plot/sort_fracture_project.m | 29 + post processor/pre_plot/sort_input.m | 22 + post processor/untitled2.m | 11 + startup.m | 1 + .../GridProp_pre.m | 115 +++ .../grid_discretization_SP_model.m | 70 ++ 算例1-组分流-不规则非均质计算域/main1.m | 222 +++++ .../multi_component_flow.m | 232 +++++ 算例1-组分流-不规则非均质计算域/perm.fig | Bin 0 -> 665006 bytes .../plotWellResponse.m | 55 ++ .../plot_2D_layer.m | 50 + 算例1-组分流-不规则非均质计算域/plot_3D_dis.m | 144 +++ 算例1-组分流-不规则非均质计算域/plot_perm.m | 51 + .../preprocess_heterogeneous.m | 26 + .../grid_discretization_SP_model.m | 55 ++ 算例2-组分流-无效网格/main1.m | 205 ++++ 算例2-组分流-无效网格/multi_component_flow.m | 232 +++++ 算例2-组分流-无效网格/plotWellResponse.m | 55 ++ 算例2-组分流-无效网格/plot_2D_layer.m | 51 + 算例2-组分流-无效网格/plot_3D_dis.m | 144 +++ 算例2-组分流-无效网格/第1层压力分布.fig | Bin 0 -> 679326 bytes 算例2-组分流-无效网格/第2层压力分布.fig | Bin 0 -> 668615 bytes 算例2-组分流-无效网格/第3层压力分布.fig | Bin 0 -> 679270 bytes .../grid_discretization_DP_model.m | 70 ++ 算例3-单重双重离散裂缝混合模型/main1.m | 211 +++++ .../multi_component_flow.m | 232 +++++ .../plotWellResponse.m | 55 ++ .../plot_2D_layer.m | 50 + 算例3-单重双重离散裂缝混合模型/plot_3D_dis.m | 144 +++ 算例3-单重双重离散裂缝混合模型/plot_SP_DP.m | 51 + .../gas_water_flow.m | 141 +++ .../grid_discretization_SP_model.m | 55 ++ 算例4-气水两相流-压力导数曲线/main1.asv | 195 ++++ 算例4-气水两相流-压力导数曲线/main1.m | 200 ++++ .../plotWellResponse.m | 55 ++ .../grid_discretization_SP_model.m | 55 ++ 算例5-油水两相流-注焖采/main1.m | 200 ++++ 算例5-油水两相流-注焖采/oil_water_flow.m | 126 +++ 算例5-油水两相流-注焖采/plotWellResponse.m | 55 ++ .../grid_discretization_SP_model.m | 55 ++ 算例6-油水两相流-直井注压裂水平井采/main1.m | 196 ++++ .../oil_water_flow.m | 126 +++ .../plotWellResponse.m | 55 ++ .../plot_2D_layer.m | 50 + .../plot_3D_dis.m | 144 +++ .../grid_discretization_SP_model.m | 55 ++ 算例7-油水两相流-不同裂缝制度不同/main1.m | 219 +++++ .../oil_water_flow.m | 126 +++ .../plotWellResponse.m | 55 ++ 238 files changed, 29102 insertions(+) create mode 100644 closeup.m create mode 100644 core functions/preprocess/EDFM_transFunction/Bpara.m create mode 100644 core functions/preprocess/EDFM_transFunction/Fpara.m create mode 100644 core functions/preprocess/EDFM_transFunction/anios.m create mode 100644 core functions/preprocess/EDFM_transFunction/finddg.m create mode 100644 core functions/preprocess/EDFM_transFunction/finddgAn.m create mode 100644 core functions/preprocess/EDFM_transFunction/findg.m create mode 100644 core functions/preprocess/EDFM_transFunction/findgAn.m create mode 100644 core functions/preprocess/EDFM_transFunction/transFunc.m create mode 100644 core functions/preprocess/EDFM_transFunction/transFunc_aniso.m create mode 100644 core functions/preprocess/EDFM_transFunction/transFuncdeltt.m create mode 100644 core functions/preprocess/EDFM_transFunction/transMF.m create mode 100644 core functions/preprocess/Ulit/ADI.m create mode 100644 core functions/preprocess/Ulit/ADtimestep.m create mode 100644 core functions/preprocess/Ulit/OperatorRS.m create mode 100644 core functions/preprocess/Ulit/dinterptable.m create mode 100644 core functions/preprocess/Ulit/fluidPVT.m create mode 100644 core functions/preprocess/Ulit/initialRS.m create mode 100644 core functions/preprocess/Ulit/intADI.m create mode 100644 core functions/preprocess/Ulit/intADI2.m create mode 100644 core functions/preprocess/Ulit/intADIz.m create mode 100644 core functions/preprocess/Ulit/interptable.m create mode 100644 core functions/preprocess/about_Well/WellEquation.m create mode 100644 core functions/preprocess/about_Well/calcTrans.m create mode 100644 core functions/preprocess/about_Well/calcWellequation.m create mode 100644 core functions/preprocess/about_Well/findWelloc.m create mode 100644 core functions/preprocess/about_Well/initalSchedule.m create mode 100644 core functions/preprocess/about_Well/wellperf.m create mode 100644 core functions/preprocess/about_equation/eqsOW_MB.m create mode 100644 core functions/preprocess/about_equation/eqsOW_MB_2014.asv create mode 100644 core functions/preprocess/about_equation/eqsOW_MB_2014.m create mode 100644 core functions/preprocess/about_equation/equa_process.m create mode 100644 core functions/preprocess/about_grid/GenerateNode_final.m create mode 100644 core functions/preprocess/about_grid/GridProplpr.m create mode 100644 core functions/preprocess/about_grid/LGR3D.m create mode 100644 core functions/preprocess/about_grid/anosection.m create mode 100644 core functions/preprocess/about_grid/area.m create mode 100644 core functions/preprocess/about_grid/connections.asv create mode 100644 core functions/preprocess/about_grid/connections.m create mode 100644 core functions/preprocess/about_grid/connections_2014.m create mode 100644 core functions/preprocess/about_grid/connections_PEDFM.m create mode 100644 core functions/preprocess/about_grid/connections_unstructured_EDFM.m create mode 100644 core functions/preprocess/about_grid/frac_cross_frac.m create mode 100644 core functions/preprocess/about_grid/frac_frac_mesh.m create mode 100644 core functions/preprocess/about_grid/frac_frac_mesh_modified.m create mode 100644 core functions/preprocess/about_grid/frac_mat_mesh.m create mode 100644 core functions/preprocess/about_grid/fun1.m create mode 100644 core functions/preprocess/about_grid/fun2.m create mode 100644 core functions/preprocess/about_grid/fun3.m create mode 100644 core functions/preprocess/about_grid/interarea.m create mode 100644 core functions/preprocess/about_grid/interflowmf.asv create mode 100644 core functions/preprocess/about_grid/interflowmf1.m create mode 100644 core functions/preprocess/about_grid/interflowmf_MODIFIED.m create mode 100644 core functions/preprocess/about_grid/intersectionsolve.m create mode 100644 core functions/preprocess/about_grid/intersectionsolve_new.m create mode 100644 core functions/preprocess/about_grid/intersectionsolve_new_modified.m create mode 100644 core functions/preprocess/about_grid/intersectionsolve_new_modified_irr.m create mode 100644 core functions/preprocess/about_grid/intersectionsolve_new_modified_r.m create mode 100644 core functions/preprocess/about_grid/lpr.m create mode 100644 core functions/preprocess/about_grid/network3D.m create mode 100644 core functions/preprocess/about_grid/outfp.m create mode 100644 core functions/preprocess/about_grid/plotmesh2D.m create mode 100644 core functions/preprocess/about_grid/plotmesh3D.m create mode 100644 core functions/preprocess/about_grid/trans.m create mode 100644 core functions/preprocess/about_grid/transFunc_aniso_MODIFIED.m create mode 100644 core functions/preprocess/about_grid/triint1lpr.m create mode 100644 core functions/preprocess/about_grid/triintlpr.m create mode 100644 core functions/preprocess/find_row.m create mode 100644 core functions/preprocess/physical_Prop_fun/Bg.m create mode 100644 core functions/preprocess/physical_Prop_fun/Bo.m create mode 100644 core functions/preprocess/physical_Prop_fun/Bw.m create mode 100644 core functions/preprocess/physical_Prop_fun/cb_absorb_f.m create mode 100644 core functions/preprocess/physical_Prop_fun/cs_absorb_f.m create mode 100644 core functions/preprocess/physical_Prop_fun/cs_to_Nc.m create mode 100644 core functions/preprocess/physical_Prop_fun/krg.m create mode 100644 core functions/preprocess/physical_Prop_fun/kro.m create mode 100644 core functions/preprocess/physical_Prop_fun/krw.m create mode 100644 core functions/preprocess/physical_Prop_fun/mug.m create mode 100644 core functions/preprocess/physical_Prop_fun/muo.m create mode 100644 core functions/preprocess/physical_Prop_fun/muw.m create mode 100644 core functions/preprocess/physical_Prop_fun/pc.m create mode 100644 core functions/preprocess/physical_Prop_fun/pcgl.m create mode 100644 core functions/preprocess/physical_Prop_fun/pcow.m create mode 100644 core functions/preprocess/physical_Prop_fun/por.m create mode 100644 core functions/气水两相流部分代码/Bg_gw.m create mode 100644 core functions/气水两相流部分代码/Bw_gw.m create mode 100644 core functions/气水两相流部分代码/WellEquation_gas_water_flow.m create mode 100644 core functions/气水两相流部分代码/calcWellequation_gas_water_flow.m create mode 100644 core functions/气水两相流部分代码/eqsOW_MB_gas_water_flow.m create mode 100644 core functions/气水两相流部分代码/fluidPVT_gas_water_flow.m create mode 100644 core functions/气水两相流部分代码/initalSchedule_gas_water_flow.m create mode 100644 core functions/气水两相流部分代码/initialRS_gas_water_flow.m create mode 100644 core functions/气水两相流部分代码/intADI2_gas_water_flow.m create mode 100644 core functions/气水两相流部分代码/intADI_gas_water_flow.m create mode 100644 core functions/气水两相流部分代码/krrg_gw.m create mode 100644 core functions/气水两相流部分代码/krw_gw.m create mode 100644 core functions/气水两相流部分代码/mainRS_MB_gas_water_flow.m create mode 100644 core functions/气水两相流部分代码/mug_gw.m create mode 100644 core functions/气水两相流部分代码/muw_gw.m create mode 100644 core functions/气水两相流部分代码/pc_gw.m create mode 100644 core functions/油水两相流部分代码/Bo_ow.m create mode 100644 core functions/油水两相流部分代码/Bw_ow.m create mode 100644 core functions/油水两相流部分代码/WellEquation_oil_water_flow.m create mode 100644 core functions/油水两相流部分代码/cal_oil_prop.m create mode 100644 core functions/油水两相流部分代码/calcWellequation_oil_water_flow.m create mode 100644 core functions/油水两相流部分代码/eqsOW_MB_oil_water_flow.m create mode 100644 core functions/油水两相流部分代码/fluidPVT_oil_water_flow.m create mode 100644 core functions/油水两相流部分代码/initalSchedule_oil_water_flow.m create mode 100644 core functions/油水两相流部分代码/initialRS_oil_water_flow.m create mode 100644 core functions/油水两相流部分代码/intADI2_oil_water_flow.m create mode 100644 core functions/油水两相流部分代码/intADI_oil_water_flow.m create mode 100644 core functions/油水两相流部分代码/kro_ow.m create mode 100644 core functions/油水两相流部分代码/krw_ow.m create mode 100644 core functions/油水两相流部分代码/mainRS_MB_oil_water_flow.m create mode 100644 core functions/油水两相流部分代码/muo_ow.m create mode 100644 core functions/油水两相流部分代码/muw_ow.m create mode 100644 core functions/油水两相流部分代码/pcow.m create mode 100644 core functions/油水两相流部分代码/por.m create mode 100644 core functions/程序整合及组分流部分代码/GridProp_DP.asv create mode 100644 core functions/程序整合及组分流部分代码/GridProp_DP.m create mode 100644 core functions/程序整合及组分流部分代码/cal_gas_prop.m create mode 100644 core functions/程序整合及组分流部分代码/connections_2014_DP.asv create mode 100644 core functions/程序整合及组分流部分代码/connections_2014_DP.m create mode 100644 core functions/程序整合及组分流部分代码/fluidPVT.m create mode 100644 core functions/程序整合及组分流部分代码/fluidPVT_new.m create mode 100644 core functions/程序整合及组分流部分代码/fractureInformation_input_engineering_vector.m create mode 100644 core functions/程序整合及组分流部分代码/grid_discretization_DP_model.asv create mode 100644 core functions/程序整合及组分流部分代码/handle_well1.m create mode 100644 core functions/程序整合及组分流部分代码/handle_well1_well2.m create mode 100644 core functions/程序整合及组分流部分代码/initalSchedule_2026.m create mode 100644 core functions/程序整合及组分流部分代码/input_fracture_2D.m create mode 100644 core functions/程序整合及组分流部分代码/mainRS_MB_2026.m create mode 100644 core functions/程序整合及组分流部分代码/multi_component_flow.m create mode 100644 core functions/程序整合及组分流部分代码/smooth_relu_stable.m create mode 100644 core functions/程序整合及组分流部分代码/solver_NR.m create mode 100644 generic extended/GenerateNode_final_new.m create mode 100644 generic extended/GridProp_new.asv create mode 100644 generic extended/GridProp_new.m create mode 100644 generic extended/calculate_relative_errors.m create mode 100644 generic extended/calculate_relative_errors_vs_cellsize.m create mode 100644 generic extended/connections_PEDFM_EX1_solutions.m create mode 100644 generic extended/connections_PEDFM_EX2_solutions.m create mode 100644 generic extended/connections_PEDFM_new.m create mode 100644 generic extended/connections_PEDFM_new_new.m create mode 100644 generic extended/connections_unstructured_EDFM_EX1_solutions.m create mode 100644 generic extended/connections_unstructured_EDFM_EX2_1to2_solutions.m create mode 100644 generic extended/connections_unstructured_EDFM_EX2_1to3_solutions.m create mode 100644 generic extended/connections_unstructured_EDFM_EX2_1to4_solutions.m create mode 100644 generic extended/plotDis_3D_to_2D_1to3.m create mode 100644 generic extended/plotDis_3D_to_2D_new.m create mode 100644 generic extended/plotDislayer.m create mode 100644 generic extended/plotWellResponse.m create mode 100644 generic extended/plot_Newtons.m create mode 100644 generic extended/plot_continuous.m create mode 100644 generic extended/plotfigures.m create mode 100644 generic extended/plotwell.m create mode 100644 main.asv create mode 100644 plotWellResponse.asv create mode 100644 post processor/plot functions/data_standard.m create mode 100644 post processor/plot functions/plotDis.m create mode 100644 post processor/plot functions/plotDis_3D_to_2D.m create mode 100644 post processor/plot functions/plotDis_ECLIPSE.m create mode 100644 post processor/plot functions/plotDislayer.asv create mode 100644 post processor/plot functions/plotDislayer.m create mode 100644 post processor/plot functions/plotDislayer_ECLIPSE.m create mode 100644 post processor/plot functions/plot_layer.asv create mode 100644 post processor/plot functions/plot_layer.m create mode 100644 post processor/plot functions/plot_reservoir_3D.m create mode 100644 post processor/plot functions/plotcp.m create mode 100644 post processor/plot functions/plotframe.m create mode 100644 post processor/plot functions/plotgraph.m create mode 100644 post processor/plot functions/plotwell.m create mode 100644 post processor/plot functions/plotwell_set.m create mode 100644 post processor/plot functions/refine.m create mode 100644 post processor/plotWellResponse.m create mode 100644 post processor/plot_2D_layer.m create mode 100644 post processor/plot_3D.m create mode 100644 post processor/plot_3D_dis.m create mode 100644 post processor/plot_3d_grid_data_scatter.m create mode 100644 post processor/plot_3d_grid_data_slice.m create mode 100644 post processor/plot_3d_grid_data_volume.m create mode 100644 post processor/plot_3d_grid_patch_optimized.m create mode 100644 post processor/plot_3d_grid_transparent.m create mode 100644 post processor/plot_3d_grid_voxel_full.m create mode 100644 post processor/plot_3d_grid_voxel_function.m create mode 100644 post processor/plot_SP_DP.m create mode 100644 post processor/pre_plot/preplot_dis.m create mode 100644 post processor/pre_plot/preplot_dislayer.m create mode 100644 post processor/pre_plot/sort_fracture.m create mode 100644 post processor/pre_plot/sort_fracture_project.m create mode 100644 post processor/pre_plot/sort_input.m create mode 100644 post processor/untitled2.m create mode 100644 startup.m create mode 100644 算例1-组分流-不规则非均质计算域/GridProp_pre.m create mode 100644 算例1-组分流-不规则非均质计算域/grid_discretization_SP_model.m create mode 100644 算例1-组分流-不规则非均质计算域/main1.m create mode 100644 算例1-组分流-不规则非均质计算域/multi_component_flow.m create mode 100644 算例1-组分流-不规则非均质计算域/perm.fig create mode 100644 算例1-组分流-不规则非均质计算域/plotWellResponse.m create mode 100644 算例1-组分流-不规则非均质计算域/plot_2D_layer.m create mode 100644 算例1-组分流-不规则非均质计算域/plot_3D_dis.m create mode 100644 算例1-组分流-不规则非均质计算域/plot_perm.m create mode 100644 算例1-组分流-不规则非均质计算域/preprocess_heterogeneous.m create mode 100644 算例2-组分流-无效网格/grid_discretization_SP_model.m create mode 100644 算例2-组分流-无效网格/main1.m create mode 100644 算例2-组分流-无效网格/multi_component_flow.m create mode 100644 算例2-组分流-无效网格/plotWellResponse.m create mode 100644 算例2-组分流-无效网格/plot_2D_layer.m create mode 100644 算例2-组分流-无效网格/plot_3D_dis.m create mode 100644 算例2-组分流-无效网格/第1层压力分布.fig create mode 100644 算例2-组分流-无效网格/第2层压力分布.fig create mode 100644 算例2-组分流-无效网格/第3层压力分布.fig create mode 100644 算例3-单重双重离散裂缝混合模型/grid_discretization_DP_model.m create mode 100644 算例3-单重双重离散裂缝混合模型/main1.m create mode 100644 算例3-单重双重离散裂缝混合模型/multi_component_flow.m create mode 100644 算例3-单重双重离散裂缝混合模型/plotWellResponse.m create mode 100644 算例3-单重双重离散裂缝混合模型/plot_2D_layer.m create mode 100644 算例3-单重双重离散裂缝混合模型/plot_3D_dis.m create mode 100644 算例3-单重双重离散裂缝混合模型/plot_SP_DP.m create mode 100644 算例4-气水两相流-压力导数曲线/gas_water_flow.m create mode 100644 算例4-气水两相流-压力导数曲线/grid_discretization_SP_model.m create mode 100644 算例4-气水两相流-压力导数曲线/main1.asv create mode 100644 算例4-气水两相流-压力导数曲线/main1.m create mode 100644 算例4-气水两相流-压力导数曲线/plotWellResponse.m create mode 100644 算例5-油水两相流-注焖采/grid_discretization_SP_model.m create mode 100644 算例5-油水两相流-注焖采/main1.m create mode 100644 算例5-油水两相流-注焖采/oil_water_flow.m create mode 100644 算例5-油水两相流-注焖采/plotWellResponse.m create mode 100644 算例6-油水两相流-直井注压裂水平井采/grid_discretization_SP_model.m create mode 100644 算例6-油水两相流-直井注压裂水平井采/main1.m create mode 100644 算例6-油水两相流-直井注压裂水平井采/oil_water_flow.m create mode 100644 算例6-油水两相流-直井注压裂水平井采/plotWellResponse.m create mode 100644 算例6-油水两相流-直井注压裂水平井采/plot_2D_layer.m create mode 100644 算例6-油水两相流-直井注压裂水平井采/plot_3D_dis.m create mode 100644 算例7-油水两相流-不同裂缝制度不同/grid_discretization_SP_model.m create mode 100644 算例7-油水两相流-不同裂缝制度不同/main1.m create mode 100644 算例7-油水两相流-不同裂缝制度不同/oil_water_flow.m create mode 100644 算例7-油水两相流-不同裂缝制度不同/plotWellResponse.m diff --git a/closeup.m b/closeup.m new file mode 100644 index 0000000..2dc10c7 --- /dev/null +++ b/closeup.m @@ -0,0 +1 @@ + rmpath(genpath(pwd)) \ No newline at end of file diff --git a/core functions/preprocess/EDFM_transFunction/Bpara.m b/core functions/preprocess/EDFM_transFunction/Bpara.m new file mode 100644 index 0000000..332dba3 --- /dev/null +++ b/core functions/preprocess/EDFM_transFunction/Bpara.m @@ -0,0 +1,17 @@ +function BF = Bpara(xb, yb) +n = length(xb); +BF = zeros(n, 7); +BF(:,3) = xb; +BF(:,4) = yb; +for i = 1 : n + if i == n + ip = 1; + else + ip = i + 1; + end + BF(i,1) = (xb(i) + xb(ip)) / 2; + BF(i,2) = (yb(i) + yb(ip)) / 2; + BF(i,5) = ((xb(i) - xb(ip))^2 + (yb(i) - yb(ip))^2)^0.5; + BF(i,6) = (yb(ip) - yb(i)) / BF(i,5); + BF(i,7) = (xb(i) - xb(ip)) / BF(i,5); +end \ No newline at end of file diff --git a/core functions/preprocess/EDFM_transFunction/Fpara.m b/core functions/preprocess/EDFM_transFunction/Fpara.m new file mode 100644 index 0000000..ed624c1 --- /dev/null +++ b/core functions/preprocess/EDFM_transFunction/Fpara.m @@ -0,0 +1,14 @@ +function FF = Fpara(xf, yf) +nf = length(xf)/2; +FF = zeros(nf, 7); +for i = 1 : nf + i1 = 2 * i - 1; + i2 = 2 * i; + FF(i,3) = xf(i1); + FF(i,4) = yf(i1); + FF(i,1) = (xf(i1) + xf(i2)) / 2; + FF(i,2) = (yf(i1) + yf(i2)) / 2; + FF(i,5) = ((xf(i1) - xf(i2))^2 + (yf(i1) - yf(i2))^2)^0.5; + FF(i,6) = (yf(i2) - yf(i1)) / FF(i,5); + FF(i,7) = (xf(i1) - xf(i2)) / FF(i,5); +end \ No newline at end of file diff --git a/core functions/preprocess/EDFM_transFunction/anios.m b/core functions/preprocess/EDFM_transFunction/anios.m new file mode 100644 index 0000000..a3f24aa --- /dev/null +++ b/core functions/preprocess/EDFM_transFunction/anios.m @@ -0,0 +1,4 @@ +function [x1, y1, ka] = anios(kx, ky, x, y) +ka = (kx*ky)^0.5; +x1 = x*(ka/kx)^0.5; +y1 = y*(ka/ky)^0.5; \ No newline at end of file diff --git a/core functions/preprocess/EDFM_transFunction/finddg.m b/core functions/preprocess/EDFM_transFunction/finddg.m new file mode 100644 index 0000000..89788d8 --- /dev/null +++ b/core functions/preprocess/EDFM_transFunction/finddg.m @@ -0,0 +1,8 @@ +function dG = finddg(xs, ys, xk, yk, nkx, nky, lk) +% Function aims to solve the boundary integrals +dG = (lk / (2 * pi)) * quadgk(@(t)intdg(xs, ys, xk, yk, nkx, nky, lk, t), 0, 1); + +% intg.m +function y = intdg(xs, ys, xk, yk, nkx, nky, lk, t) +y = (nkx*(xk - xs) + nky*(yk - ys))... + ./((xk - t*lk*nky - xs).^2 + (yk + t*lk*nkx - ys).^2); \ No newline at end of file diff --git a/core functions/preprocess/EDFM_transFunction/finddgAn.m b/core functions/preprocess/EDFM_transFunction/finddgAn.m new file mode 100644 index 0000000..e177111 --- /dev/null +++ b/core functions/preprocess/EDFM_transFunction/finddgAn.m @@ -0,0 +1,15 @@ +function dG = finddgAn(xs, ys, xk, yk, nkx, nky, lk) +% Function aims to solve the boundary integrals +A = lk^2; +B = (-nky * (xk - xs) + nkx * (yk - ys)) * (2 * lk); +E = (xk - xs)^2 + (yk - ys)^2; +eps = 1e-9; +De = 4 * A * E - B^2; +if De <= eps + dG = 0; +else + dG = lk/pi * (nkx*(xk - xs)+nky*(yk - ys))/De^0.5 * ... + (atan((2*A+B)/De^0.5) - atan(B/De^0.5)); +end + + diff --git a/core functions/preprocess/EDFM_transFunction/findg.m b/core functions/preprocess/EDFM_transFunction/findg.m new file mode 100644 index 0000000..1dbf909 --- /dev/null +++ b/core functions/preprocess/EDFM_transFunction/findg.m @@ -0,0 +1,7 @@ +function G = findg(xs, ys, xk, yk, nkx, nky, lk) +% Function aims to solve the boundary integrals +G = (1 / (4 * pi)) * quadgk(@(t)intg(xs, ys, xk, yk, nkx, nky, lk, t), 0, 1); + +% intg.m +function y = intg(xs, ys, xk, yk, nkx, nky, lk, t) +y = log((xk - t*lk*nky - xs).^2 + (yk + t*lk*nkx - ys).^2); \ No newline at end of file diff --git a/core functions/preprocess/EDFM_transFunction/findgAn.m b/core functions/preprocess/EDFM_transFunction/findgAn.m new file mode 100644 index 0000000..91aa0cd --- /dev/null +++ b/core functions/preprocess/EDFM_transFunction/findgAn.m @@ -0,0 +1,16 @@ +function G = findgAn(xs, ys, xk, yk, nkx, nky, lk) +% Function aims to solve the boundary integrals +A = lk^2; +B = (-nky * (xk - xs) + nkx * (yk - ys)) * (2 * lk); +E = (xk - xs)^2 + (yk - ys)^2; +eps = 1e-9; +De = 4 * A * E - B^2; +if De <= eps + G = lk/2/pi * (log(lk/2) - 1); +else + G = 1/4/pi * (2*(log(lk) - 1) - B/2/A*log(abs(E/A))... + + (1 + B/2/A)*log(abs(1 + B/A + E/A)) + De^0.5/A... + *(atan((2*A + B)/De^0.5) - atan(B/De^0.5))); +end + + diff --git a/core functions/preprocess/EDFM_transFunction/transFunc.m b/core functions/preprocess/EDFM_transFunction/transFunc.m new file mode 100644 index 0000000..5605d2b --- /dev/null +++ b/core functions/preprocess/EDFM_transFunction/transFunc.m @@ -0,0 +1,35 @@ +function [qomf, qofm, qwmf, qwfm] = transFunc(r, krO, krW, BO, muO, BW, muW, po, pw) +%po,pwǶ +Ka = r.Ka; +M = r.M; +F2M = r.F2M; +MF_coef = r.MF_coef; +nfc = r.nfc;%ѷ쵥Ԫ +nc = r.nc; % 彻 +C = sparse((1 : nfc)' * [1 1], M, ones(nfc, 1) * [-1 1], nfc, nc); +grad = @(x) C * x; +faceUpstr = @(flag, x) faceUpstrb(flag, x, M, [nfc, nc]); +dpO = grad(po); +upc = (double(dpO)<=0); +mobO = faceUpstr(upc, krO./(BO.*muO)); +% qomf = Ka .* r.h .* mobO .* (MF_coef * po);%Ϊѷ쵥Ԫ +qomf = r.V(r.nmc+1:r.nc)./r.wf.*Ka' .* mobO .* (MF_coef * po);%ѷΪΪһʼõǴܶ +% qomf = r.V(r.nmc+1:r.nc).*Ka .* mobO .* (MF_coef * po); +% qomf = Ka .* mobO .* (MF_coef * po); +qofm = -F2M * qomf;%Ϊ +dpW = grad(pw); +upc = (double(dpW)<=0); +mobW = faceUpstr(upc, krW./(BW.*muW)); +% qwmf = Ka .* r.h .* mobW .* (MF_coef * pw); +qwmf = r.V(r.nmc+1:r.nc)./r.wf.*Ka' .* mobW .* (MF_coef * pw); +% qwmf = r.V(r.nmc+1:r.nc).*Ka .* mobW .* (MF_coef * pw); +% qwmf = Ka .* mobW .* (MF_coef * pw); +qwfm = -F2M * qwmf; + + +function xu = faceUpstrb(flag, x, N, sz) +flag = logical(flag); +upcell = N(:, 2); +upcell(flag) = N(flag, 1); +xu = sparse((1 : sz(1))', upcell, 1, sz(1), sz(2)) * x; + diff --git a/core functions/preprocess/EDFM_transFunction/transFunc_aniso.m b/core functions/preprocess/EDFM_transFunction/transFunc_aniso.m new file mode 100644 index 0000000..08d2de1 --- /dev/null +++ b/core functions/preprocess/EDFM_transFunction/transFunc_aniso.m @@ -0,0 +1,115 @@ +function [Ka, M, F2M , MF_coef,MF_deltt] = transFunc_aniso(nc,coordinates, nodes, connectmf,Ap,Apf , matrixvsfra,N,T , kx, ky,kz) +%[Ka, M, F2M , MF_coef,MF_deltt] = transFunc_aniso(nc,coordinates, nodes, connectmf,Ap,Apf ,Apmt,Apft, matrixvsfra,N,T , kx, ky,kz) +Ncell = size(connectmf, 1);%ѷ쵥ԪĻ +nmc=size(matrixvsfra,1); +nfc=nc-nmc; +I = zeros(1, 1); +J = zeros(1, 1); +M = zeros(1, 2); +Ka = zeros(1, 1); +cou = 0; +for i = 1 : Ncell + ie = connectmf{i,1};%ûı +% indxf = ConnecS{i, 3};%ûѷ쵥Ԫ/ +% order = reshape(ConnecS{i,2}',[],1);%ûаѷı +% xb = coordinates(nodes(ie,:),1);%û񶥵x +% yb = coordinates(nodes(ie,:),2);%û񶥵y +% xf = Linep(order,1);%ѷx +% yf = Linep(order,2);%ѷy +% ǸԣͽԱ +% ȱͬԵ +% [xb1, yb1, ka] = anios(kx(ie), ky(ie), xb, yb); +% [xf1, yf1, ~] = anios(kx(ie), ky(ie), xf, yf); +% BF = Bpara(xb1, yb1); +% FF = Fpara(xf1, yf1); +% [Ap, Apf] = transMF(BF, FF); + indxf=connectmf{i,2}; + Api=Ap{i,1}; Apfi=Apf{i,1}; + nlf = length(indxf);%ûаѷ쵥Ԫ + ind = ie;%ûı + indf = indxf + nmc;%ûѷ쵥Ԫncе + m1 = repmat(ind, nlf, 1); + f1 = repmat(indf, nlf, 1); + Il = zeros(nlf, 1+nlf); + Jl = [m1 f1]; + Vl = [Api Apfi]; + for j = 1 : nlf + cou = cou + 1; + Il(j,:) = indxf(j); + I(cou) = ie; + J(cou) = indxf(j);%ѷ쵥Ԫnfcе + ka=(kx(ie)*ky(ie)*kz(ie))^(1/3); + Ka(cou) = ka; + M(cou, 1) = connectmf{i,1}; + M(cou, 2) = indf(j); + end + Il = reshape(Il, [], 1); + Jl = reshape(Jl, [], 1); + Vl = reshape(Vl, [], 1); + if i == 1 + I2 = Il; + J2 = Jl; + V2 = Vl; + else + I2 = [I2; Il]; + J2 = [J2; Jl]; + V2 = [V2; Vl]; + end +end +V = ones(cou, 1); +F2M = sparse(I, J, V, nmc, nfc); +MF_coef = sparse(I2, J2, V2, nfc, nc); +% for i = 1 : Ncell +% ie = connectmf{i,1};%ûı +% indxf = ConnecS{i, 3};%ûѷ쵥Ԫ/ +% order = reshape(ConnecS{i,2}',[],1);%ûаѷı +% xb = coordinates(nodes(ie,:),1);%û񶥵x +% yb = coordinates(nodes(ie,:),2);%û񶥵y +% xf = Linep(order,1);%ѷx +% yf = Linep(order,2);%ѷy +% ǸԣͽԱ +% ȱͬԵ +% [xb1, yb1, ka] = anios(kx(ie), ky(ie), xb, yb); +% [xf1, yf1, ~] = anios(kx(ie), ky(ie), xf, yf); +% BF = Bpara(xb1, yb1); +% FF = Fpara(xf1, yf1); +% [Ap, Apf] = transMF(BF, FF); +% indxf=connectmf{i,2}; +% Apmti=Apmt{i,1}; Apfti=Apft{i,1}; +% nlf = length(indxf);%ûаѷ쵥Ԫ +% ind = ie;%ûı +% indf = indxf + nmc;%ûѷ쵥Ԫncе +% m1 = repmat(ind, nlf, 1); +% f1 = repmat(indf, nlf, 1); +% Il = zeros(nlf, 1+nlf); +% Jl = [m1 f1]; +% Vl = [Apmti Apfti]; +% for j = 1 : nlf +% cou = cou + 1; +% Il(j,:) = indxf(j); +% % I(cou) = ie; +% % J(cou) = indxf(j);%ѷ쵥Ԫnfcе +% % ka=(kx(ie)*ky(ie)*kz(ie))^(1/3); +% % Ka(cou) = ka; +% % M(cou, 1) = connectmf{i,1}; +% % M(cou, 2) = indf(j); +% end +% Il = reshape(Il, [], 1); +% Jl = reshape(Jl, [], 1); +% Vl = reshape(Vl, [], 1); +% if i == 1 +% I2 = Il; +% J2 = Jl; +% V2 = Vl; +% else +% I2 = [I2; Il]; +% J2 = [J2; Jl]; +% V2 = [V2; Vl]; +% end +% end +% % V = ones(cou, 1); +% % F2M = sparse(I, J, V, nmc, nfc); +% MF_deltt = sparse(I2, J2, V2, nfc, nc); +% end + + diff --git a/core functions/preprocess/EDFM_transFunction/transFuncdeltt.m b/core functions/preprocess/EDFM_transFunction/transFuncdeltt.m new file mode 100644 index 0000000..cdfb140 --- /dev/null +++ b/core functions/preprocess/EDFM_transFunction/transFuncdeltt.m @@ -0,0 +1,29 @@ +function [qomf, qofm] = transFuncdeltt(r, BO, muO, po,dt,pi) +%po,pwǶ +Ka = r.Ka; +M = r.M; +F2M = r.F2M; +MF_coef = r.MF_coef; +nfc = r.nfc;%ѷ쵥Ԫ +nc = r.nc; % 彻 +C = sparse((1 : nfc)' * [1 1], M, ones(nfc, 1) * [-1 1], nfc, nc); +grad = @(x) C * x; +faceUpstr = @(flag, x) faceUpstrb(flag, x, M, [nfc, nc]); +dpO = grad(po); +upc = (double(dpO)<=0); +mobO = faceUpstr(upc, 1./(BO.*muO)); +% qomf = Ka .* r.h .* mobO .* (MF_coef * po);%Ϊѷ쵥Ԫ +qomf = r.V(r.nmc+1:r.nc)./r.wf.*Ka' .* mobO .* (MF_coef * po)+1/dt*(r.cpor+0.1*r.co)*r.wf.*(r.MF_deltt*(po-pi));%ѷΪΪһʼõǴܶ +% qomf = r.V(r.nmc+1:r.nc)./r.wf.*(Ka' .* mobO .* (MF_coef * po)); +% qomf = r.V(r.nmc+1:r.nc).*Ka .* mobO .* (MF_coef * po); +% qomf = Ka' .* mobO .* (MF_coef * po); +qofm = -F2M * qomf;%Ϊ + + + +function xu = faceUpstrb(flag, x, N, sz) +flag = logical(flag); +upcell = N(:, 2); +upcell(flag) = N(flag, 1); +xu = sparse((1 : sz(1))', upcell, 1, sz(1), sz(2)) * x; + diff --git a/core functions/preprocess/EDFM_transFunction/transMF.m b/core functions/preprocess/EDFM_transFunction/transMF.m new file mode 100644 index 0000000..59716eb --- /dev/null +++ b/core functions/preprocess/EDFM_transFunction/transMF.m @@ -0,0 +1,61 @@ +function [Ap, Apf] = transMF(BF, FF) +[nb,~] = size(BF); +[nf,~] = size(FF); +Gb = zeros(nb); +dGb = zeros(nb); +Gmf = zeros(nb, nf); +Gf = zeros(nf, nb); +dGf = zeros(nf, nb); +Gff = zeros(nf); +xb = BF(:,1); +yb = BF(:,2); +xmk = BF(:,3); +ymk = BF(:,4); +lmk = BF(:,5); +nxmk = BF(:,6); +nymk = BF(:,7); +xf = FF(:,1); +yf = FF(:,2); +xfk = FF(:,3); +yfk = FF(:,4); +lfk = FF(:,5); +nxfk = FF(:,6); +nyfk = FF(:,7); +% boundary equation +for i = 1 : nb + for j = 1 : nb + if j == i + dGb(i, j) = 0.0; + Gb(i, j) = 1/(2*pi) * (log(lmk(j)/2) - 1.0); + else + Gb(i, j) = findg(xb(i), yb(i), xmk(j), ymk(j), nxmk(j), nymk(j), lmk(j)); + dGb(i, j) = finddg(xb(i), yb(i), xmk(j), ymk(j), nxmk(j), nymk(j), lmk(j)); + end + end + for j = 1 : nf + Gmf(i, j) = findg(xb(i), yb(i), xfk(j), yfk(j), nxfk(j), nyfk(j), lfk(j)); + end +end +dGb = dGb - 0.5 * eye(nb); +% fracture equation +for i = 1 : nf + for j = 1 : nb + Gf(i, j) = findg(xf(i), yf(i), xmk(j), ymk(j), nxmk(j), nymk(j), lmk(j)); + dGf(i, j) = finddg(xf(i), yf(i), xmk(j), ymk(j), nxmk(j), nymk(j), lmk(j)); + end + for j = 1 : nf + if i == j + Gff(i, j) = 1/(2*pi) * (log(lfk(j)/2) - 1.0); + else + Gff(i, j) = findg(xf(i), yf(i), xfk(j), yfk(j), nxfk(j), nyfk(j), lfk(j)); + end + end +end +Gbv = Gb^(-1); +Ap0 = dGf - Gf * Gbv * dGb; +Apf0 = Gf * Gbv * Gmf - Gff; +Apfv = Apf0^(-1); +Ap = Apfv * Ap0; +Ap = Ap * ones(nb,1); +Apf = -Apfv; + diff --git a/core functions/preprocess/Ulit/ADI.m b/core functions/preprocess/Ulit/ADI.m new file mode 100644 index 0000000..f7c2b25 --- /dev/null +++ b/core functions/preprocess/Ulit/ADI.m @@ -0,0 +1,324 @@ +classdef ADI + % ADI class: simple implementation of automatic differentiation for easy construction of jacobian matrices. + % + % SYNOPSIS: + % x = ADI(value, jacobian) + % + % PARAMETERS: + % value - The numerical value of the object + % + % jacobian - The Jacobian of the object. + % + % RETURNS: + % ADI object. + % + % COMMENTS: + % This class is typically instansiated for a set of different variables + % using initVariablesADI. The file contains a worked example demonstrating + % the usage for several variables. + % + % SEE ALSO: + % initVariablesADI + + %{ +Copyright 2009-2014 SINTEF ICT, Applied Mathematics. + +This file is part of The MATLAB Reservoir Simulation Toolbox (MRST). + +MRST is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +MRST is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with MRST. If not, see . + %} + + + properties + val %function value + jac %list of sparse jacobian matrices + end + + methods + function obj = ADI(a,b) + %ADI class constructor + if nargin == 0 % empty constructor + obj.val = []; + obj.jac = {}; + elseif nargin == 1 % + if isa(a, 'ADI') + obj = a; + else + error('Contructor requires 2 inputs') + end + elseif nargin == 2 % values + jacobians + obj.val = a; % value + if ~iscell(b) + b = {b}; + end + obj.jac = b; % jacobian or list of jacobians + else + error('Input to constructor not valid') + end + end + + %-------------------------------------------------------------------- + function h = numval(u) + h = numel(u.val); + end + + %-------------------------------------------------------------------- + function h = double(u) + h = u.val; + end + + %-------------------------------------------------------------------- + + function h = ge(u, v) + h = ge(double(u), double(v)); + end + + %-------------------------------------------------------------------- + + function h = gt(u, v) + h = gt(double(u), double(v)); + end + + %-------------------------------------------------------------------- + + function h = le(u, v) + h = le(double(u), double(v)); + end + + %-------------------------------------------------------------------- + + function h = lt(u, v) + h = lt(double(u), double(v)); + end + %-------------------------------------------------------------------- + + function h = uplus(u) + h = u; + end + + %-------------------------------------------------------------------- + + function h = uminus(u) + h = ADI(-u.val, uminusJac(u.jac)); + end + + %-------------------------------------------------------------------- + + % function h = plus(u,v) + % if ~isa(u,'ADI') %u is a vector/scalar + % h = ADI(u+v.val, v.jac); + % elseif ~isa(v,'ADI') %v is a vector/scalar + % h = ADI(u.val + v, u.jac); + % else + % h = ADI(u.val+v.val, plusJac(u.jac, v.jac) ); + % end + % end + + function h = plus(u,v) + if ~isa(u,'ADI') %u is a vector/scalar + if numel(u) <= numel(v.val) + h = ADI(u+v.val, v.jac); + elseif numel(v.val) == 1 + h = plus(u, repmat(v,[numel(u), 1])); + else + error('Vectors have different lengths') + end + elseif ~isa(v,'ADI') %v is a vector/scalar + if numel(v) <= numel(u.val) + h = ADI(u.val + v, u.jac); + elseif numel(u.val) == 1 + h = plus(repmat(u,[numel(v), 1]), v); + else + error('Vectors have different lengths') + end + else + if numel(u.val) == numel(v.val) + h = ADI(u.val+v.val, plusJac(u.jac, v.jac) ); + elseif numel(u.val) == 1 + h = plus(repmat(u, [numel(v.val), 1]), v); + elseif numel(v.val) == 1 + h = plus(u, repmat(v, [numel(u.val), 1])); + else + error('Vectors have different lengths') + end + end + end + + + %-------------------------------------------------------------------- + + function h = minus(u,v) + h = plus(u, uminus(v)); + end + + %-------------------------------------------------------------------- + + function h = mtimes(u,v)% '*' + if ~isa(u,'ADI') %u is a scalar/matrix + h = ADI(u*v.val, mtimesJac(u, v.jac)); + elseif ~isa(v,'ADI') %v is a scalar + h = mtimes(v,u); + else % special case where either u or v has single value + if numel(u.val) == 1 + h = times(repmat(u, [numel(v.val), 1]), v); + elseif numel(v.val) == 1 + h = times(u, repmat(v, [numel(u.val), 1])); + else + error('Operation not supported'); + end + end + end + + %-------------------------------------------------------------------- + + function h = times(u,v)% '.*' + if ~isa(u,'ADI') %u is a scalar/vector + if numel(u)==numel(v.val) + h = ADI(u.*v.val, lMultDiag(u, v.jac)); + else + h = mtimes(u,v); + end + elseif ~isa(v,'ADI') %v is a scalar/vector + h = times(v,u); + else + if numel(u.val)==numel(v.val) + h = ADI(u.val.*v.val, timesJac(u.val, v.val, u.jac, v.jac)); + elseif numel(v.val)==1||numel(u.val)==1 + h = mtimes(u,v); + else + error('Operation not supported'); + end + end + end + + %-------------------------------------------------------------------- + + function h = mrdivide(u,v)% '/' + if ~isa(v,'ADI') %v is a scalar + h = mtimes(u, 1/v); + else + error('Operation not supported'); + end + end + + %-------------------------------------------------------------------- + + function h = subsref(u,s) + switch s(1).type + case '.' + h = builtin('subsref',u,s); + case '()' + assert(numel(s(1).subs) == 1, ... + 'Expected single index, got %d', numel(s(1).subs)) + subs = s(1).subs{1}; + if ischar(s) && strcmp(subs, ':'), + h = u; + else + if islogical(subs), subs = find(subs); end + h = ADI(u.val(subs), subsrefJac(u.jac, subs)); + end + if numel(s) > 1 + % Recursively handle next operation + h = subsref(h, s(2:end)); + end + case '{}' + error('Operation not supported'); + end + end + + %-------------------------------------------------------------------- + + function h = power(u,v)% '.^' + h = ADI(u.val.^v, lMultDiag(v.*u.val.^(v-1), u.jac)); + end + + %-------------------------------------------------------------------- + + function h = rdivide(u,v)% './' + h = times(u, power(v, -1)); + end + + %-------------------------------------------------------------------- + + function h = exp(u) + eu = exp(u.val); + h = ADI(eu, lMultDiag(eu, u.jac)); + end + + %-------------------------------------------------------------------- + + function h = log(u) + logu = log(u.val); + h = ADI(logu, lMultDiag(1./u.val, u.jac)); + end + + %-------------------------------------------------------------------- + + function h = interptable(X, Y, u) + y = interptable(X, Y, u.val); + dydx = dinterptable(X, Y, u.val); + h = ADI(y,lMultDiag(dydx, u.jac)); + end + + %-------------------------------------------------------------------- + end +end + +%************************************************************************** +%-------- Helper functions involving Jacobians --------------------------- +%************************************************************************** +function J = uminusJac(J1) +J = cellfun(@uminus, J1, 'UniformOutput', false); +end + +function J = plusJac(J1, J2) +J = cellfun(@plus, J1, J2, 'UniformOutput', false); +end + +function J = mtimesJac(M, J1) +J = cell(1, numel(J1)); +for k = 1:numel(J) + J{k} = M*J1{k}; +end +end + +function J = lMultDiag(d, J1) +n = numel(d); +D = sparse((1:n)', (1:n)', d, n, n); +J = cell(1, numel(J1)); +for k = 1:numel(J) + J{k} = D*J1{k}; +end +end + +function J = timesJac(v1, v2, J1, J2) +n = numel(v1); +D1 = sparse((1:n)', (1:n)', v1, n, n); +D2 = sparse((1:n)', (1:n)', v2, n, n); +J = cell(1, numel(J1)); +for k = 1:numel(J) + J{k} = D1*J2{k} + D2*J1{k}; +end +end + +function J = subsrefJac(J1, subs) +J = cell(1, numel(J1)); +for k = 1:numel(J) + J{k} = J1{k}(subs,:); +end +end + +%-------------------------------------------------------------------------- +%-------------------------------------------------------------------------- +%-------------------------------------------------------------------------- diff --git a/core functions/preprocess/Ulit/ADtimestep.m b/core functions/preprocess/Ulit/ADtimestep.m new file mode 100644 index 0000000..de5c501 --- /dev/null +++ b/core functions/preprocess/Ulit/ADtimestep.m @@ -0,0 +1,6 @@ +function tm = ADtimestep(yitap, yitas, omega, dp, ds) +dp = abs(dp); +ds = abs(ds); +tm1 = (1 + omega) * yitap ./ (dp + omega * yitap); +tm2 = (1 + omega) * yitas ./ (ds + omega * yitas); +tm = min(min(tm1),min(tm2)); \ No newline at end of file diff --git a/core functions/preprocess/Ulit/OperatorRS.m b/core functions/preprocess/Ulit/OperatorRS.m new file mode 100644 index 0000000..d969174 --- /dev/null +++ b/core functions/preprocess/Ulit/OperatorRS.m @@ -0,0 +1,24 @@ +function os = OperatorRS(N, nex, nc) +% +%nex֮彻 +%nc +%N ÿһжӦ彻ĻʵԪ֮䡢ѷ쵥Ԫ֮ +% Avg of face property +M = sparse((1 : nex)' * [1 1], N, 0.5 * ones(nex, 2), nex, nc); +os.faceAvg = @(x) M * x; +% Harm of face property +M = sparse((1 : nex)' * [1 1], N, ones(nex, 2), nex, nc); +os.faceHarm = @(x) 1./ (M * (1 ./ x)); +% Div and grad +C = sparse((1 : nex)' * [1 1], N, ones(nex, 1) * [-1 1], nex, nc); +os.grad = @(x) C * x; +os.div = @(x) -C' * x; +% Upstream weighting +os.faceUpstr = @(flag, x) faceUpstr(flag, x, N, [nex, nc]); + +function xu = faceUpstr(flag, x, N, sz) +flag = logical(flag); +upcell = N(:, 2); +upcell(flag) = N(flag, 1); +xu = sparse((1 : sz(1))', upcell, 1, sz(1), sz(2)) * x; + diff --git a/core functions/preprocess/Ulit/dinterptable.m b/core functions/preprocess/Ulit/dinterptable.m new file mode 100644 index 0000000..9179021 --- /dev/null +++ b/core functions/preprocess/Ulit/dinterptable.m @@ -0,0 +1,13 @@ +function h = dinterptable(X, Y, u) +% n = length(X); +% DYDX = diff(Y) ./ diff(X); +% DYDX = DYDX([1, 1:end, end]); +% [~, b] = histc(u, [-inf;X;inf]); +% b = b - 1; +% b(b == 0) = 1; +% b(b == n) = n - 1; +% h = DYDX(b); +DYDX = diff(Y) ./ diff(X); +DYDX = DYDX([1, 1:end, end]); +[~, b] = histc(u, [-inf;X;inf]); +h = reshape(DYDX(b), [], 1); diff --git a/core functions/preprocess/Ulit/fluidPVT.m b/core functions/preprocess/Ulit/fluidPVT.m new file mode 100644 index 0000000..bb486da --- /dev/null +++ b/core functions/preprocess/Ulit/fluidPVT.m @@ -0,0 +1,17 @@ +function f = fluidPVT(Bopb, pb, co, Bwi, prw, cw, vwi, cvw, visopb, cvo, SW, KRO, KRW, PCOW, ifpcow, SWF, KROF, KRWF, PCOWF, rpt,Dosi, Dwsi, cs_data, csa_data, cb_data, cba_data) +f.Bw = @(p) Bw(p, Bwi, prw, cw); +f.Bo = @(p) Bo(p, Bopb, pb, co); +f.muw = @(p) muw(p, vwi, prw, cvw); +f.muo = @(p) muo(p, visopb, pb, cvo); +f.kro = @(sw) kro(sw, SW, KRO, SWF, KROF, rpt); +f.krw = @(sw) krw(sw, SW, KRW, SWF, KRWF, rpt); +f.pcow = @(sw) pcow(sw, SW, PCOW, SWF, PCOWF, rpt); +f.krow = @(sw) kro(sw, SWF, KROF); +f.krww = @(sw) krw(sw, SWF, KRWF); +f.pcoww = @(sw) pcow(sw, SWF, PCOWF); +f.cs_absorb = @(sw) cs_absorb_f(cs, cs_data, csa_data); +f.cb_absorb = @(sw) cb_absorb_f(cb, cb_data, cba_data); +f.ifpcow = ifpcow; +f.Dosi = Dosi; +f.Dwsi = Dwsi; + diff --git a/core functions/preprocess/Ulit/initialRS.m b/core functions/preprocess/Ulit/initialRS.m new file mode 100644 index 0000000..4a52916 --- /dev/null +++ b/core functions/preprocess/Ulit/initialRS.m @@ -0,0 +1,5 @@ +function state = initialRS(P, Sw, Cs, Cb) +state.p = P; +state.sw = Sw; +state.cs = Cs; +state.cb = Cb; diff --git a/core functions/preprocess/Ulit/intADI.m b/core functions/preprocess/Ulit/intADI.m new file mode 100644 index 0000000..1582d8f --- /dev/null +++ b/core functions/preprocess/Ulit/intADI.m @@ -0,0 +1,31 @@ +function [P, Sw, Cs, Cb] = intADI(p, sw, cs, cb) +n = length(p); +Jp = cell(1,4); +Jsw = cell(1,4); +Jcs = cell(1,4); +Jcb = cell(1,4); + +Jp{1} = sparse(1:n, 1:n, ones(n,1), n, n); +Jp{2} = sparse(n,n); +Jp{3} = sparse(n,n); +Jp{4} = sparse(n,n); + +Jsw{1} = sparse(n,n); +Jsw{2} = sparse(1:n, 1:n, ones(n,1), n, n); +Jsw{3} = sparse(n,n); +Jsw{4} = sparse(n,n); + +Jcs{1} = sparse(n,n); +Jcs{2} = sparse(n,n); +Jcs{3} = sparse(1:n, 1:n, ones(n,1), n, n); +Jcs{4} = sparse(n,n); + +Jcb{1} = sparse(n,n); +Jcb{2} = sparse(n,n); +Jcb{3} = sparse(n,n); +Jcb{4} = sparse(1:n, 1:n, ones(n,1), n, n); + +P = ADI(p, Jp); +Sw = ADI(sw, Jsw); +Cs = ADI(cs, Jcs); +Cb = ADI(cb, Jcb); \ No newline at end of file diff --git a/core functions/preprocess/Ulit/intADI2.m b/core functions/preprocess/Ulit/intADI2.m new file mode 100644 index 0000000..da11a07 --- /dev/null +++ b/core functions/preprocess/Ulit/intADI2.m @@ -0,0 +1,44 @@ +function [P, Sw, Cs, Cb, Pwf] = intADI2(p, sw, cs, cb, pwf) +n = length(p); +npwf = length(pwf); +Jp = cell(1,5); +Jsw = cell(1,5); +Jcs = cell(1,5); +Jcb = cell(1,5); +Jpwf = cell(1,5); + +Jp{1} = sparse(1:n, 1:n, ones(n,1), n, n); +Jp{2} = sparse(n,n); +Jp{3} = sparse(n,n); +Jp{4} = sparse(n,n); +Jp{5} = sparse(n,npwf); + +Jsw{1} = sparse(n,n); +Jsw{2} = sparse(1:n, 1:n, ones(n,1), n, n); +Jsw{3} = sparse(n,n); +Jsw{4} = sparse(n,n); +Jsw{5} = sparse(n,npwf); + +Jcs{1} = sparse(n,n); +Jcs{2} = sparse(n,n); +Jcs{3} = sparse(1:n, 1:n, ones(n,1), n, n); +Jcs{4} = sparse(n,n); +Jcs{5} = sparse(n,npwf); + +Jcb{1} = sparse(n,n); +Jcb{2} = sparse(n,n); +Jcb{3} = sparse(n,n); +Jcb{4} = sparse(1:n, 1:n, ones(n,1), n, n); +Jcb{5} = sparse(n,npwf); + +Jpwf{1} = sparse(npwf,n); +Jpwf{2} = sparse(npwf,n); +Jpwf{3} = sparse(npwf,n); +Jpwf{4} = sparse(npwf,n); +Jpwf{5} = sparse(1:npwf, 1:npwf, ones(npwf,1), npwf, npwf); + +P = ADI(p, Jp); +Sw = ADI(sw, Jsw); +Cs = ADI(cs, Jcs); +Cb = ADI(cb, Jcb); +Pwf = ADI(pwf, Jpwf); \ No newline at end of file diff --git a/core functions/preprocess/Ulit/intADIz.m b/core functions/preprocess/Ulit/intADIz.m new file mode 100644 index 0000000..cbbd1d9 --- /dev/null +++ b/core functions/preprocess/Ulit/intADIz.m @@ -0,0 +1,6 @@ +function [z] = intADIz(z) +n = length(z); +Jz = cell(1,2); +Jz{1} = sparse( n, n);%ѹ +Jz{2} = sparse(n,n);%ԱͶ +z = ADI(z, Jz); diff --git a/core functions/preprocess/Ulit/interptable.m b/core functions/preprocess/Ulit/interptable.m new file mode 100644 index 0000000..9b620f3 --- /dev/null +++ b/core functions/preprocess/Ulit/interptable.m @@ -0,0 +1,2 @@ +function h = interptable(X, Y, u) +h = interp1(X, Y, u, 'linear', 'extrap'); \ No newline at end of file diff --git a/core functions/preprocess/about_Well/WellEquation.m b/core functions/preprocess/about_Well/WellEquation.m new file mode 100644 index 0000000..26bbafd --- /dev/null +++ b/core functions/preprocess/about_Well/WellEquation.m @@ -0,0 +1,149 @@ +function [Awell, qwell] = WellEquation(r, f, p, sw, cs, cb, Wellc, Weladd, pwf, WelChg, well_schedules_k) +nWel = size(Wellc, 1);% +% Wellcpara: welltype(1) nperf(2) index(3) Tr(j)ans(4) protype(5) value(6) consTr(j)ain(7) Wellc(nWel, 6) +% welltype = 1 prod, welltype = 2 inj +% protype = 1 const flowrate, protype = 2 const pwf +nmatr = 4 * r.nc + Weladd;%϶Ϊδ֪ѹͶȺ;ѹ +nzw = 10 * nWel; +% Awell = spalloc(nmatr,nmatr,nzw); +Awell = spalloc(nmatr,nmatr,nzw); +qwell = spalloc(nmatr,1,nzw); +% Dimensionless_wellflow=[]; +if Weladd == 0 %%Ϊ0 + [p, sw, cs, cb] = intADI(p, sw, cs, cb); +else + [p, sw, cs, cb, pwf] = intADI2(p, sw, cs, cb, pwf); +end +BW = f.Bw(p); +muW = f.muw(p); +Nc = f.Nc(cs); +krW = f.krw(sw, Nc); +BG = f.Bg(p); +muG = f.mug(p); +krG = f.krrg(sw, Nc); +Ygt = krG ./ (muG .* BG); +Ywt = krW ./ (muW .* BW); +Ygj = krG ./ muG; +Ywj = krW ./ muW; +pcOW = 0; +if f.ifpcgl%Ϊ0ëΪ0 + pcOW = f.pcgl(sw); +end +pw = p - pcOW; +ipwf = 0; +for i = 1 : nWel + if strcmp(well_schedules_k{i,2},'open') + jperfall = Wellc{i,3};%þ׵Ԫ + if strcmp(well_schedules_k{i,3},'pro') % prod + if strcmp(well_schedules_k{i,4},'const_q') % const flowrate + ipwf = ipwf + 1; + Tr = Wellc{i,4}; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + Yo = Ygt(jperf); + Yw = Ywt(jperf); + qo = -Tr(j) .* Yo .*(p(jperf) - pwf(ipwf)); + qw = -Tr(j) .* Yw .*(pw(jperf) - pwf(ipwf)); + qcs = -Tr(j) .* cs(jperf).*Yw .*(pw(jperf) - pwf(ipwf)); + qcb = -Tr(j) .* cb(jperf).*Yw .*(pw(jperf) - pwf(ipwf)); + %ǰncˮ෽ + Awell(jperf, :) = [qw.jac{1} qw.jac{2} qw.jac{3} qw.jac{4} qw.jac{5}]; + qwell(jperf) = qw.val; + %ncˮ෽ + Awell(r.nc + jperf, :) = [qo.jac{1} qo.jac{2} qo.jac{3} qo.jac{4} qo.jac{5}]; + qwell(r.nc + jperf) = qo.val; + % + Awell(2*r.nc + jperf, :) = [qcs.jac{1} qcs.jac{2} qcs.jac{3} qcs.jac{4} qcs.jac{5}]; + qwell(2*r.nc + jperf) = qcs.val; + % + Awell(3*r.nc + jperf, :) = [qcb.jac{1} qcb.jac{2} qcb.jac{3} qcb.jac{4} qcb.jac{5}]; + qwell(3*r.nc + jperf) = qcb.val; + %Ѹþ׵IJ͡ˮۼ + % ڶ£Ϊʹܹڸһϴ󣬵¸÷MRߣҪλ + Awell(4*r.nc + ipwf, :) = Awell(4*r.nc + ipwf, :) + ... + [qw.jac{1} qw.jac{2} qw.jac{3} qw.jac{4} qw.jac{5}] + [qo.jac{1} qo.jac{2} qo.jac{3} qo.jac{4} qo.jac{5}]; + qwell(4*r.nc + ipwf) = qwell(4*r.nc + ipwf) + qw.val + qo.val; + end + qwell(4*r.nc + ipwf) = (qwell(4*r.nc + ipwf) + well_schedules_k{i,5}/86.4); + else % const pwf ѹ + if ~WelChg(i) + pwfc = well_schedules_k{i,5}; + else + pwfc = well_schedules_k{i,6}; + end + Tr = Wellc{i,4}; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + Yo = Ygt(jperf); + Yw = Ywt(jperf); + qo = -Tr(j) .* Yo .*(p(jperf) - pwfc); + qw = -Tr(j) .* Yw .*(pw(jperf) - pwfc); + qcs = -Tr(j) .* cs(jperf).*Yw .*(pw(jperf) - pwfc); + qcb = -Tr(j) .* cb(jperf).*Yw .*(pw(jperf) - pwfc); + % ˮ + Awell(jperf, 1 : 4 * r.nc) = [qw.jac{1} qw.jac{2} qw.jac{3} qw.jac{4}]; + qwell(jperf) = qw.val; + % + Awell(r.nc + jperf, 1 : 4 * r.nc) = [qo.jac{1} qo.jac{2} qo.jac{3} qo.jac{4}]; + qwell(r.nc + jperf) = qo.val; + % + Awell(2*r.nc + jperf, 1 : 4 * r.nc) = [qcs.jac{1} qcs.jac{2} qcs.jac{3} qcs.jac{4}]; + qwell(2*r.nc + jperf) = qcs.val; + % + Awell(3*r.nc + jperf, 1 : 4 * r.nc) = [qcb.jac{1} qcb.jac{2} qcb.jac{3} qcb.jac{4}]; + qwell(3*r.nc + jperf) = qcb.val; + end + end + else %ע뾮 + if strcmp(well_schedules_k{i,4},'const_q') % const flowrate + ipwf = ipwf + 1; + Tr = Wellc{i,4}; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + Yo = Ygj(jperf); + Yw = Ywj(jperf); + qw = -Tr(j) ./ BW(jperf) .* (Yo + Yw) .* (pw(jperf) - pwf(ipwf)); + qcs = qw*well_schedules_k{i,8}; + qcb = qw*well_schedules_k{i,10}; + % ˮ + Awell(jperf, :) = [qw.jac{1} qw.jac{2} qw.jac{3} qw.jac{4} qw.jac{5}]; + qwell(jperf) = qw.val; + % + Awell(2*r.nc + jperf, :) = [qcs.jac{1} qcs.jac{2} qcs.jac{3} qcs.jac{4} qcs.jac{5}]; + qwell(2*r.nc + jperf) = qcs.val; + % + Awell(3*r.nc + jperf, :) = [qcb.jac{1} qcb.jac{2} qcb.jac{3} qcb.jac{4} qcb.jac{5}]; + qwell(3*r.nc + jperf) = qcb.val; + % + Awell(4*r.nc + ipwf, :) = Awell(4*r.nc + ipwf, :) + ... + [qw.jac{1} qw.jac{2} qw.jac{3} qw.jac{4} qw.jac{5}]; + qwell(4*r.nc + ipwf) = qwell(4*r.nc + ipwf) + qw.val; + end + qwell(4*r.nc + ipwf) = qwell(4*r.nc + ipwf) - well_schedules_k{i,5}/86.4; + else %ѹע + if ~WelChg(i) + pwfc = well_schedules_k{i,5}; + else + pwfc = well_schedules_k{i,6}; + end + Tr = Wellc{i,4}; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + Yo = Ygj(jperf); + Yw = Ywj(jperf); + qw =- Tr(j) ./ BW(jperf) .* (Yo + Yw) .* (pw(jperf) - pwfc); + qcs = qw*well_schedules_k{i,8}; + qcb = qw*well_schedules_k{i,10}; + Awell(jperf, 1 : 4*r.nc) = [qw.jac{1} qw.jac{2} qw.jac{3} qw.jac{4}]; + qwell(jperf) = qw.val; + % + Awell(2*r.nc + jperf, 1 : 4*r.nc) = [qcs.jac{1} qcs.jac{2} qcs.jac{3} qcs.jac{4}]; + qwell(2*r.nc + jperf) = qcs.val; + % + Awell(3*r.nc + jperf, 1 : 4*r.nc) = [qcb.jac{1} qcb.jac{2} qcb.jac{3} qcb.jac{4}]; + qwell(3*r.nc + jperf) = qcb.val; + end + end + end + end +end diff --git a/core functions/preprocess/about_Well/calcTrans.m b/core functions/preprocess/about_Well/calcTrans.m new file mode 100644 index 0000000..a2471fb --- /dev/null +++ b/core functions/preprocess/about_Well/calcTrans.m @@ -0,0 +1,58 @@ +function Wellc0 = calcTrans(r, Wellc0) +% Wellcpara: welltype(1) nperf(2) index(3) rw/WI(4) protype(5) value(6) +% constraints(7) skin(8) Wellc(nWel, 6) +% welltype = 1 prod, welltype = 2 inj water, welltype = 3 inj gas +% protype = 1 const flowrate, protype = 2 const pwf +% ˴̼׶ijߴ +nwel = size(Wellc0, 1);% +for i = 1 : nwel + perf = Wellc0{i, 3};%׵ + rw = Wellc0{i, 4};%뾶 + skin = Wellc0{i, 5};%Ƥ + nperf = length(perf);%׵ + WI = zeros(nperf,1);%ÿ׵Ӧָ + for j = 1 : nperf + ind = perf(j); + if ind <= r.nmc % ׵ڻ + kmx = r.kx(ind); + kmy = r.ky(ind); + kmz = r.kz(ind); + dx = r.dxv(ind); + dy = r.dyv(ind); + dz = r.dzv(ind); + if Wellc0{i,6}==1%˵ֱ +% h = r.h; + ro = 0.28* (((kmy/kmx)^0.5*dx^2 + (kmx/kmy)^0.5*dy^2))^0.5... + / ((kmy/kmx)^0.25 + (kmx/kmy)^0.25);%ֱpeacemanʽеĵЧ뾶 + ka = (kmx*kmy*kmz)^(1/3);%ûЧ͸ + %cf=1,Ϊ俪ȵı + WI(j) = r.cf * 2 * 3.1415 * ka * dz / (log(ro / rw) + skin);%ָ + elseif Wellc0{i,6}==2%˵xˮƽ + ro = 0.28* (((kmz/kmy)^0.5*dy^2 + (kmy/kmz)^0.5*dz^2))^0.5... + / ((kmz/kmy)^0.25 + (kmy/kmz)^0.25);%ֱpeacemanʽеĵЧ뾶 + ka = (kmx*kmy*kmz)^(1/3);%ûЧ͸ + %cf=1,Ϊ俪ȵı + WI(j) = r.cf * 2 * 3.1415 * ka * dx / (log(ro / rw) + skin);%ָ + elseif Wellc0{i,6}==3%˵yˮƽ + ro = 0.28* (((kmz/kmx)^0.5*dx^2 + (kmx/kmz)^0.5*dz^2))^0.5... + / ((kmz/kmx)^0.25 + (kmx/kmz)^0.25); + ka = (kmx*kmy*kmz)^(1/3); + %cf=1,Ϊ俪ȵı + WI(j) = r.cf * 2 * 3.1415 * ka * dy / (log(ro / rw) + skin);%ָ + end + else % ˵Ƕѹˮƽ, ׵ѷ쵥Ԫ + I = ind - r.nmc;%׶Ϊѷ쵥ԪǶѹˮƽ + kf = r.kf(I); + wf = r.wf(I); + area=r.fcff{1,8}(I); +% lf = r.lf(I); +% h = r.h; +% h=1;lf=2; + %˴޸Ϊѷ쵥Ԫη0.14 + ro = 0.14 * (2*area)^0.5; +% ro = 0.14 * (10^2+10^2)^0.5; + WI(j) = r.cf * 2 * 3.1415 * kf * wf / (log(ro / rw) + skin); + end + end + Wellc0{i, 4} = WI;%뾶滻Ϊָ +end diff --git a/core functions/preprocess/about_Well/calcWellequation.m b/core functions/preprocess/about_Well/calcWellequation.m new file mode 100644 index 0000000..ca8c648 --- /dev/null +++ b/core functions/preprocess/about_Well/calcWellequation.m @@ -0,0 +1,100 @@ +function [Wellpara, WelChg, Weladd] = calcWellequation(Weladd, Wellc, WelChg, well_schedules_k, nc, qwell, state) +%WeladdʾWellcʾ +% Wellcpara: welltype(1) nperf(2) index(3) Tr(j)ans(4) protype(5) value(6) consTr(j)ain(7) Wellc(nWel, 6) +% welltype = 1 prod, welltype = 2 inj +% protype = 1 const flowrate, protype = 2 const pwf +nWel = size(Wellc, 1);% +Wellpara = cell(1, nWel); +if Weladd > 0 %ڶ + pwf = state.pwf; +end +ipwf = 0; +for i = 1 : nWel + if strcmp(well_schedules_k{i,2},'open') + qot = 0; + qwt = 0; + jperfall = Wellc{i,3}; + if strcmp(well_schedules_k{i,3},'pro') % prod + if strcmp(well_schedules_k{i,4},'const_q') % const flowrate + ipwf = ipwf + 1; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + %Ͳ޵ڸ׵֮ + qwt = qwt + qwell(jperf); + qot = qot + qwell(nc + jperf); + end + if well_schedules_k{i,5} ~= 0 + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = abs(qwt)*86.4; + Wellpara{1,i}.qo = abs(qot)*86.4; + Wellpara{1,i}.pwf = pwf(ipwf); + else + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = 0; + Wellpara{1,i}.qo = 0; + Wellpara{1,i}.pwf = pwf(ipwf); + end + % if pwf(ipwf)<= Wellc{i,7} %ѹƣܴ + % WelChg(i) = 1; + % Weladd = Weladd - 1; + % else + % WelChg(i) = 0; + % end + else % const pwf + if ~WelChg(i) + Wellpara{1,i}.pwf = well_schedules_k{i,5}; + else + Wellpara{1,i}.pwf = well_schedules_k{i,6}; + end + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + qwt = qwt + qwell(jperf); + qot = qot + qwell(nc + jperf); + end + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = abs(qwt)*86.4; + Wellpara{1,i}.qo = abs(qot)*86.4; + end + else %ע뾮 + if strcmp(well_schedules_k{i,4},'const_q') % const flowrate + ipwf = ipwf + 1; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + qwt = qwt + qwell(jperf); + qot = qot + qwell(nc + jperf); + end + if well_schedules_k{i,5} ~= 0 + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = abs(qwt)*86.4; + Wellpara{1,i}.qo = abs(qot)*86.4; + Wellpara{1,i}.pwf = pwf(ipwf); + else + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = 0; + Wellpara{1,i}.qo = 0; + Wellpara{1,i}.pwf = pwf(ipwf); + end + % if pwf(ipwf) >= Wellc{i,7} %ѹ򾮵ܸ + % WelChg(i) = 1; + % Weladd = Weladd - 1; + % else + % WelChg(i) = 0; + % end + else + if ~WelChg(i) + Wellpara{1,i}.pwf = well_schedules_k{i,5}; + else + Wellpara{1,i}.pwf = well_schedules_k{i,6}; + end + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + qwt = qwt + qwell(jperf); + qot = qot + qwell(nc + jperf); + end + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = abs(qwt)*86.4; + Wellpara{1,i}.qo = abs(qot)*86.4; + end + end + end +end diff --git a/core functions/preprocess/about_Well/findWelloc.m b/core functions/preprocess/about_Well/findWelloc.m new file mode 100644 index 0000000..bbaf7c8 --- /dev/null +++ b/core functions/preprocess/about_Well/findWelloc.m @@ -0,0 +1,32 @@ +function perfnum = findWelloc(r, welloc) +% Linep = r.Linep; +% Fracp = r.Fracp; +corevsfra=r.fcff{1,4};%ѷ쵥Ԫ +% corevsfra = r.cell_mid_coordinates; +nfc = size(corevsfra,1); +% x = zeros(nfc, 1); +% y = zeros(nfc, 1); +% z = zeros(nfc, 1); +% for i = 1 : nf +% x = Linep(Fracp(i,:), 1); +% y = Linep(Fracp(i,:), 2); +% %ȳ˹ѷ +% xp(i) = mean(x); +% yp(i) = mean(y); +% end + x = corevsfra(:, 1); + y = corevsfra(:, 2); + z = corevsfra(:, 3); + % z = 5; + +Nperf = size(welloc, 1); +perfnum = zeros(1, Nperf); +for i = 1 : Nperf + xw = welloc(i, 1); + yw = welloc(i, 2); + zw = welloc(i,3); + rp = (xw - x).^2 + (yw - y).^2+(zw-z).^2; + [~,I] = min(rp); + perfnum(i) = I + r.nmc; + % perfnum(i) = I; +end \ No newline at end of file diff --git a/core functions/preprocess/about_Well/initalSchedule.m b/core functions/preprocess/about_Well/initalSchedule.m new file mode 100644 index 0000000..2af2409 --- /dev/null +++ b/core functions/preprocess/about_Well/initalSchedule.m @@ -0,0 +1,51 @@ +function [Weladd, pwf] = initalSchedule(p, sw, Wellc, f) +nWel = size(Wellc, 1);% +Weladd = 0; +pwf = zeros(1); +BW = f.Bw(p); +muW = f.muw(p); +krW = f.krw(sw); +BG = f.Bg(p); +muG = f.mug(p); +krG = f.krrg(sw); +Ygt = krG ./ (muG .* BG);%mu +Ygj = krG ./ muG; +Ywt = krW ./ (muW .* BW);%mu +Ywj = krW ./ muW; + +for i = 1 : nWel + if Wellc{i,1} == 1 && Wellc{i,5} == 1%þ + Weladd = Weladd + 1; + nper = Wellc{i,2}; %þ + jperf = zeros(nper,1); + Trans = zeros(nper,1); + Tnp = 0; + Tn = 0; + for j = 1 : nper + jperf(j) = Wellc{i,3}(j);%׵ڻѷ쵥Ԫȫе + Tr = Wellc{i,4}(j);%׵Ӧָȱȣ + Trans(j) = Tr * Ygt(jperf(j));%ָ + Tnp = Tnp + Trans(j)*p(jperf(j)); + Tn = Tn + Trans(j); + end + pwf(Weladd) = (Tnp - Wellc{i,6}/86.4) / Tn;%˵Ͳ޵ѹΪһֵ + elseif Wellc{i,1} == 2 && Wellc{i,5} == 1%ע뾮㶨ע + Weladd = Weladd + 1; + nper = Wellc{i,2}; + jperf = zeros(nper,1); + Trans = zeros(nper,1); + Tnp = 0; + Tn = 0; + for j = 1 : nper + jperf(j) = Wellc{i,3}(j); + Tr = Wellc{i,4}(j); + Trans(j) = Tr / BW(jperf(j)) * (Ygj(jperf(j)) + Ywj(jperf(j)));%ע뷽 + Tnp = Tnp + Trans(j)*p(jperf(j)); + Tn = Tn + Trans(j); + end + pwf(Weladd) = (Tnp + Wellc{i,6}/86.4) / Tn;%÷ + else + continue + end +end +pwf = pwf'; \ No newline at end of file diff --git a/core functions/preprocess/about_Well/wellperf.m b/core functions/preprocess/about_Well/wellperf.m new file mode 100644 index 0000000..f3ba1ab --- /dev/null +++ b/core functions/preprocess/about_Well/wellperf.m @@ -0,0 +1,8 @@ +function welloc = wellperf(well, fracp) +n = size(fracp,1)/2; +welloc = zeros(n, 2); +for i = 1 : n + [xi,yi] = polyxpoly([fracp(2*i-1,1) fracp(2*i,1)],[fracp(2*i-1,2) fracp(2*i,2)],[well(1,1) well(2,1)],[well(1,2) well(2,2)]); + welloc(i,1) = xi; + welloc(i,2) = yi; +end \ No newline at end of file diff --git a/core functions/preprocess/about_equation/eqsOW_MB.m b/core functions/preprocess/about_equation/eqsOW_MB.m new file mode 100644 index 0000000..dbbfd9e --- /dev/null +++ b/core functions/preprocess/about_equation/eqsOW_MB.m @@ -0,0 +1,96 @@ +function [eqs, qomf, qofm, qwmf, qwfm, Awell, qwell] = eqsOW_MB(state, state0, dt, r, f, os, Wellc, Weladd, pwf, WelChg) + +p = state.p; +sw = state.sw; +p0 = state0.p; +sw0 = state0.sw; +[p, sw] = intADI(p, sw); + +% zϵλ +% ڵȷ仯ʱܶҲᷢ仯˲ܼ򵥵ôѹ +%λzд +z=r.z; +z = intADIz(z); +% Dosiǵ²õܶȣDwsiǵ²õˮܶ + +% Water Props +BW = f.Bw(p); +muW = f.muw(p); +krW = f.krw(sw); +pcOW = 0; +if f.ifpcow + pcOW = f.pcow(sw); +end +pw = p - pcOW; +dpW = os.grad(pw); +dzw=1e-6*9.8*f.Dwsi*os.grad(z./BW); %ˮλݶ +upc = (double(dpW+dzw)<=0); +mobW = os.faceUpstr(upc, krW) .* os.faceAvg(1./(BW.*muW)); +bWvW = -r.T .* mobW .* dpW; + +% Oil Props +BO = f.Bo(p); +muO = f.muo(p); +krO = f.kro(sw); +dpO = os.grad(p); +dzo=1e-6*9.8*f.Dosi*os.grad(z./BO); %λݶ +upc = (double(dpO+dzo)<=0); +mobO = os.faceUpstr(upc, krO) .* os.faceAvg(1./(BO.*muO)); +bOvO = -r.T .* mobO .* dpO; + +% zϵλ +% ڵȷ仯ʱܶҲᷢ仯˲ܼ򵥵ôѹ +%λzд +z=r.z; +z = intADIz(z); +% Dosiǵ²õܶȣDwsiǵ²õˮܶ +dzo=1e-6*9.8*f.Dosi*os.grad(z./BO); %λݶ +dzw=1e-6*9.8*f.Dwsi*os.grad(z./BW); %ˮλݶ +% dzo=0.01*os.grad(z./BO); %λݶ +% dzw=0.01*os.grad(z./BW); %ˮλݶ +bOvO = -r.T .* mobO .* (dpO+dzo); +bWvW=-r.T .* mobW .* (dpW+dzw); + +% transfer function (OW) +[qomf, qofm, qwmf, qwfm] = transFunc(r, krO, krW, BO, muO, BW, muW, p, pw); +qomf=qomf*dt; +qofm=qofm*dt; +qwmf=qwmf*dt; +qwfm=qwfm*dt; +% well equation +[Awell, qwell] = WellEquation(r, f, p.val, sw.val, Wellc, Weladd, pwf, WelChg); +Awell=Awell*dt; +qwell=qwell*dt; +% Accumulation term +PV = r.V .* r.por(p); +PV0 = r.V .* r.por(p0); +Ar_w = 1/dt .* (PV .* (sw ./ BW) - PV0 .* (sw0 ./ f.Bw(p0))); +Ar_o = 1/dt .* (PV .* ((1 - sw) ./ BO) - PV0 .* ((1 - sw0) ./ f.Bo(p0))); + +% Water Equation +eqs{1} = (-os.div(bWvW) - Ar_w)*dt; +% eqs{1} = -os.div(bWvW) - Ar_w; +% Oil Equation +eqs{2} = (-os.div(bOvO) - Ar_o)*dt; +% eqs{2} = -os.div(bOvO) - Ar_o; + + +% Rw = Ar_w.val - qwell(1 : r.nc); +% Ro = Ar_o.val - qwell(r.nc+1 : 2*r.nc); +% PVv = PV.val; +% % PV_all = sum(PVv); +% Bwa = mean(BW.val); +% Boa = mean(BO.val); + +% MBw = abs(Bwa * dt * (sum(Rw)/PV_all)); +% MBo = abs(Boa * dt * (sum(Ro)/PV_all)); + + + + + + + + + + diff --git a/core functions/preprocess/about_equation/eqsOW_MB_2014.asv b/core functions/preprocess/about_equation/eqsOW_MB_2014.asv new file mode 100644 index 0000000..5c30f88 --- /dev/null +++ b/core functions/preprocess/about_equation/eqsOW_MB_2014.asv @@ -0,0 +1,189 @@ +function [eqs, Awell, qwell,PVv, Bga, Bwa] = eqsOW_MB_2014(state, state0, dt, r, f, os, Wellc, Weladd, pwf, WelChg, well_schedules_k) + +p = state.p; +sw = state.sw; +cs = state.cs; +cb = state.cb; +p0 = state0.p; +sw0 = state0.sw; +cs0 = state0.cs; +cb0 = state0.cb; +[p, sw, cs, cb] = intADI(p, sw, cs, cb); + +% z方向上的位势 +% 由于当深度发生变化时,流体的密度也会发生变化,因此不能简单得处理成折算压力的情况计算 +%对位势z进行处理 +z=r.z; +z = intADIz(z); +% Dosi是地面标况下测得的油相密度,Dwsi是地面标况下测得的水相密度 + +% % % % 应力敏感系数 +% % % exp_paramter_1 = -0.04; +% % % reference_pressure = 20; +% % % stress_factor = exp(exp_paramter_1*(p-reference_pressure)); +Nc0 = f.Nc(cs0); +Nc = f.Nc(cs); +% Water Props +BW = f.Bw(p); +muW = f.muw(p); +krW = f.krw(sw, Nc); +pcOW = 0; +if f.ifpcgl + pcOW = f.pcgl(sw); +end +pw = p - pcOW+f.chemistry_potential; +dpW = os.grad(pw); +% dzw=1e-6*9.8*f.Dwsi*os.grad(z./BW); %水相位势梯度 +dzw=0; +dpW = dpW+dzw; +upc = (double(dpW)<=0);%一定要是折算压力! +mobW = os.faceUpstr(upc, krW) .* os.faceAvg(1./(BW.*muW)); +% mobW = os.faceUpstr(upc, krW) .* os.faceAvg(1./(BW.*muW)) .* os.faceAvg(stress_factor); +% 针对启动压力梯度的平滑处理 +if f.p_grad_threshold ~= 0 + pcOW0 = f.pcgl(sw0); + pw0 = p0 - pcOW0+f.chemistry_potential; + dpW0 = os.grad(pw0); + dzw0=0; + dpW0 = dpW0+dzw0; + pW_grad = r.T.*dpW0./r.flowArea; + ratio = smooth_relu_stable(pW_grad, f.p_grad_threshold); +else + ratio = 1; +end +bWvW = -r.T .* mobW .* (dpW).*ratio; + + +% 孔隙度 +pore = r.por(p); +% 表活剂 +mobW_s = os.faceUpstr(upc, krW.*cs) .* os.faceAvg(1./(BW.*muW)); +bWvW_s = -r.T .* mobW_s .* dpW; +dcs = os.grad(cs); +upc_s = (double(dcs)<=0); +mobW_s_diff = os.faceUpstr(upc_s, pore.*sw) .* os.faceAvg(1./(BW)); +diff_s = -r.T_diff .*mobW_s_diff .* dcs; + +% 盐 +mobW_b = os.faceUpstr(upc, krW.*cb) .* os.faceAvg(1./(BW.*muW)); +bWvW_b = -r.T .* mobW_b .* dpW; +dcb = os.grad(cb); +upc_b = (double(dcb)<=0); +mobW_b_diff = os.faceUpstr(upc_b, pore.*sw) .* os.faceAvg(1./(BW)); +diff_b = -r.T_diff.*mobW_b_diff.*dcb; + +% gas Props +BG = f.Bg(p); +muG = f.mug(p); +krG = f.krrg(sw, Nc); +dpG = os.grad(p); +% dzg=1e-6*9.8*f.Dgsi*os.grad(z./BG); %油相位势梯度 +dzg=0; +dpG = dpG+dzg; +upc = (double(dpG)<=0);%一定要是折算压力,否则出错! +mgbG = os.faceUpstr(upc, krG) .* os.faceAvg(1./(BG.*muG)); +% mobO = os.faceUpstr(upc, krO) .* os.faceAvg(1./(BO.*muO)).* os.faceAvg(stress_factor); +% 针对启动压力梯度的平滑处理 +if f.p_grad_threshold ~= 0 + dp0 = os.grad(p0); + dzg0=0; + dp0 = dp0+dzg0; + pG_grad = r.T.*dpG./r.flowArea; + pG_grad_new = smooth_relu_stable(pG_grad, f.p_grad_threshold); + bGvG = -r.matrixflag.*f.gas_prop.Kn_modified_factor.* mgbG.* pG_grad_new.*r.flowArea ... + -(1-r.matrixflag).* mgbG.* pG_grad_new.*r.flowArea; % Knudsen 扩散影响 +else + bGvG = -r.matrixflag.*f.gas_prop.Kn_modified_factor.*r.T .* mgbG .* dpG ... + -(1-r.matrixflag).*r.T .* mgbG .* dpG; % Knudsen 扩散影响 +end + +% 非达西流发生仅发生在裂缝网格内 +% Forchheimer_factor = 1/(1+kf/mug*beta*density_g*v_gf) +BG0 = f.Bg(p0);muG0 = f.mug(p0);krG0 = f.krrg(sw0,Nc0);dpG0 = os.grad(p0); +dzg0=0; +upc0 = (double(dpG0+dzg0)<=0);%一定要是折算压力,否则出错! +mgbG0 = os.faceUpstr(upc0, krG0) .* os.faceAvg(1./(BG0.*muG0)); +% mobO = os.faceUpstr(upc, krO) .* os.faceAvg(1./(BO.*muO)).* os.faceAvg(stress_factor); +v_gf = -(1-r.matrixflag).*r.T .* mgbG0 .* dpG0./r.flowArea; +density_g = f.Dgsi./BG0; +Forchheimer_factor = 1./(1+(1-r.matrixflag).*r.perm./os.faceAvg(muG0).*f.gas_prop.beta_non_Darcy_flow.*os.faceAvg(density_g).*abs(v_gf)); + +% 分别有基质系统的应力敏感系数 和 裂缝系统的应力敏感系数 +stress_factor = r.matrixflag.*exp(f.gas_prop.stress_factor_matrix*(os.faceAvg(p0)-f.gas_prop.stress_factor_ref_pressure))... + +(1-r.matrixflag).*exp(f.gas_prop.stress_factor_fracture*(os.faceAvg(p0)-f.gas_prop.stress_factor_ref_pressure)); + +% 采用简单的叠加处理 +bWvW = bWvW.*stress_factor.*Forchheimer_factor; +bGvG = bGvG.*stress_factor.*Forchheimer_factor; +% z方向上的位势 +% 由于当深度发生变化时,流体的密度也会发生变化,因此不能简单得处理成折算压力的情况计算 +%对位势z进行处理 +% z=r.z; +% z = intADIz(z); +% Dosi是地面标况下测得的油相密度,Dwsi是地面标况下测得的水相密度 +% dzo=0.01*os.grad(z./BO); %油相位势梯度 +% dzw=0.01*os.grad(z./BW); %水相位势梯度 +% bOvO = -r.T .* mobO .* (dpO+dzo); +% bWvW=-r.T .* mobW .* (dpW+dzw); + +% transfer function (OW) +% [qomf, qofm, qwmf, qwfm] = transFunc(r, krO, krW, BO, muO, BW, muW, p, pw); + +% well equation +[Awell, qwell] = WellEquation(r, f, p.val, sw.val, cs.val, cb.val, Wellc, Weladd, pwf, WelChg, well_schedules_k); +% Awell=dt*Awell; +% qwell=dt*qwell; + +% langmuir 等温吸附 +V_CH4=r.rpt.*r.V.*(1-r.por(p)).*r.rock_density.*f.gas_prop.VL.*p/f.gas_prop.PL./(1+p/f.gas_prop.PL); +V_CH4_0=r.rpt.*r.V.*(1-r.por(p)).*r.rock_density.*f.gas_prop.VL.*p0/f.gas_prop.PL./(1+p0/f.gas_prop.PL); + +% Accumulation term +PV = r.V .* r.por(p); +PV0 = r.V .* r.por(p0); +RV = r.V .* (1-r.por(p)); +RV0 = r.V .* (1-r.por(p0)); +Ar_w = 1/dt*(PV .* (sw ./ BW) - PV0 .* (sw0 ./ f.Bw(p0))); +Ar_g = 1/dt*(PV .* ((1 - sw) ./ BG) - PV0 .* ((1 - sw0) ./ f.Bg(p0)) + (V_CH4-V_CH4_0)); +Ar_w_s = 1/dt*(PV .* (sw.*cs./ BW) - PV0 .* (sw0.*cs./ f.Bw(p0))+... + r.rock_density*(RV.*f.cs_absorb(cs)-RV0.*f.cs_absorb(cs0))); +Ar_w_b = 1/dt*(PV .* (sw.*cb./ BW) - PV0 .* (sw0.*cb0./ f.Bw(p0))+... + r.rock_density*(RV.*f.cb_absorb(cb)-RV0.*f.cb_absorb(cb0))); +% Water Equation +eqs{1} = (-os.div(bWvW) - Ar_w); +% 使基质考虑重力,裂缝不考虑重力 +% eqs{1} = (-os.div(-r.T .* mobW .* dpW)-r.rpt.*os.div(-r.T .* mobW .* dzw) - Ar_w)*dt; +% eqs{1} = (-os.div(-r.T .* mobW .* dpW) - Ar_w)*dt; +% eqs{1} = -os.div(bWvW) - Ar_w; +% Oil Equation +eqs{2} = (-os.div(bGvG) - Ar_g); +% eqs{2} = (-os.div(-r.T .* mobO .* dpO)-r.rpt.*os.div(-r.T .* mobO .* dzo) - Ar_o)*dt; +% eqs{2} = (-os.div(-r.T .* mobO .* dpO) - Ar_o)*dt; +eqs{3} = (-os.div(bWvW_s+diff_s) - Ar_w_s); +eqs{4} = (-os.div(bWvW_b+diff_b) - Ar_w_b); +% +PVv = PV.val; +Bwa = BW.val; +Bga = BG.val; +% eqs{2} = -os.div(bOvO) - Ar_o; + + +% Rw = Ar_w.val - qwell(1 : r.nc); +% Ro = Ar_o.val - qwell(r.nc+1 : 2*r.nc); +% PVv = PV.val; +% % PV_all = sum(PVv); +% Bwa = mean(BW.val); +% Boa = mean(BO.val); + +% MBw = abs(Bwa * dt * (sum(Rw)/PV_all)); +% MBo = abs(Boa * dt * (sum(Ro)/PV_all)); + + + + + + + + + + diff --git a/core functions/preprocess/about_equation/eqsOW_MB_2014.m b/core functions/preprocess/about_equation/eqsOW_MB_2014.m new file mode 100644 index 0000000..0f16415 --- /dev/null +++ b/core functions/preprocess/about_equation/eqsOW_MB_2014.m @@ -0,0 +1,187 @@ +function [eqs, Awell, qwell,PVv, Bga, Bwa] = eqsOW_MB_2014(state, state0, dt, r, f, os, Wellc, Weladd, pwf, WelChg, well_schedules_k) + +p = state.p; +sw = state.sw; +cs = state.cs; +cb = state.cb; +p0 = state0.p; +sw0 = state0.sw; +cs0 = state0.cs; +cb0 = state0.cb; +[p, sw, cs, cb] = intADI(p, sw, cs, cb); + +% zϵλ +% ڵȷ仯ʱܶҲᷢ仯˲ܼ򵥵ôѹ +%λzд +z=r.z; +z = intADIz(z); +% Dosiǵ²õܶȣDwsiǵ²õˮܶ + +% % % % Ӧϵ +% % % exp_paramter_1 = -0.04; +% % % reference_pressure = 20; +% % % stress_factor = exp(exp_paramter_1*(p-reference_pressure)); +Nc0 = f.Nc(cs0); +Nc = f.Nc(cs); +% Water Props +BW = f.Bw(p); +muW = f.muw(p); +krW = f.krw(sw, Nc); +pcOW = 0; +if f.ifpcgl + pcOW = f.pcgl(sw); +end +pw = p - pcOW +f.chemistry_cof*log(cb0); +dpW = os.grad(pw); +% dzw=1e-6*9.8*f.Dwsi*os.grad(z./BW); %ˮλݶ +dzw=0; +dpW = dpW+dzw; +upc = (double(dpW)<=0);%һҪѹ +mobW = os.faceUpstr(upc, krW) .* os.faceAvg(1./(BW.*muW)); +% mobW = os.faceUpstr(upc, krW) .* os.faceAvg(1./(BW.*muW)) .* os.faceAvg(stress_factor); +% ѹݶȵƽ +if f.p_grad_threshold ~= 0 + pcOW0 = f.pcgl(sw0); + pw0 = p0 - pcOW0+f.chemistry_cof*log(cb0); + dpW0 = os.grad(pw0); + dzw0=0; + dpW0 = dpW0+dzw0; + pW_grad0 = r.T_diff./r.flowArea.*dpW0; + ratioW = smooth_relu_stable(pW_grad0, f.p_grad_threshold); +else + ratioW = 1; +end +bWvW = -r.T .* mobW .* (dpW).*ratioW; + +% ϶ +pore = r.por(p); +% +mobW_s = os.faceUpstr(upc, krW.*cs) .* os.faceAvg(1./(BW.*muW)); +bWvW_s = -r.T .* mobW_s .* dpW; +dcs = os.grad(cs); +upc_s = (double(dcs)<=0); +mobW_s_diff = os.faceUpstr(upc_s, pore.*sw) .* os.faceAvg(1./(BW)); +diff_s = -r.T_diff .*mobW_s_diff .* dcs; + +% +mobW_b = os.faceUpstr(upc, krW.*cb) .* os.faceAvg(1./(BW.*muW)); +bWvW_b = -r.T .* mobW_b .* dpW; +dcb = os.grad(cb); +upc_b = (double(dcb)<=0); +mobW_b_diff = os.faceUpstr(upc_b, pore.*sw) .* os.faceAvg(1./(BW)); +diff_b = -r.T_diff.*mobW_b_diff.*dcb; + +% gas Props +BG = f.Bg(p); +muG = f.mug(p); +krG = f.krrg(sw, Nc); +dpG = os.grad(p); +% dzg=1e-6*9.8*f.Dgsi*os.grad(z./BG); %λݶ +dzg=0; +dpG = dpG+dzg; +upc = (double(dpG)<=0);%һҪѹ +mgbG = os.faceUpstr(upc, krG) .* os.faceAvg(1./(BG.*muG)); +% mobO = os.faceUpstr(upc, krO) .* os.faceAvg(1./(BO.*muO)).* os.faceAvg(stress_factor); +% ѹݶȵƽ +if f.p_grad_threshold ~= 0 + dpG0 = os.grad(p0); + dzg0=0; + dpG0 = dpG0+dzg0; + pG_grad0 = r.T_diff./r.flowArea.*dpG0; + ratioG = smooth_relu_stable(pG_grad0, f.p_grad_threshold); +else + ratioG = 1; +end +% Knudsen ɢӰ +bGvG = -r.matrixflag.*f.gas_prop.Kn_modified_factor.*r.T .* mgbG .* dpG.*ratioG ... + -(1-r.matrixflag).*r.T .* mgbG .* dpG.*ratioG; +% Ǵѷ +% Forchheimer_factor = 1/(1+kf/mug*beta*density_g*v_gf) +BG0 = f.Bg(p0);muG0 = f.mug(p0);krG0 = f.krrg(sw0,Nc0);dpG0 = os.grad(p0); +dzg0=0; +upc0 = (double(dpG0+dzg0)<=0);%һҪѹ +mgbG0 = os.faceUpstr(upc0, krG0) .* os.faceAvg(1./(BG0.*muG0)); +% mobO = os.faceUpstr(upc, krO) .* os.faceAvg(1./(BO.*muO)).* os.faceAvg(stress_factor); +v_gf = -(1-r.matrixflag).*r.T .* mgbG0 .* dpG0./r.flowArea; +density_g = f.Dgsi./BG0; +Forchheimer_factor = 1./(1+(1-r.matrixflag).*r.perm./os.faceAvg(muG0).*f.gas_prop.beta_non_Darcy_flow.*os.faceAvg(density_g).*abs(v_gf)); + +% ֱлϵͳӦϵ ѷϵͳӦϵ +stress_factor = r.matrixflag.*exp(r.stress_factor_matrix*(os.faceAvg(p0)-r.stress_factor_ref_pressure))... + +(1-r.matrixflag).*exp(r.stress_factor_fracture*(os.faceAvg(p0)-r.stress_factor_ref_pressure)); + +% ü򵥵ĵӴ +bWvW = bWvW.*stress_factor.*Forchheimer_factor; +bGvG = bGvG.*stress_factor.*Forchheimer_factor; +% zϵλ +% ڵȷ仯ʱܶҲᷢ仯˲ܼ򵥵ôѹ +%λzд +% z=r.z; +% z = intADIz(z); +% Dosiǵ²õܶȣDwsiǵ²õˮܶ +% dzo=0.01*os.grad(z./BO); %λݶ +% dzw=0.01*os.grad(z./BW); %ˮλݶ +% bOvO = -r.T .* mobO .* (dpO+dzo); +% bWvW=-r.T .* mobW .* (dpW+dzw); + +% transfer function (OW) +% [qomf, qofm, qwmf, qwfm] = transFunc(r, krO, krW, BO, muO, BW, muW, p, pw); + +% well equation +[Awell, qwell] = WellEquation(r, f, p.val, sw.val, cs.val, cb.val, Wellc, Weladd, pwf, WelChg, well_schedules_k); +% Awell=dt*Awell; +% qwell=dt*qwell; + +% langmuir +V_CH4=r.rpt.*r.V.*(1-r.por(p)).*r.rock_density.*f.gas_prop.VL.*p/f.gas_prop.PL./(1+p/f.gas_prop.PL); +V_CH4_0=r.rpt.*r.V.*(1-r.por(p)).*r.rock_density.*f.gas_prop.VL.*p0/f.gas_prop.PL./(1+p0/f.gas_prop.PL); + +% Accumulation term +PV = r.V .* r.por(p); +PV0 = r.V .* r.por(p0); +RV = r.V .* (1-r.por(p)); +RV0 = r.V .* (1-r.por(p0)); +Ar_w = 1/dt*(PV .* (sw ./ BW) - PV0 .* (sw0 ./ f.Bw(p0))); +Ar_g = 1/dt*(PV .* ((1 - sw) ./ BG) - PV0 .* ((1 - sw0) ./ f.Bg(p0)) + (V_CH4-V_CH4_0)); +Ar_w_s = 1/dt*(PV .* (sw.*cs./ BW) - PV0 .* (sw0.*cs./ f.Bw(p0))+... + r.rock_density*(RV.*f.cs_absorb(cs)-RV0.*f.cs_absorb(cs0))); +Ar_w_b = 1/dt*(PV .* (sw.*cb./ BW) - PV0 .* (sw0.*cb0./ f.Bw(p0))+... + r.rock_density*(RV.*f.cb_absorb(cb)-RV0.*f.cb_absorb(cb0))); +% Water Equation +eqs{1} = (-os.div(bWvW) - Ar_w); +% ʹʿѷ첻 +% eqs{1} = (-os.div(-r.T .* mobW .* dpW)-r.rpt.*os.div(-r.T .* mobW .* dzw) - Ar_w)*dt; +% eqs{1} = (-os.div(-r.T .* mobW .* dpW) - Ar_w)*dt; +% eqs{1} = -os.div(bWvW) - Ar_w; +% Oil Equation +eqs{2} = (-os.div(bGvG) - Ar_g); +% eqs{2} = (-os.div(-r.T .* mobO .* dpO)-r.rpt.*os.div(-r.T .* mobO .* dzo) - Ar_o)*dt; +% eqs{2} = (-os.div(-r.T .* mobO .* dpO) - Ar_o)*dt; +eqs{3} = (-os.div(bWvW_s+diff_s) - Ar_w_s); +eqs{4} = (-os.div(bWvW_b+diff_b) - Ar_w_b); +% +PVv = PV.val; +Bwa = BW.val; +Bga = BG.val; +% eqs{2} = -os.div(bOvO) - Ar_o; + + +% Rw = Ar_w.val - qwell(1 : r.nc); +% Ro = Ar_o.val - qwell(r.nc+1 : 2*r.nc); +% PVv = PV.val; +% % PV_all = sum(PVv); +% Bwa = mean(BW.val); +% Boa = mean(BO.val); + +% MBw = abs(Bwa * dt * (sum(Rw)/PV_all)); +% MBo = abs(Boa * dt * (sum(Ro)/PV_all)); + + + + + + + + + + diff --git a/core functions/preprocess/about_equation/equa_process.m b/core functions/preprocess/about_equation/equa_process.m new file mode 100644 index 0000000..68306d3 --- /dev/null +++ b/core functions/preprocess/about_equation/equa_process.m @@ -0,0 +1,56 @@ +function [eqs, qomf, qofm, qwmf, qwfm, Awell, qwell] = equa_process(state, state0, dt, r, f, os, Wellc, Weladd, pwf, WelChg) +p = state.p; +sw = state.sw; +p0 = state0.p; +sw0 = state0.sw; +[p, sw] = intADI(p, sw); + +% Water Props +BW = f.Bw(p);%زˮϵ +muW = f.muw(p);%زˮճ +krW = f.krw(sw);%زˮ͸ +pcOW = 0;%Ĭifpcow=0ĬϺë +if f.ifpcow + pcOW = f.pcow(sw); +end +pw = p - pcOW;%ˮѹ +dpW = os.grad(pw);%ˮѹݶ +upc = (double(dpW)<=0);%Ϊӭʽflag +mobW = os.faceUpstr(upc, krW) .* os.faceAvg(1./(BW.*muW));%ӭʽ +bWvW = -r.T .* mobW .* dpW;%ϵ**ѹ + +% Oil Props +BO = f.Bo(p);%ϵ +muO = f.muo(p);%ճ +krO = f.kro(sw);%͸ +dpO = os.grad(p);%ѹݶ +upc = (double(dpO)<=0);%ӭʽflag +mobO = os.faceUpstr(upc, krO) .* os.faceAvg(1./(BO.*muO));% +bOvO = -r.T .* mobO .* dpO; + +% zϵλ +% ڵȷ仯ʱܶҲᷢ仯˲ܼ򵥵ôѹ +%λzд +z=r.z; +z = intADIz(z); +% Dosiǵ²õܶȣDwsiǵ²õˮܶ +dzo=f.Dosi*os.grad(z./BO); %λݶ +dzw=f.Dwsi*os.grad(z./BW); %ˮλݶ + + +% transfer function (OW) +[qomf, qofm, qwmf, qwfm] = transFunc(r, krO, krW, BO, muO, BW, muW, p, pw); + +% well equation +[Awell, qwell] = WellEquation(r, f, p.val, sw.val, Wellc, Weladd, pwf, WelChg); + +% Ϊzȡʷѹݶȼλݶ +% Water Equation +eqs{1} = -os.div(bWvW+dzo) - r.V/dt .* (r.por(p) .* (sw ./ BW) - r.por(p0) .* (sw0 ./ f.Bw(p0))); + +% Oil Equation +eqs{2} = -os.div(bOvO+dzw) - r.V/dt .* (r.por(p) .* ((1 - sw) ./ BO) - r.por(p0) .* ((1 - sw0) ./ f.Bo(p0))); + + +end + diff --git a/core functions/preprocess/about_grid/GenerateNode_final.m b/core functions/preprocess/about_grid/GenerateNode_final.m new file mode 100644 index 0000000..6f5a818 --- /dev/null +++ b/core functions/preprocess/about_grid/GenerateNode_final.m @@ -0,0 +1,96 @@ +function [coordinates, nodes, nP, nE, dxv, dyv,dzv,zm,vm,xrao,yrao,zrao,cell_mid_coordinates] = GenerateNode_final(dx, dy,dz ,nx,ny,nz,NTG) +% coordinates xy cordinateÿڵx,y +% nodes connectionÿӦİ˸ڵ +% nP numbers of pointڵ +% nE numbers of element +nP = (nx + 1) * (ny + 1)*(nz+1);%ڵ +nE = nx * ny*nz;% +% dx=dx*ones(nx,1);%˴ΪʱЭ +% dy=dy*ones(nx,1); +% dz=dz*ones(nx,1); +dxv = zeros(nE, 1);%ÿxϳߴ +dyv = zeros(nE, 1);%ÿyϳߴ +dzv = zeros(nE, 1); +zm=zeros(nE, 1);%ȣƽΪ׼õĸ߶ȣֵΪ +xm=zeros(nE, 1); +ym=zeros(nE, 1); +%ÿxy򸳳ߴ +vm=zeros(nE, 1);% +for k=1:nz + for i = 1 : nx + for j = 1 : ny + dxv(i+(j-1)*nx+nx*ny*(k-1)) = dx(i); + dyv(i+(j-1)*nx+nx*ny*(k-1)) = dy(j); + dzv(i+(j-1)*nx+nx*ny*(k-1))= dz(k); + vm(i+(j-1)*nx+nx*ny*(k-1))=dx(i)*dy(j)*dz(k)*NTG(i+(j-1)*nx+nx*ny*(k-1)); + + end + end +end +coordinates = zeros(nP, 3);%ʼÿڵx,y +nodes = zeros(nE, 8);%ʼÿӦİ˸ڵľ +%ÿڵ +x0 = zeros(nx+1,1); +y0 = zeros(ny+1,1); +z0=zeros(nz+1,1); +sumx = 0; +sumy = 0; +sumz=0; +for i = 1 : nx + sumx = sumx+dx(i); + x0(i+1) = sumx; +end +for i = 1 : ny + sumy = sumy+dy(i); + y0(i+1) = sumy; +end +for i = 1 : nz + sumz = sumz+dz(i); + z0(i+1) = sumz; +end +for k=1:nz+1 +for j = 1 : ny + 1 + for i = 1 : nx + 1 + coordinates(i + (j - 1) * (nx + 1)+(nx+1)*(ny+1)*(k-1), 1) = x0(i);%(i,jڵx긳ֵ + coordinates(i + (j - 1) * (nx + 1)+(nx+1)*(ny+1)*(k-1), 2) = y0(j);%(i,jڵy긳ֵ + coordinates(i + (j - 1) * (nx + 1)+(nx+1)*(ny+1)*(k-1), 3) = z0(k); + end +end +end +%ÿİ˸(ڵ㣩ӦĽڵ +for k=1:nz +for j = 1 : ny + for i = 1 : nx + nodes(i + (j - 1) * nx+nx*ny*(k-1), 1) = i + (j - 1) * (nx + 1)+(k-1)*(nx+1)*(ny+1); + nodes(i + (j - 1) * nx+nx*ny*(k-1), 2) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 1) + 1; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 3) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 1) + nx + 1; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 4) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 1) + nx + 2; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 5) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 1)+(nx+1)*(ny+1); + nodes(i + (j - 1) * nx+nx*ny*(k-1), 6) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 5) + 1; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 7) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 5) + nx + 1; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 8) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 5) + nx + 2; + zm(i+(j-1)*nx+nx*ny*(k-1))=sum(coordinates(nodes(i + (j - 1) * nx+nx*ny*(k-1), :),3))/8; + xm(i+(j-1)*nx+nx*ny*(k-1))=sum(coordinates(nodes(i + (j - 1) * nx+nx*ny*(k-1), :),1))/8; + ym(i+(j-1)*nx+nx*ny*(k-1))=sum(coordinates(nodes(i + (j - 1) * nx+nx*ny*(k-1), :),2))/8; + end +end +end + +cell_mid_coordinates = [xm,ym,zm]; + +xrao=[0]; +for i=1:nx + xxiang=sum(dx(1,1:i)); + xrao=[xrao xxiang]; +end +yrao=[0]; +for i=1:ny + yxiang=sum(dy(1,1:i)); + yrao=[yrao yxiang]; +end +zrao=[0]; +for i=1:nz + zxiang=sum(dz(1,1:i)); + zrao=[zrao zxiang]; +end +end \ No newline at end of file diff --git a/core functions/preprocess/about_grid/GridProplpr.m b/core functions/preprocess/about_grid/GridProplpr.m new file mode 100644 index 0000000..09cdaa0 --- /dev/null +++ b/core functions/preprocess/about_grid/GridProplpr.m @@ -0,0 +1,175 @@ +function r = GridProplpr(nx, ny, nz, dx, dy, dz , kx, ky, kz, nf,f, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca) +%% 㡢洢 +r.nx = nx; +r.ny = ny; +r.nz = nz; +r.dx = dx; +r.dy = dy; +r.dz = dz; +r.kx = kx; +r.ky = ky; +r.kz = kz; +r.Kf = Kf;%ѷӦ͸ʣѷ쵥Ԫ +r.Wf = Wf;%ѷӦķѷ쵥Ԫ +r.cf = cf; +r.ca = ca; +% r.h = h; +% [coordinates, nodes, ~, nmc, Dxv, Dyv] = GenerateNode_final(Dx, Dy, nx, ny); +[coordinates, nodes, nP, nE, dxv, dyv,dzv,zm,vm] = GenerateNode_final(dx, dy,dz ,nx,ny,nz); +r.coordinates = coordinates; +r.nodes = nodes; +nmc=nE; +r.nmc =nmc; +r.dxv = dxv; +r.dyv = dyv; +r.dzv = dyv; +r.vm=vm; + +%% ѷ +%% ؼʼ +m=size(f,1);nf=m/5;%ѷ +r.nf=nf; +%d3intersection=-1000*ones(1000,3);%-1000ʶ +raopoint=cell(m,2);%Ԫ洢ÿѷߵĽ㣬 +%һάʽd3intersection +%ڶѷʽanothersection +pointvsregion=cell(m,3);%Ԫ洢interareaĽnumofmesh, numvspoint,numofregion +fracrossfra=cell(m,m-1);%жѷ֮ +fratmaxfra=zeros(m,m-1);%жѷ֮佻ֵ߲ +fratminfra=zeros(m,m-1);%жѷ֮佻߲Сֵ +fracturemesh=cell(nf,1);%ÿһһѷϵʷ +% [Linep, ConnecS, Fracp, ~, FracConf2] = Edfm_preprocess_final(coordinates, nodes, Lines, NF); +% r.Linep = Linep; +% r.ConnecS = ConnecS; +% r.Fracp = Fracp; +% r.FracConf2 = FracConf2; +%% ѷཻ +for i=1:nf + raopoint{i,1}= intersectionsolve(f((5*i-4):(5*i),:),dx,dy,dz,nx,ny,nz ); + raopoint{i,2}= anosection( f((5*i-4):(5*i),:),raopoint{i,1} ); + [ pointvsregion{i,1},pointvsregion{i,2} ,pointvsregion{i,3}] = interarea( raopoint{i,1},dx,dy,dz,nx,ny,nz ); +end +%% ѷཻ֮ +for i=1:nf + for j=1:nf + [ cross,tmax,tmin ]=frac_cross_frac( f((5*i-4):(5*i),:),f((5*j-4):(5*j),:) ); + fracrossfra{i,j}=cross;fratmaxfra(i,j)=tmax;fratminfra(i,j)=tmin; + end +end +%% ѷ챻ѷֲཻ֮,ƶάѷƽϵϵֲ +figure(1); +for i=1:nf + d3intersection=raopoint{i,1};anothersection=raopoint{i,2}; + [ mesh ] = frac_mat_mesh( d3intersection,anothersection,pointvsregion{i,2},pointvsregion{i,1} ); + for j=1:nf +[ mesh,d3intersection,anothersection ]= frac_frac_mesh(mesh,f(5*i-4,:),f(5*i-3,:),f(5*i-2,:),fracrossfra{i,j},fratmaxfra(i,j),fratminfra(i,j),d3intersection,anothersection,pointvsregion{i,2},pointvsregion{i,1} ); + end + raopoint{i,1}=d3intersection;raopoint{i,2}=anothersection;%ԭѷĽ㲻ϸ¼ѷѷĽ + fracturemesh{i,1}=mesh;subplot(nf,1,i);plotmesh2D(mesh,raopoint{i,2}); +end + +%% ά񣨻񣩼ѷֲ +%figure(2) +%network3D(dx,dy,dz,nx,ny,nz ); +%hold on; + figure(2); +for i=1:nf +plotmesh3D( fracturemesh{i,1},raopoint{i,1} );hold on; +end +hold off; +%% ȷѷż㴫ϵ +[ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv ); +nfc=size(fracnumber,1); +nex=size(T,1); +r.nfc=nfc; +nc=nfc+nmc; +r.nc=nc;%ѷ쵥Ԫ +r.nex=nex;%彻 +kf=Kf(fcinff); +wf=Wf(fcinff); +r.kf=kf;%ѷ쵥ԪӦ͸ +r.wf=wf;%ѷ쵥ԪӦķ +r.N=N; +r.T=T; +r.vf=vf; +r.V=[vm;vf]; +r.porf=porf; +r.fcff=fcff; +%% 㴫ϵ +% dxvector=ones(1,nx);dyvector=ones(1,ny);dzvector=ones(1,nz); +% [ transmatrix,transfracture ] = trans(dxvector,dyvector,dzvector ,nx,ny,nz,nf,fracnumber,lengthvsfra,disvsfra,fracstart,connect_infrac,corevsfra,matrixvsfra,raopoint,f ); +%% ѷ֮ϵ +% [ channelfrac ] = cuanliu( matrixvsfra,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf );%Gf +% [ G ] = cuanliumatrix(dx,dy,dz );%G +[ G,Gfm,Gff,Gf,Ap,Apf ]=lpr(dx,dy,dz,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); +%% +[Ka, M, F2M , MF_coef] = transFunc_aniso(nc,coordinates, nodes, connectmf,Ap,Apf, matrixvsfra,N,T,kx, ky,kz); +r.Ka = Ka; +r.M = M; +r.F2M = F2M; +r.MF_coef = MF_coef; +%% ȣƽΪ׼õĸ߶ȣֵΪ +z=[zm;zf]; +r.z=z; + +% nfc = length(Fracp); +% r.nfc = nfc; +% [kf, wf, porf] = FracProp(Kf, Wf, Porf, ConnecS); +% r.kf = kf; +% r.wf = wf; +% [Nff, Vf, lf] = FracConnec(Linep, Fracp, FracConf2, kf, wf, h); +% r.lf = lf; +% [nff, ~] = size(Nff); +% nc = nmc + nfc; +% r.nc = nc; + rpt = [ones(nmc, 1); zeros(nfc, 1)]; + r.rpt = rpt; + r.Porf = Porf; + pori = [pori; porf]; +r.pori = pori; +r.por = @(p)por(p, prpor, pori, cpor, prporf, cporf, r.rpt); +% nmf = 2 * nx * ny - nx - ny; +% r.nf = nmf + nff; +% N = zeros(nmf, 2); +% T = zeros(nmf, 1); +% c = 0; +% for j = 1 : ny +% for i = 1 : nx - 1 +% c = c + 1; +% index = i + (j - 1) * nx; +% indexn = index + 1; +% N(c, :) = [index, index + 1;]; +% T(c) = 2 * Dyv(index)*h*Kx(index)*Kx(indexn)/(Kx(index)*Dxv(indexn) + Kx(indexn)*Dxv(index)); +% end +% end +% for i = 1 : nx +% for j = 1 : ny - 1 +% c = c + 1; +% index = i + (j - 1) * nx; +% indexn = index + nx; +% N(c, :) = [index, index + nx]; +% T(c) = 2 * Dxv(index)*h*Ky(index)*Ky(indexn)/(Ky(index)*Dyv(indexn) + Ky(indexn)*Dyv(index)); +% end +% end +% r.N = [N; Nff(:, 1:2)+nmc]; +% r.T = [T; Nff(:, 3)]; +% r.cf = cf; +% r.ca = ca; +% r.Kx = Kx; +% r.Ky = Ky; +% r.Kf = Kf; +% r.Wf = Wf; +% r.Porf = Porf; +% r.lf = lf; +% Vm = Dxv .* Dyv .* h; +% r.V = [Vm; Vf]; +% pori = [pori; porf]; +% r.pori = pori; +% rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +% r.por = @(p)por(p, prpor, pori, cpor, prporf, cporf, r.rpt); +% [Ka, M, F2M , MF_coef] = transFunc_aniso(coordinates, nodes, Linep, ConnecS, nmc, nfc, nc, Kx, Ky); +% r.Ka = Ka; +% r.M = M; +% r.F2M = F2M; +% r.MF_coef = MF_coef; diff --git a/core functions/preprocess/about_grid/LGR3D.m b/core functions/preprocess/about_grid/LGR3D.m new file mode 100644 index 0000000..05927ea --- /dev/null +++ b/core functions/preprocess/about_grid/LGR3D.m @@ -0,0 +1,7 @@ +function [ output_args ] = LGR3D( input_args ) +%LGR3D ˴ʾйش˺ժҪ +% ˴ʾϸ˵ + + +end + diff --git a/core functions/preprocess/about_grid/anosection.m b/core functions/preprocess/about_grid/anosection.m new file mode 100644 index 0000000..1b25df0 --- /dev/null +++ b/core functions/preprocess/about_grid/anosection.m @@ -0,0 +1,28 @@ +function [ anothersection ] = anosection( fracture,d3intersection ) +%ΪdelaunayѷƽЧøѷƽ +%ѷƽϵάŷϿռתΪѷϵIJ꣬ɼȷѷ״ +%ȡ +%ʾ[ anothersection ] = anothersection([0.5,0,0],[1,1,0],[0,0,1],d3intersection ) +t0=fracture(1,:);t1=fracture(2,:);t2=fracture(3,:); +A=[t1(1),t2(1); + t1(2),t2(2); + t1(3),t2(3)]; +n=size(d3intersection,1); +b=[t0(1);t0(2);t0(3)]; +B=d3intersection'-repmat(b,1,n); +C=A\B; +m=size(C,2); +% for i=1:1:m +% if((C(1,i)>umax)||(C(1,i)vmax)||(C(2,i)2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + length=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + tran1=kf(i)*wf(i)*length/disk; + tran2=kf(i)*wf(i)*length/disj; +% hartran=length/(disk+disj);%ȡƽ + hartran=tran1*tran2/(tran1+tran2); + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 +% lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=j:n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% ϵ +nmc=nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +c = 0; +for k= 1 : nz +for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)/(Kx(index)*dxv(indexn) + Kx(indexn)*dxv(index)); + end +end +end + +for k= 1 : nz +for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + end +end +end + +for i = 1 : nx +for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + end +end +end +%% 2014ķΪƵʽ +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +for i=1:nx*ny*nz % + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + Knnc=2*kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=areavsfra(matrixvsfra(i,j)); + fracore=corevsfra(matrixvsfra(i,j)); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% dn=abs(dn);%ӰֵЧ + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)/2,dzv(i)/2)/(dxv(i)*dyv(i)*dzv(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)/2,dzv(i)/2)/(dxv(i)*dyv(i)*dzv(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)/2,dzv(i)/2)/(dxv(i)*dyv(i)*dzv(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*integral(dn,-dxv(i)/2,dxv(i)/2); + else if norvec(2)~=0 + + raoT=Knnc*Annc/Dn; + Tinterflow=[Tinterflow;raoT]; + end + end +end + +%% ľֱ +N = [N; Nmff+nmc; Nff+nmc;Ninterflow]; +T = [T; Tmff; Tff;Tinterflow]; +nex=size(N,1); +end diff --git a/core functions/preprocess/about_grid/connections.m b/core functions/preprocess/about_grid/connections.m new file mode 100644 index 0000000..bdc3bb4 --- /dev/null +++ b/core functions/preprocess/about_grid/connections.m @@ -0,0 +1,247 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff] = connections( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,kf,wf,Porf,dxv,dyv,dzv ) +% úԸѷţ洢ӹϵʣǰĹؼ +% ͬڶάǶʽɢѷģͣάģУѷǶάƽ棬֮ӹϵӣ +%ܼ򵥵ôӻжڣѷزڣڣѷȴһ +%ԭȥȷconnectionsȡ· +%һ:xinkȥк󣬰θijѷţͬʱ洢ѷڵĻ +%ڶ:洢ÿѷ߽磬߽糤ȣĵ꣬ĵ㵽߽ľ룬Ϊ׼ +%:ѷ˳򣬰ձ߽ͬı߽磬ѷڵ +%matrixvsfraаѷŵ +%fracnumberűʾѷţݱʾĵ +%areavsfraűʾѷţݱʾѷ +%ÿһߣȻ˳򷴹һ +%lengthvsfraűʾѷţݱʾѷĸ߳ +%corevsfraűʾѷţݱʾѷ +%disvsfraűʾѷţݱʾѷĵߵľ +matrixvsfra=zeros(nx*ny*nz,10);%Ϊ˼ٸþĴСʵһУһ㲻г10ѷ +fracnumber=zeros(1000,20);%ʵѷһ㲻ᳬ1000Ҳɸʵı +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf +rownum(i)=size(fracturemesh{i,1},1); +end +%% ѷһţӸӦĻ +q=1; +fracstart=zeros(nf+1,1);%ʾܱУÿѷʼĺ +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; +for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%qǸѷ +% m=floor((i+(2^nf)-1)/(2^nf)); +% indice=find(matrixvsfra(numofmesh(m),:)~=0); + indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(i),xiang)=q;%ѷŸӦĻ + q=q+1; + end +end +end +fracstart(nf+1)=q;%ѷ+1 +fracnumber(q:1000,:)=[]; + + +%% ѷ쵥ԪĻɸѡ,д +m=size(matrixvsfra,1); +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %ɸѡѷĻ +% if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %洢û + connectmf{cc,1} = i; + %Щѷ/ѷ쵥Ԫ˳ + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; +end +end + +%% һѷѷ߽ȵ +% edgevsfra=cell(nf,1); +areavsfra=zeros(q-1,1);%q-1ѷ +lengthvsfra=zeros(q-1,10); +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +avtran=zeros(q-1,1);%ѷƽںļ򻯼 +fcinff=zeros(q-1,1);%ʾѷ쵥Ԫڵѷ +zf=zeros(q-1,1);%ѷ쵥Ԫ߶ȣ±Ϊ׼ +vf=zeros(q-1,1);%ѷ쵥Ԫ +porf=zeros(q-1,1);%ѷ쵥ԪĿ϶ +for i=1:1:q-1 %ѷв + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + length=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + tran1=kf(i)*wf(i)*length/disk; + tran2=kf(i)*wf(i)*length/disj; +% hartran=length/(disk+disj);%ȡƽ + hartran=tran1*tran2/(tran1+tran2); + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 +% lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=j:n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% ϵ +nmc=nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +c = 0; +for k= 1 : nz +for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)/(Kx(index)*dxv(indexn) + Kx(indexn)*dxv(index)); + end +end +end + +for k= 1 : nz +for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + end +end +end + +for i = 1 : nx +for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + end +end +end + +%% ľֱ +N = [N; Nmff+nmc; Nff+nmc]; +T = [T; Tmff; Tff]; +nex=size(N,1); +end diff --git a/core functions/preprocess/about_grid/connections_2014.m b/core functions/preprocess/about_grid/connections_2014.m new file mode 100644 index 0000000..757da1e --- /dev/null +++ b/core functions/preprocess/about_grid/connections_2014.m @@ -0,0 +1,529 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,cell_divided_by_fracture_flag, flowArea, perm, matrixflag,T_diff] = connections_2014( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,pori,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,addflag,invalid_grids ) +% úԸѷţ洢ӹϵʣǰĹؼ +% ͬڶάǶʽɢѷģͣάģУѷǶάƽ棬֮ӹϵӣ +%ܼ򵥵ôӻжڣѷزڣڣѷȴһ +%ԭȥȷconnectionsȡ· +%һ:xinkȥк󣬰θijѷţͬʱ洢ѷڵĻ +%ڶ:洢ÿѷ߽磬߽糤ȣĵ꣬ĵ㵽߽ľ룬Ϊ׼ +%:ѷ˳򣬰ձ߽ͬı߽磬ѷڵ +%matrixvsfraаѷŵ +%fracnumberűʾѷţݱʾĵ +%areavsfraűʾѷţݱʾѷ +%ÿһߣȻ˳򷴹һ +%lengthvsfraűʾѷţݱʾѷĸ߳ +%corevsfraűʾѷţݱʾѷ +%disvsfraűʾѷţݱʾѷĵߵľ +matrixvsfra=zeros(nx*ny*nz,10);%Ϊ˼ٸþĴСʵһУһ㲻г10ѷ +fracnumber=zeros(1000,20);%ʵѷһ㲻ᳬ1000Ҳɸʵı +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf + rownum(i)=size(fracturemesh{i,1},1); +end +%% ѷһţӸӦĻ +q=1; +fracstart=zeros(nf+1,1);%ʾܱУÿѷʼĺ +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; + for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%qǸѷ + % m=floor((i+(2^nf)-1)/(2^nf)); + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); + % indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%ѷŸӦĻ + q=q+1; + end + end +end +fracstart(nf+1)=q;%ѷ+1 +fracnumber(q:1000,:)=[]; + +%% ѷ쵥ԪĻɸѡ,д +m=size(matrixvsfra,1); +mat_frac=[]; +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %ɸѡѷĻ + % if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %洢û + connectmf{cc,1} = i; + mat_frac=[mat_frac;i]; + %Щѷ/ѷ쵥Ԫ˳ + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; + end +end + +%% һѷѷ߽ȵ +% edgevsfra=cell(nf,1); +% Kffl=funtion_data.Kffl; +% Dffl=funtion_data.Dffl; +% kffl=zeros(q-1,1); +% dffl=zeros(q-1,1); +normalvec=zeros(q-1,3);%unit +areavsfra=zeros(q-1,1);%q-1ѷ +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,1);%ѷ͸ +Wf=zeros(q-1,1);%ѷ쵥Ԫ +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +tran_no_perm=zeros(q-1,10); +avtran=zeros(q-1,1);%ѷƽںļ򻯼 +ave_disvsfra=zeros(q-1,1); +fcinff=zeros(q-1,1);%ʾѷ쵥Ԫڵѷ +zf=zeros(q-1,1);%ѷ쵥Ԫ߶ȣ±Ϊ׼ +vf=zeros(q-1,1);%ѷ쵥Ԫ +porf=zeros(q-1,1);%ѷ쵥ԪĿ϶ +avfracFaceArea = zeros(q-1,1); +for i=1:1:q-1 %ѷв + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 + for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if kf(i)==0 + hartran=0;hartran_convection=0; + kij = 0; + else + tran1=kf(i)*wf(i)*lengthcat/disk; + tran2=kf(i)*wf(i)*lengthcat/disj; + % hartran=length/(disk+disj);%ȡƽ + hartran=tran1*tran2/(tran1+tran2); + tran1_diff=wf(i)*lengthcat/disk; + tran2_diff=wf(i)*lengthcat/disj; + % hartran=length/(disk+disj);%ȡƽ + hartran_diff=tran1_diff*tran2_diff/(tran1_diff+tran2_diff); + % k_harmony= kf(i); + hartran_convection=kf(i)/(disk+disj)^2; + kij = 2*(Kf(j)^(-1)+Kf(k)^(-1))^(-1); + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + Tff_diff=[Tff_diff;hartran_diff]; + Tff_convection=[Tff_convection;hartran_convection]; + perm_ff = [perm_ff; kij]; + flowArea_ff = [flowArea_ff; wf(i)*lengthcat]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +Tff_convection(1,:)=[]; +Tff_diff(1,:)=[]; +perm_ff(1,:)=[]; +flowArea_ff(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +Tmff_diff=zeros(1,1); +Tmff_convection=zeros(1,1); +perm_mff=zeros(1,1); +flowArea_mff=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 + % lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc));sumtran_no_perm=sum(fcff{1,9}(allfc)); + if sumtran==0 + Tmff=[Tmff; 0];Tmff_convection=[Tmff_convection;0]; + Tmff_diff=[Tmff_diff;0]; + perm_mff=[perm_mff;0];flowArea_mff=[flowArea_mff;(avfracFaceArea(fc1)+avfracFaceArea(fc2))/2]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + Tmff_diff=[Tmff_diff;fcff{1,9}(fc1)*fcff{1,9}(fc2)/sumtran_no_perm]; + perm_mff=[perm_mff;(Kf(fc1)^(-1)+Kf(fc2)^(-1))^(-1)]; + flowArea_mff=[flowArea_mff;(avfracFaceArea(fc1)+avfracFaceArea(fc2))/2]; + end + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +% Tmff =Tmff*0; +Tmff_convection(1,:)=[]; +Tmff_diff(1,:)=[]; +perm_mff(1,:)=[]; +flowArea_mff(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% ϵ +nmc= nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +T_convection = zeros(nmm, 1); +T_diff = zeros(nmm, 1); +perm = zeros(nmm, 1); +flowArea = zeros(nmm, 1); +c = 0; +for k= 1 : nz + for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); + T_convection(c) = 2/(1/Kx(index)+1/Kx(indexn))/(dxv(indexn)+dxv(index)); + perm(c)=2*Kx(index)*Kx(indexn)/(Kx(index) + Kx(indexn)); + T_diff(c)=dzv(index)*dyv(index)/(2/(1/dxv(indexn)+1/dxv(index))); + flowArea(c)=dzv(index)*dyv(index); + end + end +end + +for k= 1 : nz + for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + T_convection(c) = 2/(1/Ky(index)+1/Ky(indexn))/(dyv(indexn)+dyv(index)); + perm(c)=2*Ky(index)*Ky(indexn)/(Ky(index) + Ky(indexn)); + T_diff(c)=dzv(index)*dxv(index)/(2/(1/dyv(indexn)+1/dyv(index))); + flowArea(c)=dzv(index)*dxv(index); + end + end +end + +for i = 1 : nx + for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + T_convection(c) = 2/(1/Kz(index)+1/Kz(indexn))/(dzv(indexn)+dzv(index)); + perm(c)=2*Kz(index)*Kz(indexn)/(Kz(index) + Kz(indexn)); + T_diff(c)=dxv(index)*dyv(index)/(2/(1/dzv(indexn)+1/dzv(index))); + flowArea(c)=dxv(index)*dyv(index); + end + end +end +%% 2014ķΪƵʽ +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +Tinterflow_convection=[]; +Tinterflow_diff=[]; +cell_divided_by_fracture_flag = []; +perm_interflow=[]; +flowArea_interflow=[]; +for i=1:nx*ny*nz % + flag = 0; + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + flag = flag + 1; + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + % kcell = sqrt(10*100)*1e-3; + Knnc=kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=areavsfra(matrixvsfra(i,j)); + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); + % dn=abs(dn);%ӰֵЧ + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + % raoT=Knnc*Annc/Dn; + % raoT_convection=2*Knnc/Dn^2; + % Tinterflow=[Tinterflow;raoT]; + % Tinterflow_convection=[Tinterflow_convection;raoT_convection]; + raoT1 = 2*kcell*Annc/Dn; + raoT2 = Kf(matrixvsfra(i,j))*Annc/(Wf(matrixvsfra(i,j))/2); + raoT = (raoT1^-1+raoT2^-1)^-1; + Tinterflow=[Tinterflow;raoT]; + raoT1_conv = kcell/Dn^2; + raoT2_conv = Kf(matrixvsfra(i,j))/(Wf(matrixvsfra(i,j))/2)^2; + raoT_convection = (raoT1_conv^-1+raoT2_conv^-1)^-1; + Tinterflow_convection=[Tinterflow_convection;raoT_convection]; + Tinterflow_diff=[Tinterflow_diff;((2*Annc/Dn)^-1+(Annc/(Wf(matrixvsfra(i,j))/2))^-1)^-1;]; + perm_mf_this = kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + perm_interflow = [perm_interflow; perm_mf_this]; + flowArea_interflow = [flowArea_interflow; Annc]; + end + end + if flag >0 + cell_divided_by_fracture_flag = [cell_divided_by_fracture_flag; i]; + end +end +%% 2014ķΪƵʽ +% syms x y z; +% Ninterflow=[]; +% Tinterflow=[]; +% for i=1:nx*ny*nz % +% for j=1:10 +% if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell +% Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3); +% K1=Kf(matrixvsfra(i,j));d1=Wf(matrixvsfra(i,j)); +% K2=kffl(matrixvsfra(i,j));d2=dffl(matrixvsfra(i,j)); +% Annc=2*areavsfra(matrixvsfra(i,j)); +% fracore=corevsfra(matrixvsfra(i,j),:); +% matnodes=nodes(i,:); +% verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); +% matcore=mean(verco);d0=matcore-fracore; +% dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% % dn=abs(dn);%ӰֵЧ +% dn=sqrt(dn^2); +% dn=matlabFunction(dn); +% if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 +% Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(2)~=0 +% Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(3)~=0 +% Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 && norvec(3)~=0 +% Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 +% Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 +% Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(3)~=0 +% Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% end +% end +% end +% end +% end +% end +% end +% raoT=((Kcell*Annc/(Dn-d2))^(-1)+(K2*Annc/d2)^(-1)+(K1*Annc/d1)^(-1))^(-1); +% Tinterflow=[Tinterflow;raoT]; +% end +% end +% end + +%% ľֱ +matrixflag = [ones(size(T,1),1); zeros(size(Tmff,1),1); zeros(size(Tff,1),1); ones(size(Tinterflow,1),1);]; +N = [N; Nmff+nmc; Nff+nmc;Ninterflow;]; +T = [T; Tmff; Tff;Tinterflow;]; +T_convection = [T_convection;Tmff_convection; Tff_convection;Tinterflow_convection;]; +T_diff = [T_diff;Tmff_diff; Tff_diff;Tinterflow_diff;]; +perm = [perm; perm_mff; perm_ff;perm_interflow; ]; +flowArea = [flowArea; flowArea_mff; flowArea_ff;flowArea_interflow;]; +% +% deleted_rows = []; +% for i = 1:size(N,1) +% if ismember(N(i,1),invalid_grids) || ismember(N(i,2),invalid_grids) +% deleted_rows = [deleted_rows; i]; +% end +% end +% N(deleted_rows,:) = []; +% T(deleted_rows,:) = 0; +% T_convection(deleted_rows,:) = 0; +% T_diff(deleted_rows,:) = 0; +% perm(deleted_rows,:) = 0; +% flowArea(deleted_rows,:) = 0; +% nex=size(N,1); +%% תCMGECLIPSEм +% [ Data_for_ECLIPSE ] = pEDFM_to_CMG_horizontalFractureWell(dxv,dyv,dzv,kx,ky,kz,pori,Kf,Wf,vf,porf,N,T); +% [ Data_for_ECLIPSE ] = pEDFM_to_CMG_horizontalFractureWell_net_pay(dxv,dyv,dzv,kx,ky,kz,pori,Kf,Wf,vf,porf,N,T); +end diff --git a/core functions/preprocess/about_grid/connections_PEDFM.m b/core functions/preprocess/about_grid/connections_PEDFM.m new file mode 100644 index 0000000..dd6d2ad --- /dev/null +++ b/core functions/preprocess/about_grid/connections_PEDFM.m @@ -0,0 +1,701 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff] = connections_PEDFM( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,addflag ) +% úԸѷţ洢ӹϵʣǰĹؼ +% ͬڶάǶʽɢѷģͣάģУѷǶάƽ棬֮ӹϵӣ +%ܼ򵥵ôӻжڣѷزڣڣѷȴһ +%ԭȥȷconnectionsȡ· +%һ:xinkȥк󣬰θijѷţͬʱ洢ѷڵĻ +%ڶ:洢ÿѷ߽磬߽糤ȣĵ꣬ĵ㵽߽ľ룬Ϊ׼ +%:ѷ˳򣬰ձ߽ͬı߽磬ѷڵ +%matrixvsfraаѷŵ +%fracnumberűʾѷţݱʾĵ +%areavsfraűʾѷţݱʾѷ +%ÿһߣȻ˳򷴹һ +%lengthvsfraűʾѷţݱʾѷĸ߳ +%corevsfraűʾѷţݱʾѷ +%disvsfraűʾѷţݱʾѷĵߵľ +matrixvsfra=zeros(nx*ny*nz,10);%Ϊ˼ٸþĴСʵһУһ㲻г10ѷ +fracnumber=zeros(1000,20);%ʵѷһ㲻ᳬ1000Ҳɸʵı +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf +rownum(i)=size(fracturemesh{i,1},1); +end +%% ѷһţӸӦĻ +q=1; +fracstart=zeros(nf+1,1);%ʾܱУÿѷʼĺ +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; +for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%qǸѷ + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); +% indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%ѷŸӦĻ + q=q+1; + end +end +end +fracstart(nf+1)=q;%ѷ+1 +fracnumber(q:1000,:)=[]; + + +%% ѷ쵥ԪĻɸѡ,д +m=size(matrixvsfra,1); +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %ɸѡѷĻ +% if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %洢û + connectmf{cc,1} = i; + %Щѷ/ѷ쵥Ԫ˳ + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; +end +end + +%% һѷѷ߽ȵ +% edgevsfra=cell(nf,1); +normalvec=zeros(q-1,3);%unit +areavsfra=zeros(q-1,1);%q-1ѷ +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,10);%ѷ͸ +Wf=zeros(q-1,10);%ѷ쵥Ԫ +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +avtran=zeros(q-1,1);%ѷƽںļ򻯼 +fcinff=zeros(q-1,1);%ʾѷ쵥Ԫڵѷ +zf=zeros(q-1,1);%ѷ쵥Ԫ߶ȣ±Ϊ׼ +vf=zeros(q-1,1);%ѷ쵥Ԫ +porf=zeros(q-1,1);%ѷ쵥ԪĿ϶ +for i=1:1:q-1 %ѷв + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 +for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if Kf(j)==0 || Kf(k)==0 + hartran=0; + else + tran1=Kf(j)*wf(i)*lengthcat/disk; + tran2=Kf(k)*wf(i)*lengthcat/disj; +% hartran=length/(disk+disj);%ȡƽһ + hartran=tran1*tran2/(tran1+tran2); + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 +% lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + if sumtran==0 Tmff=[Tmff; 0]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + end + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% ϵ +nmc=nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +S_ex=zeros(nmm,1);% 彻 + +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +c = 0; +for k= 1 : nz +for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); +% 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)/(Kx(index)*dxv(indexn) + Kx(indexn)*dxv(index)); + S_ex(c)=dzv(index)*dyv(index); + end +end +end + +for k= 1 : nz +for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + S_ex(c)=dzv(index)*dxv(index); + end +end +end + +for i = 1 : nx +for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + S_ex(c)=dxv(index)*dyv(index); + end +end +end + + + + +%% 2014ķΪƵʽ +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +for i=1:nx*ny*nz % + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + Knnc=kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=areavsfra(matrixvsfra(i,j));% ˴ԭʼǶʽһԭʼ + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% dn=abs(dn);%ӰֵЧ + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + % Ϊ޸ +% Dn=0.9; +% Dn=2.5; + Dn=dxv(i)/2; + raoT=Knnc*Annc/Dn; + Tinterflow=[Tinterflow;raoT]; + end + end +end + +%% ͶӰǶʽ +nmc = size(matrixvsfra,1); +%彻ϵѷ쵥ԪͶӰ֮ +S_p=zeros(nmm,1); +% ΪͶӰ¼ӵF-M connections +Nmf_projection=[]; +Tmf_projection=[]; +for i=1:nmc + matnodes=nodes(i,:); + dx_grid=dxv(i); + dy_grid=dyv(i); + dz_grid=dzv(i); + grid_core=mean(coord(matnodes,:));%û + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>=1) %Ƚn=1ʱ + selected_face=zeros(1,3); + the_frac_cells=matrixvsfra(i,indice);%ѷ쵥Ԫ + for haihaihai = 1:length(the_frac_cells) + the_frac_cell = the_frac_cells(haihaihai); + which_frac=fcff{1,2}(the_frac_cell,1);%ѷ쵥Ԫڵѷ + core_frac_cell=fcff{1,4}(the_frac_cell,1:3);%ѷ쵥Ԫ + area_frac_cell=fcff{1,8}(the_frac_cell,1);%ѷ쵥Ԫ + rao_struct=[i,the_frac_cell+nmc]; + pos_rao=find_row(rao_struct,Ninterflow); + D_value=core_frac_cell-grid_core;% OF + vector_1=f(5*which_frac-3,:); + vector_2=f(5*which_frac-2,:); + n_vector_1=cross(vector_1,vector_2); + n_vector_2=-cross(vector_1,vector_2); + if (dot(n_vector_1,D_value))>=0 + n_vector=n_vector_1; + else + n_vector=n_vector_2; + end + %ѷ淨 + % xͶӰ + area_frac_cell_x=abs(area_frac_cell*dot([1,0,0],n_vector)/norm(n_vector)); + area_frac_cell_y=abs(area_frac_cell*dot([0,1,0],n_vector)/norm(n_vector)); + area_frac_cell_z=abs(area_frac_cell*dot([0,0,1],n_vector)/norm(n_vector)); +% %% Ϊvalid case޸ +% area_frac_cell_x=10*10; +% area_frac_cell_y=10*10; +% area_frac_cell_z=10*10; + %ѷط΢СƽƣʱٰվԭжϣԱ֤õ + new_core=core_frac_cell+1e-4*n_vector; + % ѷ쵥Ԫڻĵʸ + %x direction + D_value_new=new_core-grid_core; + if D_value_new(1)<=0 + selected_face(1)=3;nei_grid_x=i-1; + else selected_face(1)=4; nei_grid_x=i+1; + end +%% ----------------------% ΪʵpEDFMΪӴ-------------------------------------- + % ΪʵpEDFMΪӴ +% selected_face(1)=4; nei_grid_x=i+1; +%% ----------------------% Ϊ--------------------------------------------------------------- + struc_x=[i,nei_grid_x]; + pos=find_row(struc_x,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_x; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_x)*ky(nei_grid_x)*kz(nei_grid_x))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_x,:); + nei_grid_core=mean(coord(added_matnodes,:));%û +% Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ +% dis_added=norm(nei_grid_core-core_frac_cell); +% T_added=Knnc*area_frac_cell_x/dis_added; + % һַʽ㼸 +% dis_added=norm(nei_grid_core-core_frac_cell); + dis_added=abs(sum((nei_grid_core-core_frac_cell).*[1,0,0],2)); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_x/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + T_added=1/(1/Geofnei+1/Geof); +% T_added=1/(1/Geofnei+1/Geofcell+1/Geof); +% T_added=1/(1/Geofcell+1/Geof); +% T_added=0;% +% T_added=0;% +% T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_x,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + end + + %y direction + if D_value_new(2)<=0 + selected_face(2)=2;nei_grid_y=i-nx; + else selected_face(2)=5;nei_grid_y=i+nx; + end +%% ----------------------% ΪʵpEDFMΪӴ-------------------------------------- + % ΪʵpEDFMΪӴ +% selected_face(2)=5; nei_grid_y=i+nx; +%% ----------------------% Ϊ--------------------------------------------------------------- + struc_y=[i,nei_grid_y]; + pos=find_row(struc_y,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_y; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_y)*ky(nei_grid_y)*kz(nei_grid_y))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_y,:); + nei_grid_core=mean(coord(added_matnodes,:));%û +% Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ +% dis_added=norm(nei_grid_core-core_frac_cell); +% T_added=Knnc*area_frac_cell_y/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_y/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); +% T_added=0;% +% T_added=0.002;% +% T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_y,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + end + + + % z direction + if D_value_new(3)<=0 + selected_face(3)=1;nei_grid_z=i-nx*ny; + else selected_face(3)=6;nei_grid_z=i+nx*ny; + end +%% ----------------------% ΪʵpEDFMΪӴ-------------------------------------- + % ΪʵpEDFMΪӴ + selected_face(3)=6;nei_grid_z=i+nx*ny; +%% ----------------------% Ϊ--------------------------------------------------------------- +% nei_grid_z=i-nx*ny; + struc_z=[i,nei_grid_z]; + pos=find_row(struc_z,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_z; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_z)*ky(nei_grid_z)*kz(nei_grid_z))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_z,:); + nei_grid_core=mean(coord(added_matnodes,:));%û +% Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ +% dis_added=norm(nei_grid_core-core_frac_cell); +% T_added=Knnc*area_frac_cell_z/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_z/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); +% T_added=0;% +% T_added=0.0;% +% T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_z,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + end +% %% ӵ +% if D_value_new(1)>0 +% selected_face(1)=3;nei_grid_x=i-1; +% else selected_face(1)=4; nei_grid_x=i+1; +% end +% struc_x=[i,nei_grid_x]; +% pos=find_row(struc_x,N); +% if size(pos,1)==1 %˵ҪĴϵ +% S_p(pos)=S_p(pos)+area_frac_cell_x; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ +% knei=(kx(nei_grid_x)*ky(nei_grid_x)*kz(nei_grid_x))^(1/3);%Ǹ͸ +% added_matnodes=nodes(nei_grid_x,:); +% nei_grid_core=mean(coord(added_matnodes,:));%û +% % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ +% % dis_added=norm(nei_grid_core-core_frac_cell); +% % T_added=Knnc*area_frac_cell_x/dis_added; +% % һַʽ㼸 +% dis_added=norm(nei_grid_core-core_frac_cell); +% if Kf(the_frac_cell)==0 +% T_added=0; +% else +% % ѷ쵥Ԫ +% Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); +% % ڻѷ쵥Ԫ +% Geofnei=knei*area_frac_cell_x/dis_added; +% % ûѷ쵥Ԫ +% Geofcell=Tinterflow(pos_rao,1); +% +% T_added=1/(1/Geofnei+1/Geofcell+1/Geof); +% % T_added=0;% +% % T_added=0;% +% % T_added=0.0039604;% +% end +% Nmf_projection=[Nmf_projection;nei_grid_x,the_frac_cell+nmc]; +% Tmf_projection=[Tmf_projection;T_added]; +% end +% +% %y direction +% if D_value_new(2)>0 +% selected_face(1)=2;nei_grid_y=i-nx; +% else selected_face(1)=5;nei_grid_y=i+nx; +% end +% struc_y=[i,nei_grid_y]; +% pos=find_row(struc_y,N); +% if size(pos,1)==1 %˵ҪĴϵ +% S_p(pos)=S_p(pos)+area_frac_cell_y; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ +% knei=(kx(nei_grid_y)*ky(nei_grid_y)*kz(nei_grid_y))^(1/3);%Ǹ͸ +% added_matnodes=nodes(nei_grid_y,:); +% nei_grid_core=mean(coord(added_matnodes,:));%û +% % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ +% % dis_added=norm(nei_grid_core-core_frac_cell); +% % T_added=Knnc*area_frac_cell_y/dis_added; +% % һַʽ㼸 +% dis_added=norm(nei_grid_core-core_frac_cell); +% if Kf(the_frac_cell)==0 +% T_added=0; +% else +% % ѷ쵥Ԫ +% Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); +% % ڻѷ쵥Ԫ +% Geofnei=knei*area_frac_cell_y/dis_added; +% % ûѷ쵥Ԫ +% Geofcell=Tinterflow(pos_rao,1); +% +% T_added=1/(1/Geofnei+1/Geofcell+1/Geof); +% % T_added=0;% +% % T_added=0.002;% +% % T_added=0.0039604;% +% end +% Nmf_projection=[Nmf_projection;nei_grid_y,the_frac_cell+nmc]; +% Tmf_projection=[Tmf_projection;T_added]; +% end +% +% +% % z direction +% if D_value_new(3)>0 +% selected_face(1)=1;nei_grid_z=i-nx*ny; +% else selected_face(1)=6;nei_grid_z=i+nx*ny; +% end +% % nei_grid_z=i-nx*ny; +% struc_z=[i,nei_grid_z]; +% pos=find_row(struc_z,N); +% if size(pos,1)==1 %˵ҪĴϵ +% S_p(pos)=S_p(pos)+area_frac_cell_z; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ +% knei=(kx(nei_grid_z)*ky(nei_grid_z)*kz(nei_grid_z))^(1/3);%Ǹ͸ +% added_matnodes=nodes(nei_grid_z,:); +% nei_grid_core=mean(coord(added_matnodes,:));%û +% % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ +% % dis_added=norm(nei_grid_core-core_frac_cell); +% % T_added=Knnc*area_frac_cell_z/dis_added; +% % һַʽ㼸 +% dis_added=norm(nei_grid_core-core_frac_cell); +% if Kf(the_frac_cell)==0 +% T_added=0; +% else +% % ѷ쵥Ԫ +% Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); +% % ڻѷ쵥Ԫ +% Geofnei=knei*area_frac_cell_z/dis_added; +% % ûѷ쵥Ԫ +% Geofcell=Tinterflow(pos_rao,1); +% +% T_added=1/(1/Geofnei+1/Geofcell+1/Geof); +% % T_added=0;% +% % T_added=0.0;% +% % T_added=0.0039604;% +% end +% Nmf_projection=[Nmf_projection;nei_grid_z,the_frac_cell+nmc]; +% Tmf_projection=[Tmf_projection;T_added]; +% end + + + end + end + end +end +%% ӵĸĽ +im_N=[]; +im_T=[]; +% q=length(Kf)+1; +% for i=1:(q-1)/2%q-1ѷ쵥Ԫ +% for j=(q-1)/2+1:(q-1) +% if abs(corevsfra(j,1)-corevsfra(i,1))<=1e-2 +% im_N=[im_N;i+nmc,j+nmc]; +% % im_T=[im_T;0]; +% im_T=[im_T;0.0039604]; +% % im_T=[im_T;(((Kf(i))^(-1)+(1e-3)^(-1)+(1e-3)^(-1)+(Kf(j))^(-1))/4)^(-1)*2*2/0.4]; +% % +% end +% end +% end +%% ͶӰ䴫 +for i=1:nmm + % Ϊֵûס + if (S_ex(i)-S_p(i))/S_ex(i)<=1e-2 + T(i)=0; + else + T(i)= T(i)*(S_ex(i)-S_p(i))/S_ex(i); + end +end +%% ľֱ +N = [N; Nmff+nmc; Nff+nmc;Ninterflow;Nmf_projection;im_N]; +T = [T; Tmff; Tff;Tinterflow;Tmf_projection;im_T]; +% N = [N; Nmff+nmc; Nff+nmc;Ninterflow;Nmf_projection]; +% T = [T; Tmff; Tff;Tinterflow;Tmf_projection]; +nex=size(N,1); +end diff --git a/core functions/preprocess/about_grid/connections_unstructured_EDFM.m b/core functions/preprocess/about_grid/connections_unstructured_EDFM.m new file mode 100644 index 0000000..3b4cebb --- /dev/null +++ b/core functions/preprocess/about_grid/connections_unstructured_EDFM.m @@ -0,0 +1,495 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag] = connections_unstructured_EDFM( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,addflag ) +% úԸѷţ洢ӹϵʣǰĹؼ +% ͬڶάǶʽɢѷģͣάģУѷǶάƽ棬֮ӹϵӣ +%ܼ򵥵ôӻжڣѷزڣڣѷȴһ +%ԭȥȷconnectionsȡ· +%һ:xinkȥк󣬰θijѷţͬʱ洢ѷڵĻ +%ڶ:洢ÿѷ߽磬߽糤ȣĵ꣬ĵ㵽߽ľ룬Ϊ׼ +%:ѷ˳򣬰ձ߽ͬı߽磬ѷڵ +%matrixvsfraаѷŵ +%fracnumberűʾѷţݱʾĵ +%areavsfraűʾѷţݱʾѷ +%ÿһߣȻ˳򷴹һ +%lengthvsfraűʾѷţݱʾѷĸ߳ +%corevsfraűʾѷţݱʾѷ +%disvsfraűʾѷţݱʾѷĵߵľ +matrixvsfra=zeros(nx*ny*nz,10);%Ϊ˼ٸþĴСʵһУһ㲻г10ѷ +fracnumber=zeros(1000,20);%ʵѷһ㲻ᳬ1000Ҳɸʵı +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf +rownum(i)=size(fracturemesh{i,1},1); +end +%% ѷһţӸӦĻ +q=1; +fracstart=zeros(nf+1,1);%ʾܱУÿѷʼĺ +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; +for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%qǸѷ +% m=floor((i+(2^nf)-1)/(2^nf)); + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); +% indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%ѷŸӦĻ + q=q+1; + end +end +end +fracstart(nf+1)=q;%ѷ+1 +fracnumber(q:1000,:)=[]; + + +%% ѷ쵥ԪĻɸѡ,д +m=size(matrixvsfra,1); +mat_frac=[]; +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %ɸѡѷĻ +% if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %洢û + connectmf{cc,1} = i; + mat_frac=[mat_frac;i]; + %Щѷ/ѷ쵥Ԫ˳ + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; +end +end + +%% һѷѷ߽ȵ +% edgevsfra=cell(nf,1); +% Kffl=funtion_data.Kffl; +% Dffl=funtion_data.Dffl; +% kffl=zeros(q-1,1); +% dffl=zeros(q-1,1); +normalvec=zeros(q-1,3);%unit +areavsfra=zeros(q-1,1);%q-1ѷ +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,10);%ѷ͸ +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +avtran=zeros(q-1,1);%ѷƽںļ򻯼 +ave_disvsfra=zeros(q-1,1); +fcinff=zeros(q-1,1);%ʾѷ쵥Ԫڵѷ +zf=zeros(q-1,1);%ѷ쵥Ԫ߶ȣ±Ϊ׼ +vf=zeros(q-1,1);%ѷ쵥Ԫ +porf=zeros(q-1,1);%ѷ쵥ԪĿ϶ +for i=1:1:q-1 %ѷв + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 +for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if kf(i)==0 hartran=0;hartran_convection=0; + else + tran1=kf(i)*wf(i)*lengthcat/disk; + tran2=kf(i)*wf(i)*lengthcat/disj; +% hartran=length/(disk+disj);%ȡƽ + hartran=tran1*tran2/(tran1+tran2); + k_harmony= kf(i); + hartran_convection=kf(i)/(disk+disj)^2; + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + Tff_convection=[Tff_convection;hartran_convection]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +Tff_convection(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +Tmff_convection=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 +% lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + if sumtran==0 Tmff=[Tmff; 0];Tmff_convection=[Tmff_convection;0]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + end + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +Tmff_convection(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% ϵ +nmc=nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +T_convection = zeros(nmm, 1); +c = 0; +for k= 1 : nz +for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); + T_convection(c) = 2/(1/Kx(index)+1/Kx(indexn))/(dxv(indexn)+dxv(index)); + end +end +end + +for k= 1 : nz +for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + T_convection(c) = 2/(1/Ky(index)+1/Ky(indexn))/(dyv(indexn)+dyv(index)); + end +end +end + +for i = 1 : nx +for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + T_convection(c) = 2/(1/Kz(index)+1/Kz(indexn))/(dzv(indexn)+dzv(index)); + end +end +end +%% 2014ķΪƵʽ +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +Tinterflow_convection=[]; +matrix_cells_containing_fracture_cells = []; +for i=1:nx*ny*nz % + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + matrix_cells_containing_fracture_cells = [matrix_cells_containing_fracture_cells; i]; + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + Knnc=kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=2*areavsfra(matrixvsfra(i,j)); + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% dn=abs(dn);%ӰֵЧ + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + raoT=Knnc*Annc/Dn; + raoT_convection=2*Knnc/Dn^2; + Tinterflow=[Tinterflow;raoT]; + Tinterflow_convection=[Tinterflow_convection;raoT_convection]; + end + end +end +%% ⴦˴δͨûдһչ +nfc=size(fracnumber,1); +the_added_matrix_cells = []; +nmc=nx * ny*nz; +the_added_mf_connec = []; +the_added_mf_T = []; +number_of_adding = 0; +cell_divided_by_fracture_flag = matrix_cells_containing_fracture_cells; +for i = 1:size(matrix_cells_containing_fracture_cells,1) + the_matrix_cell = matrix_cells_containing_fracture_cells(i,1); + number_of_adding = number_of_adding+1; + the_new_cell = number_of_adding+nmc; + the_added_matrix_cells = [the_added_matrix_cells; the_new_cell]; + % m-m + for j = 1:size(N,1) + if N(j,1) == the_matrix_cell + if N(j,2) == the_matrix_cell+1 + N(j,1) = the_new_cell; T(j) = ... + ((Kx(the_matrix_cell)*dzv(the_matrix_cell)*dyv(the_matrix_cell)/(dxv(the_matrix_cell)/3))^(-1)+(Kx(the_matrix_cell+1)*dzv(the_matrix_cell+1)*dyv(the_matrix_cell+1)/(dxv(the_matrix_cell+1)/2))^(-1))^(-1); + end + if N(j,2) == the_matrix_cell-nx + N(j,1) = the_new_cell; T(j) = ... + ((Ky(the_matrix_cell)*dzv(the_matrix_cell)*dxv(the_matrix_cell)/(dyv(the_matrix_cell)/3))^(-1)+(Ky(the_matrix_cell-n)*dzv(the_matrix_cell-n)*dxv(the_matrix_cell-n)/(dxv(the_matrix_cell-n)/2))^(-1))^(-1); + end + end + if N(j,2) == the_matrix_cell + if N(j,1) == the_matrix_cell+1 + N(j,2) = the_new_cell; T(j) = ... + ((Kx(the_matrix_cell)*dzv(the_matrix_cell)*dyv(the_matrix_cell)/(dxv(the_matrix_cell)/3))^(-1)+(Kx(the_matrix_cell+1)*dzv(the_matrix_cell+1)*dyv(the_matrix_cell+1)/(dxv(the_matrix_cell+1)/2))^(-1))^(-1); + end + if N(j,1) == the_matrix_cell-nx + N(j,2) = the_new_cell; T(j) = ... + ((Ky(the_matrix_cell)*dzv(the_matrix_cell)*dxv(the_matrix_cell)/(dyv(the_matrix_cell)/3))^(-1)+(Ky(the_matrix_cell-n)*dzv(the_matrix_cell-n)*dxv(the_matrix_cell-n)/(dxv(the_matrix_cell-n)/2))^(-1))^(-1); + end + end + end +end +Ninterflow(:,2) = Ninterflow(:,2)+ number_of_adding; +ori_nmc = nmc; +nmc = ori_nmc +number_of_adding; +% m-f +number_of_adding = 0; +for i = 1:size(matrix_cells_containing_fracture_cells,1) + the_matrix_cell = matrix_cells_containing_fracture_cells(i,1); + number_of_adding = number_of_adding+1; + the_new_cell = number_of_adding+ori_nmc; +for j = 1:size(Ninterflow,1) + if Ninterflow(j,1) == the_matrix_cell + the_added_mf_connec = [the_added_mf_connec;the_new_cell,Ninterflow(j,2)]; + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2]; + Tinterflow(j) = Tinterflow(j)/2; + end +end +end +Ninterflow = [Ninterflow; the_added_mf_connec]; +Tinterflow = [Tinterflow; the_added_mf_T]; +%% 2014ķΪƵʽ +% syms x y z; +% Ninterflow=[]; +% Tinterflow=[]; +% for i=1:nx*ny*nz % +% for j=1:10 +% if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell +% Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3); +% K1=Kf(matrixvsfra(i,j));d1=Wf(matrixvsfra(i,j)); +% K2=kffl(matrixvsfra(i,j));d2=dffl(matrixvsfra(i,j)); +% Annc=2*areavsfra(matrixvsfra(i,j)); +% fracore=corevsfra(matrixvsfra(i,j),:); +% matnodes=nodes(i,:); +% verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); +% matcore=mean(verco);d0=matcore-fracore; +% dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% % dn=abs(dn);%ӰֵЧ +% dn=sqrt(dn^2); +% dn=matlabFunction(dn); +% if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 +% Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(2)~=0 +% Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(3)~=0 +% Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 && norvec(3)~=0 +% Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 +% Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 +% Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(3)~=0 +% Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% end +% end +% end +% end +% end +% end +% end +% raoT=((Kcell*Annc/(Dn-d2))^(-1)+(K2*Annc/d2)^(-1)+(K1*Annc/d1)^(-1))^(-1); +% Tinterflow=[Tinterflow;raoT]; +% end +% end +% end + +%% ľֱ +N = [N; Nmff+nmc; Nff+nmc;Ninterflow;]; +T = [T; Tmff; Tff;Tinterflow;]; +T_convection = [T_convection;Tmff_convection; Tff_convection;Tinterflow_convection;]; +nex=size(N,1); +end diff --git a/core functions/preprocess/about_grid/frac_cross_frac.m b/core functions/preprocess/about_grid/frac_cross_frac.m new file mode 100644 index 0000000..8d204eb --- /dev/null +++ b/core functions/preprocess/about_grid/frac_cross_frac.m @@ -0,0 +1,185 @@ +function [ crossp,tmax,tmin ] = frac_cross_frac( f1,f2 ) +%f1,f2ѷ죬fʾ5*3ǰÿһбʾһзֱķΧ +%ԾηΪÿѷΪһ飬[a0;a1;a2;umin,umax,vmin,vmax],ͷ죬Ԫ洢аMATLABfunction +%ѷѷཻһ߶Σֻཻһ㣬Ϊѷ޴ +%ཻ߶εķ̲ףΪѷ״ĶòȼѰཻ㣨x1,y1,z1),x2,y2,z2) +%ȷ߶ֱߵIJ̣r=x1,y1,z1)+t*x2-x1,y2-y1,z2-z1),ֻȷtķΧ +%ʹtڽϴΧڵȼõֱӦѷIJȡֵжǷѷ״õIJΧڣǣȷ˸ཻ߶εľλá +%[ cross,tmax,tmin ] = frac_cross_frac( [0.5,0,0;1,1,0;0,0,1;0,6,0;0,7,0],[5,0,0;-1,1,0;0,0,1;0,6,0;0,5,0] ) +a0=f1(1,:);a1=f1(2,:);a2=f1(3,:); +u1min=f1(4,1);u1max=f1(4,2);v1min=f1(5,1);v1max=f1(5,2); +b0=f2(1,:);b1=f2(2,:);b2=f2(3,:); +u2min=f2(4,1);u2max=f2(4,2);v2min=f2(5,1);v2max=f2(5,2); +n=1; +crossp=[]; +tmax=0;tmin=0; +n1=cross(a1,a2);%һѷ淨 +n2=cross(b1,b2);%ڶѷ淨 +flag=0;% 0ʾb1ֱн㣬1ʾb1û +if (norm(f1-f2)~=0) && (norm(cross(n1,n2))~=0) %ȷڽ +% ֱb1,b2ֱȥ󽻵㣬֮ǰжϸֱǷѷƽУʱ޽ +%b1ֱ: r=u2*b1+b0; +%ѷ: r=a0+u1*a1+v1*a2; i.e., a0+u1*a1+v1*a2=u2*b1+b0 u1*a1+v1*a2-u2*b1=b0-a0 obtain three +%closed linear equations +coe=[a1(1) a2(1) -b1(1); + a1(2) a2(2) -b1(2); + a1(3) a2(3) -b1(3);]; +bv=[b0(1)-a0(1);b0(2)-a0(2);b0(3)-a0(3);]; +if abs(det(coe))<=1e-8 %޽ +else + solution1=coe\bv; + crossp=[crossp;a0+solution1(1)*a1+solution1(2)*a2;]; + n=n+1; +%b1ֱb2ƽһ: r=u2*b1+b2+b0; +%ѷ: r=a0+u1*a1+v1*a2; i.e., a0+u1*a1+v1*a2=u2*b1+b0 u1*a1+v1*a2-u2*b1=b0-a0 obtain three +%closed linear equations +bv=[b2(1)+b0(1)-a0(1);b2(2)+b0(2)-a0(2);b2(3)+b0(3)-a0(3);]; +solution2=coe\bv; +crossp=[crossp;a0+solution2(1)*a1+solution2(2)*a2;]; +n=n+1; +end +end + + +%b2ֱ: r=u2*b2+b0; +coe=[a1(1) a2(1) -b2(1); + a1(2) a2(2) -b2(2); + a1(3) a2(3) -b2(3);]; +bv=[b0(1)-a0(1);b0(2)-a0(2);b0(3)-a0(3);]; +if abs(det(coe))<=1e-8 %޽ +else + flag=1; + solution1=coe\bv; + crossp=[crossp;a0+solution1(1)*a1+solution1(2)*a2;]; + n=n+1; + %b2ֱb1ƽһ: r=u2*b2+b1+b0; + bv=[b1(1)+b0(1)-a0(1);b1(2)+b0(2)-a0(2);b1(3)+b0(3)-a0(3);]; + solution2=coe\bv; + crossp=[crossp;a0+solution2(1)*a1+solution2(2)*a2;]; + n=n+1; +end + +if (n<3) crossp=zeros(2,3);tmax=0;tmin=0; +else + crossp=crossp(1:2,:); +vertex_1=[a0+u1min*a1+v1min*a2; +a0+u1min*a1+v1max*a2; +a0+u1max*a1+v1max*a2; +a0+u1max*a1+v1min*a2; +a0+u1min*a1+v1min*a2;]; +vertex_2=[b0+u2min*b1+v2min*b2; +b0+u2min*b1+v2max*b2; +b0+u2max*b1+v2max*b2; +b0+u2max*b1+v2min*b2; +b0+u2min*b1+v2min*b2;]; + +% ýѷĽ +t1=[];%ѷ1ʱtȡֵ +t2=[];%ѷ2ʱtȡֵ +%% ѷ1ϼ +for i=1:4 + k1=vertex_1(i+1,:)-vertex_1(i,:);%͹߶б + k2=crossp(2,:)-crossp(1,:); +% if (((dot(k1,k2)/ norm(k1) / norm(k2))==1)||((dot(k1,k2)/ norm(k1) / norm(k2))==-1))%߿϶ + if (abs(abs(dot(k1,k2)/ norm(k1) / norm(k2))-1)<=1e-3)%߿϶ + continue; + else + A=[crossp(2,1)-crossp(1,1),vertex_1(i,1)-vertex_1(i+1,1); + crossp(2,2)-crossp(1,2),vertex_1(i,2)-vertex_1(i+1,2); + crossp(2,3)-crossp(1,3),vertex_1(i,3)-vertex_1(i+1,3);]; + b=[vertex_1(i,1)-crossp(1,1); + vertex_1(i,2)-crossp(1,2); + vertex_1(i,3)-crossp(1,3)]; + if abs(det(A'*A))<1e-8 + end + para=A\b; +% if((para(2)>=0.999)||(para(2)<0)||(para(1)>tmax)||(para(1)=0.999)||(para(2)<0) continue;%ȡ߶Σ߶˵㣬Ҳ˵㣬ɴ + % ʾȷѷ߽ + else + t1=[t1;para(1)]; + end + end +end + +%% ѷ2ϵļ +for i=1:4 + k1=vertex_2(i+1,:)-vertex_2(i,:);%͹߶б + k2=crossp(2,:)-crossp(1,:); +% if (((dot(k1,k2)/ norm(k1) / norm(k2))==1)||((dot(k1,k2)/ norm(k1) / norm(k2))==-1))%߿϶ + if (abs(abs(dot(k1,k2)/ norm(k1) / norm(k2))-1)<=1e-3)%߿϶ + continue; + else + A=[crossp(2,1)-crossp(1,1),vertex_2(i,1)-vertex_2(i+1,1); + crossp(2,2)-crossp(1,2),vertex_2(i,2)-vertex_2(i+1,2); + crossp(2,3)-crossp(1,3),vertex_2(i,3)-vertex_2(i+1,3);]; + b=[vertex_2(i,1)-crossp(1,1); + vertex_2(i,2)-crossp(1,2); + vertex_2(i,3)-crossp(1,3)]; + if abs(det(A'*A))<1e-8 + end + para=A\b; +% if((para(2)>=0.999)||(para(2)<0)||(para(1)>tmax)||(para(1)=0.999)||(para(2)<0) continue;%ȡ߶Σ߶˵㣬Ҳ˵㣬ɴ + % ʾȷѷ߽ + else + t2=[t2;para(1)]; + end + end +end + +if length(t1)>2 || length(t2)>2 + error('Dr Rao reminds you to check the existing error carefully'); +elseif length(t1)<2 || length(t2)<2 || max(t1)<=min(t2) || max(t2)<=min(t1) %޹߲ + crossp=zeros(2,3);tmax=0;tmin=0; +else + kitty=[t1;t2]; + kitty=sort(kitty); + tmin=kitty(2);tmax=kitty(3); +end + + + + + +% if flag==0 %b1ֱ߼ѷϵIJȡֵΧ +% A1=[a1(1),a2(1); +% a1(2),a2(2); +% a1(3),a2(3)]; +% A2=[b1(1),b2(1); +% b1(2),b2(2); +% b1(3),b2(3)]; +% B1=crossp(1,:)-a0; +% B2=crossp(1,:)-b0; +% s1=A1\B1'; +% s2=A2\B2'; +% if((s1(1)>u1max)||(s1(1)v1max)||(s1(2)u2max)||(s2(1)v2max)||(s2(2)u1max)||(s1(1)v1max)||(s1(2)u2max)||(s2(1)v2max)||(s2(2)u1max)||(s1(1)v1max)||(s1(2)u2max)||(s2(1)v2max)||(s2(2)=1)||(para(2)<0)||(para(1)>tmax)||(para(1)raodu) raovector2(q)=mod(raovector2(q),raodu); + end + end + rao2=[f+crossnum(2),k(i,raovector2),f+crossnum(1),f+crossnum(2)]; + if(norm(anothersection(f+crossnum(1),:)-anothersection(indice(1),:))==0&&norm(anothersection(f+crossnum(2),:)==anothersection(indice(2),:))==0) + rao1=[indice(1),k(i,(indice(1)+1):1:indice(2)),indice(1)]; + rao2=[indice(2),k(i,raovector2),indice(2)]; + end + if(norm(anothersection(f+crossnum(1),:)-anothersection(indice(1),:))==0&&norm(anothersection(f+crossnum(2),:)-anothersection(indice(2),:))~=0) + rao1=[indice(1),k(i,(indice(1)+1):1:indice(2)),f+crossnum(2),indice(1)]; + rao2=[f+crossnum(2),k(i,raovector2),f+crossnum(2)]; + end + if(norm(anothersection(f+crossnum(1),:)-anothersection(indice(1),:))~=0&&norm(anothersection(f+crossnum(2),:)-anothersection(indice(2),:))==0) + rao1=[f+crossnum(1),k(i,(indice(1)+1):1:indice(2)),f+crossnum(1)]; + rao2=[indice(2),k(i,raovector2),f+crossnum(1),indice(2)]; + end + p=size(rao1,2);q=size(rao2,2); + xink(2*i-1,1:p)=rao1; xink(2*i,1:q)=rao2; + %raoindice=find(k(i)~=0); +% raodu=size(raodice,2)-1; +% rao1=indice(1):1:indice(2);rao1=[rao1,indice(1)]; +% rao2=indice(2):1:(indice(1)+raodu);rao2=[rao2,indice(2)]; +% rao2=mod(rao2,raodu); +% p=size(rao1,2);q=size(rao2,2); +% xink(2*i-1,1:p)=k(i,rao1); xink(2*i,1:q)=k(i,rao2); + end + end +end +%µѷʷxinkγɣxinkԪؼd3intersectionеʵʵĵ +% for i=1:1:2*n +% indice=find(xink(i,:)); +% if(size(indice,2)==0) continue; +% else +% point=xink(i,indice)'; +% u=anothersection(point,1); +% v=anothersection(point,2); +% dt=DelaunayTri(u,v); +% %triplot(d,anothersection(1,:),anothersection(2,:)); +% k1 = convexHull(dt);%k1ҳȼkһ +% plot(u,v, '.', 'markersize',10); hold on; +% plot(u,v, 'r'); +% end +% end +% hold off; +end +% meshrao=[]; +% n=size(xink,1); +% for i=1:n +% a=xink(i,:); +% if(norm(a)~=0) +% meshrao=[meshrao;a]; +% end +% end +% xink=meshrao; +% +%xink(i,1:7)=k(i,:); xink(i,10)=i; + + +end + + diff --git a/core functions/preprocess/about_grid/frac_frac_mesh_modified.m b/core functions/preprocess/about_grid/frac_frac_mesh_modified.m new file mode 100644 index 0000000..b69e51e --- /dev/null +++ b/core functions/preprocess/about_grid/frac_frac_mesh_modified.m @@ -0,0 +1,206 @@ +function [ xink,d3intersection,anothersection,add_flag ]= frac_frac_mesh_modified(xrao,yrao,zrao,k, t0,t1,t2,cross,tmax,tmin,d3intersection,anothersection,numvspoint,numofmesh ) +%FRA_FRA_MESH ˴ʾйش˺ժҪ +%ѷཻһѷɵ +%d3intersectionѷ߽x,y,zֵдţx,y,z +%anothersectionѷ߽ĸѷu,vֵдţһuڶv +%numvspointѷ߽ľбʾĻ˳ţ +%бʾÿаĽӦе +%numofmeshǰĻţһ +%crossʾȷһѷѷཻ߶ϵ㣬ÿһдһά +%tmaxʾཻ߶ȡֵ +%tminʾཻ߶ȡСֵ + +%һжÿĽ㹹ɵ͹ε˳ +%Ҫѷƽϸݲu,vȡֵdelaunaytriconvexhullõ +%ά꣬Щ㹲棬delaunaytri޷ +%% ѷѷ콻ӵѷƽʷֵ +%ѷѷཻ߲ûȫ͸һʱΪ񲻱ཻʷ +%һ洢ٴʷֵΪ10 +%ʼΪ2*size(k,1)ʹ㹻ռ +n=size(k,1); +z=size(k,2); +% xink=zeros(2*n,z+2); +% xink=sparse(2*n,z+2); +add_flag=0; +if(norm(cross)==0) %Ϊ˱ǰ +% for i=1:n +% xink(2*i-1,1:z)=k(i,:); +% end +xink=k; +else + add_flag=1; + xink=zeros(2*n,z+2); +% [WO,~]=find(cross(:,1)>max(xrao)); +% [dao,~]=find(cross(:,2)>max(yrao)); +% [di,~]=find(cross(:,3)>max(zrao)); +% [gai,~]=find(cross(:,1)=0.999)||(para(2)<0)||(para(1)>tmax)||(para(1)raodu) raovector2(q)=mod(raovector2(q),raodu); + end + end + rao2=[f+crossnum(2),k(i,raovector2),f+crossnum(1),f+crossnum(2)]; + if norm(anothersection(f+crossnum(1),:)-anothersection(k(i,(indice(1))),:))<=1e-5&&norm(anothersection(f+crossnum(2),:)-anothersection(k(i,(indice(2))),:))<=1e-5 + rao1=[k(i,indice(1)),k(i,(indice(1)+1):1:indice(2)),k(i,indice(1))]; + rao2=[k(i,indice(2)),k(i,raovector2),k(i,indice(2))]; + end + if norm(anothersection(f+crossnum(1),:)-anothersection(k(i,(indice(1))),:))<=1e-5 &&norm(anothersection(f+crossnum(2),:)-anothersection(k(i,(indice(2))),:))>=1e-5 + rao1=[k(i,indice(1)),k(i,(indice(1)+1):1:indice(2)),f+crossnum(2),k(i,indice(1))]; + rao2=[f+crossnum(2),k(i,raovector2),f+crossnum(2)]; + end + if(norm(anothersection(f+crossnum(1),:)-anothersection(k(i,(indice(1))),:))>=1e-5&&norm(anothersection(f+crossnum(2),:)-anothersection(k(i,(indice(2))),:))<=1e-5) + rao1=[f+crossnum(1),k(i,(indice(1)+1):1:indice(2)),f+crossnum(1)]; + rao2=[k(i,indice(2)),k(i,raovector2),f+crossnum(1),k(i,indice(2))]; + end + p=size(rao1,2);q=size(rao2,2); + xink(2*i-1,:)=zeros(1,z+2); + xink(2*i-1,1:p)=rao1; xink(2*i,1:q)=rao2; + %raoindice=find(k(i)~=0); +% raodu=size(raodice,2)-1; +% rao1=indice(1):1:indice(2);rao1=[rao1,indice(1)]; +% rao2=indice(2):1:(indice(1)+raodu);rao2=[rao2,indice(2)]; +% rao2=mod(rao2,raodu); +% p=size(rao1,2);q=size(rao2,2); +% xink(2*i-1,1:p)=k(i,rao1); xink(2*i,1:q)=k(i,rao2); + end + end +end + +%% ȥظĵ +% dai=size(xink,1); +% for i=1:dai +% hui=unique(xink(i,:)); +% xink(i,:)=zeros(1,z+2); +% if length(hui)>2 +% xink(i,1:length(hui))=hui;xink(i,1)=xink(i,length(hui)); +% end +% end + +%µѷʷxinkγɣxinkԪؼd3intersectionеʵʵĵ +% for i=1:1:2*n +% indice=find(xink(i,:)); +% if(size(indice,2)==0) continue; +% else +% point=xink(i,indice)'; +% u=anothersection(point,1); +% v=anothersection(point,2); +% dt=DelaunayTri(u,v); +% %triplot(d,anothersection(1,:),anothersection(2,:)); +% k1 = convexHull(dt);%k1ҳȼkһ +% plot(u,v, '.', 'markersize',10); hold on; +% plot(u,v, 'r'); +% end +% end +% hold off; + +% end +% xink=unique(xink, 'rows', 'stable'); +% d3intersection=unique(d3intersection, 'rows', 'stable'); +% anothersection=unique(anothersection, 'rows', 'stable'); +%xink(i,1:7)=k(i,:); xink(i,10)=i; + + +end + + diff --git a/core functions/preprocess/about_grid/frac_mat_mesh.m b/core functions/preprocess/about_grid/frac_mat_mesh.m new file mode 100644 index 0000000..82f8b7f --- /dev/null +++ b/core functions/preprocess/about_grid/frac_mat_mesh.m @@ -0,0 +1,31 @@ +function [ mesh] = frac_mat_mesh( d3intersection,anothersection,numvspoint,numofmesh ) +% ˺fracvsfracֶ +% Ϊ˼ѷཻĻ +%% ѷ߽ѷʷ +n=size(numvspoint,1); +mesh=zeros(n,7);%ÿ͹ε˳ΪҪγɱպϻ·1ȷ +for i=1:1:n +indice=find(numvspoint(i,:)~=0); +if(size(indice,2)<3) mesh(i,:)=[0,0,0,0,0,0,0]; continue; +end +point=numvspoint(i,indice)'; +u=anothersection(point,1); +v=anothersection(point,2); +dt=DelaunayTri(u,v); +%triplot(d,anothersection(1,:),anothersection(2,:)); +k1 = convexHull(dt);%k1ҳȼkһ +% plot(u,v, '.', 'markersize',10); hold on; +% plot(u(k1),v(k1), 'r'); +m=size(k1,1); +for j=1:1:m + mesh(i,j)=point(k1(j)); +end +% k1=k1'; +% m=size(k1,2); +% k(i,1:m)=k1; +%hold off; +end +%hold off + +end + diff --git a/core functions/preprocess/about_grid/fun1.m b/core functions/preprocess/about_grid/fun1.m new file mode 100644 index 0000000..8a8b790 --- /dev/null +++ b/core functions/preprocess/about_grid/fun1.m @@ -0,0 +1,114 @@ +function [ cf ] = fun1( anothersection,fracnumber,p0,f ) +%fracturenumberǸѷĵţanothersectionǸѷƽIJ +% ÿѷһȥֹظ +% fʾѷѷϢ +% facemidʾе + indice=find(fracnumber~=0); + m=size(indice,2); + newsection=fracnumber(1,1:(m-1)); + u=anothersection(newsection',1); + v=anothersection(newsection',2); +% ucore=mean(u);%ѷ쵥ԪĶӦu,vֵ +% vcore=mean(v); + dt=delaunayTriangulation(u,v); + n=size(dt,1); + cf=0; + for k=1:n + coordinate=anothersection(newsection(dt(k,:))',:);%dt(k,:)ֻnewsectionеţʾ + cf=triint( coordinate,f,p0 )+cf; + end + +end + + +function [ cf ] = triint( coordinate,f,p0 ) +%TRIINT ˴ʾйش˺ժҪ,fʾѷIJ5*3 +% ˴ʾϸ˵ +syms u v r s length m n; +t0=f(1,:); +t1=f(2,:); +t2=f(3,:); +x1=coordinate(1,1);y1=coordinate(1,2); +x2=coordinate(2,1);y2=coordinate(2,2); +x3=coordinate(3,1);y3=coordinate(3,2); +Jocbimatrix=[x1-x3,x2-x3; + y1-y3,y2-y3]; +J=abs(det(Jocbimatrix)); +if(J==0) cf=0; +else +A=[t1(1),t2(1); +t1(2),t2(2); +t1(3),t2(3)]; +p1=p0-t0; +p2=A\p1'; +% p2=(A'*p1')\(A'*A); +u0=p2(1);v0=p2(2); +tol=t1*u0+t2*v0+t0-p0; +if(norm(tol)==0)%˵õڸƽϣ +% length=sqrt((u-u0)^2*norm(t1)^2+(v-v0)^2*norm(t2)^2); +% g=-1/4/pi/length; +% g=subs(g,[u,v],[(x1-x3)*r+(x2-x3)*s+x3,(y1-y3)*r+(y2-y3)*s+y3]); +% g1=matlabFunction(g); +% f2=@(r,s)(r+s<=1); +% f1=@(r,s)(g1(r,s).*f2(r,s)); +% cf=J*norm(t1)*norm(t2)*integral2(f1,0,1,0,1,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%ЧڻʱlengthһСʹΪ +%ôǺģΪѷ챾;һȣҸûֱǿɻģⱣ֤СݶΪ0.01 +lx=u*t1(1)+v*t2(1)+t0(1)-p0(1); +ly=u*t1(2)+v*t2(2)+t0(2)-p0(2); +lz=u*t1(3)+v*t2(3)+t0(3)-p0(3); +length=sqrt(lx^2+ly^2+lz^2)+1e-6; +g=-1/(4*pi*length); +g=subs(g,[u,v],[(x1-x3)*r+(x2-x3)*s+x3,(y1-y3)*r+(y2-y3)*s+y3]); +g1=matlabFunction(g); +f=@(r,s)(g1(r,s)); +smax=@(r)1-r; +% % % f2=@(r,s)(r+s<=1); +% % % f=@(r,s)(g1(r,s).*f2(r,s)); +% length=sqrt(lx^2+ly^2+lz^2)+1e-6;%ȾбʵIJԭֿɻ£С +% g=-1/(4*pi*length); +% g1=matlabFunction(g); +% f2=@(u,v)(u+v<=1); +% f1=@(u,v)(g1(u,v).*f2(u,v)); +cf=J*norm(cross(t1,t2))*integral2(f,0,1,0,smax,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +else% +lx=u*t1(1)+v*t2(1)+t0(1)-p0(1); +ly=u*t1(2)+v*t2(2)+t0(2)-p0(2); +lz=u*t1(3)+v*t2(3)+t0(3)-p0(3); +length=sqrt(lx^2+ly^2+lz^2)+1e-6; +g=-1/(4*pi*length); +g=subs(g,[u,v],[(x1-x3)*r+(x2-x3)*s+x3,(y1-y3)*r+(y2-y3)*s+y3]); +g1=matlabFunction(g); +% % % f2=@(r,s)(r+s<=1); +% % % f=@(r,s)(g1(r,s).*f2(r,s)); +f=@(r,s)(g1(r,s)); +smax=@(r)1-r; +% length=sqrt(lx^2+ly^2+lz^2)+1e-6; +% g=-1/(4*pi*length); +% g=subs(g,[u,v],[(x1-x3)*r+(x2-x3)*s+x3,(y1-y3)*r+(y2-y3)*s+y3]); +% g1=matlabFunction(g); +% f2=@(r,s)(r+s<=1); +% f=@(r,s)(g1(r,s).*f2(r,s)); +% cf=J*norm(t1)*norm(t2)*integral2(f,0,1,0,1,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +% g1=matlabFunction(g); +% f2=@(u,v)(u+v<=1); +% f1=@(u,v)(g1(u,v).*f2(u,v)); +cf=J*norm(cross(t1,t2))*integral2(f,0,1,0,smax,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +% g=@(r,s)(-1./(4.*pi.*sqrt((((x1-x3).*r+(x2-x3).*s+x3).*t1(1)+((y1-y3).*r+(y2-y3).*s+y3).*t2(1)+t0(1)-p0(1)).^2+... +% (((x1-x3).*r+(x2-x3).*s+x3).*t1(2)+((y1-y3).*r+(y2-y3).*s+y3).*t2(2)+t0(2)-p0(2)).^2+... +% (((x1-x3).*r+(x2-x3).*s+x3).*t1(3)+((y1-y3).*r+(y2-y3).*s+y3).*t2(3)+t0(3)-p0(3)).^2))); +% lx=u*t1(1)+v*t2(1)+t0(1)-p0(1); +% ly=u*t1(2)+v*t2(2)+t0(2)-p0(2); +% lz=u*t1(3)+v*t2(3)+t0(3)-p0(3); +% length=sqrt(lx^2+ly^2+lz^2); +% g=-1/(4*pi*length); +%g=subs(g,[u,v],[(x1-x3).*r+(x2-x3).*s+x3,(y1-y3).*r+(y2-y3).*s+y3]); +% g1=matlabFunction(g); +% f2=@(r,s)(r+s<=1); +% f=@(r,s)(g(r,s).*f2(r,s)); +% cf=J*norm(t1)*norm(t2)*integral2(f,0,1,0,1,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%cf=J*norm(t1)*norm(t2)*integral2(g1,0,1,0,1,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +end +end +end + diff --git a/core functions/preprocess/about_grid/fun2.m b/core functions/preprocess/about_grid/fun2.m new file mode 100644 index 0000000..c0dbf08 --- /dev/null +++ b/core functions/preprocess/about_grid/fun2.m @@ -0,0 +1,84 @@ +function [ cf ] = fun2( anothersection,fracnumber,coreco,f ) +%fracturenumberǸѷĵţanothersectionǸѷƽIJ +% ÿѷһȥֹظ +% fʾѷѷϢ +% facemidʾе + indice=find(fracnumber~=0); + m=size(indice,2); + newsection=fracnumber(1,1:(m-1)); + u=anothersection(newsection',1); + v=anothersection(newsection',2); + dt=delaunayTriangulation(u,v); + n=size(dt,1); + cf=0; + for k=1:n + coordinate=anothersection(newsection(dt(k,:))',:);%dt(k,:)ֻnewsectionеţʾ + cf=triint1( coordinate,f,coreco )+cf; + end + +end + + +function [ cf ] = triint1( coordinate,f,coreco ) +%TRIINT ˴ʾйش˺ժҪ,fʾѷIJ5*3 +% ˴ʾϸ˵ +syms u v r s length; +t0=f(1,:); +t1=f(2,:); +t2=f(3,:); +x1=coordinate(1,1);y1=coordinate(1,2); +x2=coordinate(2,1);y2=coordinate(2,2); +x3=coordinate(3,1);y3=coordinate(3,2); +Jocbimatrix=[x1-x3,x2-x3; + y1-y3,y2-y3]; +J=abs(det(Jocbimatrix)); +if(J==0) cf=0; +else +A=[t1(1),t2(1); +t1(2),t2(2); +t1(3),t2(3)]; +p1=coreco-t0; +p2=A\p1'; +u0=p2(1);v0=p2(2); +tol=t1*u0+t2*v0+t0-coreco; +if(norm(tol)==0)%˵õڸƽϣ +% length=sqrt((u-u0)^2*norm(t1)^2+(v-v0)^2*norm(t2)^2)+1e-8; +lx=u*t1(1)+v*t2(1)+t0(1)-coreco(1); +ly=u*t1(2)+v*t2(2)+t0(2)-coreco(2); +lz=u*t1(3)+v*t2(3)+t0(3)-coreco(3); +length=sqrt(lx^2+ly^2+lz^2)+1e-8; +g=-1/4/pi/length; +g=subs(g,[u,v],[(x1-x3)*r+(x2-x3)*s+x3,(y1-y3)*r+(y2-y3)*s+y3]); +g1=matlabFunction(g); +% % % f2=@(r,s)(r+s<=1); +% % % f=@(r,s)(g1(r,s).*f2(r,s)); +f=@(r,s)(g1(r,s)); +smax=@(r)1-r; +cf=J*norm(cross(t1,t2))*integral2(f,0,1,0,smax,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +% lx=u*t1(1)+v*t2(1)+t0(1)-p0(1); +% ly=u*t1(2)+v*t2(2)+t0(2)-p0(2); +% lz=u*t1(3)+v*t2(3)+t0(3)-p0(3); +% length=sqrt(lx^2+ly^2+lz^2)+0.01;%ȾбʵIJԭֿɻ£С +% g=-1/(4*pi*length); +% g1=matlabFunction(g); +% f2=@(u,v)(u+v<=1); +% f1=@(u,v)(g1(u,v).*f2(u,v)); +% cf=J*norm(t1)*norm(t2)*integral2(f1,0,1,0,1,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +else% +lx=u*t1(1)+v*t2(1)+t0(1)-coreco(1); +ly=u*t1(2)+v*t2(2)+t0(2)-coreco(2); +lz=u*t1(3)+v*t2(3)+t0(3)-coreco(3); +length=sqrt(lx^2+ly^2+lz^2)+1e-8; +g=-1/(4*pi*length); +g=subs(g,[u,v],[(x1-x3)*r+(x2-x3)*s+x3,(y1-y3)*r+(y2-y3)*s+y3]); +g1=matlabFunction(g); +% % % f2=@(r,s)(r+s<=1); +% % % f=@(r,s)(g1(r,s).*f2(r,s)); +f=@(r,s)(g1(r,s)); +smax=@(r)1-r; +cf=J*norm(cross(t1,t2))*integral2(f,0,1,0,smax,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%cf=J*norm(t1)*norm(t2)*integral2(g1,0,1,0,1,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +end +end +end + diff --git a/core functions/preprocess/about_grid/fun3.m b/core functions/preprocess/about_grid/fun3.m new file mode 100644 index 0000000..6bebfd9 --- /dev/null +++ b/core functions/preprocess/about_grid/fun3.m @@ -0,0 +1,67 @@ +function [ cf ] = fun3( anothersection,p0,fracnumber,coreco,f ) +%fracturenumberǸѷĵţanothersectionǸѷƽIJ +% ÿѷһȥֹظ +% fʾѷѷϢ +% facemidʾе +% indice=find(fracnumber~=0); +% m=size(indice,2); +% newsection=fracnumber(1,1:(m-1)); +% u=anothersection(newsection',1); +% v=anothersection(newsection',2); +% dt=delaunayTriangulation(u,v); +% n=size(dt,1); +% cf=0; +% for k=1:n +% coordinate=anothersection(newsection(dt(k,:))',:);%dt(k,:)ֻnewsectionеţʾ +% cf=triint1( coordinate,f,p0 )+cf; +% end + +%TRIINT ˴ʾйش˺ժҪ,fʾѷIJ5*3 +% ˴ʾϸ˵ +syms u v r s length; +t0=f(1,:); +t1=f(2,:); +t2=f(3,:); +x1=coordinate(1,1);y1=coordinate(1,2); +x2=coordinate(2,1);y2=coordinate(2,2); +x3=coordinate(3,1);y3=coordinate(3,2); +Jocbimatrix=[x1-x3,x2-x3; + y1-y3,y2-y3]; +J=abs(det(Jocbimatrix)); +if(J==0) cf=0; +else +A=[t1(1),t2(1); +t1(2),t2(2); +t1(3),t2(3)]; +p1=coreco-t0; +p2=p1'\A; +u0=p2(1);v0=p2(2); +tol=t1*u0+t2*v0+t0-p0; +if(norm(tol)==0)%˵õڸƽϣ +% length=sqrt((u-u0)^2*norm(t1)^2+(v-v0)^2*norm(t2)^2); +lx=u*t1(1)+v*t2(1)+t0(1)-p0(1); +ly=u*t1(2)+v*t2(2)+t0(2)-p0(2); +lz=u*t1(3)+v*t2(3)+t0(3)-p0(3); +length=sqrt(lx^2+ly^2+lz^2); +g=-1/4/pi/length; +g=subs(g,[u,v],[(x1-x3)*r+(x2-x3)*s+x3,(y1-y3)*r+(y2-y3)*s+y3]); +g1=matlabFunction(g); +f=@(r,s)(g1(r,s)); +smax=@(r)1-r; +cf=J*norm(cross(t1,t2))*integral2(f,0,1,0,smax,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +else% +lx=u*t1(1)+v*t2(1)+t0(1)-p0(1); +ly=u*t1(2)+v*t2(2)+t0(2)-p0(2); +lz=u*t1(3)+v*t2(3)+t0(3)-p0(3); +length=sqrt(lx^2+ly^2+lz^2); +g=-1/(4*pi*length); +g=subs(g,[u,v],[(x1-x3)*r+(x2-x3)*s+x3,(y1-y3)*r+(y2-y3)*s+y3]); +g1=matlabFunction(g); +f=@(r,s)(g1(r,s)); +smax=@(r)1-r; +cf=J*norm(cross(t1,t2))*integral2(f,0,1,0,smax,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%cf=J*norm(t1)*norm(t2)*integral2(g1,0,1,0,1,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +end +end +end + diff --git a/core functions/preprocess/about_grid/interarea.m b/core functions/preprocess/about_grid/interarea.m new file mode 100644 index 0000000..6b064d5 --- /dev/null +++ b/core functions/preprocess/about_grid/interarea.m @@ -0,0 +1,135 @@ +function [ numofmesh, numvspoint,numofregion] = interarea( d3intersection,dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ) +%жϽڵ +%numofregionrow denotes pointcolumn denotes һ8˽m8о +%numvspointrow denotes the number of matrix meshcolumn denotes the pointཻ㣬˾6Ϊǣ浽Ļ +%[ numofmesh, numvspoint,numofregion] = interarea( d3intersection,1,1,1,10,10,10 ) +m=size(d3intersection,1); +numofregion=zeros(m,8);%жЩĸ +for i=1:m +% a1=floor(d3intersection(i,1)/dx); +% a2=mod(d3intersection(i,1),dx); +% b1=floor(d3intersection(i,2)/dy); +% b2=mod(d3intersection(i,2),dy); +% c1=floor(d3intersection(i,3)/dz); +% c2=mod(d3intersection(i,3),dz); + + +for zhang=1:nx+1 + if xrao(1,zhang)<=d3intersection(i,1) + a1=zhang-1; + a2=d3intersection(i,1)-xrao(1,zhang); + end +end +for zhang=1:ny+1 + if yrao(1,zhang)<=d3intersection(i,2) + b1=zhang-1; + b2=d3intersection(i,2)-yrao(1,zhang); + end +end +for zhang=1:nz+1 + if zrao(1,zhang)<=d3intersection(i,3) + c1=zhang-1; + c2=d3intersection(i,3)-zrao(1,zhang); + end +end + +numofregion(i,:)=[a1+b1*nx+c1*nx*ny,a1+1+b1*nx+c1*nx*ny,a1+(b1-1)*nx+c1*nx*ny,a1+1+(b1-1)*nx+c1*nx*ny,... + a1+(b1-1)*nx+(c1-1)*nx*ny,a1+1+(b1-1)*nx+(c1-1)*nx*ny,a1+b1*nx+(c1-1)*nx*ny,a1+1+b1*nx+(c1-1)*nx*ny]; +% ȡ0߽紦 +if((a1==0)&&(a2==0)) + numofregion(i,1)=0;numofregion(i,3)=0;numofregion(i,5)=0;numofregion(i,7)=0; +end +if((b1==0)&&(b2==0)) + numofregion(i,3)=0;numofregion(i,4)=0;numofregion(i,5)=0;numofregion(i,6)=0; +end +if((c1==0)&&(c2==0)) + numofregion(i,5)=0;numofregion(i,6)=0;numofregion(i,7)=0;numofregion(i,8)=0; +end +% ȡ߽紦 +if a1==nx + numofregion(i,2)=0;numofregion(i,4)=0;numofregion(i,6)=0;numofregion(i,8)=0; +end +if b1==ny + numofregion(i,1)=0;numofregion(i,2)=0;numofregion(i,7)=0;numofregion(i,8)=0; +end +% if c1==nz +% numofregion(i,1)=0;numofregion(i,2)=0;numofregion(i,3)=0;numofregion(i,4)=0; +% end +if(a2~=0) + numofregion(i,1)=0;numofregion(i,3)=0;numofregion(i,5)=0;numofregion(i,7)=0; +end +if(b2~=0) + numofregion(i,3)=0;numofregion(i,4)=0;numofregion(i,5)=0;numofregion(i,6)=0; +end +if(c2~=0) + numofregion(i,5)=0;numofregion(i,6)=0;numofregion(i,7)=0;numofregion(i,8)=0; +end +end +numofregion(numofregion>nx*ny*nz)=0;%ѻ񲻰޳Ϊһû +numofmesh=unique(numofregion);%Ļ + +%% ֻmeshȥ +record=[]; +n=size(numofmesh,1); +if(numofmesh(1)==0) + record=[record;1]; + for i=2:1:n + [I,J]= find(numofregion==numofmesh(i));%ص + k=size(I,1); + if(k<=2) record=[record;i]; + end + end +else + for i=1:1:n + [I,J]= find(numofregion==numofmesh(i)); + k=size(I,1); + if(k<=2) record=[record;k]; + end + end +end +numofmesh(record,:)=[]; + +%% +n=size(numofmesh,1); +if(numofmesh(1)==0) + numvspoint=zeros(n-1,6);%ӦĽ + for i=2:1:n + [I,J]= find(numofregion==numofmesh(i));%ص + k=size(I,1); + numvspoint(i-1,1:k)=I'; + end + numofmesh=numofmesh(2:n,:);%ѿͷ0ȥ +else + numvspoint=zeros(n,6); + for i=1:1:n + [I,J]= find(numofregion==numofmesh(i)); + k=size(I,1); + numvspoint(i,1:k)=I'; + end +end +numvspoint=sort(numvspoint,2); + +numvspoint=unique(numvspoint,'rows','stable'); + + + + +% if(a2==0) +% if(b2==0) +% if(c2==0) +% numofregion(i,:)=[a1+b1*nx+c1*nx*ny,a1+1+b1*nx+c1*nx*ny,a1+(b1-1)*nx+c1*nx*ny,a1+1+(b1-1)*nx+c1*nx*ny,... +% a1+(b1-1)*nx+(c1-1)*nx*ny,a1+1+(b1-1)*nx+(c1-1)*nx*ny,a1+b1*nx+(c1-1)*nx*ny,a1+1+b1*nx+(c1-1)*nx*ny]; +% else +% numofregion(i,:)=[a1+b1*nx+c1*nx*ny,a1+1+b1*nx+c1*nx*ny,a1+(b1-1)*nx+c1*nx*ny,a1+1+(b1-1)*nx+c1*nx*ny,... +% 0,0,0,0]; +% end +% else +% numofregion(i,:)=[a1+b1*nx+c1*nx*ny,a1+1+b1*nx+c1*nx*ny,... +% 0,0,0,0,0,0]; +% end +% else +% numofregion(i,:)=[a1+1+b1*nx+c1*nx*ny,... +% 0,0,0,0,0,0,0]; +% end +end + diff --git a/core functions/preprocess/about_grid/interflowmf.asv b/core functions/preprocess/about_grid/interflowmf.asv new file mode 100644 index 0000000..c5318c4 --- /dev/null +++ b/core functions/preprocess/about_grid/interflowmf.asv @@ -0,0 +1,303 @@ +function [ G,Gfm,Gff,Gf,Ap,Apf ] = interflowmf(dx,dy,dz,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coord,nf,corevsfra ) +%˺ڼڱ߽ԪнԴѡڻʱ +%йصϵ +%GƫGƫnGfm +%dx,dy,dzֱǰѷĸûijߴ +%ѡȡĵijxyƽϣҪԵһϵGcm +% G +m=size(connectmf,1);%ѷ쵥ԪĻ + +syms z y x; +%dx=1;dy=1;dz=1; +%r=sqrt((z-dz/2).^2+y.^2+(dx/2).^2); +%c11 +g=@(x,y)-1./((4.*pi).*sqrt(x.^2+y.^2)); +c11=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c12 +g=@(x,z)-1./((4.*pi).*sqrt(x.^2+(-dy/2).^2+(z+dz./2).^2)); +c12=integral2(g,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c13 +g=@(y,z)-1./((4.*pi).*sqrt(y.^2+(-dx/2).^2+(z+dz./2).^2)); +c13=integral2(g,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c16 +g=@(x,y)-1./((4.*pi).*sqrt(x.^2+y.^2+dz.^2)); +c16=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c21 +g=@(x,y)-1./((4.*pi).*sqrt(x.^2+(y+dy/2).^2+(-dz/2).^2)); +c21=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c22 +g=@(x,z)-1./((4.*pi).*sqrt(x.^2+z.^2)); +c22=integral2(g,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c23 +g=@(y,z)-1./((4.*pi).*sqrt((-dx/2).^2+(y+dy/2).^2+z.^2)); +c23=integral2(g,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c25 +g=@(x,z)-1./((4.*pi).*sqrt(x.^2+dy.^2+z.^2)); +c25=integral2(g,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c31 +g=@(x,y)-1./((4.*pi).*sqrt((x+dx/2).^2+y.^2+(-dz/2).^2)); +c31=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c32 +g=@(x,z)-1./((4.*pi).*sqrt((x+dx/2).^2+(-dy/2).^2+z.^2)); +c32=integral2(g,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c33 +g=@(y,z)-1./((4.*pi).*sqrt(y.^2+z.^2)); +c33=integral2(g,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c34 +g=@(y,z)-1./((4.*pi).*sqrt(dx^2+y.^2+z.^2)); +c34=integral2(g,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c41 +g=@(x,y)-1./((4.*pi).*sqrt((x-dx/2).^2+y.^2+(-dz/2).^2)); +c41=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c42 +g=@(x,z)-1./((4.*pi).*sqrt((x-dx/2).^2+(-dy/2).^2+z.^2)); +c42=integral2(g,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c51 +g=@(x,y)-1./((4.*pi).*sqrt(x.^2+(y-dy/2).^2+(-dz/2).^2)); +c51=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c53 +g=@(x,y)-1./((4.*pi).*sqrt(x.^2+(y-dy/2).^2+(-dz/2).^2)); +c53=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c62 +g=@(x,z)-1./((4.*pi).*sqrt(x.^2+(-dy/2).^2+(z-dz/2).^2)); +c62=integral2(g,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c63 +g=@(y,z)-1./((4.*pi).*sqrt((-dx/2).^2+y.^2+(z-dz/2).^2)); +c63=integral2(g,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%G +G=[c11,c12,c13,c13,c12,c16; + c21,c22,c23,c23,c25,c21; + c31,c32,c33,c34,c32,c31; + c41,c42,c34,c33,c42,c41; + c51,c25,c53,c53,c22,c51; + c16,c62,c63,c63,c62,c11]; +%% dG +dG=zeros(6); +grad=cell{6,1}; +%Ϊ1Դr(0,0,-dz/2) +r1=@(x,y,z)-1./((4.*pi).*sqrt(x.^2+y.^2+(z+dz./2).^2)); +grad{1,1}=[diff(r1,x),diff(r1,y),diff(r1,z)]; +n1=[0,0,-1]; +%Ϊ2Դr(0,-dy/2,0) +r2=@(x,y,z)-1./((4.*pi).*sqrt(x.^2+(y+dy/2).^2+z.^2)); +grad{2,1}=[diff(r2,x),diff(r2,y),diff(r2,z)]; +n2=[0,-1,0]; +%Ϊ3Դr(-dx/2,0,0) +r3=@(x,y,z)-1./((4.*pi).*sqrt((x+dx/2).^2+y.^2+z.^2)); +grad{3,1}=[diff(r3,x),diff(r3,y),diff(r3,z)]; +n3=[-1,0,0]; +%Ϊ4Դr(dx/2,0,0) +r4=@(x,y,z)-1./((4.*pi).*sqrt((x-dx/2).^2+y.^2+z.^2)); +grad{4,1}=[diff(r4,x),diff(r4,y),diff(r4,z)]; +n4=[0,0,1]; +%Ϊ5Դr(0,dy/2,0) +r5=@(x,y,z)-1./((4.*pi).*sqrt(x.^2+(y-dy/2).^2+z.^2)); +grad{5,1}=[diff(r5,x),diff(r5,y),diff(r5,z)]; +n5=[0,1,0]; +%Ϊ6Դr(0,0,dz/2) +r6=@(x,y,z)-1./((4.*pi).*sqrt(x.^2+y.^2+(z-dz./2).^2)); +grad{6,1}=[diff(r6,x),diff(r6,y),diff(r6,z)]; +n6=[0,0,1]; +% +for i=1:6 + if j==1 + rao=grad{i,1}.*n1; + g=subs(rao,z,-dz/2); + if j~=i + g1=matlabFunction(g); + g2=@(x,y)g1(x,y); + dG(i,j)=integral2(g2,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==2 + rao=grad{i,1}.*n2; + g=subs(rao,y,-dy/2); + if j~=i + g1=matlabFunction(g); + g2=@(x,z)g1(x,z); + dG(i,j)=integral2(g2,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==3 + rao=grad{i,1}.*n3; + g=subs(rao,x,-dx/2); + if j~=i + g1=matlabFunction(g); + g2=@(y,z)g1(y,z); + dG(i,j)=integral2(g2,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==4 + rao=grad{i,1}.*n4; + g=subs(rao,x,dx/2); + if j~=i + g1=matlabFunction(g); + g2=@(y,z)g1(y,z); + dG(i,j)=integral2(g2,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==5 + rao=grad{i,1}.*n5; + g=subs(rao,y,dy/2); + if j~=i + g1=matlabFunction(g); + g2=@(x,z)g1(x,z); + dG(i,j)=integral2(g2,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==1 + rao=grad{i,1}.*n6; + g=subs(rao,z,dz/2); + if j~=i + g1=matlabFunction(g); + g2=@(x,y)g1(x,y); + dG(i,j)=integral2(g2,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + dG=dG-2*pi/(4*pi)*eye(6); +% for i=1:6 +% for j=1:6 +% dG(i,j)=fun3 +% dG(i,i)=-2*pi/(4*pi); +% end +%% Gfm +% m=size(matrixvsfra,1); +% Gfm=cell(m,1); +Gfm=cell(m,1); +for i=1:m + indice=find(matrixvsfra(connectmf{i,1},:)~=0); + n=size(indice,2); + cf=zeros(6,n); +if(n>0)%Ļѷn=size(indice,2); + matnodes=nodes(connectmf{i,1},:); + matnodes=coord(matnodes,:); + p(1,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(3,:)+matnodes(4,:))/4; + p(2,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(5,:)+matnodes(6,:))/4; + p(3,:)=(matnodes(1,:)+matnodes(3,:)+matnodes(5,:)+matnodes(7,:))/4; + p(4,:)=(matnodes(2,:)+matnodes(4,:)+matnodes(6,:)+matnodes(8,:))/4; + p(5,:)=(matnodes(3,:)+matnodes(4,:)+matnodes(7,:)+matnodes(8,:))/4; + p(6,:)=(matnodes(5,:)+matnodes(6,:)+matnodes(7,:)+matnodes(8,:))/4; + for j=1:6 + for k=1:n + for r=2:(nf+1) + if(matrixvsfra(connectmf{i,1},k)0)%Ļѷn=size(indice,2); + for j=1:n + for k=1:n + for r=2:(nf+1) + if(matrixvsfra(connectmf{i,1},k)0)%Ļѷn=size(indice,2); + r=p(1,:)-corevsfra(matrixvsfra(connectmf{i,1},j),:); + end + dGf{i,1}=cf; +end +%% Gf +%corevsfraÿѷ +syms z y x; +m=size(matrixvsfra,1); +Gf=cell(m,1); +for i=1:m + indice=find(matrixvsfra(connectmf{i,1},:)~=0); + n=size(indice,2); + cf=zeros(n,6); +if(n>0)%Ļѷn=size(indice,2); + matnodes=nodes(connectmf{i,1},:); + matnodes=coord(matnodes,:); + p(1,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(3,:)+matnodes(4,:))/4;%z + p(2,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(5,:)+matnodes(6,:))/4;%y + p(3,:)=(matnodes(1,:)+matnodes(3,:)+matnodes(5,:)+matnodes(7,:))/4;%x + p(4,:)=(matnodes(2,:)+matnodes(4,:)+matnodes(6,:)+matnodes(8,:))/4;%x + p(5,:)=(matnodes(3,:)+matnodes(4,:)+matnodes(7,:)+matnodes(8,:))/4;%y + p(6,:)=(matnodes(5,:)+matnodes(6,:)+matnodes(7,:)+matnodes(8,:))/4;%z + for j=1:n + %for k=1:6%ʹѭ +% for r=2:(nf+1) +% if(matrixvsfra(i,j)0)%Ļѷn=size(indice,2); + matnodes=nodes(connectmf{i,1},:); + matnodes=coord(matnodes,:); + p(1,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(3,:)+matnodes(4,:))/4; + p(2,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(5,:)+matnodes(6,:))/4; + p(3,:)=(matnodes(1,:)+matnodes(3,:)+matnodes(5,:)+matnodes(7,:))/4; + p(4,:)=(matnodes(2,:)+matnodes(4,:)+matnodes(6,:)+matnodes(8,:))/4; + p(5,:)=(matnodes(3,:)+matnodes(4,:)+matnodes(7,:)+matnodes(8,:))/4; + p(6,:)=(matnodes(5,:)+matnodes(6,:)+matnodes(7,:)+matnodes(8,:))/4; + for j=1:6 + for k=1:n + for r=2:(nf+1) + if(matrixvsfra(connectmf{i,1},k)0)%Ļѷn=size(indice,2); + for j=1:n + for k=1:n + for r=2:(nf+1) + if(matrixvsfra(connectmf{i,1},k)0)%Ļѷn=size(indice,2); + matnodes=nodes(connectmf{i,1},:); + matnodes=coord(matnodes,:); + p(1,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(3,:)+matnodes(4,:))/4; + p(2,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(5,:)+matnodes(6,:))/4; + p(3,:)=(matnodes(1,:)+matnodes(3,:)+matnodes(5,:)+matnodes(7,:))/4; + p(4,:)=(matnodes(2,:)+matnodes(4,:)+matnodes(6,:)+matnodes(8,:))/4; + p(5,:)=(matnodes(3,:)+matnodes(4,:)+matnodes(7,:)+matnodes(8,:))/4; + p(6,:)=(matnodes(5,:)+matnodes(6,:)+matnodes(7,:)+matnodes(8,:))/4; + cf=zeros(n,6); + for k=1:n + core=corevsfra(matrixvsfra(connectmf{i,1},k),:); +% r=-1./((4.*pi).*sqrt(x-core(1)).^2+(y-core(2)).^2+(z-core(3)).^2); +% grad=[diff(r,x),diff(r,y),diff(r,z)]; + gradx=(x-core(1))./((4.*pi).*((x-core(1)).^2+(y-core(2)).^2+(z-core(3)).^2)^(3/2)); + grady=(y-core(2))./((4.*pi).*((x-core(1)).^2+(y-core(2)).^2+(z-core(3)).^2)^(3/2)); + gradz=(z-core(3))./((4.*pi).*((x-core(1)).^2+(y-core(2)).^2+(z-core(3)).^2)^(3/2)); + grad=[gradx,grady,gradz]; + for j=1:6 + if j==1 + rao=grad*n1'; + g=subs(rao,[x,y,z],[p(1,1)+x1,p(1,2)+y1,p(1,3)]); + if (isempty(symvar(g))) cf(k,j)=0; + else + g1=matlabFunction(g); + g2=@(x1,y1)g1(x1,y1); + cf(k,j)=integral2(g2,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==2 + rao=grad*n2'; +% g=subs(rao,y,); + g=subs(rao,[x,y,z],[p(2,1)+x1,p(2,2),p(2,3)+z1]); + + if (isempty(symvar(g))) cf(k,j)=0; + else + g1=matlabFunction(g); + g2=@(x1,z1)g1(x1,z1); + cf(k,j)=integral2(g2,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==3 + rao=grad*n3'; +% g=subs(rao,x,-dx/2); + g=subs(rao,[x,y,z],[p(3,1),p(3,2)+y1,p(3,3)+z1]); + + if (isempty(symvar(g))) + cf(k,j)=0; + else + g1=matlabFunction(g); + g2=@(y1,z1)g1(y1,z1); + cf(k,j)=integral2(g2,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==4 + rao=grad*n4'; +% g=subs(rao,x,dx/2); + g=subs(rao,[x,y,z],[p(4,1),p(4,2)+y1,p(4,3)+z1]); + + if (isempty(symvar(g))) + cf(k,j)=0; + else + g1=matlabFunction(g);g2=@(y1,z1)g1(y1,z1); + cf(k,j)=integral2(g2,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==5 + rao=grad*n5'; +% g=subs(rao,y,dy/2); + g=subs(rao,[x,y,z],[p(5,1)+x1,p(5,2),p(5,3)+z1]); + + if (isempty(symvar(g))) + cf(k,j)=0; + else + g1=matlabFunction(g); g2=@(x1,z1)g1(x1,z1); + cf(k,j)=integral2(g2,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==6 + rao=grad*n6'; +% g=subs(rao,z,dz/2); + g=subs(rao,[x,y,z],[p(6,1)+x1,p(6,2)+y1,p(6,3)]); + + if (isempty(symvar(g))) + cf(k,j)=0; + else + g1=matlabFunction(g); g2=@(x1,y1)g1(x1,y1); + cf(k,j)=integral2(g2,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + end + + end + dGf{i,1}=cf; + end + + a=1; +end +%% Gf +%corevsfraÿѷ +syms z y x; +% m=size(matrixvsfra,1); +Gf=cell(m,1); +for i=1:m + dx=dimen(i,1); dy=dimen(i,2); dz=dimen(i,3); + indice=find(matrixvsfra(connectmf{i,1},:)~=0); + n=size(indice,2); + cf=zeros(n,6); +if(n>0)%Ļѷn=size(indice,2); + matnodes=nodes(connectmf{i,1},:); + matnodes=coord(matnodes,:); + p(1,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(3,:)+matnodes(4,:))/4;%z + p(2,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(5,:)+matnodes(6,:))/4;%y + p(3,:)=(matnodes(1,:)+matnodes(3,:)+matnodes(5,:)+matnodes(7,:))/4;%x + p(4,:)=(matnodes(2,:)+matnodes(4,:)+matnodes(6,:)+matnodes(8,:))/4;%x + p(5,:)=(matnodes(3,:)+matnodes(4,:)+matnodes(7,:)+matnodes(8,:))/4;%y + p(6,:)=(matnodes(5,:)+matnodes(6,:)+matnodes(7,:)+matnodes(8,:))/4;%z + for j=1:n + %for k=1:6%ʹѭ +% for r=2:(nf+1) +% if(matrixvsfra(i,j)0)%Ļѷn=size(indice,2); +% % % for j=1:n +% % % matnodes=nodes(connectmf{i,1},:); +% % % matnodes=coord(matnodes,:); +% % % pm=mean(matnodes); +% % % core=corevsfra(matrixvsfra(connectmf{i,1},j),:); +% % % r=-1./((4.*pi).*sqrt((x+pm(1)-core(1)).^2+(y+pm(2)-core(2)).^2+(z+pm(3)-core(3)).^2)+1e-8); +% % % f=matlabFunction(r); +% % % cf(j,1)=integral3(f,-dx/2,dx/2,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +% % % end +% % % end +% % % Gfmt{i,1}=cf; +% % % end +% % % +% % % %% Gfft +% % % Gfft=Gff;%ûӦ +%% ϵ +% m=size(matrixvsfra,1); +% Ap=cell(m,1); +Ap=cell(m,1); +Apf=cell(m,1); +% Apmt=cell(m,1); +% Apft=cell(m,1); +for i=1:m +% if (isempty(Gfm{i,1})==0)%ǿ +% ת +% grid_num=connectmf{i,1}; +% % ֻңΪҪ£ҪԤ¸һ㣬ֹἫ +% C=zeros(4,5); +% rel_grid=[grid_num-r.nx,grid_num-1,grid_num+1,grid_num+r.nx,grid_num]; +% % x +% C(1,1)=r.ky(grid_num-r.nx)/r.dyv(grid_num-r.nx)/(r.ky(grid_num)/r.dyv(grid_num)+r.ky(grid_num-r.nx)/r.dyv(grid_num-r.nx)); +% C(1,5)=r.ky(grid_num)/r.dyv(grid_num)/(r.ky(grid_num)/r.dyv(grid_num)+r.ky(grid_num-r.nx)/r.dyv(grid_num-r.nx)); +% C(4,4)=r.ky(grid_num+r.nx)/r.dyv(grid_num+r.nx)/(r.ky(grid_num)/r.dyv(grid_num)+r.ky(grid_num+r.nx)/r.dyv(grid_num+r.nx)); +% C(4,5)=r.ky(grid_num)/r.dyv(grid_num)/(r.ky(grid_num)/r.dyv(grid_num)+r.ky(grid_num+r.nx)/r.dyv(grid_num+r.nx)); +% % y +% C(2,2)=r.kx(grid_num-1)/r.dxv(grid_num-1)/(r.kx(grid_num)/r.dxv(grid_num)+r.kx(grid_num-1)/r.dxv(grid_num-1)); +% C(2,5)=r.kx(grid_num)/r.dxv(grid_num)/(r.kx(grid_num)/r.dxv(grid_num)+r.kx(grid_num-1)/r.dxv(grid_num-1)); +% C(3,3)=r.kx(grid_num+1)/r.dxv(grid_num+1)/(r.kx(grid_num)/r.dxv(grid_num)+r.kx(grid_num+1)/r.dxv(grid_num+1)); +% C(3,5)=r.kx(grid_num)/r.dxv(grid_num)/(r.kx(grid_num)/r.dxv(grid_num)+r.kx(grid_num+1)/r.dxv(grid_num+1)); +% C=[[0,0,0,0,1];C;[0,0,0,0,1]]; + +Gin = G{i,1}^(-1); +Ap0 = dGf{i,1} - Gf{i,1} * Gin * dG{i,1}; +Apf0 = Gf{i,1} * Gin * Gfm{i,1} - Gff{i,1}; +Apfv = Apf0^(-1); +Apt= Apfv * Ap0; +Ap{i,1} = Apt * ones(6,1); +% Ap{i,1} = Apt * C; +% Ap{i,2} = rel_grid; +Apf{i,1} = -Apfv; +wo=size(Apfv,1); +ni=size(Apfv,2); +% Apmt{i,1}=0; +% Apft{i,1}=zeros(wo,ni); +% % % Apmt{i,1}=Apfv*(Gfmt{i,1}-Gf{i,1}*Gin*Gmt{i,1}); +% % % Apft{i,1}=Apfv*(Gfft{i,1}-Gf{i,1}*Gin*Gmft{i,1}); +end +end +% Ap = Ap * ones(nb,1); +% Apf = -Apfv; + + + + + diff --git a/core functions/preprocess/about_grid/interflowmf_MODIFIED.m b/core functions/preprocess/about_grid/interflowmf_MODIFIED.m new file mode 100644 index 0000000..0e74960 --- /dev/null +++ b/core functions/preprocess/about_grid/interflowmf_MODIFIED.m @@ -0,0 +1,528 @@ +function [ G,Gfm,Gff,Gf,Ap,Apf ] = interflowmf_MODIFIED(rr,dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coord,nf,corevsfra ) +%˺ڼڱ߽ԪнԴѡڻʱ +%йصϵ +%GƫGƫnGfm +%dx,dy,dzֱǰѷĸûijߴ +%ѡȡĵijxyƽϣҪԵһϵGcm +% G +%[ G,Gfm,Gff,Gf,Ap,Apf,Apmt,Apft ] = interflowmf1(dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coord,nf,corevsfra ) +syms z y x x0 y0 z0 x1 y1 z1; +m=size(connectmf,1);%ѷ쵥ԪĻ +dimen=zeros(m,3); +for hui=1:m +dimen(hui,:)=[dxv(connectmf{hui,1}) dyv(connectmf{hui,1}) dzv(connectmf{hui,1})]; +end +raowang=unique(dimen,'rows'); +xiang=size(raowang,1); +wang=cell(xiang,1); +for i=1:xiang +dx=raowang(i,1);dy=raowang(i,2);dz=raowang(i,3); +%dx=1;dy=1;dz=1; +%r=sqrt((z-dz/2).^2+y.^2+(dx/2).^2); +%c11 +g=@(x,y)-1./((4.*pi).*sqrt(x.^2+y.^2)); +c11=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c12 +g=@(x,z)-1./((4.*pi).*sqrt(x.^2+(-dy/2).^2+(z+dz./2).^2)); +c12=integral2(g,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c13 +g=@(y,z)-1./((4.*pi).*sqrt(y.^2+(-dx/2).^2+(z+dz./2).^2)); +c13=integral2(g,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c16 +g=@(x,y)-1./((4.*pi).*sqrt(x.^2+y.^2+dz.^2)); +c16=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c21 +g=@(x,y)-1./((4.*pi).*sqrt(x.^2+(y+dy/2).^2+(-dz/2).^2)); +c21=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c22 +g=@(x,z)-1./((4.*pi).*sqrt(x.^2+z.^2)); +c22=integral2(g,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c23 +g=@(y,z)-1./((4.*pi).*sqrt((-dx/2).^2+(y+dy/2).^2+z.^2)); +c23=integral2(g,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c25 +g=@(x,z)-1./((4.*pi).*sqrt(x.^2+dy.^2+z.^2)); +c25=integral2(g,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c31 +g=@(x,y)-1./((4.*pi).*sqrt((x+dx/2).^2+y.^2+(-dz/2).^2)); +c31=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c32 +g=@(x,z)-1./((4.*pi).*sqrt((x+dx/2).^2+(-dy/2).^2+z.^2)); +c32=integral2(g,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c33 +g=@(y,z)-1./((4.*pi).*sqrt(y.^2+z.^2)); +c33=integral2(g,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c34 +g=@(y,z)-1./((4.*pi).*sqrt(dx^2+y.^2+z.^2)); +c34=integral2(g,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c41 +g=@(x,y)-1./((4.*pi).*sqrt((x-dx/2).^2+y.^2+(-dz/2).^2)); +c41=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c42 +g=@(x,z)-1./((4.*pi).*sqrt((x-dx/2).^2+(-dy/2).^2+z.^2)); +c42=integral2(g,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c51 +g=@(x,y)-1./((4.*pi).*sqrt(x.^2+(y-dy/2).^2+(-dz/2).^2)); +c51=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c53 +g=@(x,y)-1./((4.*pi).*sqrt(x.^2+(y-dy/2).^2+(-dz/2).^2)); +c53=integral2(g,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c62 +g=@(x,z)-1./((4.*pi).*sqrt(x.^2+(-dy/2).^2+(z-dz/2).^2)); +c62=integral2(g,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%c63 +g=@(y,z)-1./((4.*pi).*sqrt((-dx/2).^2+y.^2+(z-dz/2).^2)); +c63=integral2(g,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +%G +wang{i,1}=[c11,c12,c13,c13,c12,c16; + c21,c22,c23,c23,c25,c21; + c31,c32,c33,c34,c32,c31; + c41,c42,c34,c33,c42,c41; + c51,c25,c53,c53,c22,c51; + c16,c62,c63,c63,c62,c11]; +end +G=cell(m,1); +for i=1:m +% index=connectmf{i,1};%û +for j=1:xiang + if norm(dimen(i,:)-raowang(j,:))==0 + G{i,1}=wang{j,1}; + end +end +end + +%% dG +dai=cell(xiang,1); +n1=[0,0,-1]; +n2=[0,-1,0]; +n3=[-1,0,0]; +n4=[1,0,0]; +n5=[0,1,0]; +n6=[0,0,1]; +r=-1./((4.*pi).*sqrt((x-x0).^2+(y-y0).^2+(z-z0).^2)); +for zhang=1:xiang +dx=raowang(zhang,1); +dy=raowang(zhang,2); +dz=raowang(zhang,3); +dG=zeros(6); +grad=cell(6,1); +gradx=(x-x0)./((4.*pi).*((x-x0).^2+(y-y0).^2+(z-z0).^2)^(3/2)); +grady=(y-y0)./((4.*pi).*((x-x0).^2+(y-y0).^2+(z-z0).^2)^(3/2)); +gradz=(z-z0)./((4.*pi).*((x-x0).^2+(y-y0).^2+(z-z0).^2)^(3/2)); +gradrao=[gradx,grady,gradz]; +grad{1,1}=subs(gradrao,[x0,y0,z0],[0,0,-dz/2]); +grad{2,1}=subs(gradrao,[x0,y0,z0],[0,-dy/2,0]); +grad{3,1}=subs(gradrao,[x0,y0,z0],[-dx/2,0,0]); +grad{4,1}=subs(gradrao,[x0,y0,z0],[dx/2,0,0]); +grad{5,1}=subs(gradrao,[x0,y0,z0],[0,dy/2,0]); +grad{6,1}=subs(gradrao,[x0,y0,z0],[0,0,dz/2]); +for i=1:6 + for j=1:6 + if j==1 + rao=grad{i,1}*n1'; + g=subs(rao,z,-dz/2); + if j~=i + g1=matlabFunction(g); + g2=@(x,y)g1(x,y); + dG(i,j)=integral2(g2,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==2 + rao=grad{i,1}*n2'; + g=subs(rao,y,-dy/2); + if j~=i + g1=matlabFunction(g); + g2=@(x,z)g1(x,z); + dG(i,j)=integral2(g2,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + + end + end + if j==3 + rao=grad{i,1}*n3'; + g=subs(rao,x,-dx/2); + if j~=i + g1=matlabFunction(g); + g2=@(y,z)g1(y,z); + dG(i,j)=integral2(g2,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==4 + rao=grad{i,1}*n4'; + g=subs(rao,x,dx/2); + if j~=i + g1=matlabFunction(g); + g2=@(y,z)g1(y,z); + dG(i,j)=integral2(g2,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==5 + rao=grad{i,1}*n5'; + g=subs(rao,y,dy/2); + if j~=i + g1=matlabFunction(g); + g2=@(x,z)g1(x,z); + dG(i,j)=integral2(g2,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==6 + rao=grad{i,1}*n6'; + g=subs(rao,z,dz/2); + if j~=i + g1=matlabFunction(g); + g2=@(x,y)g1(x,y); + dG(i,j)=integral2(g2,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + end +end + dG=dG-2*pi/(4*pi)*eye(6); + dai{zhang,1}=dG; +end + +dG=cell(m,1); +parfor i=1:m +% index=connectmf{i,1};%û +for j=1:xiang + if norm(dimen(i,:)-raowang(j,:))==0 + dG{i,1}=dai{j,1}; + end +end +end +% for i=1:6 +% for j=1:6 +% dG(i,j)=fun3 +% dG(i,i)=-2*pi/(4*pi); +% end +%% Gfm +% m=size(matrixvsfra,1); +% Gfm=cell(m,1); +Gfm=cell(m,1); +for i=1:m + indice=find(matrixvsfra(connectmf{i,1},:)~=0); + n=size(indice,2); + cf=zeros(6,n); +if(n>0)%Ļѷn=size(indice,2); + matnodes=nodes(connectmf{i,1},:); + matnodes=coord(matnodes,:); + p(1,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(3,:)+matnodes(4,:))/4; + p(2,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(5,:)+matnodes(6,:))/4; + p(3,:)=(matnodes(1,:)+matnodes(3,:)+matnodes(5,:)+matnodes(7,:))/4; + p(4,:)=(matnodes(2,:)+matnodes(4,:)+matnodes(6,:)+matnodes(8,:))/4; + p(5,:)=(matnodes(3,:)+matnodes(4,:)+matnodes(7,:)+matnodes(8,:))/4; + p(6,:)=(matnodes(5,:)+matnodes(6,:)+matnodes(7,:)+matnodes(8,:))/4; + for j=1:6 + for k=1:n + for xiao=2:(nf+1) + if(matrixvsfra(connectmf{i,1},k)0)%Ļѷn=size(indice,2); + for j=1:n + for k=1:n + for r=2:(nf+1) + if(matrixvsfra(connectmf{i,1},k)0)%Ļѷn=size(indice,2); + matnodes=nodes(connectmf{i,1},:); + matnodes=coord(matnodes,:); + p(1,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(3,:)+matnodes(4,:))/4; + p(2,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(5,:)+matnodes(6,:))/4; + p(3,:)=(matnodes(1,:)+matnodes(3,:)+matnodes(5,:)+matnodes(7,:))/4; + p(4,:)=(matnodes(2,:)+matnodes(4,:)+matnodes(6,:)+matnodes(8,:))/4; + p(5,:)=(matnodes(3,:)+matnodes(4,:)+matnodes(7,:)+matnodes(8,:))/4; + p(6,:)=(matnodes(5,:)+matnodes(6,:)+matnodes(7,:)+matnodes(8,:))/4; + cf=zeros(n,6); + for k=1:n + core=corevsfra(matrixvsfra(connectmf{i,1},k),:); +% r=-1./((4.*pi).*sqrt(x-core(1)).^2+(y-core(2)).^2+(z-core(3)).^2); +% grad=[diff(r,x),diff(r,y),diff(r,z)]; + gradx=(x-core(1))./((4.*pi).*((x-core(1)).^2+(y-core(2)).^2+(z-core(3)).^2)^(3/2)); + grady=(y-core(2))./((4.*pi).*((x-core(1)).^2+(y-core(2)).^2+(z-core(3)).^2)^(3/2)); + gradz=(z-core(3))./((4.*pi).*((x-core(1)).^2+(y-core(2)).^2+(z-core(3)).^2)^(3/2)); + grad=[gradx,grady,gradz]; + for j=1:6 + if j==1 + rao=grad*n1'; + g=subs(rao,[x,y,z],[p(1,1)+x1,p(1,2)+y1,p(1,3)]); + if (isempty(symvar(g))) cf(k,j)=0; + else + g1=matlabFunction(g); + g2=@(x1,y1)g1(x1,y1); + cf(k,j)=integral2(g2,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==2 + rao=grad*n2'; +% g=subs(rao,y,); + g=subs(rao,[x,y,z],[p(2,1)+x1,p(2,2),p(2,3)+z1]); + + if (isempty(symvar(g))) cf(k,j)=0; + else + g1=matlabFunction(g); + g2=@(x1,z1)g1(x1,z1); + cf(k,j)=integral2(g2,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==3 + rao=grad*n3'; +% g=subs(rao,x,-dx/2); + g=subs(rao,[x,y,z],[p(3,1),p(3,2)+y1,p(3,3)+z1]); + + if (isempty(symvar(g))) + cf(k,j)=0; + else + g1=matlabFunction(g); + g2=@(y1,z1)g1(y1,z1); + cf(k,j)=integral2(g2,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==4 + rao=grad*n4'; +% g=subs(rao,x,dx/2); + g=subs(rao,[x,y,z],[p(4,1),p(4,2)+y1,p(4,3)+z1]); + + if (isempty(symvar(g))) + cf(k,j)=0; + else + g1=matlabFunction(g);g2=@(y1,z1)g1(y1,z1); + cf(k,j)=integral2(g2,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==5 + rao=grad*n5'; +% g=subs(rao,y,dy/2); + g=subs(rao,[x,y,z],[p(5,1)+x1,p(5,2),p(5,3)+z1]); + + if (isempty(symvar(g))) + cf(k,j)=0; + else + g1=matlabFunction(g); g2=@(x1,z1)g1(x1,z1); + cf(k,j)=integral2(g2,-dx/2,dx/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + if j==6 + rao=grad*n6'; +% g=subs(rao,z,dz/2); + g=subs(rao,[x,y,z],[p(6,1)+x1,p(6,2)+y1,p(6,3)]); + + if (isempty(symvar(g))) + cf(k,j)=0; + else + g1=matlabFunction(g); g2=@(x1,y1)g1(x1,y1); + cf(k,j)=integral2(g2,-dx/2,dx/2,-dy/2,dy/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); + end + end + end + + end + dGf{i,1}=cf; + end + + a=1; +end +%% Gf +%corevsfraÿѷ +syms z y x; +% m=size(matrixvsfra,1); +Gf=cell(m,1); +for i=1:m + dx=dimen(i,1); dy=dimen(i,2); dz=dimen(i,3); + indice=find(matrixvsfra(connectmf{i,1},:)~=0); + n=size(indice,2); + cf=zeros(n,6); +if(n>0)%Ļѷn=size(indice,2); + matnodes=nodes(connectmf{i,1},:); + matnodes=coord(matnodes,:); + p(1,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(3,:)+matnodes(4,:))/4;%z + p(2,:)=(matnodes(1,:)+matnodes(2,:)+matnodes(5,:)+matnodes(6,:))/4;%y + p(3,:)=(matnodes(1,:)+matnodes(3,:)+matnodes(5,:)+matnodes(7,:))/4;%x + p(4,:)=(matnodes(2,:)+matnodes(4,:)+matnodes(6,:)+matnodes(8,:))/4;%x + p(5,:)=(matnodes(3,:)+matnodes(4,:)+matnodes(7,:)+matnodes(8,:))/4;%y + p(6,:)=(matnodes(5,:)+matnodes(6,:)+matnodes(7,:)+matnodes(8,:))/4;%z + for j=1:n + %for k=1:6%ʹѭ +% for r=2:(nf+1) +% if(matrixvsfra(i,j)0)%Ļѷn=size(indice,2); +% % % for j=1:n +% % % matnodes=nodes(connectmf{i,1},:); +% % % matnodes=coord(matnodes,:); +% % % pm=mean(matnodes); +% % % core=corevsfra(matrixvsfra(connectmf{i,1},j),:); +% % % r=-1./((4.*pi).*sqrt((x+pm(1)-core(1)).^2+(y+pm(2)-core(2)).^2+(z+pm(3)-core(3)).^2)+1e-8); +% % % f=matlabFunction(r); +% % % cf(j,1)=integral3(f,-dx/2,dx/2,-dy/2,dy/2,-dz/2,dz/2,'Method','iterated','AbsTol',1e-8,'RelTol',1e-5); +% % % end +% % % end +% % % Gfmt{i,1}=cf; +% % % end +% % % +% % % %% Gfft +% % % Gfft=Gff;%ûӦ +%% ϵ +% m=size(matrixvsfra,1); +% Ap=cell(m,1); +Ap=cell(m,2); +Apf=cell(m,1); +% Apmt=cell(m,1); +% Apft=cell(m,1); +for i=1:m +% if (isempty(Gfm{i,1})==0)%ǿ +% ת +grid_num=connectmf{i,1}; +% ֻңΪҪ£ҪԤ¸һ㣬ֹἫ +C=zeros(4,5); +rel_grid=[grid_num-rr.nx,grid_num-1,grid_num+1,grid_num+rr.nx,grid_num]; +% x +C(1,1)=rr.ky(grid_num-rr.nx)/rr.dyv(grid_num-rr.nx)/(rr.ky(grid_num)/rr.dyv(grid_num)+rr.ky(grid_num-rr.nx)/rr.dyv(grid_num-rr.nx)); +C(1,5)=rr.ky(grid_num)/rr.dyv(grid_num)/(rr.ky(grid_num)/rr.dyv(grid_num)+rr.ky(grid_num-rr.nx)/rr.dyv(grid_num-rr.nx)); +C(4,4)=rr.ky(grid_num+rr.nx)/rr.dyv(grid_num+rr.nx)/(rr.ky(grid_num)/rr.dyv(grid_num)+rr.ky(grid_num+rr.nx)/rr.dyv(grid_num+rr.nx)); +C(4,5)=rr.ky(grid_num)/rr.dyv(grid_num)/(rr.ky(grid_num)/rr.dyv(grid_num)+rr.ky(grid_num+rr.nx)/rr.dyv(grid_num+rr.nx)); +% y +C(2,2)=rr.kx(grid_num-1)/rr.dxv(grid_num-1)/(rr.kx(grid_num)/rr.dxv(grid_num)+rr.kx(grid_num-1)/rr.dxv(grid_num-1)); +C(2,5)=rr.kx(grid_num)/rr.dxv(grid_num)/(rr.kx(grid_num)/rr.dxv(grid_num)+rr.kx(grid_num-1)/rr.dxv(grid_num-1)); +C(3,3)=rr.kx(grid_num+1)/rr.dxv(grid_num+1)/(rr.kx(grid_num)/rr.dxv(grid_num)+rr.kx(grid_num+1)/rr.dxv(grid_num+1)); +C(3,5)=rr.kx(grid_num)/rr.dxv(grid_num)/(rr.kx(grid_num)/rr.dxv(grid_num)+rr.kx(grid_num+1)/rr.dxv(grid_num+1)); +C=[[0,0,0,0,1];C;[0,0,0,0,1]]; + +Gin = G{i,1}^(-1); +Ap0 = dGf{i,1} - Gf{i,1} * Gin * dG{i,1}; +Apf0 = Gf{i,1} * Gin * Gfm{i,1} - Gff{i,1}; +Apfv = Apf0^(-1); +Apt= Apfv * Ap0; +% Ap{i,1} = Apt * ones(6,1); +Ap{i,1} = Apt * C; +Ap{i,2} = rel_grid; +Apf{i,1} = -Apfv; +wo=size(Apfv,1); +ni=size(Apfv,2); +% Apmt{i,1}=0; +% Apft{i,1}=zeros(wo,ni); +% % % Apmt{i,1}=Apfv*(Gfmt{i,1}-Gf{i,1}*Gin*Gmt{i,1}); +% % % Apft{i,1}=Apfv*(Gfft{i,1}-Gf{i,1}*Gin*Gmft{i,1}); +end +end +% Ap = Ap * ones(nb,1); +% Apf = -Apfv; + + + + + diff --git a/core functions/preprocess/about_grid/intersectionsolve.m b/core functions/preprocess/about_grid/intersectionsolve.m new file mode 100644 index 0000000..1e1b63d --- /dev/null +++ b/core functions/preprocess/about_grid/intersectionsolve.m @@ -0,0 +1,225 @@ +function [ d3intersection ] = intersectionsolve(fracture,dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ) +% ѷ໥ķΧȷмϵĶԳ +% dx,dy,dz,lx,ly,lzԲ +% t=t0+u*t1+v*t2;ϲΪu,v +%ֻཻһ㣬ֻÿһǰǽ꣬d3intersectionУ +%ཻһ߶Σd2intersectionֻÿһǰߵ꣬һδ֪꣨-1ʾġʾཻ߶ϵһȡֵΧ +%d2intersectionеÿһ߶νд +%ʾ[ d3intersection ] = intersectionsolve([0.5,0,0],[1,1,0],[0,0,1],0,6,0,7,1,1,1,10,10,10) +t0=fracture(1,:);t1=fracture(2,:);t2=fracture(3,:); +umin=fracture(4,1);umax=fracture(4,2);vmin=fracture(5,1);vmax=fracture(5,2); +d3intersection=-1000*ones(1000,3);%-1000ʶ +% [I,J]=find(d3intersection==-1000);%-1000ʶ +% n=min(I); +d2intersection=zeros(50,5); +n=1; +i=1; +unknown=ones(2,1); +% жxཻ +%ܿܲȣʽд + + +for wang=1:ny+1 + y=yrao(1,wang); + for dai=1:nz+1 + z=zrao(1,dai); + A=[t1(2),t2(2); + t1(3),t2(3)]; + b=[y;z]-[t0(2);t0(3)]; + if(det(A)~=0) + unknown=A\b; + if ((unknown(1,1)>=umin)&&(unknown(1,1)<=umax)&&(unknown(2,1)>=vmin)&&(unknown(2,1)<=vmax)) + x=[t1(1),t2(1)]*unknown+t0(1); + d3intersection(n,:)=[x,y,z]; + n=n+1; + end + else + if((t1(2)~=0)) + if(((t1(2)*z)==(t1(3)*y))&&(y/t1(2)>=umin)&&(y/t1(2)<=umax)) + intersecxmin=t1(1)*y/t1(2)+t2(1)*vmin; + intersecxmax=t1(1)*y/t1(2)+t2(1)*vmax; + d2intersection(i,:)=[-1,y,z,intersecxmin,intersecxmax]+[0,t0(2),t0(3),t0(1),t0(1)]; + i=i+1; + end + else if(t1(3)~=0) + if(((t1(2)*z)==(t1(3)*y))&&(z/t1(3)>=umin)&&(z/t1(3)<=umax)) + intersecxmin=t1(1)*z/t1(3)+t2(1)*vmin; + intersecxmax=t1(1)*z/t1(3)+t2(1)*vmax; + d2intersection(i,:)=[-1,y,z,intersecxmin,intersecxmax]+[0,t0(2),t0(3),t0(1),t0(1)]; + i=i+1; + end + else if(t2(2)~=0) + if(((t2(2)*z)==(t2(3)*y))&&(y/t2(2)>=vmin)&&(y/t2(2)<=vmax)) + intersecxmin=t1(1)*umin+t2(1)*y/t2(2); + intersecxmax=t1(1)*umax+t2(1)*y/t2(2); + d2intersection(i,:)=[-1,y,z,intersecxmin,intersecxmax]+[0,t0(2),t0(3),t0(1),t0(1)]; + i=i+1; + end + else + if(((t2(2)*z)==(t2(3)*y))&&(z/t2(3)>=vmin)&&(z/t2(3)<=vmax)) + intersecxmin=t1(1)*umin+t2(1)*z/t2(3); + intersecxmax=t1(1)*umax+t2(1)*z/t2(3); + d2intersection(i,:)=[-1,y,z,intersecxmin,intersecxmax]+[0,t0(2),t0(3),t0(1),t0(1)]; + i=i+1; + end + end + end + end + end + end +end + +% жyཻ +for wang=1:nx+1 + x=xrao(1,wang); + for dai=1:nz+1 + z=zrao(1,dai); + A=[t1(1),t2(1); + t1(3),t2(3)]; + b=[x;z]-[t0(1);t0(3)]; + if(det(A)~=0) + unknown=A\b; + if ((unknown(1,1)>=umin)&&(unknown(1,1)<=umax)&&(unknown(2,1)>=vmin)&&(unknown(2,1)<=vmax)) + y=[t1(2),t2(2)]*unknown+t0(2); + d3intersection(n,:)=[x,y,z]; + n=n+1; + end + else + if((t1(1)~=0)) + if(((t1(1)*z)==(t1(3)*x))&&(x/t1(1)>=umin)&&(x/t1(1)<=umax)) + intersecymin=t1(2)*x/t1(1)+t2(2)*vmin; + intersecymax=t1(2)*x/t1(1)+t2(2)*vmax; + d2intersection(i,:)=[x,-1,z,intersecymin,intersecymax]+[t0(1),0,t0(3),t0(2),t0(2)]; + i=i+1; + end + else if(t1(3)~=0) + if(((t1(1)*z)==(t1(3)*x))&&(z/t1(3)>=umin)&&(z/t1(3)<=umax)) + intersecymin=t1(2)*z/t1(3)+t2(2)*vmin; + intersecymax=t1(2)*z/t1(3)+t2(2)*vmax; + d2intersection(i,:)=[x,-1,z,intersecymin,intersecymax]+[t0(1),0,t0(3),t0(2),t0(2)]; + i=i+1; + end + else if(t2(1)~=0) + if(((t2(1)*z)==(t2(3)*x))&&(x/t2(1)>=vmin)&&(x/t2(1)<=vmax)) + intersecymin=t1(2)*umin+t2(2)*x/t2(1); + intersecymax=t1(2)*umax+t2(2)*x/t2(1); + d2intersection(i,:)=[x,-1,z,intersecymin,intersecymax]+[t0(1),0,t0(3),t0(2),t0(2)]; + i=i+1; + end + else + if(((t2(1)*z)==(t2(3)*x))&&(z/t2(3)>=vmin)&&(z/t2(3)<=vmax)) + intersecymin=t1(2)*umin+t2(2)*z/t2(3); + intersecymax=t1(2)*umax+t2(2)*z/t2(3); + d2intersection(i,:)=[x,-1,z,intersecymin,intersecymax]+[t0(1),0,t0(3),t0(2),t0(2)]; + i=i+1; + end + end + end + end + end + end +end + +%жzཻ +for wang=1:nx+1 + x=xrao(1,wang); + for dai=1:ny+1 + y=yrao(1,dai); + A=[t1(1),t2(1); + t1(2),t2(2)]; + b=[x;y]-[t0(1);t0(2)]; + if(det(A)~=0) + unknown=A\b; + if ((unknown(1,1)>=umin)&&(unknown(1,1)<=umax)&&(unknown(2,1)>=vmin)&&(unknown(2,1)<=vmax)) + z=[t1(3),t2(3)]*unknown+t0(3); + d3intersection(n,:)=[x,y,z]; + n=n+1; + end + else + if((t1(1)~=0)) + if(((t1(1)*y)==(t1(2)*x))&&(x/t1(1)>=umin)&&(x/t1(1)<=umax)) + interseczmin=t1(3)*x/t1(1)+t2(3)*vmin; + interseczmax=t1(3)*x/t1(1)+t2(3)*vmax; + d2intersection(i,:)=[x,y,-1,interseczmin,interseczmax]+[t0(1),t0(2),0,t0(3),t0(3)]; + i=i+1; + end + else if(t1(2)~=0) + if(((t1(1)*y)==(t1(2)*x))&&(y/t1(2)>=umin)&&(y/t1(2)<=umax)) + interseczmin=t1(3)*y/t1(2)+t2(3)*vmin; + interseczmax=t1(3)*y/t1(2)+t2(3)*vmax; + d2intersection(i,:)=[x,y,-1,interseczmin,interseczmax]+[t0(1),t0(2),0,t0(3),t0(3)]; + i=i+1; + end + else if(t2(1)~=0) + if(((t2(1)*y)==(t2(2)*x))&&(x/t2(1)>=vmin)&&(x/t2(1)<=vmax)) + interseczmin=t1(3)*umin+t2(3)*x/t2(1); + interseczmax=t1(3)*umax+t2(3)*x/t2(1); + d2intersection(i,:)=[x,y,-1,interseczmin,interseczmax]+[t0(1),t0(2),0,t0(3),t0(3)]; + i=i+1; + end + else + if(((t2(1)*y)==(t2(2)*x))&&(y/t2(2)>=vmin)&&(y/t2(2)<=vmax)) + interseczmin=t1(3)*umin+t2(3)*y/t2(2); + interseczmax=t1(3)*umax+t2(3)*y/t2(2); + d2intersection(i,:)=[x,y,-1,interseczmin,interseczmax]+[t0(1),t0(2),0,t0(3),t0(3)]; + i=i+1; + end + end + end + end + end + end +end +% ɾȥͬ߶ +d2intersection=unique(d2intersection, 'rows', 'stable'); +m=size(d2intersection,1); +for i=1:m + + if(d2intersection(i,1)==-1) +d3intersection(n,:)=[d2intersection(i,4),d2intersection(i,2),d2intersection(i,3)];n=n+1; +d3intersection(n,:)=[d2intersection(i,5),d2intersection(i,2),d2intersection(i,3)];n=n+1; + for wang=1:nx+1 + j=xrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) + d3intersection(n,:)=[j,d2intersection(i,2),d2intersection(i,3)];n=n+1; + end + end + end + + if(d2intersection(i,2)==-1) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,4),d2intersection(i,3)];n=n+1; +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,5),d2intersection(i,3)];n=n+1; + for wang=1:ny+1 + j=yrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) + d3intersection(n,:)=[d2intersection(i,1),j,d2intersection(i,3)];n=n+1; + end + end + end + + if(d2intersection(i,3)==-1) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),d2intersection(i,4)];n=n+1; +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),d2intersection(i,5)];n=n+1; + for wang=1:nz+1 + j=zrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),j];n=n+1; + end + end + end +end +d3intersection=unique(d3intersection, 'rows', 'stable'); +[I,J]=find(d3intersection==-1000); +d3intersection(I,:)=[]; + + +% A=[t1(1),t2(1); +% t1(2),t2(2); +% t1(3),t2(3)]; +% b=[0;0;0]; +% x=A\b; +% if((x(1)>umax)||(x(1)vmax)||(x(2)=umin)&&(unknown(1,1)<=umax)&&(unknown(2,1)>=vmin)&&(unknown(2,1)<=vmax)) + x=[t1(1),t2(1)]*unknown+t0(1); + d3intersection(n,:)=[x,y,z]; + n=n+1; + end + %Aʱʱ֪ + %ڵķڸѷƽڣʸϵеʸȥѷt0󣬱ܱʾt1t2 + %ˣõӦu,vֵȻжǷu,vķΧ + %޽ʱжϳ + else + A=[t1(1),t2(1), + t1(2),t2(2); + t1(3),t2(3)]; + test=([0,y,z]-t0)'; + tests=A\test; + if norm(A*tests-test)<=1e-6 %˵ڸѷ + flag=0; + for huihui=1:nx+1 + xtest=xrao(1,huihui); + vectest=[xtest,y,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + intersecxmin=xtest;flag=flag+1; break; + end + end + for huihui=nx+1:-1:1 + xtest=xrao(1,huihui); + vectest=[xtest,y,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + intersecxmax=xtest; flag=flag+1; break; + end + end + if flag==2 + d2intersection(i,:)=[-1,y,z,intersecxmin,intersecxmax];i=i+1; + end + end + end + end +end + + + + + + +% жyཻ +for wang=1:nx+1 + x=xrao(1,wang); + for dai=1:nz+1 + z=zrao(1,dai); + A=[t1(1),t2(1); + t1(3),t2(3)]; + b=[x;z]-[t0(1);t0(3)]; + if(det(A)~=0) + unknown=A\b; + if ((unknown(1,1)>=umin)&&(unknown(1,1)<=umax)&&(unknown(2,1)>=vmin)&&(unknown(2,1)<=vmax)) + y=[t1(2),t2(2)]*unknown+t0(2); + d3intersection(n,:)=[x,y,z]; + n=n+1; + end + else + A=[t1(1),t2(1), + t1(2),t2(2); + t1(3),t2(3)]; + test=([x,0,z]-t0)'; + tests=A\test; + if norm(A*tests-test)<=1e-6 %˵ڸѷ + flag=0; + for huihui=1:ny+1 + ytest=yrao(1,huihui); + vectest=[x,ytest,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + intersecymin=ytest; flag=flag+1; break; + end + end + for huihui=ny+1:-1:1 + ytest=yrao(1,huihui); + vectest=[x,ytest,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + intersecymax=ytest;flag=flag+1; break; + end + end + if flag==2 + d2intersection(i,:)=[x,-1,z,intersecymin,intersecymax];i=i+1; + end + + + end + end + end +end + + +%жzཻ +for wang=1:nx+1 + x=xrao(1,wang); + for dai=1:ny+1 + y=yrao(1,dai); + A=[t1(1),t2(1); + t1(2),t2(2)]; + b=[x;y]-[t0(1);t0(2)]; + if(det(A)~=0) + unknown=A\b; + if ((unknown(1,1)>=umin)&&(unknown(1,1)<=umax)&&(unknown(2,1)>=vmin)&&(unknown(2,1)<=vmax)) + z=[t1(3),t2(3)]*unknown+t0(3); + d3intersection(n,:)=[x,y,z]; + n=n+1; + end + else + A=[t1(1),t2(1), + t1(2),t2(2); + t1(3),t2(3)]; + test=([x,y,0]-t0)'; + tests=A\test; + hen=A*tests-test; + if norm(A*tests-test)<=1e-6 %˵ڸѷ + flag=0; + for huihui=1:nz+1 + + ztest=zrao(1,huihui); + vectest=[x,y,ztest]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + interseczmin=ztest;flag=flag+1; break; + end + end + for huihui=nz+1:-1:1 + ztest=zrao(1,huihui); + vectest=[x,y,ztest]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + interseczmax=ztest;flag=flag+1; break; + end + end + if flag==2 + d2intersection(i,:)=[x,y,-1,interseczmin,interseczmax];i=i+1; + end + + + end + end + end +end + + +% ɾȥͬ߶μ߶ +d2intersection=unique(d2intersection, 'rows', 'stable'); +m=size(d2intersection,1); +for i=1:m + + if(d2intersection(i,1)==-1) +d3intersection(n,:)=[d2intersection(i,4),d2intersection(i,2),d2intersection(i,3)];n=n+1; +d3intersection(n,:)=[d2intersection(i,5),d2intersection(i,2),d2intersection(i,3)];n=n+1; + for wang=1:nx+1 + j=xrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) + d3intersection(n,:)=[j,d2intersection(i,2),d2intersection(i,3)];n=n+1; + end + end + end + + if(d2intersection(i,2)==-1) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,4),d2intersection(i,3)];n=n+1; +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,5),d2intersection(i,3)];n=n+1; + for wang=1:ny+1 + j=yrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) + d3intersection(n,:)=[d2intersection(i,1),j,d2intersection(i,3)];n=n+1; + end + end + end + + if(d2intersection(i,3)==-1) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),d2intersection(i,4)];n=n+1; +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),d2intersection(i,5)];n=n+1; + for wang=1:nz+1 + j=zrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),j];n=n+1; + end + end + end +end +d3intersection=unique(d3intersection, 'rows', 'stable'); +[I,J]=find(d3intersection==-1000); +d3intersection(I,:)=[]; + + +% A=[t1(1),t2(1); +% t1(2),t2(2); +% t1(3),t2(3)]; +% b=[0;0;0]; +% x=A\b; +% if((x(1)>umax)||(x(1)vmax)||(x(2)=umin)&&(unknown(1,1)<=umax)&&(unknown(2,1)>=vmin)&&(unknown(2,1)<=vmax)) + x=[t1(1),t2(1)]*unknown+t0(1); + d3intersection(n,:)=[x,y,z]; + n=n+1; + end + %Aʱʱ֪ + %ڵķڸѷƽڣʸϵеʸȥѷt0󣬱ܱʾt1t2 + %ˣõӦu,vֵȻжǷu,vķΧ + %޽ʱжϳ + else + + A=[t1(1),t2(1), + t1(2),t2(2); + t1(3),t2(3)]; + test=([0,y,z]-t0)'; + tests=A\test; + if norm(A*tests-test)<=1e-6 %˵ڸѷ + flag=0; + for huihui=1:nx+1 + xtest=xrao(1,huihui); + vectest=[xtest,y,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + + xxtest=xtest-0.01;vvectest=[xxtest,y,z];uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax))%xҪѰ׼ȷ + + if huihui==1 + intersecxmin=xtest;flag=flag+1; break; + else xlow=xrao(1,huihui-1); xhigh=xtest; + + end + while (xhigh-xlow>=tolerance) + xxtest=1/2*(xlow+xhigh); + vvectest=[xxtest,y,z]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax)) + xhigh=xxtest; xlow=xlow; + else xlow=xxtest; xhigh=xhigh; + end + end + intersecxmin=xhigh;flag=flag+1; break; + else %ڵҪҵĵ + intersecxmin=xtest;flag=flag+1; break; + end + end + end + + for huihui=nx+1:-1:1 + xtest=xrao(1,huihui); + vectest=[xtest,y,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + xxtest=xtest+0.01;vvectest=[xxtest,y,z];uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax))%xҪѰ׼ȷ + + if huihui==(nx+1) + intersecxmax=xtest;flag=flag+1; break; + else xlow=xtest; xhigh=xrao(1,huihui+1); + + end + while (xhigh-xlow>=tolerance) + xxtest=1/2*(xlow+xhigh); + vvectest=[xxtest,y,z]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax)) + xhigh=xhigh; xlow=xxtest; + else xlow=xlow; xhigh=xxtest; + end + end + intersecxmax=xlow;flag=flag+1; break; + else %ڵҪҵĵ + intersecxmax=xtest;flag=flag+1; break; + end + end + end + + if flag==2 + d2intersection(i,:)=[-1,y,z,intersecxmin,intersecxmax];i=i+1; + end + end + end + end +end + + + + + + +% жyཻ +for wang=1:nx+1 + x=xrao(1,wang); + for dai=1:nz+1 + z=zrao(1,dai); + A=[t1(1),t2(1); + t1(3),t2(3)]; + b=[x;z]-[t0(1);t0(3)]; + if(det(A)~=0) + unknown=A\b; + if ((unknown(1,1)>=umin)&&(unknown(1,1)<=umax)&&(unknown(2,1)>=vmin)&&(unknown(2,1)<=vmax)) + y=[t1(2),t2(2)]*unknown+t0(2); + d3intersection(n,:)=[x,y,z]; + n=n+1; + end + else + A=[t1(1),t2(1), + t1(2),t2(2); + t1(3),t2(3)]; + test=([x,0,z]-t0)'; + tests=A\test; + if norm(A*tests-test)<=1e-6 %˵ڸѷ + flag=0; + for huihui=1:ny+1 + ytest=yrao(1,huihui); + vectest=[x,ytest,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + yytest=ytest-0.01;vvectest=[x,yytest,z];uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax))%xҪѰ׼ȷ + + if huihui==1 + intersecymin=ytest;flag=flag+1; break; + else ylow=yrao(1,huihui-1); yhigh=ytest; + + end + while (yhigh-ylow>=tolerance) + yytest=1/2*(ylow+yhigh); + vvectest=[x,yytest,z]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax)) + yhigh=yytest; ylow=ylow; + else ylow=yytest; yhigh=yhigh; + end + end + intersecymin=yhigh;flag=flag+1; break; + else %ڵҪҵĵ + intersecymin=ytest;flag=flag+1; break; + end + end + end + + for huihui=ny+1:-1:1 + ytest=yrao(1,huihui); + vectest=[x,ytest,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + yytest=ytest+0.01;vvectest=[x,yytest,z];uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax))%xҪѰ׼ȷ + + if huihui==(ny+1) + intersecymax=ytest;flag=flag+1; break; + else ylow=ytest; yhigh=yrao(1,huihui+1); + + end + while (yhigh-ylow>=tolerance) + yytest=1/2*(ylow+yhigh); + vvectest=[x,yytest,z]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax)) + yhigh=yhigh; ylow=yytest; + else ylow=ylow; yhigh=yytest; + end + end + intersecymax=ylow;flag=flag+1; break; + else %ڵҪҵĵ + intersecymax=ytest;flag=flag+1; break; + end + end + end + + if flag==2 + d2intersection(i,:)=[x,-1,z,intersecymin,intersecymax];i=i+1; + end + + + end + end + end +end + + +%жzཻ +for wang=1:nx+1 + x=xrao(1,wang); + for dai=1:ny+1 + y=yrao(1,dai); + A=[t1(1),t2(1); + t1(2),t2(2)]; + b=[x;y]-[t0(1);t0(2)]; + if(det(A)~=0) + unknown=A\b; + if ((unknown(1,1)>=umin)&&(unknown(1,1)<=umax)&&(unknown(2,1)>=vmin)&&(unknown(2,1)<=vmax)) + z=[t1(3),t2(3)]*unknown+t0(3); + d3intersection(n,:)=[x,y,z]; + n=n+1; + end + else + A=[t1(1),t2(1), + t1(2),t2(2); + t1(3),t2(3)]; + test=([x,y,0]-t0)'; + tests=A\test; + hen=A*tests-test; + if norm(A*tests-test)<=1e-6 %˵ڸѷ + flag=0; + for huihui=1:nz+1 + + ztest=zrao(1,huihui); + vectest=[x,y,ztest]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + zztest=ztest-0.01;vvectest=[x,y,zztest];uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax))%xҪѰ׼ȷ + + if huihui==1 + interseczmin=ztest;flag=flag+1; break; + else zlow=zrao(1,huihui-1); zhigh=ztest; + + end + while (zhigh-zlow>=tolerance) + zztest=1/2*(zlow+zhigh); + vvectest=[x,y,zztest]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax)) + zhigh=zztest; zlow=zlow; + else zlow=zztest; zhigh=zhigh; + end + end + interseczmin=zhigh;flag=flag+1; break; + else %ڵҪҵĵ + interseczmin=ztest;flag=flag+1; break; + end + end + end + + for huihui=nz+1:-1:1 + ztest=zrao(1,huihui); + vectest=[x,y,ztest]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + zztest=ztest+0.01;vvectest=[x,y,zztest];uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax))%xҪѰ׼ȷ + + if huihui==(nz+1) + interseczmax=ztest;flag=flag+1; break; + else zlow=ztest; zhigh=zrao(1,huihui+1); + + end + while (zhigh-zlow>=tolerance) + zztest=1/2*(zlow+zhigh); + vvectest=[x,y,zztest]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax)) + zhigh=zhigh; zlow=zztest; + else zlow=zlow; zhigh=zztest; + end + end + interseczmax=zlow;flag=flag+1; break; + else %ڵҪҵĵ + interseczmax=ztest;flag=flag+1; break; + end + end + end + + if flag==2 + d2intersection(i,:)=[x,y,-1,interseczmin,interseczmax];i=i+1; + end + + + end + end + end +end + +%% ѷ߽Ľ +% u=uminʱ +%point=t0+umin*t1+v*t2; +%y-zĽ +boundary=[umin,umax,vmin,vmax]; +for xiang=1:4 + +if xiang<=2 %˵uȡֵ +for hui=1:nx+1 + if t2(1)==0 break; + else + x=xrao(1,hui); + v=(x-t1(1)*boundary(xiang)-t0(1))/t2(1); + if (v>=vmin)&&(v<=vmax) + point=t0+boundary(xiang)*t1+v*t2; + d3intersection(n,:)=point;n=n+1; + end + end +end +else %vȡֵ +for hui=1:nx+1 + if t1(1)==0 break; + else + x=xrao(1,hui); + u=(x-t2(1)*boundary(xiang)-t0(1))/t1(1); + if (u>=umin)&&(u<=umax) + point=t0+u*t1+boundary(xiang)*t2; + d3intersection(n,:)=point;n=n+1; + end + end +end +end +end + +%x-zĽ +boundary=[umin,umax,vmin,vmax]; +for xiang=1:4 + +if xiang<=2 %˵uȡֵ +for hui=1:ny+1 + if t2(2)==0 break; + else + y=yrao(1,hui); + v=(y-t1(2)*boundary(xiang)-t0(2))/t2(2); + if (v>=vmin)&&(v<=vmax) + point=t0+boundary(xiang)*t1+v*t2; + d3intersection(n,:)=point;n=n+1; + end + end +end +else %vȡֵ +for hui=1:ny+1 + if t1(2)==0 break; + else + y=yrao(1,hui); + u=(y-t2(2)*boundary(xiang)-t0(2))/t1(2); + if (u>=umin)&&(u<=umax) + point=t0+u*t1+boundary(xiang)*t2; + d3intersection(n,:)=point;n=n+1; + end + end +end +end +end + +%x-yĽ +boundary=[umin,umax,vmin,vmax]; +for xiang=1:4 + +if xiang<=2 %˵uȡֵ +for hui=1:nz+1 + if t2(3)==0 break; + else + z=zrao(1,hui); + v=(z-t1(3)*boundary(xiang)-t0(3))/t2(3); + if (v>=vmin)&&(v<=vmax) + point=t0+boundary(xiang)*t1+v*t2; + d3intersection(n,:)=point;n=n+1; + end + end +end +else %vȡֵ +for hui=1:nz+1 + if t1(3)==0 break; + else + z=zrao(1,hui); + u=(z-t2(3)*boundary(xiang)-t0(3))/t1(3); + if (u>=umin)&&(u<=umax) + point=t0+u*t1+boundary(xiang)*t2; + d3intersection(n,:)=point;n=n+1; + end + end +end +end +end + + + + + + + +% ɾȥͬ߶μ߶ +d2intersection=unique(d2intersection, 'rows', 'stable'); +m=size(d2intersection,1); +for i=1:m + + if(d2intersection(i,1)==-1) +d3intersection(n,:)=[d2intersection(i,4),d2intersection(i,2),d2intersection(i,3)];n=n+1; +d3intersection(n,:)=[d2intersection(i,5),d2intersection(i,2),d2intersection(i,3)];n=n+1; + for wang=1:nx+1 + j=xrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) + d3intersection(n,:)=[j,d2intersection(i,2),d2intersection(i,3)];n=n+1; + end + end + end + + if(d2intersection(i,2)==-1) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,4),d2intersection(i,3)];n=n+1; +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,5),d2intersection(i,3)];n=n+1; + for wang=1:ny+1 + j=yrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) + d3intersection(n,:)=[d2intersection(i,1),j,d2intersection(i,3)];n=n+1; + end + end + end + + if(d2intersection(i,3)==-1) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),d2intersection(i,4)];n=n+1; +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),d2intersection(i,5)];n=n+1; + for wang=1:nz+1 + j=zrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),j];n=n+1; + end + end + end +end +d3intersection=unique(d3intersection, 'rows', 'stable'); +[I,J]=find(d3intersection==-1000); +d3intersection(I,:)=[]; + +record=[]; +kitty=size(d3intersection,1); +for i=1:kitty-1 + for j=i+1:kitty + if (norm(d3intersection(i,:)-d3intersection(j,:))<=1e-1)%ֵй + record=[record;j]; + end + end +end +record=unique(record, 'rows', 'stable'); +d3intersection(record,:)=[]; + + + +% A=[t1(1),t2(1); +% t1(2),t2(2); +% t1(3),t2(3)]; +% b=[0;0;0]; +% x=A\b; +% if((x(1)>umax)||(x(1)vmax)||(x(2)=tolerance) + xxtest=1/2*(xlow+xhigh); + vvectest=[xxtest,y,z]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1,1)^2/urao^2+uunknown(2,1)^2/vdai^2)<=1) + xhigh=xxtest; xlow=xlow; + else xlow=xxtest; xhigh=xhigh; + end + end + intersecxmin=xhigh;flag=flag+1; break; + else %ڵҪҵĵ + intersecxmin=xtest;flag=flag+1; break; + end + end + end + + for huihui=nx+1:-1:1 + xtest=xrao(1,huihui); + vectest=[xtest,y,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1,1)^2/urao^2+unknown(2,1)^2/vdai^2)<=1) + xxtest=xtest+0.01;vvectest=[xxtest,y,z];uunknown=A\(vvectest-t0)'; + if (uunknown(1,1)^2/urao^2+uunknown(2,1)^2/vdai^2<=1)%xҪѰ׼ȷ + + if huihui==(nx+1) + intersecxmax=xtest;flag=flag+1; break; + else xlow=xtest; xhigh=xrao(1,huihui+1); + + end + while (xhigh-xlow>=tolerance) + xxtest=1/2*(xlow+xhigh); + vvectest=[xxtest,y,z]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1,1)^2/urao^2+uunknown(2,1)^2/vdai^2)<=1) + xhigh=xhigh; xlow=xxtest; + else xlow=xlow; xhigh=xxtest; + end + end + intersecxmax=xlow;flag=flag+1; break; + else %ڵҪҵĵ + intersecxmax=xtest;flag=flag+1; break; + end + end + end + + if flag==2 + d2intersection(i,:)=[-1,y,z,intersecxmin,intersecxmax];i=i+1; + end + end + end + end +end + + + + + + +% жyཻ +for wang=1:nx+1 + x=xrao(1,wang); + for dai=1:nz+1 + z=zrao(1,dai); + A=[t1(1),t2(1); + t1(3),t2(3)]; + b=[x;z]-[t0(1);t0(3)]; + if(det(A)~=0) + unknown=A\b; + if ((unknown(1,1)^2/urao^2+unknown(2,1)^2/vdai^2)<=1) + y=[t1(2),t2(2)]*unknown+t0(2); + d3intersection(n,:)=[x,y,z]; + n=n+1; + end + else + A=[t1(1),t2(1), + t1(2),t2(2); + t1(3),t2(3)]; + test=([x,0,z]-t0)'; + tests=A\test; + if norm(A*tests-test)<=1e-6 %˵ڸѷ + flag=0; + for huihui=1:ny+1 + ytest=yrao(1,huihui); + vectest=[x,ytest,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1,1)^2/urao^2+unknown(2,1)^2/vdai^2)<=1) + yytest=ytest-0.01;vvectest=[x,yytest,z];uunknown=A\(vvectest-t0)'; + if ((uunknown(1,1)^2/urao^2+uunknown(2,1)^2/vdai^2)<=1)%xҪѰ׼ȷ + + if huihui==1 + intersecymin=ytest;flag=flag+1; break; + else ylow=yrao(1,huihui-1); yhigh=ytest; + + end + while (yhigh-ylow>=tolerance) + yytest=1/2*(ylow+yhigh); + vvectest=[x,yytest,z]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1,1)^2/urao^2+uunknown(2,1)^2/vdai^2)<=1) + yhigh=yytest; ylow=ylow; + else ylow=yytest; yhigh=yhigh; + end + end + intersecymin=yhigh;flag=flag+1; break; + else %ڵҪҵĵ + intersecymin=ytest;flag=flag+1; break; + end + end + end + + for huihui=ny+1:-1:1 + ytest=yrao(1,huihui); + vectest=[x,ytest,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1,1)^2/urao^2+unknown(2,1)^2/vdai^2)<=1) + yytest=ytest+0.01;vvectest=[x,yytest,z];uunknown=A\(vvectest-t0)'; + if ((uunknown(1,1)^2/urao^2+uunknown(2,1)^2/vdai^2)<=1)%xҪѰ׼ȷ + + if huihui==(ny+1) + intersecymax=ytest;flag=flag+1; break; + else ylow=ytest; yhigh=yrao(1,huihui+1); + + end + while (yhigh-ylow>=tolerance) + yytest=1/2*(ylow+yhigh); + vvectest=[x,yytest,z]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1,1)^2/urao^2+uunknown(2,1)^2/vdai^2)<=1) + yhigh=yhigh; ylow=yytest; + else ylow=ylow; yhigh=yytest; + end + end + intersecymax=ylow;flag=flag+1; break; + else %ڵҪҵĵ + intersecymax=ytest;flag=flag+1; break; + end + end + end + + if flag==2 + d2intersection(i,:)=[x,-1,z,intersecymin,intersecymax];i=i+1; + end + + + end + end + end +end + + +%жzཻ +for wang=1:nx+1 + x=xrao(1,wang); + for dai=1:ny+1 + y=yrao(1,dai); + A=[t1(1),t2(1); + t1(2),t2(2)]; + b=[x;y]-[t0(1);t0(2)]; + if(det(A)~=0) + unknown=A\b; + if ((unknown(1,1)^2/urao^2+unknown(2,1)^2/vdai^2)<=1) + z=[t1(3),t2(3)]*unknown+t0(3); + d3intersection(n,:)=[x,y,z]; + n=n+1; + end + else + A=[t1(1),t2(1), + t1(2),t2(2); + t1(3),t2(3)]; + test=([x,y,0]-t0)'; + tests=A\test; + hen=A*tests-test; + if norm(A*tests-test)<=1e-6 %˵ڸѷ + flag=0; + for huihui=1:nz+1 + + ztest=zrao(1,huihui); + vectest=[x,y,ztest]; + unknown=A\(vectest-t0)'; + if ((unknown(1,1)^2/urao^2+unknown(2,1)^2/vdai^2)<=1) + zztest=ztest-0.01;vvectest=[x,y,zztest];uunknown=A\(vvectest-t0)'; + if ((uunknown(1,1)^2/urao^2+uunknown(2,1)^2/vdai^2)<=1)%xҪѰ׼ȷ + + if huihui==1 + interseczmin=ztest;flag=flag+1; break; + else zlow=zrao(1,huihui-1); zhigh=ztest; + + end + while (zhigh-zlow>=tolerance) + zztest=1/2*(zlow+zhigh); + vvectest=[x,y,zztest]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1,1)^2/urao^2+uunknown(2,1)^2/vdai^2)<=1) + zhigh=zztest; zlow=zlow; + else zlow=zztest; zhigh=zhigh; + end + end + interseczmin=zhigh;flag=flag+1; break; + else %ڵҪҵĵ + interseczmin=ztest;flag=flag+1; break; + end + end + end + + for huihui=nz+1:-1:1 + ztest=zrao(1,huihui); + vectest=[x,y,ztest]; + unknown=A\(vectest-t0)'; + if ((unknown(1,1)^2/urao^2+unknown(2,1)^2/vdai^2)<=1) + zztest=ztest+0.01;vvectest=[x,y,zztest];uunknown=A\(vvectest-t0)'; + if ((uunknown(1,1)^2/urao^2+uunknown(2,1)^2/vdai^2)<=1)%xҪѰ׼ȷ + + if huihui==(nz+1) + interseczmax=ztest;flag=flag+1; break; + else zlow=ztest; zhigh=zrao(1,huihui+1); + + end + while (zhigh-zlow>=tolerance) + zztest=1/2*(zlow+zhigh); + vvectest=[x,y,zztest]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1,1)^2/urao^2+uunknown(2,1)^2/vdai^2)<=1) + zhigh=zhigh; zlow=zztest; + else zlow=zlow; zhigh=zztest; + end + end + interseczmax=zlow;flag=flag+1; break; + else %ڵҪҵĵ + interseczmax=ztest;flag=flag+1; break; + end + end + end + + if flag==2 + d2intersection(i,:)=[x,y,-1,interseczmin,interseczmax];i=i+1; + end + + + end + end + end +end + +%% ѷ߽Ľ +% u=uminʱ +%point=t0+umin*t1+v*t2; +%y-zĽ + +% Ŀǰalfa2 ֻzʱ +%alfa1 ûz + +%yz + +for hui=1:nx+1 + x=xrao(1,hui); + if t1(1)==0 break; %Ϊһ㲻ѷõغ + else + u=(x-t0(1))/t1(1); + if (u<=urao) &&(u>=-urao) + v1=sqrt((1-u^2/urao^2)*vdai^2); + d3intersection(n,:)=t0+u*t1+v1*t2;n=n+1; + v2=-sqrt((1-u^2/urao^2)*vdai^2); + d3intersection(n,:)=t0+u*t1+v2*t2;n=n+1; + end + end +end + +% xz + +for hui=1:ny+1 + y=yrao(1,hui); + if t1(2)==0 break; %Ϊһ㲻ѷõغ + else + u=(y-t0(2))/t1(2); + if (u<=urao) && (u>=-urao) + v1=sqrt((1-u^2/urao^2)*vdai^2); + d3intersection(n,:)=t0+u*t1+v1*t2;n=n+1; + v2=-sqrt((1-u^2/urao^2)*vdai^2); + d3intersection(n,:)=t0+u*t1+v2*t2;n=n+1; + end + end +end + +% xy +% ǰ裬t2zķ +for hui=1:nz+1 + z=zrao(1,hui); + if t2(3)==0 break; %Ϊһ㲻ѷõغ + else + v=(z-t0(3))/t1(3); + if (v<=vdai) && (v>=-vdai) + u1=sqrt((1-v^2/vdai^2)*urao^2); + d3intersection(n,:)=t0+u1*t1+v*t2;n=n+1; + u2=-sqrt((1-v^2/vdai^2)*urao^2); + d3intersection(n,:)=t0+u2*t1+v*t2;n=n+1; + end + end +end + + + + +% ɾȥͬ߶μ߶ +d2intersection=unique(d2intersection, 'rows', 'stable'); +m=size(d2intersection,1); +for i=1:m + + if(d2intersection(i,1)==-1) +d3intersection(n,:)=[d2intersection(i,4),d2intersection(i,2),d2intersection(i,3)];n=n+1; +d3intersection(n,:)=[d2intersection(i,5),d2intersection(i,2),d2intersection(i,3)];n=n+1; + for wang=1:nx+1 + j=xrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) + d3intersection(n,:)=[j,d2intersection(i,2),d2intersection(i,3)];n=n+1; + end + end + end + + if(d2intersection(i,2)==-1) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,4),d2intersection(i,3)];n=n+1; +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,5),d2intersection(i,3)];n=n+1; + for wang=1:ny+1 + j=yrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) + d3intersection(n,:)=[d2intersection(i,1),j,d2intersection(i,3)];n=n+1; + end + end + end + + if(d2intersection(i,3)==-1) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),d2intersection(i,4)];n=n+1; +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),d2intersection(i,5)];n=n+1; + for wang=1:nz+1 + j=zrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),j];n=n+1; + end + end + end +end +d3intersection=unique(d3intersection, 'rows', 'stable'); +[I,J]=find(d3intersection==-1000); +d3intersection(I,:)=[]; + +record=[]; +kitty=size(d3intersection,1); +for i=1:kitty-1 + for j=i+1:kitty + if (norm(d3intersection(i,:)-d3intersection(j,:))<=1e-1)%ֵй + record=[record;j]; + end + end +end +record=unique(record, 'rows', 'stable'); +d3intersection(record,:)=[]; + + + +% A=[t1(1),t2(1); +% t1(2),t2(2); +% t1(3),t2(3)]; +% b=[0;0;0]; +% x=A\b; +% if((x(1)>umax)||(x(1)vmax)||(x(2)=umin)&&(unknown(1,1)<=umax)&&(unknown(2,1)>=vmin)&&(unknown(2,1)<=vmax)) + x=[t1(1),t2(1)]*unknown+t0(1); +% if x<=max(xrao) && x>=min(xrao) + d3intersection(n,:)=[x,y,z]; + n=n+1; +% end + end + %Aʱʱ֪ + %ڵķڸѷƽڣʸϵеʸȥѷt0󣬱ܱʾt1t2 + %ˣõӦu,vֵȻжǷu,vķΧ + %޽ʱжϳ + else + + A=[t1(1),t2(1), + t1(2),t2(2); + t1(3),t2(3)]; + test=([0,y,z]-t0)'; + tests=A\test; + if norm(A*tests-test)<=1e-6 %˵ڸѷ + flag=0; + for huihui=1:nx+1 + xtest=xrao(1,huihui); + vectest=[xtest,y,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + + xxtest=xtest-0.01;vvectest=[xxtest,y,z];uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax))%xҪѰ׼ȷ + + if huihui==1 + intersecxmin=xtest;flag=flag+1; break; + else xlow=xrao(1,huihui-1); xhigh=xtest; + + end + while (xhigh-xlow>=tolerance) + xxtest=1/2*(xlow+xhigh); + vvectest=[xxtest,y,z]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax)) + xhigh=xxtest; xlow=xlow; + else xlow=xxtest; xhigh=xhigh; + end + end + intersecxmin=xhigh;flag=flag+1; break; + else %ڵҪҵĵ + intersecxmin=xtest;flag=flag+1; break; + end + end + end + + for huihui=nx+1:-1:1 + xtest=xrao(1,huihui); + vectest=[xtest,y,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + xxtest=xtest+0.01;vvectest=[xxtest,y,z];uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax))%xҪѰ׼ȷ + + if huihui==(nx+1) + intersecxmax=xtest;flag=flag+1; break; + else xlow=xtest; xhigh=xrao(1,huihui+1); + + end + while (xhigh-xlow>=tolerance) + xxtest=1/2*(xlow+xhigh); + vvectest=[xxtest,y,z]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax)) + xhigh=xhigh; xlow=xxtest; + else xlow=xlow; xhigh=xxtest; + end + end + intersecxmax=xlow;flag=flag+1; break; + else %ڵҪҵĵ + intersecxmax=xtest;flag=flag+1; break; + end + end + end + + if flag==2 + d2intersection(i,:)=[-1,y,z,intersecxmin,intersecxmax];i=i+1; + end + end + end + end +end + + + + + + +% жyཻ +for wang=1:nx+1 + x=xrao(1,wang); + for dai=1:nz+1 + z=zrao(1,dai); + A=[t1(1),t2(1); + t1(3),t2(3)]; + b=[x;z]-[t0(1);t0(3)]; + if(det(A)~=0) + unknown=A\b; + if ((unknown(1,1)>=umin)&&(unknown(1,1)<=umax)&&(unknown(2,1)>=vmin)&&(unknown(2,1)<=vmax)) + y=[t1(2),t2(2)]*unknown+t0(2); +% if y<=max(yrao) && y>=min(yrao) + d3intersection(n,:)=[x,y,z]; + n=n+1; +% end + end + else + A=[t1(1),t2(1), + t1(2),t2(2); + t1(3),t2(3)]; + test=([x,0,z]-t0)'; + tests=A\test; + if norm(A*tests-test)<=1e-6 %˵ڸѷ + flag=0; + for huihui=1:ny+1 + ytest=yrao(1,huihui); + vectest=[x,ytest,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + yytest=ytest-0.01;vvectest=[x,yytest,z];uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax))%xҪѰ׼ȷ + + if huihui==1 + intersecymin=ytest;flag=flag+1; break; + else ylow=yrao(1,huihui-1); yhigh=ytest; + + end + while (yhigh-ylow>=tolerance) + yytest=1/2*(ylow+yhigh); + vvectest=[x,yytest,z]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax)) + yhigh=yytest; ylow=ylow; + else ylow=yytest; yhigh=yhigh; + end + end + intersecymin=yhigh;flag=flag+1; break; + else %ڵҪҵĵ + intersecymin=ytest;flag=flag+1; break; + end + end + end + + for huihui=ny+1:-1:1 + ytest=yrao(1,huihui); + vectest=[x,ytest,z]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + yytest=ytest+0.01;vvectest=[x,yytest,z];uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax))%xҪѰ׼ȷ + + if huihui==(ny+1) + intersecymax=ytest;flag=flag+1; break; + else ylow=ytest; yhigh=yrao(1,huihui+1); + + end + while (yhigh-ylow>=tolerance) + yytest=1/2*(ylow+yhigh); + vvectest=[x,yytest,z]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax)) + yhigh=yhigh; ylow=yytest; + else ylow=ylow; yhigh=yytest; + end + end + intersecymax=ylow;flag=flag+1; break; + else %ڵҪҵĵ + intersecymax=ytest;flag=flag+1; break; + end + end + end + + if flag==2 + d2intersection(i,:)=[x,-1,z,intersecymin,intersecymax];i=i+1; + end + + + end + end + end +end + + +%жzཻ +for wang=1:nx+1 + x=xrao(1,wang); + for dai=1:ny+1 + y=yrao(1,dai); + A=[t1(1),t2(1); + t1(2),t2(2)]; + b=[x;y]-[t0(1);t0(2)]; + if(det(A)~=0) + unknown=A\b; + if ((unknown(1,1)>=umin)&&(unknown(1,1)<=umax)&&(unknown(2,1)>=vmin)&&(unknown(2,1)<=vmax)) + z=[t1(3),t2(3)]*unknown+t0(3); +% if z<=max(zrao) && z>=min(zrao) + d3intersection(n,:)=[x,y,z]; + n=n+1; +% end + end + else + A=[t1(1),t2(1), + t1(2),t2(2); + t1(3),t2(3)]; + test=([x,y,0]-t0)'; + tests=A\test; + hen=A*tests-test; + if norm(A*tests-test)<=1e-6 %˵ڸѷ + flag=0; + for huihui=1:nz+1 + + ztest=zrao(1,huihui); + vectest=[x,y,ztest]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + zztest=ztest-0.01;vvectest=[x,y,zztest];uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax))%xҪѰ׼ȷ + + if huihui==1 + interseczmin=ztest;flag=flag+1; break; + else zlow=zrao(1,huihui-1); zhigh=ztest; + + end + while (zhigh-zlow>=tolerance) + zztest=1/2*(zlow+zhigh); + vvectest=[x,y,zztest]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax)) + zhigh=zztest; zlow=zlow; + else zlow=zztest; zhigh=zhigh; + end + end + interseczmin=zhigh;flag=flag+1; break; + else %ڵҪҵĵ + interseczmin=ztest;flag=flag+1; break; + end + end + end + + for huihui=nz+1:-1:1 + ztest=zrao(1,huihui); + vectest=[x,y,ztest]; + unknown=A\(vectest-t0)'; + if ((unknown(1)>=umin)&&(unknown(1)<=umax)&&(unknown(2)>=vmin)&&(unknown(2)<=vmax)) + zztest=ztest+0.01;vvectest=[x,y,zztest];uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax))%xҪѰ׼ȷ + + if huihui==(nz+1) + interseczmax=ztest;flag=flag+1; break; + else zlow=ztest; zhigh=zrao(1,huihui+1); + + end + while (zhigh-zlow>=tolerance) + zztest=1/2*(zlow+zhigh); + vvectest=[x,y,zztest]; + uunknown=A\(vvectest-t0)'; + if ((uunknown(1)>=umin)&&(uunknown(1)<=umax)&&(uunknown(2)>=vmin)&&(uunknown(2)<=vmax)) + zhigh=zhigh; zlow=zztest; + else zlow=zlow; zhigh=zztest; + end + end + interseczmax=zlow;flag=flag+1; break; + else %ڵҪҵĵ + interseczmax=ztest;flag=flag+1; break; + end + end + end + + if flag==2 + d2intersection(i,:)=[x,y,-1,interseczmin,interseczmax];i=i+1; + end + + + end + end + end +end + +%% ѷ߽Ľ +% u=uminʱ +%point=t0+umin*t1+v*t2; +%y-zĽ +boundary=[umin,umax,vmin,vmax]; +for xiang=1:4 + +if xiang<=2 %˵uȡֵ +for hui=1:nx+1 + if t2(1)==0 break; + else + x=xrao(1,hui); + v=(x-t1(1)*boundary(xiang)-t0(1))/t2(1); + if (v>=vmin)&&(v<=vmax) + point=t0+boundary(xiang)*t1+v*t2; + d3intersection(n,:)=point;n=n+1; + end + end +end +else %vȡֵ +for hui=1:nx+1 + if t1(1)==0 break; + else + x=xrao(1,hui); + u=(x-t2(1)*boundary(xiang)-t0(1))/t1(1); + if (u>=umin)&&(u<=umax) + point=t0+u*t1+boundary(xiang)*t2; + d3intersection(n,:)=point;n=n+1; + end + end +end +end +end + +%x-zĽ +boundary=[umin,umax,vmin,vmax]; +for xiang=1:4 + +if xiang<=2 %˵uȡֵ +for hui=1:ny+1 + if t2(2)==0 break; + else + y=yrao(1,hui); + v=(y-t1(2)*boundary(xiang)-t0(2))/t2(2); + if (v>=vmin)&&(v<=vmax) + point=t0+boundary(xiang)*t1+v*t2; + d3intersection(n,:)=point;n=n+1; + end + end +end +else %vȡֵ +for hui=1:ny+1 + if t1(2)==0 break; + else + y=yrao(1,hui); + u=(y-t2(2)*boundary(xiang)-t0(2))/t1(2); + if (u>=umin)&&(u<=umax) + point=t0+u*t1+boundary(xiang)*t2; + d3intersection(n,:)=point;n=n+1; + end + end +end +end +end + +%x-yĽ +boundary=[umin,umax,vmin,vmax]; +for xiang=1:4 + +if xiang<=2 %˵uȡֵ +for hui=1:nz+1 + if t2(3)==0 break; + else + z=zrao(1,hui); + v=(z-t1(3)*boundary(xiang)-t0(3))/t2(3); + if (v>=vmin)&&(v<=vmax) + point=t0+boundary(xiang)*t1+v*t2; + d3intersection(n,:)=point;n=n+1; + end + end +end +else %vȡֵ +for hui=1:nz+1 + if t1(3)==0 break; + else + z=zrao(1,hui); + u=(z-t2(3)*boundary(xiang)-t0(3))/t1(3); + if (u>=umin)&&(u<=umax) + point=t0+u*t1+boundary(xiang)*t2; + d3intersection(n,:)=point;n=n+1; + end + end +end +end +end + +%% ɾȥͬ߶μ߶ +d2intersection=unique(d2intersection, 'rows', 'stable'); +m=size(d2intersection,1); +for i=1:m + + if(d2intersection(i,1)==-1) +d3intersection(n,:)=[d2intersection(i,4),d2intersection(i,2),d2intersection(i,3)];n=n+1; +d3intersection(n,:)=[d2intersection(i,5),d2intersection(i,2),d2intersection(i,3)];n=n+1; + for wang=1:nx+1 + j=xrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) + d3intersection(n,:)=[j,d2intersection(i,2),d2intersection(i,3)];n=n+1; + end + end + end + + if(d2intersection(i,2)==-1) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,4),d2intersection(i,3)];n=n+1; +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,5),d2intersection(i,3)];n=n+1; + for wang=1:ny+1 + j=yrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) + d3intersection(n,:)=[d2intersection(i,1),j,d2intersection(i,3)];n=n+1; + end + end + end + + if(d2intersection(i,3)==-1) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),d2intersection(i,4)];n=n+1; +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),d2intersection(i,5)];n=n+1; + for wang=1:nz+1 + j=zrao(1,wang); + if (((j>=d2intersection(i,4))&&(j<=d2intersection(i,5)))||((j>=d2intersection(i,5))&&(j<=d2intersection(i,4)))) +d3intersection(n,:)=[d2intersection(i,1),d2intersection(i,2),j];n=n+1; + end + end + end +end + +%% Ӿηĸ +vertex1=t0+umin*t1+vmin*t2; +vertex2=t0+umin*t1+vmax*t2; +vertex3=t0+umax*t1+vmin*t2; +vertex4=t0+umax*t1+vmax*t2; +d3intersection=[d3intersection;vertex1;vertex2;vertex3;vertex4]; +%% +d3intersection=unique(d3intersection, 'rows', 'stable'); +[I,J]=find(d3intersection==-1000); +d3intersection(I,:)=[]; + +record=[]; +kitty=size(d3intersection,1); +for i=1:kitty-1 + for j=i+1:kitty + if (norm(d3intersection(i,:)-d3intersection(j,:))<=1e-4)%ֵй + record=[record;j]; + end + end +end +record=unique(record, 'rows', 'stable'); +d3intersection(record,:)=[]; + +record1=[]; +myhui=size(d3intersection,1); +for i=1:myhui + huix=d3intersection(i,1); + huiy=d3intersection(i,2); + huiz=d3intersection(i,3); + if huix>max(xrao) || huixmax(yrao) || huiymax(zrao) || huizumax)||(x(1)vmax)||(x(2)0)%˴жޱҪĻѷn=size(indice,2); + %ú½ǵ㣬Ϊ1ĵ + matnodes=nodes(connectmf{i,1},1); + origin=coord(matnodes,:); + p=repmat(origin,np,1)+cor;%accorǸûеʵ + + gfmc=[]; + for mei=1:np + + gfmr=[]; + for k=1:n + for r=2:(nf+1) + if(matrixvsfra(connectmf{i,1},k)0)%˴жޱҪĻѷn=size(indice,2); + %ú½ǵ㣬Ϊ1ĵ + matnodes=nodes(connectmf{i,1},1); + origin=coord(matnodes,:); + p=repmat(origin,np,1)+cor;%accorǸûеʵ + for j=1:np + for k=1:n + for r=2:(nf+1) + if(matrixvsfra(connectmf{i,1},k)0)%Ļѷn=size(indice,2); + gfmc=[]; + gfmr=[]; + %for j=1:n %ѷ쵥ԪԴѡȡ + fracp=cell(1,3); + cc=0; + conv=[]; + for k=1:n %ѷ쵥Ԫѡȡ + for r=2:(nf+1) + if(matrixvsfra(connectmf{i,1},k)0)%Ļѷn=size(indice,2); +% for j=1:n +% for k=1:n +% for r=2:(nf+1) +% if(matrixvsfra(connectmf{i,1},k)0)%Ļѷn=size(indice,2); + for j=1:n + for k=1:n + for r=2:(nf+1) + if(matrixvsfra(connectmf{i,1},k)0)%Ļѷn=size(indice,2); + matnodes=nodes(connectmf{i,1},1); + origin=coord(matnodes,:); + p=repmat(origin,np,1)+cor;%accorǸûеʵ + for j=1:n + for k=1:np + %for k=1:6%ʹѭ +% for r=2:(nf+1) +% if(matrixvsfra(i,j)=1&&i-1<=nx) + raomatrix(i + (j - 1) * nx+nx*ny*(k-1), i-1+ (j - 1) * nx+nx*ny*(k-1))=dy(j)*dz(k)/(dx(i)/2); + end + if(i+1>=1&&i+1<=nx) + raomatrix(i + (j - 1) * nx+nx*ny*(k-1), i+1+ (j - 1) * nx+nx*ny*(k-1))=dy(j)*dz(k)/(dx(i)/2); + end + if(j-2>=0&&j-2<=ny-1) + raomatrix(i + (j - 1) * nx+nx*ny*(k-1), i + (j - 2) * nx+nx*ny*(k-1))=dx(i)*dz(k)/(dy(j)/2); + end + if(j>=0&&j<=ny-1) + raomatrix(i + (j-1 ) * nx+nx*ny*(k-1), i + (j ) * nx+nx*ny*(k-1))=dx(i)*dz(k)/(dy(j)/2); + end + if(k-2>=0&&k-2<=nz-1) + raomatrix(i + (j - 1) * nx+nx*ny*(k-1), i + (j - 1) * nx+nx*ny*(k-2))=dx(i)*dy(j)/(dz(k)/2); + end + if(k>=0&&k-2<=nz-1) + raomatrix(i + (j - 1) * nx+nx*ny*(k-1), i + (j - 1) * nx+nx*ny*(k))=dx(i)*dy(j)/(dz(k)/2); + end + end + end +end +%tansmatrixĶԳԼѭ㣬Ч +for i=1:np + for j=1:np + if(raomatrix(i,j)~=0) + transmatrix(i,j)=(raomatrix(i,j)*raomatrix(j,i))/(raomatrix(i,j)+raomatrix(j,i)); + end + end +end + +%% ѷ֮ĴϵȲܲͬѷཻʱĴϵ +%Ƚͬѷһ +% raodu=zeros(m); +% p=1; +% for i=1:nf +% raonumber=size(connect_infrac{i,1},1); +% raodu(p:raonumber,p:p+raonumber-1)=connect_infrac{i,1}; +% p=p+raonumber; +% end +%ѷ֮ĴϵûгԷ͸ + +% for i=1:m +% for j=1:m +% if(raodu(i,j)~=0) +% A=fracnumber(j,:); +% B=fracnumber(k,:); +% A(A==0)=[]; +% B(B==0)=[]; +% raoflag=intersect(A,B); +% length=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:)); +% rao1=corevsfra(i,:)-d3intersection(raoflag(1),:); +% rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); +% disvsfra=norm(cross(rao1',rao2'))/norm(rao2);%ѷĵߵľ +% raofracture(i,j)=length/disvsfra;%ûг͸ʺͷ +% end +% end +% end +p=0; +for raox=1:nf + raonumber=size(connect_infrac{raox,1},1);% raoxѷϵѷ쵥Ԫ + d3intersection=raopoint{raox,1}; + for i=1:raonumber %p:(p+raonumber-1) + for j=1:10 + if(connect_infrac{raox,1}(i,j)~=0) + A=fracnumber(i+p,:); + B=fracnumber(connect_infrac{raox,1}(i,j),:); + A(A==0)=[]; + B(B==0)=[]; + raoflag=intersect(A,B); + length=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:)); + rao1=corevsfra(i+p,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + newdisvsfra=norm(cross(rao1',rao2'))/norm(rao2);%ѷĵߵľ + raofracture(i,connect_infrac{raox,1}(i,j))=length/newdisvsfra;%ûг͸ʺͷ + end + end + end + p=p+raonumber; +end + +for i=1:m + for j=1:m + if(raofracture(i,j)~=0) + transfracture(i,j)=(raofracture(i,j)*raofracture(j,i))/(raofracture(i,j)+raofracture(j,i)); + end + end +end +%% ǻѷཻʱѷ֮Ĵϵ +%ȽûаѷѷIJͬţжͬһѷѷĽߣ +%Ӧѷĵߵľ룬ΪѷĴϵijѷͬһѷ϶ѷཻ +%ѷĴдϵƽΪһϣ +%ӹϵӣʼΪĴϵͱ任ĹȷûijѷһѷĴϵ +% n=size(matrixvsfra,1); +% indice=zeros(nf,10); +% for i=1:n +% raoindice=find(matrixvsfra(i,:)~=0); +% if(size(raoindice,2)>1) +% for k=1:nf +% indice(k,:)=find((matrixvsfra(i,:)=fracstart(k))); +% end +% for k=1:nf +% if(size(indice(k,:),2)>1)%0ѷûУ1˵ѷûѷཻʲ迼ȥı +% rao=zero(size(indice(k,:),2)); +% for j=1:size(indice(k,:),2)%ͬһѷڲ鿴Щͬѷѷཻ +% for z=1:size(indice(k,:),2) +% A=fracnumber(matrixvsfra(i,indice(k,j)),:); +% B=fracnumber(matrixvsfra(i,indice(k,z)),:); +% raoindi=intersect(A,B); +% if(size(raoindi,2)==2) +% length=norm(d3intersection(raoindi(1),:)-d3intersection(raoindi(2),:)); +% rao1=corevsfra(matrixvsfra(i,indice(k,j)),:)-d3intersection(raoindi(1),:); +% rao2=d3intersection(raoindi(1),:)-d3intersection(raoindi(2),:); +% disvsfra=norm(cross(rao1',rao2'))/norm(rao2);%ѷĵߵľ +% rao(j,z)=length/disvsfra;%ûг͸ʺͷ +% +% +% +% +% +% end +% end + +% ȽûаѷѷIJͬţijһѷĴϵڳߵĴϵƽӣΪ򻯴 +% ͱ任ĹȷûijѷһѷĴϵ +n=size(matrixvsfra,1); +indice=zeros(nf,10); +for i=1:n + raoindice=find(matrixvsfra(i,:)~=0); + if(size(raoindice,2)>1) + extratrans=zeros(1,size(raoindice,2)); + for j=1:size(raoindice,2) +% for k=2:(nf+1) +% if(matrixvsfra(i,raoindice(j)) 0 %存在定流量井 + pwf = state.pwf; +end +ipwf = 0; +for i = 1 : nWel + if strcmp(well_schedules_k{i,2},'open') + qgt = 0; + qwt = 0; + jperfall = Wellc{i,3}; + if strcmp(well_schedules_k{i,3},'pro') % prod + if strcmp(well_schedules_k{i,4},'const_q') % const flowrate + ipwf = ipwf + 1; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + %井筒内无限导流,流量等于各个射孔点流量之和 + qwt = qwt + qwell(jperf); + qgt = qgt + qwell(nc + jperf); + end + if well_schedules_k{i,5} ~= 0 + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = abs(qwt)*86.4; + Wellpara{1,i}.qg = abs(qgt)*86.4; + Wellpara{1,i}.pwf = pwf(ipwf); + else + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = 0; + Wellpara{1,i}.qg = 0; + Wellpara{1,i}.pwf = pwf(ipwf); + end + % if pwf(ipwf)<= Wellc{i,7} %当井底流压低于这个限制,流量会很大 + % WelChg(i) = 1; + % Weladd = Weladd - 1; + % else + % WelChg(i) = 0; + % end + else % const pwf 生产 + if ~WelChg(i) + Wellpara{1,i}.pwf = well_schedules_k{i,5}; + else + Wellpara{1,i}.pwf = well_schedules_k{i,6}; + end + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + qwt = qwt + qwell(jperf); + qgt = qgt + qwell(nc + jperf); + end + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = abs(qwt)*86.4; + Wellpara{1,i}.qg = abs(qgt)*86.4; + end + else %注入井 + if strcmp(well_schedules_k{i,4},'const_q') % const flowrate + ipwf = ipwf + 1; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + qwt = qwt + qwell(jperf); + end + if well_schedules_k{i,5} ~= 0 + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = abs(qwt)*86.4; + Wellpara{1,i}.pwf = pwf(ipwf); + Wellpara{1,i}.qg = 0; + else + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = 0; + Wellpara{1,i}.pwf = pwf(ipwf); + Wellpara{1,i}.qg = 0; + end + % if pwf(ipwf) >= Wellc{i,7} %高于这个限制压力后,则井的流量很高 + % WelChg(i) = 1; + % Weladd = Weladd - 1; + % else + % WelChg(i) = 0; + % end + else + if ~WelChg(i) + Wellpara{1,i}.pwf = well_schedules_k{i,5}; + else + Wellpara{1,i}.pwf = well_schedules_k{i,6}; + end + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + qwt = qwt + qwell(jperf); + end + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = abs(qwt)*86.4; + Wellpara{1,i}.qg = 0; + end + end + end +end \ No newline at end of file diff --git a/core functions/气水两相流部分代码/eqsOW_MB_gas_water_flow.m b/core functions/气水两相流部分代码/eqsOW_MB_gas_water_flow.m new file mode 100644 index 0000000..67074a9 --- /dev/null +++ b/core functions/气水两相流部分代码/eqsOW_MB_gas_water_flow.m @@ -0,0 +1,159 @@ +function [eqs, Awell, qwell,PVv, Bga, Bwa] = eqsOW_MB_gas_water_flow(state, state0, dt, r, f, os, Wellc, Weladd, pwf, WelChg, well_schedules_k) + +p = state.p; +sw = state.sw; +p0 = state0.p; +sw0 = state0.sw; +[p, sw] = intADI_gas_water_flow(p, sw); + +% z方向上的位势 +% 由于当深度发生变化时,流体的密度也会发生变化,因此不能简单得处理成折算压力的情况计算 +%对位势z进行处理 +z=r.z; +z = intADIz(z); +% Dosi是地面标况下测得的油相密度,Dwsi是地面标况下测得的水相密度 + +% % % % 应力敏感系数 +% % % exp_paramter_1 = -0.04; +% % % reference_pressure = 20; +% % % stress_factor = exp(exp_paramter_1*(p-reference_pressure)); + +% Water Props +BW = f.Bw(p); +muW = f.muw(p); +krW = f.krw(sw); +pcOW = 0; +if f.ifpcgl + pcOW = f.pcgl(sw); +end +pw = p - pcOW; +dpW = os.grad(pw); +% dzw=1e-6*9.8*f.Dwsi*os.grad(z./BW); %水相位势梯度 +dzw=0; +upc = (double(dpW+dzw)<=0);%一定要是折算压力! +mobW = os.faceUpstr(upc, krW) .* os.faceAvg(1./(BW.*muW)); +% mobW = os.faceUpstr(upc, krW) .* os.faceAvg(1./(BW.*muW)) .* os.faceAvg(stress_factor); +% 针对启动压力梯度的平滑处理 +if f.p_grad_threshold ~= 0 + pcOW0 = f.pcgl(sw0); + pw0 = p0 - pcOW0; + dpW0 = os.grad(pw0); + dzw0=0; + dpW0 = dpW0+dzw0; + pW_grad0 = r.T_diff./r.flowArea.*dpW0; + ratioW = smooth_relu_stable(pW_grad0, f.p_grad_threshold); +else + ratioW = 1; +end +bWvW = -r.T .* mobW .* (dpW).*ratioW; +% bWvW = -r.T .* mobW .* dpW; + +% gas Props +BG = f.Bg(p); +muG = f.mug(p); +krG = f.krrg(sw); +dpG = os.grad(p); +% dzg=1e-6*9.8*f.Dgsi*os.grad(z./BG); %油相位势梯度 +dzg=0; +upc = (double(dpG+dzg)<=0);%一定要是折算压力,否则出错! +mgbG = os.faceUpstr(upc, krG) .* os.faceAvg(1./(BG.*muG)); +% mobO = os.faceUpstr(upc, krO) .* os.faceAvg(1./(BO.*muO)).* os.faceAvg(stress_factor); +% 针对启动压力梯度的平滑处理 +if f.p_grad_threshold ~= 0 + dpG0 = os.grad(p0); + dzg0=0; + dpG0 = dpG0+dzg0; + pG_grad0 = r.T_diff./r.flowArea.*dpG0; + ratioG = smooth_relu_stable(pG_grad0, f.p_grad_threshold); +else + ratioG = 1; +end +% Knudsen 扩散影响 +bGvG = -r.matrixflag.*f.gas_prop.Kn_modified_factor.*r.T .* mgbG .* dpG.*ratioG ... + -(1-r.matrixflag).*r.T .* mgbG .* dpG.*ratioG; +% Knudsen 扩散影响 +% bGvG = -r.matrixflag.*f.gas_prop.Kn_modified_factor.*r.T .* mgbG .* dpG ... +% -(1-r.matrixflag).*r.T .* mgbG .* dpG; + +% 非达西流发生仅发生在裂缝网格内 +% Forchheimer_factor = 1/(1+kf/mug*beta*density_g*v_gf) +BG0 = f.Bg(p0);muG0 = f.mug(p0);krG0 = f.krrg(sw0);dpG0 = os.grad(p0); +dzg0=0; +upc0 = (double(dpG0+dzg0)<=0);%一定要是折算压力,否则出错! +mgbG0 = os.faceUpstr(upc0, krG0) .* os.faceAvg(1./(BG0.*muG0)); +% mobO = os.faceUpstr(upc, krO) .* os.faceAvg(1./(BO.*muO)).* os.faceAvg(stress_factor); +v_gf = -(1-r.matrixflag).*r.T .* mgbG0 .* dpG0./r.flowArea; +density_g = f.density_g_sc./BG0; +Forchheimer_factor = 1./(1+(1-r.matrixflag).*r.perm./os.faceAvg(muG0).*f.gas_prop.beta_non_Darcy_flow.*os.faceAvg(density_g).*abs(v_gf)); + +% 分别有基质系统的应力敏感系数 和 裂缝系统的应力敏感系数 +stress_factor = r.matrixflag.*exp(r.stress_factor_matrix*(os.faceAvg(p0)-r.stress_factor_ref_pressure))... ++(1-r.matrixflag).*exp(r.stress_factor_fracture*(os.faceAvg(p0)-r.stress_factor_ref_pressure)); + +% 采用简单的叠加处理 +bWvW = bWvW.*stress_factor.*Forchheimer_factor; +bGvG = bGvG.*stress_factor.*Forchheimer_factor; +% z方向上的位势 +% 由于当深度发生变化时,流体的密度也会发生变化,因此不能简单得处理成折算压力的情况计算 +%对位势z进行处理 +% z=r.z; +% z = intADIz(z); +% Dosi是地面标况下测得的油相密度,Dwsi是地面标况下测得的水相密度 +% dzo=0.01*os.grad(z./BO); %油相位势梯度 +% dzw=0.01*os.grad(z./BW); %水相位势梯度 +% bOvO = -r.T .* mobO .* (dpO+dzo); +% bWvW=-r.T .* mobW .* (dpW+dzw); + +% transfer function (OW) +% [qomf, qofm, qwmf, qwfm] = transFunc(r, krO, krW, BO, muO, BW, muW, p, pw); + +% well equation +[Awell, qwell] = WellEquation_gas_water_flow(r, f, p.val, sw.val, Wellc, Weladd, pwf, WelChg, well_schedules_k); +% Awell=dt*Awell; +% qwell=dt*qwell; + +% langmuir 等温吸附 +V_CH4=r.rpt.*r.V.*(1-r.por(p)).*r.density_rock.*f.gas_prop.VL.*p/f.gas_prop.PL./(1+p/f.gas_prop.PL); +V_CH4_0=r.rpt.*r.V.*(1-r.por(p)).*r.density_rock.*f.gas_prop.VL.*p0/f.gas_prop.PL./(1+p0/f.gas_prop.PL); + +% Accumulation term +PV = r.V .* r.por(p); +PV0 = r.V .* r.por(p0); +Ar_w = 1/dt*(PV .* (sw ./ BW) - PV0 .* (sw0 ./ f.Bw(p0))); +Ar_g = 1/dt*(PV .* ((1 - sw) ./ BG) - PV0 .* ((1 - sw0) ./ f.Bg(p0)) + (V_CH4-V_CH4_0)); + +% Water Equation +eqs{1} = (-os.div(bWvW) - Ar_w); +% 使基质考虑重力,裂缝不考虑重力 +% eqs{1} = (-os.div(-r.T .* mobW .* dpW)-r.rpt.*os.div(-r.T .* mobW .* dzw) - Ar_w)*dt; +% eqs{1} = (-os.div(-r.T .* mobW .* dpW) - Ar_w)*dt; +% eqs{1} = -os.div(bWvW) - Ar_w; +% Oil Equation +eqs{2} = (-os.div(bGvG) - Ar_g); +% eqs{2} = (-os.div(-r.T .* mobO .* dpO)-r.rpt.*os.div(-r.T .* mobO .* dzo) - Ar_o)*dt; +% eqs{2} = (-os.div(-r.T .* mobO .* dpO) - Ar_o)*dt; +PVv = PV.val; +Bwa = BW.val; +Bga = BG.val; +% eqs{2} = -os.div(bOvO) - Ar_o; + + +% Rw = Ar_w.val - qwell(1 : r.nc); +% Ro = Ar_o.val - qwell(r.nc+1 : 2*r.nc); +% PVv = PV.val; +% % PV_all = sum(PVv); +% Bwa = mean(BW.val); +% Boa = mean(BO.val); + +% MBw = abs(Bwa * dt * (sum(Rw)/PV_all)); +% MBo = abs(Boa * dt * (sum(Ro)/PV_all)); + + + + + + + + + + diff --git a/core functions/气水两相流部分代码/fluidPVT_gas_water_flow.m b/core functions/气水两相流部分代码/fluidPVT_gas_water_flow.m new file mode 100644 index 0000000..ac9931c --- /dev/null +++ b/core functions/气水两相流部分代码/fluidPVT_gas_water_flow.m @@ -0,0 +1,16 @@ +function f = fluidPVT_gas_water_flow(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, SW, KRG, KRW, PCGL, SWF, KRGF, KRWF, PCGLF, density_g_sc, ifpcgl, rpt) +% f = fluidPVT(Bopb, pb, co, Bwi, prw, cw, vwi, cvw, visopb, cvo, SW, KRO, KRW, PCOW, ifpcow, SWF, KROF, KRWF, PCOWF, rpt,Dosi,Dwsi) +f.Bw = @(p) Bw_gw(p, Bwi, prw, cw); +f.Bg = @(p) Bg_gw(p, BG, Ppr); +f.muw = @(p) muw_gw(p, vwi, prw, cvw); +f.mug = @(p) mug_gw(p, MUG, Ppr); +f.krrg = @(sw) krrg_gw(sw, SW, KRG, SWF, KRGF, rpt); +f.krw = @(sw) krw_gw(sw, SW, KRW, SWF, KRWF, rpt); +f.pcgl = @(sw) pc_gw(sw, SW, PCGL, SWF, PCGLF, rpt); +f.density_g_sc = density_g_sc; +f.ifpcgl = ifpcgl; +% f.Dosi=Dosi; +% f.Dwsi=Dwsi; + + + diff --git a/core functions/气水两相流部分代码/initalSchedule_gas_water_flow.m b/core functions/气水两相流部分代码/initalSchedule_gas_water_flow.m new file mode 100644 index 0000000..1d6c3f0 --- /dev/null +++ b/core functions/气水两相流部分代码/initalSchedule_gas_water_flow.m @@ -0,0 +1,53 @@ +function [Weladd, pwf] = initalSchedule_gas_water_flow(p, sw, Wellc, f, well_schedules_k) +nWel = size(Wellc, 1);%井数 +Weladd = 0; +pwf = zeros(1); +BW = f.Bw(p); +muW = f.muw(p); +krW = f.krw(sw); +BG = f.Bg(p); +muG = f.mug(p); +krG = f.krrg(sw); +Ygt = krG ./ (muG .* BG);%mu代表黏度 +Ygj = krG ./ muG; +Ywt = krW ./ (muW .* BW);%mu代表黏度 +Ywj = krW ./ muW; + +for i = 1 : nWel + if strcmp(well_schedules_k{i,2},'open') + if strcmp(well_schedules_k{i,3},'pro') && strcmp(well_schedules_k{i,4},'const_q') %该井是生产井并定产生产 + Weladd = Weladd + 1; + nper = Wellc{i,2}; %该井的射孔数量 + jperf = zeros(nper,1); + Trans = zeros(nper,1); + Tnp = 0; + Tn = 0; + for j = 1 : nper + jperf(j) = Wellc{i,3}(j);%该射孔点在基质网格和裂缝单元全体中的序号 + Tr = Wellc{i,4}(j);%该射孔点对应的生产指数(缺流度) + Trans(j) = Tr * (Ygt(jperf(j)) + Ywt(jperf(j)));%生产指数 + Tnp = Tnp + Trans(j)*p(jperf(j)); + Tn = Tn + Trans(j); + end + pwf(Weladd) = (Tnp - well_schedules_k{i,5}/86.4) / Tn;%说明井筒无限导流,压力为一个值 + elseif strcmp(well_schedules_k{i,3},'inj') && strcmp(well_schedules_k{i,4},'const_q') %注入井,恒定注入量 + Weladd = Weladd + 1; + nper = Wellc{i,2}; + jperf = zeros(nper,1); + Trans = zeros(nper,1); + Tnp = 0; + Tn = 0; + for j = 1 : nper + jperf(j) = Wellc{i,3}(j); + Tr = Wellc{i,4}(j); + Trans(j) = Tr / BW(jperf(j)) * (Ygj(jperf(j)) + Ywj(jperf(j)));%多相流注入方程 + Tnp = Tnp + Trans(j)*p(jperf(j)); + Tn = Tn + Trans(j); + end + pwf(Weladd) = (Tnp + well_schedules_k{i,5}/86.4) / Tn;%与生产井正好反过来 + else + continue + end + end +end + pwf = pwf'; \ No newline at end of file diff --git a/core functions/气水两相流部分代码/initialRS_gas_water_flow.m b/core functions/气水两相流部分代码/initialRS_gas_water_flow.m new file mode 100644 index 0000000..d14ec7f --- /dev/null +++ b/core functions/气水两相流部分代码/initialRS_gas_water_flow.m @@ -0,0 +1,3 @@ +function state = initialRS_gas_water_flow(P, Sw) +state.p = P; +state.sw = Sw; diff --git a/core functions/气水两相流部分代码/intADI2_gas_water_flow.m b/core functions/气水两相流部分代码/intADI2_gas_water_flow.m new file mode 100644 index 0000000..b9c6276 --- /dev/null +++ b/core functions/气水两相流部分代码/intADI2_gas_water_flow.m @@ -0,0 +1,18 @@ +function [P, Sw, Pwf] = intADI2_gas_water_flow(p, sw, pwf) +n = length(p); +npwf = length(pwf); +Jp = cell(1,3); +Jsw = cell(1,3); +Jpwf = cell(1,3); +Jp{1} = sparse(1:n, 1:n, ones(n,1), n, n); +Jp{2} = sparse(n,n); +Jp{3} = sparse(n,npwf); +Jsw{1} = sparse(n,n); +Jsw{2} = sparse(1:n, 1:n, ones(n,1), n, n); +Jsw{3} = sparse(n,npwf); +Jpwf{1} = sparse(npwf,n); +Jpwf{2} = sparse(npwf,n); +Jpwf{3} = sparse(1:npwf, 1:npwf, ones(npwf,1), npwf, npwf); +P = ADI(p, Jp); +Sw = ADI(sw, Jsw); +Pwf = ADI(pwf, Jpwf); \ No newline at end of file diff --git a/core functions/气水两相流部分代码/intADI_gas_water_flow.m b/core functions/气水两相流部分代码/intADI_gas_water_flow.m new file mode 100644 index 0000000..04ef74b --- /dev/null +++ b/core functions/气水两相流部分代码/intADI_gas_water_flow.m @@ -0,0 +1,10 @@ +function [P, Sw] = intADI_gas_water_flow(p, sw) +n = length(p); +Jp = cell(1,2); +Jsw = cell(1,2); +Jp{1} = sparse(1:n, 1:n, ones(n,1), n, n); +Jp{2} = sparse(n,n); +Jsw{1} = sparse(n,n); +Jsw{2} = sparse(1:n, 1:n, ones(n,1), n, n); +P = ADI(p, Jp); +Sw = ADI(sw, Jsw); \ No newline at end of file diff --git a/core functions/气水两相流部分代码/krrg_gw.m b/core functions/气水两相流部分代码/krrg_gw.m new file mode 100644 index 0000000..f071a27 --- /dev/null +++ b/core functions/气水两相流部分代码/krrg_gw.m @@ -0,0 +1,14 @@ +function h = krrg_gw(sw, SW, KRO, varargin) +n = numel(varargin);%ʾûѷ +if n == 0 + h = interptable(SW, KRO, sw); +else + SWF = varargin{1}; + KROF = varargin{2}; + rpt = varargin{3}; + hm = interptable(SW, KRO, sw); + hf = interptable(SWF, KROF, sw); + h = rpt .* hm + ~rpt .* hf;%ֱΪѷ +end +% h=sw+(1-sw); +end \ No newline at end of file diff --git a/core functions/气水两相流部分代码/krw_gw.m b/core functions/气水两相流部分代码/krw_gw.m new file mode 100644 index 0000000..4f0532e --- /dev/null +++ b/core functions/气水两相流部分代码/krw_gw.m @@ -0,0 +1,15 @@ +function h = krw_gw(sw, SW, KRW, varargin) +n = numel(varargin); +if n == 0 + h = interptable(SW, KRW, sw); +else + SWF = varargin{1}; + KRWF = varargin{2}; + rpt = varargin{3}; + hm = interptable(SW, KRW, sw); + hf = interptable(SWF, KRWF, sw); + h = rpt .* hm + ~rpt .* hf; +end +% h=sw-sw; +end + diff --git a/core functions/气水两相流部分代码/mainRS_MB_gas_water_flow.m b/core functions/气水两相流部分代码/mainRS_MB_gas_water_flow.m new file mode 100644 index 0000000..76dceab --- /dev/null +++ b/core functions/气水两相流部分代码/mainRS_MB_gas_water_flow.m @@ -0,0 +1,153 @@ +function [Times, OutputRs, Wellpara, trun] = mainRS_MB_gas_water_flow(r, f, os, w, state0) +t_start = clock; +dtmin = w.dtmin; +dtmax = w.dtmax; +Nmax = w.Nmax; +epsave = w.epsave; +epsmax = w.epsmax; +yitap = w.yitap; +yitas = w.yitas; +omega = w.omega; +Wellc = w.Wellc; +time = w.time; +well_schedules = w.well_schedules; +% WelChg = w.WelChg; +% tend = w.tend; +count = 0; +t = 0; +state = state0; +OutputRs = cell(2,1); +Wellpara = cell(2,1); +Times = zeros(2,1); +% h0 = waitbar(0,'Please wait...'); +for k = 1:size(well_schedules,1) + dt=dtmin(k); + [Weladd, pwf] = initalSchedule_gas_water_flow(state0.p, state0.sw, Wellc, f, well_schedules{k,1}); +% [Weladd, pwf] = initalSchedule(state0.p, state0.sw, Wellc, f); +WelChg = zeros(size(well_schedules{k,1},1),1); % 后续有用,先不用 +repi = 0; +Newton_step = 0; +cons_Jacob = 0; +leqs_solve_time = 0; +Newtons_vs_time = [0, 0]; +tend = sum(time(1:k),1); +while t < tend + for i = 1 : Nmax + dtc = dt * 86.4; + tic; + [eqs, Awell, qwell, Pvv, Boa, Bwa] = ... + eqsOW_MB_gas_water_flow(state, state0, dtc, r, f, os, Wellc, Weladd, pwf, WelChg, well_schedules{k,1}); + Jacob = Awell; + Ris = qwell; + Jacob(1 : r.nc,1 : 2 * r.nc) = Jacob(1 : r.nc,1 : 2 * r.nc) + [eqs{1}.jac{1} eqs{1}.jac{2}]; + Jacob(r.nc + 1 : 2 * r.nc,1 : 2 * r.nc) = Jacob(r.nc + 1 : 2 * r.nc,1 : 2 * r.nc) + [eqs{2}.jac{1} eqs{2}.jac{2}]; + Ris(1 : r.nc) = Ris(1 : r.nc) + eqs{1}.val ; + Ris(r.nc + 1: 2 * r.nc) = Ris(r.nc + 1: 2 * r.nc) + eqs{2}.val ; + % 将误差无因次化,用以判断是否收敛 + Dimensionless_Ris = Ris(1: 2 * r.nc)./ [Pvv;Pvv] .* [Bwa;Boa] .* dtc; + cons_Jacob_lo=toc; + cons_Jacob=cons_Jacob+cons_Jacob_lo; +% PVall = sum(Pvv); +% MBw = Bwa*dtc*abs(sum(Ris(1:r.nc))/PVall); +% MBo = Boa*dtc*abs(sum(Ris(r.nc+1:2*r.nc))/PVall); +% CNVw = max(Bwa*dtc*abs(Ris(1:r.nc)./Pvv)); +% CNVo = max(Boa*dtc*abs(Ris(r.nc+1:2*r.nc)./Pvv)); +% [L,U] = ilu(-Jacob); +% tol = 1e-6; +% maxit = 50; +% [X, ~] = bicgstab(-Jacob,Ris,tol,maxit,L,U); + tic; +% tol = 1e-12; +% maxit = 200; +% [X0,fl0,rr0,it0,rv0] = gmres(-Jacob,Ris,[],tol,maxit); +% [L,U] = ilu(-Jacob,struct('type','ilutp','droptol',1e-6)); +% [X1,fl1,rr1,it1,rv1] = gmres(-Jacob,Ris,[],tol,maxit,L,U); + X = -Jacob \ Ris; + leqs_time=toc; + leqs_solve_time=leqs_solve_time+leqs_time; + Newton_step=Newton_step+1; + dsw = X(r.nc + 1 : 2*r.nc); + dp = X(1 : r.nc); + state.p = state.p + dp; + state.sw = state.sw + dsw; + % deltp=state.p-state0.p; + % deltsw=state.sw-state0.sw; + if Weladd > 0 + dpwf = X(2 * r.nc + 1 : end); + pwf = pwf + dpwf; + state.pwf = pwf; + end +% if MBw <= epsave && MBo <= epsave && CNVw <= epsmax && CNVo <=epsmax && max(dsw)<=0.02 && max(dp)<=1 +% break +% end + % 为适应更一般的情况,将Ris无因次化 + + if mean(abs(Dimensionless_Ris)) <= epsave && max(abs(Dimensionless_Ris)) <=epsmax + break + end + +% [L,U] = ilu(-Jacob); +% tol = 1e-6; +% maxit = 50; +% [X, ~] = bicgstab(-Jacob,Ris,tol,maxit,L,U); +% raodai=condest(Jacob); +% if condest(Jacob)>50000 +% dt = dt / 2; +% else + end + + if i == Nmax + repi = repi + 1; + if repi == 5 + error('too many iter') + end + if repi == 1 + dt = dt / 2; + elseif repi == 2 + dt = dt / 3; + else + dt = dt / 10; + end +% dt = max(dt, w.dtmin); + state = state0; + else + repi = 0; + t = t + dt; + count = count + 1; + Times(count) = t; + OutputRs{count} = state; + Newtons_vs_time = [Newtons_vs_time; t, Newton_step]; +% qwell=qwell/dtc;%转换为单位时间的流量 + [Wellpara_t, WelChg, Weladd] = calcWellequation_gas_water_flow(Weladd, Wellc, WelChg, well_schedules{k,1}, r.nc, qwell, state); + Wellpara{count} = Wellpara_t; + state0 = state; + tm = ADtimestep(yitap, yitas, omega, dp, dsw); +% tm=1; + dt = dt * tm; + if t + dt > tend + dt = tend - t; + end + if dt >= dtmax(k) + dt = dtmax(k); + end + if i ~= Nmax + % waitbar(t / tend); + % disp(t); + fprintf('正在计算:%.4f天/共%.4f天\n', t, sum(time)); + + end + if t>300 + flag = 1; + end + end +end +end +trun.cons_Jacob=cons_Jacob; +trun.leqs_solve_time=leqs_solve_time; +trun.total_simulation_time = etime(clock,t_start); +trun.Newton_step=Newton_step; +trun.Newtons_vs_time=Newtons_vs_time; +fprintf('计算完成'); +% close(h0); + + diff --git a/core functions/气水两相流部分代码/mug_gw.m b/core functions/气水两相流部分代码/mug_gw.m new file mode 100644 index 0000000..f9bf958 --- /dev/null +++ b/core functions/气水两相流部分代码/mug_gw.m @@ -0,0 +1,3 @@ +function h = mug_gw(p, MUG, Ppr) +h = interptable(Ppr, MUG, p); +end \ No newline at end of file diff --git a/core functions/气水两相流部分代码/muw_gw.m b/core functions/气水两相流部分代码/muw_gw.m new file mode 100644 index 0000000..ca3fdc2 --- /dev/null +++ b/core functions/气水两相流部分代码/muw_gw.m @@ -0,0 +1,2 @@ +function h = muw_gw(p, vwi, prw, cvw) +h = vwi + cvw * (p - prw); diff --git a/core functions/气水两相流部分代码/pc_gw.m b/core functions/气水两相流部分代码/pc_gw.m new file mode 100644 index 0000000..49e36cc --- /dev/null +++ b/core functions/气水两相流部分代码/pc_gw.m @@ -0,0 +1,16 @@ +function h = pc_gw(sw, SW, PCOW, varargin) +n = numel(varargin); +if PCOW == 0 + h = 0; +else + if n == 0 + h = interptable(SW, PCOW, sw); + else + SWF = varargin{1}; + PCOWF = varargin{2}; + rpt = varargin{3}; + hm = interptable(SW, PCOW, sw); + hf = interptable(SWF, PCOWF, sw); + h = rpt .* hm + ~rpt .* hf; + end +end diff --git a/core functions/油水两相流部分代码/Bo_ow.m b/core functions/油水两相流部分代码/Bo_ow.m new file mode 100644 index 0000000..cae53b0 --- /dev/null +++ b/core functions/油水两相流部分代码/Bo_ow.m @@ -0,0 +1,3 @@ +function h = Bo_ow(p, BO, Ppr) +h = interptable(Ppr, BO, p); +end \ No newline at end of file diff --git a/core functions/油水两相流部分代码/Bw_ow.m b/core functions/油水两相流部分代码/Bw_ow.m new file mode 100644 index 0000000..f4ec6ea --- /dev/null +++ b/core functions/油水两相流部分代码/Bw_ow.m @@ -0,0 +1,2 @@ +function h = Bw_ow(p, Bwi, prw, cw) +h = Bwi * (1 - cw * (p - prw)); \ No newline at end of file diff --git a/core functions/油水两相流部分代码/WellEquation_oil_water_flow.m b/core functions/油水两相流部分代码/WellEquation_oil_water_flow.m new file mode 100644 index 0000000..13d7eaa --- /dev/null +++ b/core functions/油水两相流部分代码/WellEquation_oil_water_flow.m @@ -0,0 +1,112 @@ +function [Awell, qwell] = WellEquation_oil_water_flow(r, f, p, sw, Wellc, Weladd, pwf, WelChg, well_schedules_k) +nWel = size(Wellc, 1);%井的总数 +% Wellcpara: welltype(1) nperf(2) index(3) Tr(j)ans(4) protype(5) value(6) consTr(j)ain(7) Wellc(nWel, 6) +% welltype = 1 prod, welltype = 2 inj +% protype = 1 const flowrate, protype = 2 const pwf +nmatr = 2 * r.nc + Weladd;%加上定产井的数量,结果为未知数的总数,压力、饱和度和井底流压 +nzw = 10 * nWel; +% Awell = spalloc(nmatr,nmatr,nzw); +Awell = spalloc(nmatr,nmatr,nzw); +qwell = spalloc(nmatr,1,nzw); +% Dimensionless_wellflow=[]; +if Weladd == 0 %%定产井的数量为0 + [p, sw] = intADI_oil_water_flow(p, sw); +else + [p, sw, pwf] = intADI2_oil_water_flow(p, sw, pwf); +end +BW = f.Bw(p); +muW = f.muw(p); +krW = f.krw(sw); +BO = f.Bo(p); +muO = f.muo(p); +krO = f.kro(sw); +Yot = krO ./ (muO .* BO); +Ywt = krW ./ (muW .* BW); +Yoj = krO ./ muO; +Ywj = krW ./ muW; +pcOW = 0; +if f.ifpcow%若为0,则毛管力为0 + pcOW = f.pcow(sw); +end +pw = p - pcOW; +ipwf = 0; +for i = 1 : nWel + if strcmp(well_schedules_k{i,2},'open') + jperfall = Wellc{i,3};%该井射孔点所在网格或单元序号 + if strcmp(well_schedules_k{i,3},'pro') % prod + if strcmp(well_schedules_k{i,4},'const_q') % const flowrate + ipwf = ipwf + 1; + Tr = Wellc{i,4}; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + Yo = Yot(jperf); + Yw = Ywt(jperf); + qo = -Tr(j) .* Yo .*(p(jperf) - pwf(ipwf)); + qw = -Tr(j) .* Yw .*(pw(jperf) - pwf(ipwf)); + %前nc行是水相方程 + Awell(jperf, :) = [qw.jac{1} qw.jac{2} qw.jac{3}]; + qwell(jperf) = qw.val; + %后nc行是水相方程 + Awell(r.nc + jperf, :) = [qo.jac{1} qo.jac{2} qo.jac{3}]; + qwell(r.nc + jperf) = qo.val; + %把该井所有射孔点的产油、产水累加起来 + % 在定流量情况下,为了使得能够适用于更一般情况,比如气井流量较大,导致该方程MR迭代收敛条件过高,因此需要无因次化 + Awell(2*r.nc + ipwf, :) = Awell(2*r.nc + ipwf, :) + ... + [qw.jac{1} qw.jac{2} qw.jac{3}] + [qo.jac{1} qo.jac{2} qo.jac{3}]; + qwell(2*r.nc + ipwf) = qwell(2*r.nc + ipwf) + qw.val + qo.val; + end + qwell(2*r.nc + ipwf) = (qwell(2*r.nc + ipwf) + well_schedules_k{i,5}/86.4); + else % const pwf 定压生产 + if ~WelChg(i) + pwfc = well_schedules_k{i,5}; + else + pwfc = well_schedules_k{i,6}; + end + Tr = Wellc{i,4}; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + Yo = Yot(jperf); + Yw = Ywt(jperf); + qo = -Tr(j) .* Yo .*(p(jperf) - pwfc); + qw = -Tr(j) .* Yw .*(pw(jperf) - pwfc); + Awell(jperf, 1 : 2 * r.nc) = [qw.jac{1} qw.jac{2}]; + qwell(jperf) = qw.val; + Awell(r.nc + jperf, 1 : 2 * r.nc) = [qo.jac{1} qo.jac{2}]; + qwell(r.nc + jperf) = qo.val; + end + end + else %注入井 + if strcmp(well_schedules_k{i,4},'const_q') % const flowrate + ipwf = ipwf + 1; + Tr = Wellc{i,4}; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + Yo = Yoj(jperf); + Yw = Ywj(jperf); + qw = -Tr(j) ./ BW(jperf) .* (Yo + Yw) .* (pw(jperf) - pwf(ipwf)); + Awell(jperf, :) = [qw.jac{1} qw.jac{2} qw.jac{3}]; + qwell(jperf) = qw.val; + Awell(2*r.nc + ipwf, :) = Awell(2*r.nc + ipwf, :) + ... + [qw.jac{1} qw.jac{2} qw.jac{3}]; + qwell(2*r.nc + ipwf) = qwell(2*r.nc + ipwf) + qw.val; + end + qwell(2*r.nc + ipwf) = qwell(2*r.nc + ipwf) - well_schedules_k{i,5}/86.4; + else %定压注入 + if ~WelChg(i) + pwfc = well_schedules_k{i,5}; + else + pwfc = well_schedules_k{i,6}; + end + Tr = Wellc{i,4}; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + Yo = Yoj(jperf); + Yw = Ywj(jperf); + qw =- Tr(j) ./ BW(jperf) .* (Yo + Yw) .* (pw(jperf) - pwfc); + Awell(jperf, 1 : 2 * r.nc) = [qw.jac{1} qw.jac{2}]; + qwell(jperf) = qw.val; + end + end + end + end +end \ No newline at end of file diff --git a/core functions/油水两相流部分代码/cal_oil_prop.m b/core functions/油水两相流部分代码/cal_oil_prop.m new file mode 100644 index 0000000..89c7eed --- /dev/null +++ b/core functions/油水两相流部分代码/cal_oil_prop.m @@ -0,0 +1,5 @@ +function [Ppr,BG,MUG] = cal_oil_prop(prg,Bgi,cg,vgi,cvg) +Ppr = (0.1:0.1:100)'; +BG = Bgi * (1 - cg * (Ppr - prg)); +MUG = vgi + cvg * (Ppr - prg); +end \ No newline at end of file diff --git a/core functions/油水两相流部分代码/calcWellequation_oil_water_flow.m b/core functions/油水两相流部分代码/calcWellequation_oil_water_flow.m new file mode 100644 index 0000000..abf635d --- /dev/null +++ b/core functions/油水两相流部分代码/calcWellequation_oil_water_flow.m @@ -0,0 +1,98 @@ +function [Wellpara, WelChg, Weladd] = calcWellequation_oil_water_flow(Weladd, Wellc, WelChg, well_schedules_k, nc, qwell, state) +%Weladd表示定流量井的数量,Wellc表示井参数 +% Wellcpara: welltype(1) nperf(2) index(3) Tr(j)ans(4) protype(5) value(6) consTr(j)ain(7) Wellc(nWel, 6) +% welltype = 1 prod, welltype = 2 inj +% protype = 1 const flowrate, protype = 2 const pwf +nWel = size(Wellc, 1);%井数 +Wellpara = cell(1, nWel); +if Weladd > 0 %存在定流量井 + pwf = state.pwf; +end +ipwf = 0; +for i = 1 : nWel + if strcmp(well_schedules_k{i,2},'open') + qot = 0; + qwt = 0; + jperfall = Wellc{i,3}; + if strcmp(well_schedules_k{i,3},'pro') % prod + if strcmp(well_schedules_k{i,4},'const_q') % const flowrate + ipwf = ipwf + 1; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + %井筒内无限导流,流量等于各个射孔点流量之和 + qwt = qwt + qwell(jperf); + qot = qot + qwell(nc + jperf); + end + if well_schedules_k{i,5} ~= 0 + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = abs(qwt)*86.4; + Wellpara{1,i}.qo = abs(qot)*86.4; + Wellpara{1,i}.pwf = pwf(ipwf); + else + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = 0; + Wellpara{1,i}.qo = 0; + Wellpara{1,i}.pwf = pwf(ipwf); + end + % if pwf(ipwf)<= Wellc{i,7} %当井底流压低于这个限制,流量会很大 + % WelChg(i) = 1; + % Weladd = Weladd - 1; + % else + % WelChg(i) = 0; + % end + else % const pwf 生产 + if ~WelChg(i) + Wellpara{1,i}.pwf = well_schedules_k{i,5}; + else + Wellpara{1,i}.pwf = well_schedules_k{i,6}; + end + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + qwt = qwt + qwell(jperf); + qot = qot + qwell(nc + jperf); + end + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = abs(qwt)*86.4; + Wellpara{1,i}.qo = abs(qot)*86.4; + end + else %注入井 + if strcmp(well_schedules_k{i,4},'const_q') % const flowrate + ipwf = ipwf + 1; + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + qwt = qwt + qwell(jperf); + end + if well_schedules_k{i,5} ~= 0 + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = abs(qwt)*86.4; + Wellpara{1,i}.pwf = pwf(ipwf); + Wellpara{1,i}.qo = 0; + else + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = 0; + Wellpara{1,i}.pwf = pwf(ipwf); + Wellpara{1,i}.qo = 0; + end + % if pwf(ipwf) >= Wellc{i,7} %高于这个限制压力后,则井的流量很高 + % WelChg(i) = 1; + % Weladd = Weladd - 1; + % else + % WelChg(i) = 0; + % end + else + if ~WelChg(i) + Wellpara{1,i}.pwf = well_schedules_k{i,5}; + else + Wellpara{1,i}.pwf = well_schedules_k{i,6}; + end + for j = 1 : Wellc{i,2} + jperf = jperfall(j); + qwt = qwt + qwell(jperf); + end + Wellpara{1,i}.wellname = Wellc{i,1}; + Wellpara{1,i}.qw = abs(qwt)*86.4; + Wellpara{1,i}.qo = 0; + end + end + end +end \ No newline at end of file diff --git a/core functions/油水两相流部分代码/eqsOW_MB_oil_water_flow.m b/core functions/油水两相流部分代码/eqsOW_MB_oil_water_flow.m new file mode 100644 index 0000000..39b9a9f --- /dev/null +++ b/core functions/油水两相流部分代码/eqsOW_MB_oil_water_flow.m @@ -0,0 +1,155 @@ +function [eqs, Awell, qwell,PVv, Bga, Bwa] = eqsOW_MB_oil_water_flow(state, state0, dt, r, f, os, Wellc, Weladd, pwf, WelChg, well_schedules_k) + +p = state.p; +sw = state.sw; +p0 = state0.p; +sw0 = state0.sw; +[p, sw] = intADI_oil_water_flow(p, sw); + +% z方向上的位势 +% 由于当深度发生变化时,流体的密度也会发生变化,因此不能简单得处理成折算压力的情况计算 +%对位势z进行处理 +z=r.z; +z = intADIz(z); +% Dosi是地面标况下测得的油相密度,Dwsi是地面标况下测得的水相密度 + +% % % % 应力敏感系数 +% % % exp_paramter_1 = -0.04; +% % % reference_pressure = 20; +% % % stress_factor = exp(exp_paramter_1*(p-reference_pressure)); + +% Water Props +BW = f.Bw(p); +muW = f.muw(p); +krW = f.krw(sw); +pcOW = 0; +if f.ifpcow + pcOW = f.pcow(sw); +end +pw = p - pcOW; +dpW = os.grad(pw); +% dzw=1e-6*9.8*f.Dwsi*os.grad(z./BW); %水相位势梯度 +dzw=0; +upc = (double(dpW+dzw)<=0);%一定要是折算压力! +mobW = os.faceUpstr(upc, krW) .* os.faceAvg(1./(BW.*muW)); +% mobW = os.faceUpstr(upc, krW) .* os.faceAvg(1./(BW.*muW)) .* os.faceAvg(stress_factor); +% 针对启动压力梯度的平滑处理 +if f.p_grad_threshold ~= 0 + pcOW0 = f.pcgl(sw0); + pw0 = p0 - pcOW0; + dpW0 = os.grad(pw0); + dzw0=0; + dpW0 = dpW0+dzw0; + pW_grad0 = r.T_diff./r.flowArea.*dpW0; + ratioW = smooth_relu_stable(pW_grad0, f.p_grad_threshold); +else + ratioW = 1; +end +bWvW = -r.T .* mobW .* (dpW).*ratioW; +% bWvW = -r.T .* mobW .* dpW; + +% gas Props +BO = f.Bo(p); +muO = f.muo(p); +krO = f.kro(sw); +dpO = os.grad(p); +% dzg=1e-6*9.8*f.Dgsi*os.grad(z./BG); %油相位势梯度 +dzo=0; +upc = (double(dpO+dzo)<=0);%一定要是折算压力,否则出错! +mobO = os.faceUpstr(upc, krO) .* os.faceAvg(1./(BO.*muO)); +% mobO = os.faceUpstr(upc, krO) .* os.faceAvg(1./(BO.*muO)).* os.faceAvg(stress_factor); +% 针对启动压力梯度的平滑处理 +if f.p_grad_threshold ~= 0 + dpO0 = os.grad(p0); + dzo0=0; + dpO0 = dpO0+dzo0; + pO_grad0 = r.T_diff./r.flowArea.*dpO0; + ratioO = smooth_relu_stable(pO_grad0, f.p_grad_threshold); +else + ratioO = 1; +end +% Knudsen 扩散影响 +bOvO = -r.matrixflag.*r.T .* mobO .* dpO.*ratioO ... + -(1-r.matrixflag).*r.T .* mobO .* dpO.*ratioO; +% Knudsen 扩散影响 +% bGvG = -r.matrixflag.*f.gas_prop.Kn_modified_factor.*r.T .* mgbG .* dpG ... +% -(1-r.matrixflag).*r.T .* mgbG .* dpG; + +% 非达西流发生仅发生在裂缝网格内 +% Forchheimer_factor = 1/(1+kf/mug*beta*density_g*v_gf) +BO0 = f.Bo(p0);muO0 = f.muo(p0);krO0 = f.kro(sw0);dpO0 = os.grad(p0); +dzo0=0; +upc0 = (double(dpO0+dzo0)<=0);%一定要是折算压力,否则出错! +mobO0 = os.faceUpstr(upc0, krO0) .* os.faceAvg(1./(BO0.*muO0)); +% mobO = os.faceUpstr(upc, krO) .* os.faceAvg(1./(BO.*muO)).* os.faceAvg(stress_factor); +v_of = -(1-r.matrixflag).*r.T .* mobO0 .* dpO0./r.flowArea; +density_o = f.density_o_sc./BO0; +Forchheimer_factor = 1./(1+(1-r.matrixflag).*r.perm./os.faceAvg(muO0).*f.beta_non_Darcy_flow.*os.faceAvg(density_o).*abs(v_of)); + +% 分别有基质系统的应力敏感系数 和 裂缝系统的应力敏感系数 +stress_factor = r.matrixflag.*exp(r.stress_factor_matrix*(os.faceAvg(p0)-r.stress_factor_ref_pressure))... ++(1-r.matrixflag).*exp(r.stress_factor_fracture*(os.faceAvg(p0)-r.stress_factor_ref_pressure)); + +% 采用简单的叠加处理 +bWvW = bWvW.*stress_factor.*Forchheimer_factor; +bOvO = bOvO.*stress_factor.*Forchheimer_factor; +% z方向上的位势 +% 由于当深度发生变化时,流体的密度也会发生变化,因此不能简单得处理成折算压力的情况计算 +%对位势z进行处理 +% z=r.z; +% z = intADIz(z); +% Dosi是地面标况下测得的油相密度,Dwsi是地面标况下测得的水相密度 +% dzo=0.01*os.grad(z./BO); %油相位势梯度 +% dzw=0.01*os.grad(z./BW); %水相位势梯度 +% bOvO = -r.T .* mobO .* (dpO+dzo); +% bWvW=-r.T .* mobW .* (dpW+dzw); + +% transfer function (OW) +% [qomf, qofm, qwmf, qwfm] = transFunc(r, krO, krW, BO, muO, BW, muW, p, pw); + +% well equation +[Awell, qwell] = WellEquation_oil_water_flow(r, f, p.val, sw.val, Wellc, Weladd, pwf, WelChg, well_schedules_k); +% Awell=dt*Awell; +% qwell=dt*qwell; + +% Accumulation term +PV = r.V .* r.por(p); +PV0 = r.V .* r.por(p0); +Ar_w = 1/dt*(PV .* (sw ./ BW) - PV0 .* (sw0 ./ f.Bw(p0))); +Ar_o = 1/dt*(PV .* ((1 - sw) ./ BO) - PV0 .* ((1 - sw0) ./ f.Bo(p0))); + +% Water Equation +eqs{1} = (-os.div(bWvW) - Ar_w); +% 使基质考虑重力,裂缝不考虑重力 +% eqs{1} = (-os.div(-r.T .* mobW .* dpW)-r.rpt.*os.div(-r.T .* mobW .* dzw) - Ar_w)*dt; +% eqs{1} = (-os.div(-r.T .* mobW .* dpW) - Ar_w)*dt; +% eqs{1} = -os.div(bWvW) - Ar_w; +% Oil Equation +eqs{2} = (-os.div(bOvO) - Ar_o); +% eqs{2} = (-os.div(-r.T .* mobO .* dpO)-r.rpt.*os.div(-r.T .* mobO .* dzo) - Ar_o)*dt; +% eqs{2} = (-os.div(-r.T .* mobO .* dpO) - Ar_o)*dt; +PVv = PV.val; +Bwa = BW.val; +Bga = BO.val; +% eqs{2} = -os.div(bOvO) - Ar_o; + + +% Rw = Ar_w.val - qwell(1 : r.nc); +% Ro = Ar_o.val - qwell(r.nc+1 : 2*r.nc); +% PVv = PV.val; +% % PV_all = sum(PVv); +% Bwa = mean(BW.val); +% Boa = mean(BO.val); + +% MBw = abs(Bwa * dt * (sum(Rw)/PV_all)); +% MBo = abs(Boa * dt * (sum(Ro)/PV_all)); + + + + + + + + + + diff --git a/core functions/油水两相流部分代码/fluidPVT_oil_water_flow.m b/core functions/油水两相流部分代码/fluidPVT_oil_water_flow.m new file mode 100644 index 0000000..8ca806d --- /dev/null +++ b/core functions/油水两相流部分代码/fluidPVT_oil_water_flow.m @@ -0,0 +1,16 @@ +function f = fluidPVT_oil_water_flow(Ppr, BO, MUO, Bwi, prw, cw, vwi, cvw, SW, KRO, KRW, PCOW, SWF, KROF, KRWF, PCOWF, density_o_sc, ifpcow, rpt) +% f = fluidPVT(Bopb, pb, co, Bwi, prw, cw, vwi, cvw, visopb, cvo, SW, KRO, KRW, PCOW, ifpcow, SWF, KROF, KRWF, PCOWF, rpt,Dosi,Dwsi) +f.Bw = @(p) Bw_ow(p, Bwi, prw, cw); +f.Bo = @(p) Bo_ow(p, BO, Ppr); +f.muw = @(p) muw_ow(p, vwi, prw, cvw); +f.muo = @(p) muo_ow(p, MUO, Ppr); +f.kro = @(sw) kro_ow(sw, SW, KRO, SWF, KROF, rpt); +f.krw = @(sw) krw_ow(sw, SW, KRW, SWF, KRWF, rpt); +f.pcow = @(sw) pcow(sw, SW, PCOW, SWF, PCOWF, rpt); +f.density_o_sc = density_o_sc; +f.ifpcow = ifpcow; +% f.Dosi=Dosi; +% f.Dwsi=Dwsi; + + + diff --git a/core functions/油水两相流部分代码/initalSchedule_oil_water_flow.m b/core functions/油水两相流部分代码/initalSchedule_oil_water_flow.m new file mode 100644 index 0000000..0b320a8 --- /dev/null +++ b/core functions/油水两相流部分代码/initalSchedule_oil_water_flow.m @@ -0,0 +1,53 @@ +function [Weladd, pwf] = initalSchedule_oil_water_flow(p, sw, Wellc, f, well_schedules_k) +nWel = size(Wellc, 1);%井数 +Weladd = 0; +pwf = zeros(1); +BW = f.Bw(p); +muW = f.muw(p); +krW = f.krw(sw); +BO = f.Bo(p); +muO = f.muo(p); +krO = f.kro(sw); +Yot = krO ./ (muO .* BO);%mu代表黏度 +Yoj = krO ./ muO; +Ywt = krW ./ (muW .* BW);%mu代表黏度 +Ywj = krW ./ muW; + +for i = 1 : nWel + if strcmp(well_schedules_k{i,2},'open') + if strcmp(well_schedules_k{i,3},'pro') && strcmp(well_schedules_k{i,4},'const_q') %该井是生产井并定产生产 + Weladd = Weladd + 1; + nper = Wellc{i,2}; %该井的射孔数量 + jperf = zeros(nper,1); + Trans = zeros(nper,1); + Tnp = 0; + Tn = 0; + for j = 1 : nper + jperf(j) = Wellc{i,3}(j);%该射孔点在基质网格和裂缝单元全体中的序号 + Tr = Wellc{i,4}(j);%该射孔点对应的生产指数(缺流度) + Trans(j) = Tr * (Yot(jperf(j)) + Ywt(jperf(j)));%生产指数 + Tnp = Tnp + Trans(j)*p(jperf(j)); + Tn = Tn + Trans(j); + end + pwf(Weladd) = (Tnp - well_schedules_k{i,5}/86.4) / Tn;%说明井筒无限导流,压力为一个值 + elseif strcmp(well_schedules_k{i,3},'inj') && strcmp(well_schedules_k{i,4},'const_q') %注入井,恒定注入量 + Weladd = Weladd + 1; + nper = Wellc{i,2}; + jperf = zeros(nper,1); + Trans = zeros(nper,1); + Tnp = 0; + Tn = 0; + for j = 1 : nper + jperf(j) = Wellc{i,3}(j); + Tr = Wellc{i,4}(j); + Trans(j) = Tr / BW(jperf(j)) * (Yoj(jperf(j)) + Ywj(jperf(j)));%多相流注入方程 + Tnp = Tnp + Trans(j)*p(jperf(j)); + Tn = Tn + Trans(j); + end + pwf(Weladd) = (Tnp + well_schedules_k{i,5}/86.4) / Tn;%与生产井正好反过来 + else + continue + end + end +end + pwf = pwf'; \ No newline at end of file diff --git a/core functions/油水两相流部分代码/initialRS_oil_water_flow.m b/core functions/油水两相流部分代码/initialRS_oil_water_flow.m new file mode 100644 index 0000000..62c7606 --- /dev/null +++ b/core functions/油水两相流部分代码/initialRS_oil_water_flow.m @@ -0,0 +1,3 @@ +function state = initialRS_oil_water_flow(P, Sw) +state.p = P; +state.sw = Sw; \ No newline at end of file diff --git a/core functions/油水两相流部分代码/intADI2_oil_water_flow.m b/core functions/油水两相流部分代码/intADI2_oil_water_flow.m new file mode 100644 index 0000000..45ae1f5 --- /dev/null +++ b/core functions/油水两相流部分代码/intADI2_oil_water_flow.m @@ -0,0 +1,18 @@ +function [P, Sw, Pwf] = intADI2_oil_water_flow(p, sw, pwf) +n = length(p); +npwf = length(pwf); +Jp = cell(1,3); +Jsw = cell(1,3); +Jpwf = cell(1,3); +Jp{1} = sparse(1:n, 1:n, ones(n,1), n, n); +Jp{2} = sparse(n,n); +Jp{3} = sparse(n,npwf); +Jsw{1} = sparse(n,n); +Jsw{2} = sparse(1:n, 1:n, ones(n,1), n, n); +Jsw{3} = sparse(n,npwf); +Jpwf{1} = sparse(npwf,n); +Jpwf{2} = sparse(npwf,n); +Jpwf{3} = sparse(1:npwf, 1:npwf, ones(npwf,1), npwf, npwf); +P = ADI(p, Jp); +Sw = ADI(sw, Jsw); +Pwf = ADI(pwf, Jpwf); \ No newline at end of file diff --git a/core functions/油水两相流部分代码/intADI_oil_water_flow.m b/core functions/油水两相流部分代码/intADI_oil_water_flow.m new file mode 100644 index 0000000..3463511 --- /dev/null +++ b/core functions/油水两相流部分代码/intADI_oil_water_flow.m @@ -0,0 +1,10 @@ +function [P, Sw] = intADI_oil_water_flow(p, sw) +n = length(p); +Jp = cell(1,2); +Jsw = cell(1,2); +Jp{1} = sparse(1:n, 1:n, ones(n,1), n, n); +Jp{2} = sparse(n,n); +Jsw{1} = sparse(n,n); +Jsw{2} = sparse(1:n, 1:n, ones(n,1), n, n); +P = ADI(p, Jp); +Sw = ADI(sw, Jsw); \ No newline at end of file diff --git a/core functions/油水两相流部分代码/kro_ow.m b/core functions/油水两相流部分代码/kro_ow.m new file mode 100644 index 0000000..f18add0 --- /dev/null +++ b/core functions/油水两相流部分代码/kro_ow.m @@ -0,0 +1,14 @@ +function h = kro_ow(sw, SW, KRO, varargin) +n = numel(varargin);%表示没有输入裂缝参数 +if n == 0 + h = interptable(SW, KRO, sw); +else + SWF = varargin{1}; + KROF = varargin{2}; + rpt = varargin{3}; + hm = interptable(SW, KRO, sw); + hf = interptable(SWF, KROF, sw); + h = rpt .* hm + ~rpt .* hf;%分别为裂缝与基质 +end +% h=sw+(1-sw); +end \ No newline at end of file diff --git a/core functions/油水两相流部分代码/krw_ow.m b/core functions/油水两相流部分代码/krw_ow.m new file mode 100644 index 0000000..a4b03f3 --- /dev/null +++ b/core functions/油水两相流部分代码/krw_ow.m @@ -0,0 +1,15 @@ +function h = krw_ow(sw, SW, KRW, varargin) +n = numel(varargin); +if n == 0 + h = interptable(SW, KRW, sw); +else + SWF = varargin{1}; + KRWF = varargin{2}; + rpt = varargin{3}; + hm = interptable(SW, KRW, sw); + hf = interptable(SWF, KRWF, sw); + h = rpt .* hm + ~rpt .* hf; +end +% h=sw-sw; +end + diff --git a/core functions/油水两相流部分代码/mainRS_MB_oil_water_flow.m b/core functions/油水两相流部分代码/mainRS_MB_oil_water_flow.m new file mode 100644 index 0000000..5ee8e8d --- /dev/null +++ b/core functions/油水两相流部分代码/mainRS_MB_oil_water_flow.m @@ -0,0 +1,153 @@ +function [Times, OutputRs, Wellpara, trun] = mainRS_MB_oil_water_flow(r, f, os, w, state0) +t_start = clock; +dtmin = w.dtmin; +dtmax = w.dtmax; +Nmax = w.Nmax; +epsave = w.epsave; +epsmax = w.epsmax; +yitap = w.yitap; +yitas = w.yitas; +omega = w.omega; +Wellc = w.Wellc; +time = w.time; +well_schedules = w.well_schedules; +% WelChg = w.WelChg; +% tend = w.tend; +count = 0; +t = 0; +state = state0; +OutputRs = cell(2,1); +Wellpara = cell(2,1); +Times = zeros(2,1); +% h0 = waitbar(0,'Please wait...'); +for k = 1:size(well_schedules,1) + dt=dtmin(k); + [Weladd, pwf] = initalSchedule_oil_water_flow(state0.p, state0.sw, Wellc, f, well_schedules{k,1}); +% [Weladd, pwf] = initalSchedule(state0.p, state0.sw, Wellc, f); +WelChg = zeros(size(well_schedules{k,1},1),1); % 后续有用,先不用 +repi = 0; +Newton_step = 0; +cons_Jacob = 0; +leqs_solve_time = 0; +Newtons_vs_time = [0, 0]; +tend = sum(time(1:k),1); +while t < tend + for i = 1 : Nmax + dtc = dt * 86.4; + tic; + [eqs, Awell, qwell, Pvv, Boa, Bwa] = ... + eqsOW_MB_oil_water_flow(state, state0, dtc, r, f, os, Wellc, Weladd, pwf, WelChg, well_schedules{k,1}); + Jacob = Awell; + Ris = qwell; + Jacob(1 : r.nc,1 : 2 * r.nc) = Jacob(1 : r.nc,1 : 2 * r.nc) + [eqs{1}.jac{1} eqs{1}.jac{2}]; + Jacob(r.nc + 1 : 2 * r.nc,1 : 2 * r.nc) = Jacob(r.nc + 1 : 2 * r.nc,1 : 2 * r.nc) + [eqs{2}.jac{1} eqs{2}.jac{2}]; + Ris(1 : r.nc) = Ris(1 : r.nc) + eqs{1}.val ; + Ris(r.nc + 1: 2 * r.nc) = Ris(r.nc + 1: 2 * r.nc) + eqs{2}.val ; + % 将误差无因次化,用以判断是否收敛 + Dimensionless_Ris = Ris(1: 2 * r.nc)./ [Pvv;Pvv] .* [Bwa;Boa] .* dtc; + cons_Jacob_lo=toc; + cons_Jacob=cons_Jacob+cons_Jacob_lo; +% PVall = sum(Pvv); +% MBw = Bwa*dtc*abs(sum(Ris(1:r.nc))/PVall); +% MBo = Boa*dtc*abs(sum(Ris(r.nc+1:2*r.nc))/PVall); +% CNVw = max(Bwa*dtc*abs(Ris(1:r.nc)./Pvv)); +% CNVo = max(Boa*dtc*abs(Ris(r.nc+1:2*r.nc)./Pvv)); +% [L,U] = ilu(-Jacob); +% tol = 1e-6; +% maxit = 50; +% [X, ~] = bicgstab(-Jacob,Ris,tol,maxit,L,U); + tic; +% tol = 1e-12; +% maxit = 200; +% [X0,fl0,rr0,it0,rv0] = gmres(-Jacob,Ris,[],tol,maxit); +% [L,U] = ilu(-Jacob,struct('type','ilutp','droptol',1e-6)); +% [X1,fl1,rr1,it1,rv1] = gmres(-Jacob,Ris,[],tol,maxit,L,U); + X = -Jacob \ Ris; + leqs_time=toc; + leqs_solve_time=leqs_solve_time+leqs_time; + Newton_step=Newton_step+1; + dsw = X(r.nc + 1 : 2*r.nc); + dp = X(1 : r.nc); + state.p = state.p + dp; + state.sw = state.sw + dsw; + % deltp=state.p-state0.p; + % deltsw=state.sw-state0.sw; + if Weladd > 0 + dpwf = X(2 * r.nc + 1 : end); + pwf = pwf + dpwf; + state.pwf = pwf; + end +% if MBw <= epsave && MBo <= epsave && CNVw <= epsmax && CNVo <=epsmax && max(dsw)<=0.02 && max(dp)<=1 +% break +% end + % 为适应更一般的情况,将Ris无因次化 + + if mean(abs(Dimensionless_Ris)) <= epsave && max(abs(Dimensionless_Ris)) <=epsmax + break + end + +% [L,U] = ilu(-Jacob); +% tol = 1e-6; +% maxit = 50; +% [X, ~] = bicgstab(-Jacob,Ris,tol,maxit,L,U); +% raodai=condest(Jacob); +% if condest(Jacob)>50000 +% dt = dt / 2; +% else + end + + if i == Nmax + repi = repi + 1; + if repi == 5 + error('too many iter') + end + if repi == 1 + dt = dt / 2; + elseif repi == 2 + dt = dt / 3; + else + dt = dt / 10; + end +% dt = max(dt, w.dtmin); + state = state0; + else + repi = 0; + t = t + dt; + count = count + 1; + Times(count) = t; + OutputRs{count} = state; + Newtons_vs_time = [Newtons_vs_time; t, Newton_step]; +% qwell=qwell/dtc;%转换为单位时间的流量 + [Wellpara_t, WelChg, Weladd] = calcWellequation_oil_water_flow(Weladd, Wellc, WelChg, well_schedules{k,1}, r.nc, qwell, state); + Wellpara{count} = Wellpara_t; + state0 = state; + tm = ADtimestep(yitap, yitas, omega, dp, dsw); +% tm=1; + dt = dt * tm; + if t + dt > tend + dt = tend - t; + end + if dt >= dtmax(k) + dt = dtmax(k); + end + if i ~= Nmax + % waitbar(t / tend); + % disp(t); + fprintf('正在计算:%.4f天/共%.4f天\n', t, sum(time)); + + end + if t>300 + flag = 1; + end + end +end +end +trun.cons_Jacob=cons_Jacob; +trun.leqs_solve_time=leqs_solve_time; +trun.total_simulation_time = etime(clock,t_start); +trun.Newton_step=Newton_step; +trun.Newtons_vs_time=Newtons_vs_time; +fprintf('计算完成'); +% close(h0); + + diff --git a/core functions/油水两相流部分代码/muo_ow.m b/core functions/油水两相流部分代码/muo_ow.m new file mode 100644 index 0000000..4bc5fa3 --- /dev/null +++ b/core functions/油水两相流部分代码/muo_ow.m @@ -0,0 +1,3 @@ +function h = muo_ow(p, MUO, Ppr) +h = interptable(Ppr, MUO, p); +end \ No newline at end of file diff --git a/core functions/油水两相流部分代码/muw_ow.m b/core functions/油水两相流部分代码/muw_ow.m new file mode 100644 index 0000000..538f194 --- /dev/null +++ b/core functions/油水两相流部分代码/muw_ow.m @@ -0,0 +1,2 @@ +function h = muw_ow(p, vwi, prw, cvw) +h = vwi + cvw * (p - prw); diff --git a/core functions/油水两相流部分代码/pcow.m b/core functions/油水两相流部分代码/pcow.m new file mode 100644 index 0000000..b3f4913 --- /dev/null +++ b/core functions/油水两相流部分代码/pcow.m @@ -0,0 +1,16 @@ +function h = pcow(sw, SW, PCOW, varargin) +n = numel(varargin); +if PCOW == 0 + h = 0; +else + if n == 0 + h = interptable(SW, PCOW, sw); + else + SWF = varargin{1}; + PCOWF = varargin{2}; + rpt = varargin{3}; + hm = interptable(SW, PCOW, sw); + hf = interptable(SWF, PCOWF, sw); + h = rpt .* hm + ~rpt .* hf; + end +end diff --git a/core functions/油水两相流部分代码/por.m b/core functions/油水两相流部分代码/por.m new file mode 100644 index 0000000..5561327 --- /dev/null +++ b/core functions/油水两相流部分代码/por.m @@ -0,0 +1,12 @@ +function h = por(p, prpor, pori, cpor, varargin) +n = numel(varargin); +if n == 0 + h = pori .* (1 + cpor .* (p - prpor)); +else + prporf = varargin{1}; + cporf = varargin{2}; + rpt = varargin{3}; + hm = pori .* (1 + cpor .* (p - prpor)); + hf = pori .* (1 + cporf .* (p - prporf)); + h = rpt .* hm + ~rpt .* hf; +end diff --git a/core functions/程序整合及组分流部分代码/GridProp_DP.asv b/core functions/程序整合及组分流部分代码/GridProp_DP.asv new file mode 100644 index 0000000..ad44248 --- /dev/null +++ b/core functions/程序整合及组分流部分代码/GridProp_DP.asv @@ -0,0 +1,523 @@ +function r = GridProp_DP(modelflag,nx, ny, nz, dx, dy, dz, kx, ky, kz, kx_matrixLayer, ky_matrixLayer, kz_matrixLayer, f, frac_information, fellip, Kf, Wf, pori, pori_matrixLayer, prpor, cpor, Porf, prporf, cporf, cf, ca,NTG) +tic; +%% 基质网格参数及网格参数计算、存储 +r.modelflag=modelflag; +r.nx = nx; +r.ny = ny; +r.nz = nz; +r.dx = dx; +r.dy = dy; +r.dz = dz; +r.kx = kx; +r.ky = ky; +r.kz = kz; +r.kx_matrixLayer = kx_matrixLayer; +r.ky = ky; +r.kz = kz; +r.Kf = Kf;%裂缝面对应的渗透率,非裂缝单元 +r.Wf = Wf;%裂缝面对应的缝宽,非裂缝单元 +r.cf = cf; +r.ca = ca; +% r.co=co; +r.cpor=cpor; +r.cporf=cporf; +r.NTG=NTG; +r.frac_information = frac_information; + +[coordinates, nodes, nP, nE, dxv, dyv,dzv,zm,vm,xrao,yrao,zrao,cell_mid_coordinates] = GenerateNode_final(dx, dy,dz ,nx,ny,nz,NTG); +r.coordinates = coordinates; +r.nodes = nodes; +nmc=nE; +r.nmc =nmc; +r.dxv = dxv; +r.dyv = dyv; +r.dzv = dzv; +r.vm=vm; +r.cell_mid_coordinates=cell_mid_coordinates; +%% 求解裂缝与基质网格连接情况 +%% 关键参数矩阵初始化 +m=size(f,1); +n=size(fellip,1); +nfr=m/5;%矩形规则裂缝条数 +nfir=n/5;%不规则裂缝条数(当然包含椭圆) +r.nfr=nfr; r.nfir=nfir; +nf=nfr+nfir; +r.nf=nf; +if (nfir~=0) && (nfr~=0) + f=[f;fellip]; +else if nfr~=0 + f=f; +else if nfir~=0 + f=fellip; +else error('Dr Rao reminds you that there is no information about fractures'); +end +end +end + +%d3intersection=-1000*ones(1000,3);%用-1000做标识 +raopoint=cell(nfr+nfir,2);%利用元胞数组存储每条裂缝与基质网格线的交点, +%第一列是三维坐标形式,即d3intersection +%第二列是裂缝面参数形式,即anothersection +pointvsregion=cell(nfr+nfir,3);%利用元胞数组存储interarea函数的结果numofmesh, numvspoint,numofregion +fracrossfra=cell(nfr+nfir,nfr+nfir-1);%判断裂缝之间两交点坐标 +fratmaxfra=zeros(nfr+nfir,nfr+nfir-1);%判断裂缝之间交线参数的最大值 +fratminfra=zeros(nfr+nfir,nfr+nfir-1);%判断裂缝之间交线参数的最小值 +fracturemesh=cell(nf,1);%每一行是一条裂缝面上的网格剖分情况 + +%% 计算裂缝与基质网格相交情况 +for i=1:nfr + raopoint{i,1}= intersectionsolve_new_modified_r(f((5*i-4):(5*i),:),dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); + raopoint{i,2}= anosection( f((5*i-4):(5*i),:),raopoint{i,1} ); + [ pointvsregion{i,1},pointvsregion{i,2} ,pointvsregion{i,3}] = interarea( raopoint{i,1},dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); +end +% 不规则缝计算 +if nfir>0 + for i=1:nfir + raopoint{nfr+i,1}= intersectionsolve_new_modified_irr(fellip((5*i-4):(5*i),:),dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); + raopoint{nfr+i,2}= anosection( f((5*(nfr+i)-4):(5*(nfr+i)),:),raopoint{nfr+i,1} ); + [ pointvsregion{nfr+i,1},pointvsregion{nfr+i,2} ,pointvsregion{nfr+i,3}] = interarea( raopoint{nfr+i,1},dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); + end +end + +%% 计算裂缝之间相交线情况 +for i=1:nf + for j=1:nf + if i>nfr || j>nfr cross=zeros(2,3);tmax=0;tmin=0; + else + % [ cross,tmax,tmin ]=frac_cross_frac( f((5*i-4):(5*i),:),f((5*j-4):(5*j),:) ); + cross=zeros(2,3);tmax=0;tmin=0; + end + fracrossfra{i,j}=cross;fratmaxfra(i,j)=tmax;fratminfra(i,j)=tmin; + end +end +%% 计算裂缝被基质网格、其它裂缝与之相交后的网格分布情况,绘制二维裂缝平面参数坐标系上的网格分布情况 +% figure('color','w'); +addflag=zeros(nf,1);%乘2的幂次,防止因为裂缝条数较多,造成矩阵太大 +for i=1:nf + d3intersection=raopoint{i,1};anothersection=raopoint{i,2}; + [ mesh ] = frac_mat_mesh( d3intersection,anothersection,pointvsregion{i,2},pointvsregion{i,1} ); + % for j=1:nf + % [ mesh,d3intersection,anothersection,add_flag ]= frac_frac_mesh_modified(xrao,yrao,zrao,mesh,f(5*i-4,:),f(5*i-3,:),f(5*i-2,:),fracrossfra{i,j},fratmaxfra(i,j),fratminfra(i,j),d3intersection,anothersection,pointvsregion{i,2},pointvsregion{i,1} ); + % addflag(j,1)=addflag(j,1)+add_flag; + % end + raopoint{i,1} = d3intersection; raopoint{i,2} = anothersection;%由原来裂缝与网格的交点不断更新加入其它裂缝与该裂缝的交点 + fracturemesh{i,1}=mesh; + % subplot(nf,1,i);color_fill={'y','r','b','g'}; + % plotmesh2D(mesh,raopoint{i,2},color_fill{1,mod(i,4)+1}); +end + +%% 绘制三维背景网格(基质网格)及裂缝网格分布 +%figure(2) +%network3D(dx,dy,dz,nx,ny,nz ); +%hold on; +figure('color','w'); +% plot_reservoir_3D(max(xrao),max(yrao),dz(1),1,1,nz); +% plot_reservoir_3D(dx(1),dy(1),dz(1),nx,ny,nz); +network3D(dx(1),dy(1),dz(1),nx,ny,nz); +% network3D(1000,700,10,1,1,1); +% network3D(800,300,10,1,1,1); +hold on; + +% network3D_arbitrary(dx,dy,dz,nx,ny,nz); +% refine; +% hold on; +for i=1:nf + % color_fill={'y','r','b','g','c','m'}; + % color_fill={'y','r','b','g'}; + % plotmesh3D( fracturemesh{i,1},raopoint{i,1},color_fill{1,mod(i,4)+1});hold on; + if i <= 100 + color_fill='b'; %流动屏障 + % elseif i <=19 + % color_fill='b'; %压裂缝 +% if i == 2 || i == 9 +% color_fill='r'; +% end + else + color_fill='k'; %天然裂缝 + end + % plotmesh3D( fracturemesh{i,1},raopoint{i,1},color_fill{1,mod(i,4)+1});hold on; + plotmesh3D( fracturemesh{i,1},raopoint{i,1},color_fill);hold on; +end +% % % basic_node_coord = [0,0,0]; +% % % x_length = 700; +% % % y_length = 800; +% % % z_length = 10; +% % % nodes_domain = [basic_node_coord;] +% % % fill3(x,y,z,'w'); +% refine1; +% refine_chengjiepaper; +% refine; +% plot_reservoir_3D(max(xrao),max(yrao),dz(1),1,1,nz); +% plot_reservoir_3D(dx(1),dy(1),dz(1),nx,ny,nz); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +zlabel('z, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +% +% zticks([0, 5]); +% yticks(-1:0.5:1); +% 设置x轴和y轴的刻度标签 +% zticklabels({'-2005', '-2000'}); +% yticklabels({'-1', '-0.5', '0', '0.5', '1'}); +% 关闭刻度标签的旋转 +% xticklabels('Rotation', 0); +% yticklabels('Rotation', 0); +% axis equal; +% refine; +% hold on +% network3D(dx(1),dy(1),dz(1),nx,ny,nz); +% network3D(max(xrao),max(yrao),max(zrao),1,1,1 ); +% network3D(10,10,10,2,1,1 ); +% network3D(10,10,10,6,1,2 ); +alpha(1) +view(3) +% axis([min(xrao),max(xrao),min(yrao),max(yrao),min(zrao),max(zrao)]); +% axis equal +% % hold off; +%% 确定裂缝编号及连接情况,计算传导系数 +if modelflag==1 %表示用2014, Monifar + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,cell_divided_by_fracture_flag, flowArea, perm, matrixflag ] = connections_2014( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,pori,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.flowArea=flowArea; + r.perm=perm; + r.matrixflag=matrixflag; +elseif modelflag==4 %表示用 PEDFM + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_new( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==5 % 表示实用型PEDFM + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff, flowArea, perm, matrixflag ] = connections_PEDFM_new_new( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,pori,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; + r.flowArea=flowArea; + r.perm=perm; + r.matrixflag=matrixflag; +elseif modelflag==6 % 表示基于非结构网格pEDFM的validation model + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag] = connections_unstructured_EDFM( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag)*1/2; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag)*1/2; + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==7 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_EX1_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==8 % 表示基于非结构网格pEDFM的validation model + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio,fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX1_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.fractureCell_matrixCell_addedMatrixCell = fractureCell_matrixCell_addedMatrixCell; + r.volume_ratio=volume_ratio; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag).*volume_ratio; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag).*(1-volume_ratio); + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==9 % EX2 不同情况下 pEDFM 解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_EX2_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==10 % 表示基于非结构网格pEDFM的 EX2 参考解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio,fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX2_1to3_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.fractureCell_matrixCell_addedMatrixCell = fractureCell_matrixCell_addedMatrixCell; + r.volume_ratio=volume_ratio; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag).*volume_ratio; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag).*(1-volume_ratio); + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==11 % 表示基于非结构网格pEDFM的 EX2 参考解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio,fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX2_1to2_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.fractureCell_matrixCell_addedMatrixCell = fractureCell_matrixCell_addedMatrixCell; + r.volume_ratio=volume_ratio; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag).*volume_ratio; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag).*(1-volume_ratio); + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==12 % 表示基于非结构网格pEDFM的 EX2 参考解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio,fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX2_1to4_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.fractureCell_matrixCell_addedMatrixCell = fractureCell_matrixCell_addedMatrixCell; + r.volume_ratio=volume_ratio; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag).*volume_ratio; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag).*(1-volume_ratio); + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==13 % 表示基于非结构网格pEDFM的 EX2 参考解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_TPFA_MFD( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,perm,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==14 %表示用 PEDFM + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_new_twofractures( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +else + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,NTG ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; + %% 计算传导系数 + % dxvector=ones(1,nx);dyvector=ones(1,ny);dzvector=ones(1,nz); + % [ transmatrix,transfracture ] = trans(dxvector,dyvector,dzvector ,nx,ny,nz,nf,fracnumber,lengthvsfra,disvsfra,fracstart,connect_infrac,corevsfra,matrixvsfra,raopoint,f ); + %% 计算基质与裂缝之间窜流的相关系数 + if modelflag==2 %表示用2018, Rao + [ G,Gfm,Gff,Gf,Ap,Apf ]=interflowmf1(r,dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); + [Ka, M, F2M , MF_coef] = transFunc_aniso(nc,coordinates, nodes, connectmf,Ap,Apf, matrixvsfra,N,T,kx, ky,kz); + r.Ka = Ka; + r.M = M; + r.F2M = F2M; + r.MF_coef = MF_coef; + elseif modelflag==5 %表示用 Modified Rao, steady, 2018 + [ G,Gfm,Gff,Gf,Ap,Apf ] = interflowmf_MODIFIED(r,dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); + [Ka, M, F2M , MF_coef] = transFunc_aniso_MODIFIED(nc,coordinates, nodes, connectmf,Ap,Apf, matrixvsfra,N,T,kx, ky,kz); + r.Ka = Ka; + r.M = M; + r.F2M = F2M; + r.MF_coef = MF_coef; + % [ G,Gfm,Gff,Gf,Ap,Apf,Apmt,Apft ]=interflowmf1_transient(dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); + end + % [ G,Gfm,Gff,Gf,Ap,Apf ]=interflowmf1(dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); + %% + + % r.MF_deltt=MF_deltt; +end +%% 计算深度(以下平面为基准计算得到的高度,值为正数) +z=[zm;zf]; +r.z=z; + + +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +r.rpt = rpt; +r.Porf = Porf; +pori = [pori; porf]; +r.pori = pori; +r.por = @(p)por(p, prpor, pori, cpor, prporf, cporf, r.rpt); +tpre=toc; +r.tpre=tpre; +end \ No newline at end of file diff --git a/core functions/程序整合及组分流部分代码/GridProp_DP.m b/core functions/程序整合及组分流部分代码/GridProp_DP.m new file mode 100644 index 0000000..858f589 --- /dev/null +++ b/core functions/程序整合及组分流部分代码/GridProp_DP.m @@ -0,0 +1,534 @@ +function r = GridProp_DP(modelflag, r, kx, ky, kz, kx_matrixLayer, ky_matrixLayer, kz_matrixLayer, f, frac_information, fellip, Kf, Wf, pori, pori_matrixLayer, prpor, cpor, Porf, prporf, cporf, cf, ca,NTG,sigma,valid_grids) +tic; +%% 基质网格参数及网格参数计算、存储 +nx = r.nx; +ny = r.ny; +nz = r.nz; +dx = r.dx; +dy = r.dy; +dz = r.dz; +coordinates = r.coordinates; +nodes = r.nodes; +nP = r.nP; +nmc = r.nmc; +dxv = r.dxv; +dyv = r.dyv; +dzv = r.dzv; +zm = r.zm; +vm = r.vm; +xrao = r.xrao; +yrao = r.yrao; +zrao = r.zrao; +cell_mid_coords = r.cell_mid_coords; +% +r.modelflag=modelflag; +r.kx_matrixLayer = kx_matrixLayer; +r.ky_matrixLayer = ky_matrixLayer; +r.kz_matrixLayer = kz_matrixLayer; +r.Kf = Kf;%裂缝面对应的渗透率,非裂缝单元 +r.Wf = Wf;%裂缝面对应的缝宽,非裂缝单元 +r.cf = cf; +r.ca = ca; +% r.co=co; +r.cpor=cpor; +r.cporf=cporf; +r.NTG=NTG; +r.frac_information = frac_information; + +% [coordinates, nodes, nP, nE, dxv, dyv,dzv,zm,vm,xrao,yrao,zrao,cell_mid_coordinates] = GenerateNode_final(dx, dy,dz ,nx,ny,nz,NTG); +% r.coordinates = coordinates; +% r.nodes = nodes; +% nmc=nE; +% r.nmc =nmc; +% r.dxv = dxv; +% r.dyv = dyv; +% r.dzv = dzv; +% r.vm=vm; +% r.cell_mid_coordinates=cell_mid_coordinates; +%% 求解裂缝与基质网格连接情况 +%% 关键参数矩阵初始化 +m=size(f,1); +n=size(fellip,1); +nfr=m/5;%矩形规则裂缝条数 +nfir=n/5;%不规则裂缝条数(当然包含椭圆) +r.nfr=nfr; r.nfir=nfir; +nf=nfr+nfir; +r.nf=nf; +if (nfir~=0) && (nfr~=0) + f=[f;fellip]; +else if nfr~=0 + f=f; +else if nfir~=0 + f=fellip; +else error('Dr Rao reminds you that there is no information about fractures'); +end +end +end + +%d3intersection=-1000*ones(1000,3);%用-1000做标识 +raopoint=cell(nfr+nfir,2);%利用元胞数组存储每条裂缝与基质网格线的交点, +%第一列是三维坐标形式,即d3intersection +%第二列是裂缝面参数形式,即anothersection +pointvsregion=cell(nfr+nfir,3);%利用元胞数组存储interarea函数的结果numofmesh, numvspoint,numofregion +fracrossfra=cell(nfr+nfir,nfr+nfir-1);%判断裂缝之间两交点坐标 +fratmaxfra=zeros(nfr+nfir,nfr+nfir-1);%判断裂缝之间交线参数的最大值 +fratminfra=zeros(nfr+nfir,nfr+nfir-1);%判断裂缝之间交线参数的最小值 +fracturemesh=cell(nf,1);%每一行是一条裂缝面上的网格剖分情况 + +%% 计算裂缝与基质网格相交情况 +for i=1:nfr + raopoint{i,1}= intersectionsolve_new_modified_r(f((5*i-4):(5*i),:),dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); + raopoint{i,2}= anosection( f((5*i-4):(5*i),:),raopoint{i,1} ); + [ pointvsregion{i,1},pointvsregion{i,2} ,pointvsregion{i,3}] = interarea( raopoint{i,1},dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); +end +% 不规则缝计算 +if nfir>0 + for i=1:nfir + raopoint{nfr+i,1}= intersectionsolve_new_modified_irr(fellip((5*i-4):(5*i),:),dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); + raopoint{nfr+i,2}= anosection( f((5*(nfr+i)-4):(5*(nfr+i)),:),raopoint{nfr+i,1} ); + [ pointvsregion{nfr+i,1},pointvsregion{nfr+i,2} ,pointvsregion{nfr+i,3}] = interarea( raopoint{nfr+i,1},dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); + end +end + +%% 计算裂缝之间相交线情况 +for i=1:nf + for j=1:nf + if i>nfr || j>nfr cross=zeros(2,3);tmax=0;tmin=0; + else + % [ cross,tmax,tmin ]=frac_cross_frac( f((5*i-4):(5*i),:),f((5*j-4):(5*j),:) ); + cross=zeros(2,3);tmax=0;tmin=0; + end + fracrossfra{i,j}=cross;fratmaxfra(i,j)=tmax;fratminfra(i,j)=tmin; + end +end +%% 计算裂缝被基质网格、其它裂缝与之相交后的网格分布情况,绘制二维裂缝平面参数坐标系上的网格分布情况 +% figure('color','w'); +addflag=zeros(nf,1);%乘2的幂次,防止因为裂缝条数较多,造成矩阵太大 +for i=1:nf + d3intersection=raopoint{i,1};anothersection=raopoint{i,2}; + [ mesh ] = frac_mat_mesh( d3intersection,anothersection,pointvsregion{i,2},pointvsregion{i,1} ); + % for j=1:nf + % [ mesh,d3intersection,anothersection,add_flag ]= frac_frac_mesh_modified(xrao,yrao,zrao,mesh,f(5*i-4,:),f(5*i-3,:),f(5*i-2,:),fracrossfra{i,j},fratmaxfra(i,j),fratminfra(i,j),d3intersection,anothersection,pointvsregion{i,2},pointvsregion{i,1} ); + % addflag(j,1)=addflag(j,1)+add_flag; + % end + raopoint{i,1} = d3intersection; raopoint{i,2} = anothersection;%由原来裂缝与网格的交点不断更新加入其它裂缝与该裂缝的交点 + fracturemesh{i,1}=mesh; + % subplot(nf,1,i);color_fill={'y','r','b','g'}; + % plotmesh2D(mesh,raopoint{i,2},color_fill{1,mod(i,4)+1}); +end + +%% 绘制三维背景网格(基质网格)及裂缝网格分布 +%figure(2) +%network3D(dx,dy,dz,nx,ny,nz ); +%hold on; +figure('color','w'); +% plot_reservoir_3D(max(xrao),max(yrao),dz(1),1,1,nz); +% plot_reservoir_3D(dx(1),dy(1),dz(1),nx,ny,nz); +network3D(dx(1),dy(1),dz(1),nx,ny,nz); +% network3D(1000,700,10,1,1,1); +% network3D(800,300,10,1,1,1); +hold on; + +% network3D_arbitrary(dx,dy,dz,nx,ny,nz); +% refine; +% hold on; +for i=1:nf + % color_fill={'y','r','b','g','c','m'}; + % color_fill={'y','r','b','g'}; + % plotmesh3D( fracturemesh{i,1},raopoint{i,1},color_fill{1,mod(i,4)+1});hold on; + if i <= 100 + color_fill='b'; %流动屏障 + % elseif i <=19 + % color_fill='b'; %压裂缝 +% if i == 2 || i == 9 +% color_fill='r'; +% end + else + color_fill='k'; %天然裂缝 + end + % plotmesh3D( fracturemesh{i,1},raopoint{i,1},color_fill{1,mod(i,4)+1});hold on; + plotmesh3D( fracturemesh{i,1},raopoint{i,1},color_fill);hold on; +end +% % % basic_node_coord = [0,0,0]; +% % % x_length = 700; +% % % y_length = 800; +% % % z_length = 10; +% % % nodes_domain = [basic_node_coord;] +% % % fill3(x,y,z,'w'); +% refine1; +% refine_chengjiepaper; +% refine; +% plot_reservoir_3D(max(xrao),max(yrao),dz(1),1,1,nz); +% plot_reservoir_3D(dx(1),dy(1),dz(1),nx,ny,nz); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +zlabel('z, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +% +% zticks([0, 5]); +% yticks(-1:0.5:1); +% 设置x轴和y轴的刻度标签 +% zticklabels({'-2005', '-2000'}); +% yticklabels({'-1', '-0.5', '0', '0.5', '1'}); +% 关闭刻度标签的旋转 +% xticklabels('Rotation', 0); +% yticklabels('Rotation', 0); +% axis equal; +% refine; +% hold on +% network3D(dx(1),dy(1),dz(1),nx,ny,nz); +% network3D(max(xrao),max(yrao),max(zrao),1,1,1 ); +% network3D(10,10,10,2,1,1 ); +% network3D(10,10,10,6,1,2 ); +alpha(1) +view(3) +% axis([min(xrao),max(xrao),min(yrao),max(yrao),min(zrao),max(zrao)]); +% axis equal +% % hold off; +%% 确定裂缝编号及连接情况,计算传导系数 +if modelflag==1 %表示用2014, Monifar + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,cell_divided_by_fracture_flag, flowArea, perm, matrixflag, T_diff ] = connections_2014_DP( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz, kx_matrixLayer, ky_matrixLayer, kz_matrixLayer, pori, pori_matrixLayer, Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,sigma,addflag,valid_grids ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.nmc = 2*nmc; + nc=nfc+r.nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.T_diff = T_diff; + r.vf=vf; + r.V=[vm;vm;vf]; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.flowArea=flowArea; + r.perm=perm; + r.matrixflag=matrixflag; +elseif modelflag==4 %表示用 PEDFM + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_new( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==5 % 表示实用型PEDFM + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff, flowArea, perm, matrixflag ] = connections_PEDFM_new_new( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,pori,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; + r.flowArea=flowArea; + r.perm=perm; + r.matrixflag=matrixflag; +elseif modelflag==6 % 表示基于非结构网格pEDFM的validation model + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag] = connections_unstructured_EDFM( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag)*1/2; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag)*1/2; + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==7 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_EX1_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==8 % 表示基于非结构网格pEDFM的validation model + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio,fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX1_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.fractureCell_matrixCell_addedMatrixCell = fractureCell_matrixCell_addedMatrixCell; + r.volume_ratio=volume_ratio; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag).*volume_ratio; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag).*(1-volume_ratio); + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==9 % EX2 不同情况下 pEDFM 解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_EX2_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==10 % 表示基于非结构网格pEDFM的 EX2 参考解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio,fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX2_1to3_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.fractureCell_matrixCell_addedMatrixCell = fractureCell_matrixCell_addedMatrixCell; + r.volume_ratio=volume_ratio; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag).*volume_ratio; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag).*(1-volume_ratio); + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==11 % 表示基于非结构网格pEDFM的 EX2 参考解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio,fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX2_1to2_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.fractureCell_matrixCell_addedMatrixCell = fractureCell_matrixCell_addedMatrixCell; + r.volume_ratio=volume_ratio; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag).*volume_ratio; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag).*(1-volume_ratio); + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==12 % 表示基于非结构网格pEDFM的 EX2 参考解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio,fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX2_1to4_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.fractureCell_matrixCell_addedMatrixCell = fractureCell_matrixCell_addedMatrixCell; + r.volume_ratio=volume_ratio; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag).*volume_ratio; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag).*(1-volume_ratio); + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==13 % 表示基于非结构网格pEDFM的 EX2 参考解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_TPFA_MFD( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,perm,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==14 %表示用 PEDFM + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_new_twofractures( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +else + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,NTG ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; + %% 计算传导系数 + % dxvector=ones(1,nx);dyvector=ones(1,ny);dzvector=ones(1,nz); + % [ transmatrix,transfracture ] = trans(dxvector,dyvector,dzvector ,nx,ny,nz,nf,fracnumber,lengthvsfra,disvsfra,fracstart,connect_infrac,corevsfra,matrixvsfra,raopoint,f ); + %% 计算基质与裂缝之间窜流的相关系数 + if modelflag==2 %表示用2018, Rao + [ G,Gfm,Gff,Gf,Ap,Apf ]=interflowmf1(r,dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); + [Ka, M, F2M , MF_coef] = transFunc_aniso(nc,coordinates, nodes, connectmf,Ap,Apf, matrixvsfra,N,T,kx, ky,kz); + r.Ka = Ka; + r.M = M; + r.F2M = F2M; + r.MF_coef = MF_coef; + elseif modelflag==5 %表示用 Modified Rao, steady, 2018 + [ G,Gfm,Gff,Gf,Ap,Apf ] = interflowmf_MODIFIED(r,dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); + [Ka, M, F2M , MF_coef] = transFunc_aniso_MODIFIED(nc,coordinates, nodes, connectmf,Ap,Apf, matrixvsfra,N,T,kx, ky,kz); + r.Ka = Ka; + r.M = M; + r.F2M = F2M; + r.MF_coef = MF_coef; + % [ G,Gfm,Gff,Gf,Ap,Apf,Apmt,Apft ]=interflowmf1_transient(dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); + end + % [ G,Gfm,Gff,Gf,Ap,Apf ]=interflowmf1(dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); + %% + + % r.MF_deltt=MF_deltt; +end +%% 计算深度(以下平面为基准计算得到的高度,值为正数) +z=[zm;zm;zf]; +r.z=z; +rpt = [ones(r.nmc, 1); zeros(nfc, 1)]; +r.rpt = rpt; +r.Porf = Porf; +pori = [pori; pori_matrixLayer; porf]; +r.pori = pori; +r.por = @(p)por(p, prpor, pori, cpor, prporf, cporf, r.rpt); +tpre=toc; +r.tpre=tpre; +end \ No newline at end of file diff --git a/core functions/程序整合及组分流部分代码/cal_gas_prop.m b/core functions/程序整合及组分流部分代码/cal_gas_prop.m new file mode 100644 index 0000000..7a482bb --- /dev/null +++ b/core functions/程序整合及组分流部分代码/cal_gas_prop.m @@ -0,0 +1,5 @@ +function [Ppr,BG,MUG] = cal_gas_prop(prg,Bgi,cg,vgi,cvg) +Ppr = (0.1:0.1:100)'; +BG = Bgi * (1 - cg * (Ppr - prg)); +MUG = vgi + cvg * (Ppr - prg); +end \ No newline at end of file diff --git a/core functions/程序整合及组分流部分代码/connections_2014_DP.asv b/core functions/程序整合及组分流部分代码/connections_2014_DP.asv new file mode 100644 index 0000000..98424b1 --- /dev/null +++ b/core functions/程序整合及组分流部分代码/connections_2014_DP.asv @@ -0,0 +1,579 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,cell_divided_by_fracture_flag, flowArea, perm, matrixflag] = connections_2014( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz, kx_matrixLayer, ky_matrixLayer, kz_matrixLayer, pori, pori_matrixLayer,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,sigma,addflag ) +% 该函数用以给裂缝面网格编号,并存储网格间的连接关系及传导率,是前处理的关键步骤 +% 不同于二维嵌入式离散裂缝模型,三维模型中,裂缝是二维平面,网格之间连接关系复杂, +%不能简单得从基质网格来判定,若所处基质网格不相邻,则裂缝网格必不相邻,若所处基质网格相邻,裂缝网格却不一定相邻 +%上述原则无助于我们去确定connections,故拟采取以下方案: +%第一步:按照xink矩阵去掉零行后,按照行数依次给某裂缝面网格编号,同时存储裂缝网格所在的基质网格序号 +%第二步:存储每个裂缝网格的面积,边界,边界长度,中心点坐标,中心点到各边界的距离,为后续操作做准备 +%第三步:按照裂缝网格序号顺序,按照边界进行搜索,如果有相同的边界,则两个裂缝网格是相邻的 +%matrixvsfra矩阵代表基质网格中包含裂缝网格编号的情况 +%fracnumber矩阵,行序号表示该裂缝网格编号,行内容表示该网格包含的点序号 +%areavsfra矩阵,行序号表示该裂缝网格编号,行内容表示该裂缝网格的面积 +%每相邻两列是一条边,然后将顺序反过来,又是两列一条边 +%lengthvsfra矩阵,行序号表示该裂缝网格编号,行内容表示该裂缝网格的各边长度 +%corevsfra矩阵,行序号表示该裂缝网格编号,行内容表示该裂缝网格的重心坐标 +%disvsfra矩阵,行序号表示该裂缝网格编号,行内容表示该裂缝网格的重心到各边的距离 +matrixvsfra=zeros(nx*ny*nz,10);%为了减少该矩阵的大小,考虑实际情况,一个基质网格中,一般不会有超过10个裂缝网格 +fracnumber=zeros(1000,20);%根据实际情况,裂缝网格一般不会超过1000个,也可根据实际情况改变 +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf + rownum(i)=size(fracturemesh{i,1},1); +end +%% 将所有裂缝面网格连起来一起编号,并将编号扔给相应的基质网格 +q=1; +fracstart=zeros(nf+1,1);%这个表示在总编号中,每条裂缝起始的号码 +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; + for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%q即是该裂缝编号 + % m=floor((i+(2^nf)-1)/(2^nf)); + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); + % indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%将裂缝编号附给相应的基质网格 + q=q+1; + end + end +end +fracstart(nf+1)=q;%裂缝网格总数量+1 +fracnumber(q:1000,:)=[]; + + +%% 将包含有裂缝单元的基质网格筛选出来,并进行处理 +m=size(matrixvsfra,1); +mat_frac=[]; +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %筛选出包含裂缝的基质网格 + % if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %存储该基质网格编号 + connectmf{cc,1} = i; + mat_frac=[mat_frac;i]; + %给这些裂缝点/裂缝单元按顺序编号 + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; + end +end + +%% 一条条裂缝计算裂缝网格面积、边界等等 +% edgevsfra=cell(nf,1); +% Kffl=funtion_data.Kffl; +% Dffl=funtion_data.Dffl; +% kffl=zeros(q-1,1); +% dffl=zeros(q-1,1); +normalvec=zeros(q-1,3);%unit 法向量 +areavsfra=zeros(q-1,1);%q-1即裂缝网格总数 +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,1);%裂缝网格渗透率 +Wf=zeros(q-1,1);%裂缝单元缝宽 +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +avtran=zeros(q-1,1);%裂缝网格平均传导,用于后续的简化计算 +ave_disvsfra=zeros(q-1,1); +fcinff=zeros(q-1,1);%表示裂缝单元所在的裂缝面序号 +zf=zeros(q-1,1);%裂缝单元高度(以下表面为基准) +vf=zeros(q-1,1);%裂缝单元的体积 +porf=zeros(q-1,1);%裂缝单元的孔隙度 +avfracFaceArea = zeros(q-1,1); +for i=1:1:q-1 %对裂缝网格进行操作 + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 + for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%因为是凸多边形,因此只要代表裂缝网格的行向量的共有元素有2个,即有公共边; + %如果多于2个,则是相同的裂缝网格,因为如果不是,则必有一个是凹多边形,矛盾,证毕;如果小于两个,则没有共有的边线 + else if (a==b) continue; %说明这两个裂缝单元在同一个基质网格中,因此不应该算在此类中 + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%计算裂缝单元公共边长度 + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %分别计算两裂缝单元中心到公共边的距离 + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if kf(i)==0 + hartran=0;hartran_convection=0; + kij = 0; + else + tran1=kf(i)*wf(i)*lengthcat/disk; + tran2=kf(i)*wf(i)*lengthcat/disj; + % hartran=length/(disk+disj);%取调和平均 + hartran=tran1*tran2/(tran1+tran2); + k_harmony= kf(i); + hartran_convection=kf(i)/(disk+disj)^2; + kij = 2*(Kf(j)^(-1)+Kf(k)^(-1))^(-1); + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + Tff_convection=[Tff_convection;hartran_convection]; + perm_ff = [perm_ff; kij]; + flowArea_ff = [flowArea_ff; wf(i)*lengthcat]; + %计算出每个裂缝网格重心到每条边的距离 + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %去除第一行的零行 +Tff(1,:)=[]; +Tff_convection(1,:)=[]; +perm_ff(1,:)=[]; +flowArea_ff(1,:)=[]; +%% 在同一基质网格中的裂缝单元连接情况及传导率计算 +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +Tmff_convection=zeros(1,1); +perm_mff=zeros(1,1); +flowArea_mff=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %此时表明要采取下述的简化算法 + % lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % 此时的计算方式是先求每个裂缝网格的算术平均,再算包含在该基质网格中的所有裂缝单元的算术平均 + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + if sumtran==0 + Tmff=[Tmff; 0];Tmff_convection=[Tmff_convection;0]; + perm_mff=[perm_mff;0];flowArea_mff=[flowArea_mff;(avfracFaceArea(fc1)+avfracFaceArea(fc2))/2]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + perm_mff=[perm_mff;(Kf(fc1)^(-1)+Kf(fc2)^(-1))^(-1)]; + flowArea_mff=[flowArea_mff;(avfracFaceArea(fc1)+avfracFaceArea(fc2))/2]; + end + end + end + end + end +end +Nmff(1,:)=[]; %去掉开头的零行 +Tmff(1,:)=[]; +% Tmff =Tmff*0; +Tmff_convection(1,:)=[]; +perm_mff(1,:)=[]; +flowArea_mff(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% 基质网格的连接情况及传导系数计算 +nmc= nx * ny*nz;%基质网格数目 +nfc=size(fracnumber,1);%裂缝单元数目 +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmm是基质网格之间存在流体交换的总数 +% r.nf = nmm + nff;%nff是裂缝单元之间存在流体交换的总数 +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%存储基质网格之间存在流体交换的网格编号 +T = zeros(nmm, 1);%存储对应与N矩阵的传导系数 +T_convection = zeros(nmm, 1); +perm = zeros(nmm, 1); +flowArea = zeros(nmm, 1); +c = 0; +for k= 1 : nz + for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); + T_convection(c) = 2/(1/Kx(index)+1/Kx(indexn))/(dxv(indexn)+dxv(index)); + perm(c)=2*Kx(index)*Kx(indexn)/(Kx(index) + Kx(indexn)); + flowArea(c)=dzv(index)*dyv(index); + end + end +end + +for k= 1 : nz + for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + T_convection(c) = 2/(1/Ky(index)+1/Ky(indexn))/(dyv(indexn)+dyv(index)); + perm(c)=2*Ky(index)*Ky(indexn)/(Ky(index) + Ky(indexn)); + flowArea(c)=dzv(index)*dxv(index); + end + end +end + +for i = 1 : nx + for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + T_convection(c) = 2/(1/Kz(index)+1/Kz(indexn))/(dzv(indexn)+dzv(index)); + perm(c)=2*Kz(index)*Kz(indexn)/(Kz(index) + Kz(indexn)); + flowArea(c)=dxv(index)*dyv(index); + end + end +end +%% 双重介质处理 +%% 基质网格的连接情况及传导系数计算 +nmc= nx * ny*nz;%基质网格数目 +nfc=size(fracnumber,1);%裂缝单元数目 +rpt = [ones(nmc, 1); ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmm是基质网格之间存在流体交换的总数 +% r.nf = nmm + nff;%nff是裂缝单元之间存在流体交换的总数 +Kx_matrixLayer=kx_matrixLayer.*ones(nmc,1); +Ky_matrixLayer=ky_matrixLayer.*ones(nmc,1); +Kz_matrixLayer=kz_matrixLayer.*ones(nmc,1); +N_matrixLayer = zeros(nmm, 2);% +T_matrixLayer = zeros(nmm, 1);% +T_convection_matrixLayer = zeros(nmm, 1); +perm_matrixLayer = zeros(nmm, 1); +flowArea_matrixLayer = zeros(nmm, 1); +c = 0; +for k= 1 : nz + for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N_matrixLayer(c, :) = [index, indexn]; + T_matrixLayer(c) = 2 * dzv(index)*dyv(index)*Kx_matrixLayer(index)*Kx_matrixLayer(indexn)*NTG(index)*NTG(indexn)/(Kx_matrixLayer(index)*dxv(indexn)*NTG(index) + Kx_matrixLayer(indexn)*dxv(index)*NTG(indexn)); + T_convection_matrixLayer(c) = 2/(1/Kx_matrixLayer(index)+1/Kx_matrixLayer(indexn))/(dxv(indexn)+dxv(index)); + perm_matrixLayer(c)=2*Kx_matrixLayer(index)*Kx_matrixLayer(indexn)/(Kx_matrixLayer(index) + Kx_matrixLayer(indexn)); + flowArea_matrixLayer(c)=dzv(index)*dyv(index); + end + end +end + +for k= 1 : nz + for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N_matrixLayer(c, :) = [index, indexn]; + T_matrixLayer(c) = 2 * dzv(index)*dxv(index)*Ky_matrixLayer(index)*Ky_matrixLayer(indexn)/(Ky_matrixLayer(index)*dyv(indexn) + Ky_matrixLayer(indexn)*dyv(index)); + T_convection_matrixLayer(c) = 2/(1/Ky_matrixLayer(index)+1/Ky_matrixLayer(indexn))/(dyv(indexn)+dyv(index)); + perm_matrixLayer(c)=2*Ky_matrixLayer(index)*Ky_matrixLayer(indexn)/(Ky_matrixLayer(index) + Ky_matrixLayer(indexn)); + flowArea_matrixLayer(c)=dzv(index)*dxv(index); + end + end +end + +for i = 1 : nx + for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N_matrixLayer(c, :) = [index, index + nx*ny]; + T_matrixLayer(c) = 2 * dxv(index)*dyv(index)*Kz_matrixLayer(index)*Kz_matrixLayer(indexn)/(Kz_matrixLayer(index)*dzv(indexn) + Kz_matrixLayer(indexn)*dzv(index)); + T_convection_matrixLayer(c) = 2/(1/Kz_matrixLayer(index)+1/Kz_matrixLayer(indexn))/(dzv(indexn)+dzv(index)); + perm_matrixLayer(c)=2*Kz_matrixLayer(index)*Kz_matrixLayer(indexn)/(Kz_matrixLayer(index) + Kz_matrixLayer(indexn)); + flowArea_matrixLayer(c)=dxv(index)*dyv(index); + end + end +end +%% 构建基质层网格与裂缝层网格间的连接 +N_fractureMatrixLayer = zeros(nmc, 2);% +T_fractureMatrixLayer = zeros(nmc, 1);% +T_convection_fractureMatrixLayer = zeros(nmc, 1); +perm_fractureMatrixLayer = zeros(nmc, 1); +flowArea_fractureMatrixLayer = zeros(nmc, 1); +for k= 1 : nz + for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nmc; + N_fractureMatrixLayer(c, :) = [index, indexn]; + T_fractureMatrixLayer(c) = dzv(index)*dyv(index)*dxv(index)*Kx(index)*sigma(c); + T_convection_fractureMatrixLayer(c) = 2/(1/Kx_matrixLayer(index)+1/Kx_matrixLayer(indexn)); + perm_fractureMatrixLayer(c)=2*Kx_matrixLayer(index)*Kx_matrixLayer(indexn)/(Kx_matrixLayer(index) + Kx_matrixLayer(indexn)); + flowArea_fractureMatrixLayer(c)=dzv(index)*dyv(index); + end + end +end +%% 按照2014年的方法,将窜流处理为与上述相似的形式 +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +Tinterflow_convection=[]; +cell_divided_by_fracture_flag = []; +perm_interflow=[]; +flowArea_interflow=[]; +for i=1:nx*ny*nz %基质网格编号 + flag = 0; + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + flag = flag + 1; + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + % kcell = sqrt(10*100)*1e-3; + Knnc=kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=areavsfra(matrixvsfra(i,j)); + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); + % dn=abs(dn);%影响数值积分效率 + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + % raoT=Knnc*Annc/Dn; + % raoT_convection=2*Knnc/Dn^2; + % Tinterflow=[Tinterflow;raoT]; + % Tinterflow_convection=[Tinterflow_convection;raoT_convection]; + raoT1 = 2*kcell*Annc/Dn; + raoT2 = Kf(matrixvsfra(i,j))*Annc/(Wf(matrixvsfra(i,j))/2); + raoT = (raoT1^-1+raoT2^-1)^-1; + Tinterflow=[Tinterflow;raoT]; + raoT1_conv = kcell/Dn^2; + raoT2_conv = Kf(matrixvsfra(i,j))/(Wf(matrixvsfra(i,j))/2)^2; + raoT_convection = (raoT1_conv^-1+raoT2_conv^-1)^-1; + Tinterflow_convection=[Tinterflow_convection;raoT_convection]; + perm_mf_this = kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + perm_interflow = [perm_interflow; perm_mf_this]; + flowArea_interflow = [flowArea_interflow; Annc]; + end + end + if flag >0 + cell_divided_by_fracture_flag = [cell_divided_by_fracture_flag; i]; + end +end +%% 按照2014年的方法,将窜流处理为与上述相似的形式 +% syms x y z; +% Ninterflow=[]; +% Tinterflow=[]; +% for i=1:nx*ny*nz %基质网格编号 +% for j=1:10 +% if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell +% Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3); +% K1=Kf(matrixvsfra(i,j));d1=Wf(matrixvsfra(i,j)); +% K2=kffl(matrixvsfra(i,j));d2=dffl(matrixvsfra(i,j)); +% Annc=2*areavsfra(matrixvsfra(i,j)); +% fracore=corevsfra(matrixvsfra(i,j),:); +% matnodes=nodes(i,:); +% verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); +% matcore=mean(verco);d0=matcore-fracore; +% dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% % dn=abs(dn);%影响数值积分效率 +% dn=sqrt(dn^2); +% dn=matlabFunction(dn); +% if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 +% Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(2)~=0 +% Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(3)~=0 +% Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 && norvec(3)~=0 +% Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 +% Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 +% Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(3)~=0 +% Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% end +% end +% end +% end +% end +% end +% end +% raoT=((Kcell*Annc/(Dn-d2))^(-1)+(K2*Annc/d2)^(-1)+(K1*Annc/d1)^(-1))^(-1); +% Tinterflow=[Tinterflow;raoT]; +% end +% end +% end +%% 双重介质处理 + +%% 把上述三种情况的矩阵分别叠加起来 +matrixflag = [ones(size(T,1),1); zeros(size(Tmff,1),1); zeros(size(Tff,1),1); ones(size(Tinterflow,1),1);]; +N = [N; Nmff+nmc; Nff+nmc;Ninterflow;]; +T = [T; Tmff; Tff;Tinterflow;]; +T_convection = [T_convection;Tmff_convection; Tff_convection;Tinterflow_convection;]; +perm = [perm; perm_mff; perm_ff;perm_interflow; ]; +flowArea = [flowArea; flowArea_mff; flowArea_ff;flowArea_interflow;]; +nex=size(N,1); +%% 转到CMG或者ECLIPSE进行计算 +% [ Data_for_ECLIPSE ] = pEDFM_to_CMG_horizontalFractureWell(dxv,dyv,dzv,kx,ky,kz,pori,Kf,Wf,vf,porf,N,T); +% [ Data_for_ECLIPSE ] = pEDFM_to_CMG_horizontalFractureWell_net_pay(dxv,dyv,dzv,kx,ky,kz,pori,Kf,Wf,vf,porf,N,T); +end + diff --git a/core functions/程序整合及组分流部分代码/connections_2014_DP.m b/core functions/程序整合及组分流部分代码/connections_2014_DP.m new file mode 100644 index 0000000..c92c824 --- /dev/null +++ b/core functions/程序整合及组分流部分代码/connections_2014_DP.m @@ -0,0 +1,625 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,cell_divided_by_fracture_flag, flowArea, perm, matrixflag, T_diff] = connections_2014( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz, kx_matrixLayer, ky_matrixLayer, kz_matrixLayer, pori, pori_matrixLayer,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,sigma,addflag,invalid_grids ) +% 该函数用以给裂缝面网格编号,并存储网格间的连接关系及传导率,是前处理的关键步骤 +% 不同于二维嵌入式离散裂缝模型,三维模型中,裂缝是二维平面,网格之间连接关系复杂, +%不能简单得从基质网格来判定,若所处基质网格不相邻,则裂缝网格必不相邻,若所处基质网格相邻,裂缝网格却不一定相邻 +%上述原则无助于我们去确定connections,故拟采取以下方案: +%第一步:按照xink矩阵去掉零行后,按照行数依次给某裂缝面网格编号,同时存储裂缝网格所在的基质网格序号 +%第二步:存储每个裂缝网格的面积,边界,边界长度,中心点坐标,中心点到各边界的距离,为后续操作做准备 +%第三步:按照裂缝网格序号顺序,按照边界进行搜索,如果有相同的边界,则两个裂缝网格是相邻的 +%matrixvsfra矩阵代表基质网格中包含裂缝网格编号的情况 +%fracnumber矩阵,行序号表示该裂缝网格编号,行内容表示该网格包含的点序号 +%areavsfra矩阵,行序号表示该裂缝网格编号,行内容表示该裂缝网格的面积 +%每相邻两列是一条边,然后将顺序反过来,又是两列一条边 +%lengthvsfra矩阵,行序号表示该裂缝网格编号,行内容表示该裂缝网格的各边长度 +%corevsfra矩阵,行序号表示该裂缝网格编号,行内容表示该裂缝网格的重心坐标 +%disvsfra矩阵,行序号表示该裂缝网格编号,行内容表示该裂缝网格的重心到各边的距离 +matrixvsfra=zeros(nx*ny*nz,10);%为了减少该矩阵的大小,考虑实际情况,一个基质网格中,一般不会有超过10个裂缝网格 +fracnumber=zeros(1000,20);%根据实际情况,裂缝网格一般不会超过1000个,也可根据实际情况改变 +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf + rownum(i)=size(fracturemesh{i,1},1); +end +%% 将所有裂缝面网格连起来一起编号,并将编号扔给相应的基质网格 +q=1; +fracstart=zeros(nf+1,1);%这个表示在总编号中,每条裂缝起始的号码 +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; + for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%q即是该裂缝编号 + % m=floor((i+(2^nf)-1)/(2^nf)); + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); + % indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%将裂缝编号附给相应的基质网格 + q=q+1; + end + end +end +fracstart(nf+1)=q;%裂缝网格总数量+1 +fracnumber(q:1000,:)=[]; + + +%% 将包含有裂缝单元的基质网格筛选出来,并进行处理 +m=size(matrixvsfra,1); +mat_frac=[]; +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %筛选出包含裂缝的基质网格 + % if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %存储该基质网格编号 + connectmf{cc,1} = i; + mat_frac=[mat_frac;i]; + %给这些裂缝点/裂缝单元按顺序编号 + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; + end +end + +%% 一条条裂缝计算裂缝网格面积、边界等等 +% edgevsfra=cell(nf,1); +% Kffl=funtion_data.Kffl; +% Dffl=funtion_data.Dffl; +% kffl=zeros(q-1,1); +% dffl=zeros(q-1,1); +normalvec=zeros(q-1,3);%unit 法向量 +areavsfra=zeros(q-1,1);%q-1即裂缝网格总数 +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,1);%裂缝网格渗透率 +Wf=zeros(q-1,1);%裂缝单元缝宽 +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +tran_no_perm=zeros(q-1,10); +avtran=zeros(q-1,1);%裂缝网格平均传导,用于后续的简化计算 +ave_disvsfra=zeros(q-1,1); +fcinff=zeros(q-1,1);%表示裂缝单元所在的裂缝面序号 +zf=zeros(q-1,1);%裂缝单元高度(以下表面为基准) +vf=zeros(q-1,1);%裂缝单元的体积 +porf=zeros(q-1,1);%裂缝单元的孔隙度 +avfracFaceArea = zeros(q-1,1); +for i=1:1:q-1 %对裂缝网格进行操作 + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 + for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%因为是凸多边形,因此只要代表裂缝网格的行向量的共有元素有2个,即有公共边; + %如果多于2个,则是相同的裂缝网格,因为如果不是,则必有一个是凹多边形,矛盾,证毕;如果小于两个,则没有共有的边线 + else if (a==b) continue; %说明这两个裂缝单元在同一个基质网格中,因此不应该算在此类中 + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%计算裂缝单元公共边长度 + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %分别计算两裂缝单元中心到公共边的距离 + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if kf(i)==0 + hartran=0;hartran_convection=0; + kij = 0; + else + tran1=kf(i)*wf(i)*lengthcat/disk; + tran2=kf(i)*wf(i)*lengthcat/disj; + % hartran=length/(disk+disj);%取调和平均 + hartran=tran1*tran2/(tran1+tran2); + tran1_diff=wf(i)*lengthcat/disk; + tran2_diff=wf(i)*lengthcat/disj; + % hartran=length/(disk+disj);%取调和平均 + hartran_diff=tran1_diff*tran2_diff/(tran1_diff+tran2_diff); + k_harmony= kf(i); + hartran_convection=kf(i)/(disk+disj)^2; + kij = 2*(Kf(j)^(-1)+Kf(k)^(-1))^(-1); + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + Tff_diff=[Tff_diff;hartran_diff]; + Tff_convection=[Tff_convection;hartran_convection]; + perm_ff = [perm_ff; kij]; + flowArea_ff = [flowArea_ff; wf(i)*lengthcat]; + %计算出每个裂缝网格重心到每条边的距离 + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %去除第一行的零行 +Tff(1,:)=[]; +Tff_convection(1,:)=[]; +Tff_diff(1,:)=[]; +perm_ff(1,:)=[]; +flowArea_ff(1,:)=[]; +%% 在同一基质网格中的裂缝单元连接情况及传导率计算 +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +Tmff_diff=zeros(1,1); +Tmff_convection=zeros(1,1); +perm_mff=zeros(1,1); +flowArea_mff=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %此时表明要采取下述的简化算法 + % lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % 此时的计算方式是先求每个裂缝网格的算术平均,再算包含在该基质网格中的所有裂缝单元的算术平均 + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc));sumtran_no_perm=sum(fcff{1,9}(allfc)); + if sumtran==0 + Tmff=[Tmff; 0];Tmff_convection=[Tmff_convection;0]; + Tmff_diff=[Tmff_diff;0]; + perm_mff=[perm_mff;0];flowArea_mff=[flowArea_mff;(avfracFaceArea(fc1)+avfracFaceArea(fc2))/2]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + Tmff_diff=[Tmff_diff;fcff{1,9}(fc1)*fcff{1,9}(fc2)/sumtran_no_perm]; + perm_mff=[perm_mff;(Kf(fc1)^(-1)+Kf(fc2)^(-1))^(-1)]; + flowArea_mff=[flowArea_mff;(avfracFaceArea(fc1)+avfracFaceArea(fc2))/2]; + end + end + end + end + end +end +Nmff(1,:)=[]; %去掉开头的零行 +Tmff(1,:)=[]; +% Tmff =Tmff*0; +Tmff_convection(1,:)=[]; +Tmff_diff(1,:)=[]; +perm_mff(1,:)=[]; +flowArea_mff(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% 基质网格的连接情况及传导系数计算 +nmc= nx * ny*nz;%基质网格数目 +nfc=size(fracnumber,1);%裂缝单元数目 +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmm是基质网格之间存在流体交换的总数 +% r.nf = nmm + nff;%nff是裂缝单元之间存在流体交换的总数 +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%存储基质网格之间存在流体交换的网格编号 +T = zeros(nmm, 1);%存储对应与N矩阵的传导系数 +T_convection = zeros(nmm, 1); +T_diff = zeros(nmm, 1); +perm = zeros(nmm, 1); +flowArea = zeros(nmm, 1); +c = 0; +for k= 1 : nz + for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); + T_convection(c) = 2/(1/Kx(index)+1/Kx(indexn))/(dxv(indexn)+dxv(index)); + perm(c)=2*Kx(index)*Kx(indexn)/(Kx(index) + Kx(indexn)); + T_diff(c)=dzv(index)*dyv(index)/(2/(1/dxv(indexn)+1/dxv(index))); + flowArea(c)=dzv(index)*dyv(index); + end + end +end + +for k= 1 : nz + for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + T_convection(c) = 2/(1/Ky(index)+1/Ky(indexn))/(dyv(indexn)+dyv(index)); + perm(c)=2*Ky(index)*Ky(indexn)/(Ky(index) + Ky(indexn)); + T_diff(c)=dzv(index)*dxv(index)/(2/(1/dyv(indexn)+1/dyv(index))); + flowArea(c)=dzv(index)*dxv(index); + end + end +end + +for i = 1 : nx + for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + T_convection(c) = 2/(1/Kz(index)+1/Kz(indexn))/(dzv(indexn)+dzv(index)); + perm(c)=2*Kz(index)*Kz(indexn)/(Kz(index) + Kz(indexn)); + T_diff(c)=dxv(index)*dyv(index)/(2/(1/dzv(indexn)+1/dzv(index))); + flowArea(c)=dxv(index)*dyv(index); + end + end +end +%% 双重介质处理 +%% 基质网格的连接情况及传导系数计算 +N_matrixLayer = [];% +T_matrixLayer = [];% +T_convection_matrixLayer = []; +T_diff_matrixLayer = []; +perm_matrixLayer = []; +flowArea_matrixLayer = []; +% % % nmc= nx * ny*nz;%基质网格数目 +% % % nfc=size(fracnumber,1);%裂缝单元数目 +% % % rpt = [ones(nmc, 1); ones(nmc, 1); zeros(nfc, 1)]; +% % % % r.rpt = rpt; +% % % nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmm是基质网格之间存在流体交换的总数 +% % % % r.nf = nmm + nff;%nff是裂缝单元之间存在流体交换的总数 +% % % Kx_matrixLayer=kx_matrixLayer.*ones(nmc,1); +% % % Ky_matrixLayer=ky_matrixLayer.*ones(nmc,1); +% % % Kz_matrixLayer=kz_matrixLayer.*ones(nmc,1); +% % % N_matrixLayer = zeros(nmm, 2);% +% % % T_matrixLayer = zeros(nmm, 1);% +% % % T_convection_matrixLayer = zeros(nmm, 1); +% % % T_diff_matrixLayer = zeros(nmm, 1); +% % % perm_matrixLayer = zeros(nmm, 1); +% % % flowArea_matrixLayer = zeros(nmm, 1); +% % % c = 0; +% % % for k= 1 : nz +% % % for j = 1 : ny +% % % for i = 1 : nx - 1 +% % % c = c + 1; +% % % index = i + (j - 1) * nx + (k - 1) * nx * ny; +% % % indexn = index + 1; +% % % N_matrixLayer(c, :) = [index+nmc, indexn+nmc]; +% % % T_matrixLayer(c) = 2 * dzv(index)*dyv(index)*Kx_matrixLayer(index)*Kx_matrixLayer(indexn)*NTG(index)*NTG(indexn)/(Kx_matrixLayer(index)*dxv(indexn)*NTG(index) + Kx_matrixLayer(indexn)*dxv(index)*NTG(indexn)); +% % % T_convection_matrixLayer(c) = 2/(1/Kx_matrixLayer(index)+1/Kx_matrixLayer(indexn))/(dxv(indexn)+dxv(index)); +% % % perm_matrixLayer(c)=2*Kx_matrixLayer(index)*Kx_matrixLayer(indexn)/(Kx_matrixLayer(index) + Kx_matrixLayer(indexn)); +% % % T_diff_matrixLayer(c)=dzv(index)*dyv(index)/(2/(1/dxv(indexn)+1/dxv(index))); +% % % flowArea_matrixLayer(c)=dzv(index)*dyv(index); +% % % end +% % % end +% % % end +% % % +% % % for k= 1 : nz +% % % for i = 1 : nx +% % % for j = 1 : ny - 1 +% % % c = c + 1; +% % % index = i + (j - 1) * nx + (k - 1) * nx * ny; +% % % indexn = index + nx; +% % % N_matrixLayer(c, :) = [index+nmc, indexn+nmc]; +% % % T_matrixLayer(c) = 2 * dzv(index)*dxv(index)*Ky_matrixLayer(index)*Ky_matrixLayer(indexn)/(Ky_matrixLayer(index)*dyv(indexn) + Ky_matrixLayer(indexn)*dyv(index)); +% % % T_convection_matrixLayer(c) = 2/(1/Ky_matrixLayer(index)+1/Ky_matrixLayer(indexn))/(dyv(indexn)+dyv(index)); +% % % perm_matrixLayer(c)=2*Ky_matrixLayer(index)*Ky_matrixLayer(indexn)/(Ky_matrixLayer(index) + Ky_matrixLayer(indexn)); +% % % T_diff_matrixLayer(c)=dzv(index)*dxv(index)/(2/(1/dyv(indexn)+1/dyv(index))); +% % % flowArea_matrixLayer(c)=dzv(index)*dxv(index); +% % % end +% % % end +% % % end +% % % +% % % for i = 1 : nx +% % % for j = 1 : ny +% % % for k= 1: nz-1 +% % % c = c + 1; +% % % index = i + (j - 1) * nx + (k - 1) * nx * ny; +% % % indexn = index + nx * ny; +% % % N_matrixLayer(c, :) = [index+nmc, index + nx*ny+nmc]; +% % % T_matrixLayer(c) = 2 * dxv(index)*dyv(index)*Kz_matrixLayer(index)*Kz_matrixLayer(indexn)/(Kz_matrixLayer(index)*dzv(indexn) + Kz_matrixLayer(indexn)*dzv(index)); +% % % T_convection_matrixLayer(c) = 2/(1/Kz_matrixLayer(index)+1/Kz_matrixLayer(indexn))/(dzv(indexn)+dzv(index)); +% % % perm_matrixLayer(c)=2*Kz_matrixLayer(index)*Kz_matrixLayer(indexn)/(Kz_matrixLayer(index) + Kz_matrixLayer(indexn)); +% % % T_diff_matrixLayer(c)=dxv(index)*dyv(index)/(2/(1/dzv(indexn)+1/dzv(index))); +% % % flowArea_matrixLayer(c)=dxv(index)*dyv(index); +% % % end +% % % end +% % % end +%% 构建基质层网格与裂缝层网格间的连接 +N_fractureMatrixLayer = zeros(nmc, 2);% +T_fractureMatrixLayer = zeros(nmc, 1);% +T_convection_fractureMatrixLayer = zeros(nmc, 1); +T_diff_fractureMatrixLayer = zeros(nmc, 1); +perm_fractureMatrixLayer = zeros(nmc, 1); +flowArea_fractureMatrixLayer = zeros(nmc, 1); +c = 0; +for k= 1 : nz + for j = 1 : ny + for i = 1 : nx + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nmc; + N_fractureMatrixLayer(c, :) = [index, indexn]; + perm_fractureMatrixLayer(c)=(Kx(index)*Ky(index)*Kz(index))^(1/3); + T_fractureMatrixLayer(c) = dzv(index)*dyv(index)*dxv(index)*(Kx(index)*Ky(index)*Kz(index))^(1/3)*sigma(c); + T_convection_fractureMatrixLayer(c) = dzv(index)*dyv(index)*dxv(index)*Kx(index)*sigma(c)*dzv(index); + T_diff_fractureMatrixLayer(c) = dzv(index)*dyv(index)*dxv(index)*sigma(c); + flowArea_fractureMatrixLayer(c)=dxv(index)*dyv(index); + end + end +end +%% 按照2014年的方法,将窜流处理为与上述相似的形式 +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +Tinterflow_convection=[]; +Tinterflow_diff=[]; +cell_divided_by_fracture_flag = []; +perm_interflow=[]; +flowArea_interflow=[]; +for i=1:nx*ny*nz %基质网格编号 + flag = 0; + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + flag = flag + 1; + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+2*nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + % kcell = sqrt(10*100)*1e-3; + Knnc=kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=areavsfra(matrixvsfra(i,j)); + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); + % dn=abs(dn);%影响数值积分效率 + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + % raoT=Knnc*Annc/Dn; + % raoT_convection=2*Knnc/Dn^2; + % Tinterflow=[Tinterflow;raoT]; + % Tinterflow_convection=[Tinterflow_convection;raoT_convection]; + raoT1 = 2*kcell*Annc/Dn; + raoT2 = Kf(matrixvsfra(i,j))*Annc/(Wf(matrixvsfra(i,j))/2); + raoT = (raoT1^-1+raoT2^-1)^-1; + Tinterflow=[Tinterflow;raoT]; + raoT1_conv = kcell/Dn^2; + raoT2_conv = Kf(matrixvsfra(i,j))/(Wf(matrixvsfra(i,j))/2)^2; + raoT_convection = (raoT1_conv^-1+raoT2_conv^-1)^-1; + Tinterflow_convection=[Tinterflow_convection;raoT_convection]; + Tinterflow_diff=[Tinterflow_diff;((2*Annc/Dn)^-1+(Annc/(Wf(matrixvsfra(i,j))/2))^-1)^-1;]; + perm_mf_this = kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + perm_interflow = [perm_interflow; perm_mf_this]; + flowArea_interflow = [flowArea_interflow; Annc]; + end + end + if flag >0 + cell_divided_by_fracture_flag = [cell_divided_by_fracture_flag; i]; + end +end +%% 按照2014年的方法,将窜流处理为与上述相似的形式 +% syms x y z; +% Ninterflow=[]; +% Tinterflow=[]; +% for i=1:nx*ny*nz %基质网格编号 +% for j=1:10 +% if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell +% Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3); +% K1=Kf(matrixvsfra(i,j));d1=Wf(matrixvsfra(i,j)); +% K2=kffl(matrixvsfra(i,j));d2=dffl(matrixvsfra(i,j)); +% Annc=2*areavsfra(matrixvsfra(i,j)); +% fracore=corevsfra(matrixvsfra(i,j),:); +% matnodes=nodes(i,:); +% verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); +% matcore=mean(verco);d0=matcore-fracore; +% dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% % dn=abs(dn);%影响数值积分效率 +% dn=sqrt(dn^2); +% dn=matlabFunction(dn); +% if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 +% Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(2)~=0 +% Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(3)~=0 +% Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 && norvec(3)~=0 +% Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 +% Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 +% Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(3)~=0 +% Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% end +% end +% end +% end +% end +% end +% end +% raoT=((Kcell*Annc/(Dn-d2))^(-1)+(K2*Annc/d2)^(-1)+(K1*Annc/d1)^(-1))^(-1); +% Tinterflow=[Tinterflow;raoT]; +% end +% end +% end +%% 双重介质处理 + +%% 把上述三种情况的矩阵分别叠加起来 +matrixflag = [ones(size(T,1),1); ones(size(T_matrixLayer,1),1); ones(size(T_fractureMatrixLayer,1),1); zeros(size(Tmff,1),1); zeros(size(Tff,1),1); ones(size(Tinterflow,1),1);]; +N = [N; N_matrixLayer; N_fractureMatrixLayer; Nmff+2*nmc; Nff+2*nmc;Ninterflow;]; +T = [T; T_matrixLayer; T_fractureMatrixLayer; Tmff; Tff;Tinterflow;]; +T_convection = [T_convection;T_convection_matrixLayer; T_convection_fractureMatrixLayer; Tmff_convection; Tff_convection;Tinterflow_convection;]; +T_diff = [T_diff;T_diff_matrixLayer;T_diff_fractureMatrixLayer;Tmff_diff; Tff_diff;Tinterflow_diff;]; +perm = [perm; perm_matrixLayer; perm_fractureMatrixLayer; perm_mff; perm_ff;perm_interflow; ]; +flowArea = [flowArea; flowArea_matrixLayer; flowArea_fractureMatrixLayer; flowArea_mff; flowArea_ff;flowArea_interflow;]; +% +% deleted_rows = []; +% for i = 1:size(N,1) +% if ismember(N(i,1),invalid_grids) || ismember(N(i,2),invalid_grids) +% deleted_rows = [deleted_rows; i]; +% end +% end +% N(deleted_rows,:) = []; +% T(deleted_rows,:) = 0; +% T_convection(deleted_rows,:) = 0; +% T_diff(deleted_rows,:) = 0; +% perm(deleted_rows,:) = 0; +% flowArea(deleted_rows,:) = 0; +nex=size(N,1); +%% 转到CMG或者ECLIPSE进行计算 +% [ Data_for_ECLIPSE ] = pEDFM_to_CMG_horizontalFractureWell(dxv,dyv,dzv,kx,ky,kz,pori,Kf,Wf,vf,porf,N,T); +% [ Data_for_ECLIPSE ] = pEDFM_to_CMG_horizontalFractureWell_net_pay(dxv,dyv,dzv,kx,ky,kz,pori,Kf,Wf,vf,porf,N,T); +end + diff --git a/core functions/程序整合及组分流部分代码/fluidPVT.m b/core functions/程序整合及组分流部分代码/fluidPVT.m new file mode 100644 index 0000000..917e510 --- /dev/null +++ b/core functions/程序整合及组分流部分代码/fluidPVT.m @@ -0,0 +1,18 @@ +function f = fluidPVT(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, SW, KRG, KRW, PCGL, SWF, KRGF, KRWF, PCGLF, density_g_sc, ifpcgl, rpt, cs_data, csa_data, cb_data, cba_data) +% f = fluidPVT(Bopb, pb, co, Bwi, prw, cw, vwi, cvw, visopb, cvo, SW, KRO, KRW, PCOW, ifpcow, SWF, KROF, KRWF, PCOWF, rpt,Dosi,Dwsi) +f.Bw = @(p) Bw(p, Bwi, prw, cw); +f.Bg = @(p) Bg(p, BG, Ppr); +f.muw = @(p) muw(p, vwi, prw, cvw); +f.mug = @(p) mug(p, MUG, Ppr); +f.krrg = @(sw) krrg(sw, SW, KRG, SWF, KRGF, rpt); +f.krw = @(sw) krw(sw, SW, KRW, SWF, KRWF, rpt); +f.pcgl = @(sw) pcgl(sw, SW, PCGL, SWF, PCGLF, rpt); +f.cs_absorb = @(cs) cs_absorb_f(cs, cs_data, csa_data); +f.cb_absorb = @(cb) cb_absorb_f(cb, cb_data, cba_data); +f.density_g_sc = density_g_sc; +f.ifpcgl = ifpcgl; +% f.Dosi=Dosi; +% f.Dwsi=Dwsi; + + + diff --git a/core functions/程序整合及组分流部分代码/fluidPVT_new.m b/core functions/程序整合及组分流部分代码/fluidPVT_new.m new file mode 100644 index 0000000..b9324bf --- /dev/null +++ b/core functions/程序整合及组分流部分代码/fluidPVT_new.m @@ -0,0 +1,22 @@ +function f = fluidPVT_new(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, ifpc, rpt, cs_data, csa_data, cb_data, cba_data, cs_Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, PC, cs_Nc_fracture, kr_nosurf_fracture, kr_surf_fracture, PC_fracture) +% Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, ifpcgl, r.rpt, cs_data, csa_data, cb_data, cba_data, cs_Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, cs_Nc_fracture, kr_nosurf_fracture, kr_surf_fracture, PC_fracture +% f = fluidPVT(Bopb, pb, co, Bwi, prw, cw, vwi, cvw, visopb, cvo, SW, KRO, KRW, PCOW, ifpcow, SWF, KROF, KRWF, PCOWF, rpt,Dosi,Dwsi) +f.Bw = @(p) Bw(p, Bwi, prw, cw); +f.Bg = @(p) Bg(p, BG, Ppr); +f.muw = @(p) muw(p, vwi, prw, cvw); +f.mug = @(p) mug(p, MUG, Ppr); +% f.krrg = @(sw) krrg(sw, SW, KRG, SWF, KRGF, rpt); +% f.krw = @(sw) krw(sw, SW, KRW, SWF, KRWF, rpt); +% f.pcgl = @(sw) pcgl(sw, SW, PCGL, SWF, PCGLF, rpt); +f.cs_absorb = @(cs) cs_absorb_f(cs, cs_data, csa_data); +f.cb_absorb = @(cb) cb_absorb_f(cb, cb_data, cba_data); +f.Nc = @(cs) cs_to_Nc(cs, cs_Nc, cs_Nc_fracture, rpt); +f.krrg = @(sw, Nc) krg(sw, Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, kr_nosurf_fracture, kr_surf_fracture, rpt); +f.krw = @(sw, Nc) krw(sw, Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, kr_nosurf_fracture, kr_surf_fracture, rpt); +f.pcgl = @(sw) pc(sw, PC, PC_fracture, rpt); +f.ifpcgl = ifpc; +% f.Dosi=Dosi; +% f.Dwsi=Dwsi; +end + + diff --git a/core functions/程序整合及组分流部分代码/fractureInformation_input_engineering_vector.m b/core functions/程序整合及组分流部分代码/fractureInformation_input_engineering_vector.m new file mode 100644 index 0000000..5c1a40a --- /dev/null +++ b/core functions/程序整合及组分流部分代码/fractureInformation_input_engineering_vector.m @@ -0,0 +1,15 @@ +function frac_information = fractureInformation_input_engineering_vector(f,fellip,flowBarrierFlags) +ff = [f;fellip]; +nf = size(ff,1)/5; +frac_information = zeros(3*nf,2); +for i = 1:size(ff,1)/5 + startPoint = ff(5*i-4,1:2)+ff(5*i-3,1:2)*ff(5*i-1,1); + endPoint = ff(5*i-4,1:2)+ff(5*i-3,1:2)*ff(5*i-1,2); + frac_information(3*i-2,:) = startPoint; + frac_information(3*i-1,:) = endPoint; + if ismember(i,flowBarrierFlags) + frac_information(3*i-0,:) = [0*1e-3,1e-2]; + else + frac_information(3*i-0,:) = [10000*1e-3,1e-2]; + end +end \ No newline at end of file diff --git a/core functions/程序整合及组分流部分代码/grid_discretization_DP_model.asv b/core functions/程序整合及组分流部分代码/grid_discretization_DP_model.asv new file mode 100644 index 0000000..c68d5b4 --- /dev/null +++ b/core functions/程序整合及组分流部分代码/grid_discretization_DP_model.asv @@ -0,0 +1,49 @@ +function r = grid_discretization_DP_model(modelflag, nx, ny, nz, dx, dy, dz, f, frac_information, fellip, nf) +% 裂缝层网格渗渗透率 +kx = 50*1e-3 * ones(nx*ny*nz, 1); % 达西,D +ky = 50*1e-3 * ones(nx*ny*nz, 1);% +kz = 50*1e-3 * ones(nx*ny*nz, 1);% +pori = 0.001 * ones(nx*ny*nz, 1);% +prpor = 20; % 参考压力,MPa +cpor = 1.0e-5;% 基质压缩系数,MPa +NTG= 1 * ones(nx*ny*nz, 1); +% 基质层网格渗透率 +kx = 0.001*1e-3 * ones(nx*ny*nz, 1); % 达西,D +ky = 0.001*1e-3 * ones(nx*ny*nz, 1);% +kz = 0.001*1e-3 * ones(nx*ny*nz, 1);% +pori = 1 * ones(nx*ny*nz, 1);% +prpor = 20; % 参考压力,MPa +cpor = 1.0e-5;% 基质压缩系数,MPa +% 形状因子 +sigma = + +% SRV区域定义 +% % % base_x=23:78; nx_SRV=length(base_x); +% % % base_y=15:36; ny_SRV=length(base_y); +% % % base_z=1:1;nz_SRV=length(base_z); +% % % SRV=[]; +% % % for k=1:nz_SRV +% % % for j=1:ny_SRV +% % % for i=1:nx_SRV +% % % SRV=[SRV;(base_z(k)-1)*nx*ny+(base_y(j)-1)*nx+base_x(i)]; +% % % end +% % % end +% % % end +% % % % SRV渗透率赋值 +% % % kx(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % ky(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % kz(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% 裂缝孔渗 +Kf = 50000*1e-3*ones(1,nf);% 裂缝渗透率 +Wf =1e-2*ones(1,nf);% 裂缝开度 +Porf = 0.30*ones(1,nf);% 裂缝孔隙度 +prporf = 20;% 裂缝系统参考压力 +cporf = 1.0e-5;% 裂缝系统压缩系数 +% +Rpt = 2;cf = 1;ca = 1; +%% 结合基质、裂缝的几何及物性信息开展前处理 +% r = GridProp_new(modelflag, nx, ny, nz, dx, dy, dz, kx, ky, kz, f, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca,co, NTG); +r = GridProp_DP(modelflag, nx, ny, nz, dx, dy, dz, kx, ky, kz, f, frac_information, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca,NTG); +density_rock = 2700; % 岩石密度,kg/m^3 +r.density_rock = density_rock; +end \ No newline at end of file diff --git a/core functions/程序整合及组分流部分代码/handle_well1.m b/core functions/程序整合及组分流部分代码/handle_well1.m new file mode 100644 index 0000000..c857537 --- /dev/null +++ b/core functions/程序整合及组分流部分代码/handle_well1.m @@ -0,0 +1,13 @@ +function well1 = handle_well1(well1,r) +% 需要找到射孔段具体所在的基质网格编号 +n1=size(well1,1); +for i=1:n1 + perf=well1{i,3}; + nperf=well1{i,2}; + perf(:,3)=(r.nz+1)*ones(nperf,1)-perf(:,3); + A=repmat([0 1 1],nperf,1); + B=(perf-A)*[1;r.nx;r.nx*r.ny]; + B=B'; %转换为行向量 + well1{i,3}=B; +end +end \ No newline at end of file diff --git a/core functions/程序整合及组分流部分代码/handle_well1_well2.m b/core functions/程序整合及组分流部分代码/handle_well1_well2.m new file mode 100644 index 0000000..e2fd8ca --- /dev/null +++ b/core functions/程序整合及组分流部分代码/handle_well1_well2.m @@ -0,0 +1,36 @@ +function Wellc = handle_well1_well2(well1,well2,welloc,r) +%-----------------把两类井整合到一起------------------- +nwell1=size(well1,1); +nwell2=size(well2,1); +nwell=nwell1+nwell2; +Wellc0=cell(nwell,9); +% if nwell1==0 +% Wellc0=well2; +% elseif nwell2==0 +% Wellc0=well1; +% else +if nwell1~=0 + for i=1:nwell1 + for j=1:6 + Wellc0{i,j}=well1{i,j}; + end + plot3([r.cell_mid_coords(well1{i,3}(1),1);r.cell_mid_coords(well1{i,3}(1),1)],... + [r.cell_mid_coords(well1{i,3}(1),2);r.cell_mid_coords(well1{i,3}(1),2)],... + [r.cell_mid_coords(well1{i,3}(1),3);max(r.cell_mid_coords(:,3))+20],'color','k','LineWidth',2.5); + hold on; + end +end +if nwell2~=0 + for i=1:nwell2 + for j=1:6 + Wellc0{i+nwell1,j}=well2{i,j}; + end + plot3(welloc{i,1}(:,1),welloc{i,1}(:,2),welloc{i,1}(:,3),'color','k','LineWidth',2.5); + hold on; + end +end +% end +hold off; +% 计算井指数 +Wellc = calcTrans(r, Wellc0); +end \ No newline at end of file diff --git a/core functions/程序整合及组分流部分代码/initalSchedule_2026.m b/core functions/程序整合及组分流部分代码/initalSchedule_2026.m new file mode 100644 index 0000000..521b82a --- /dev/null +++ b/core functions/程序整合及组分流部分代码/initalSchedule_2026.m @@ -0,0 +1,54 @@ +function [Weladd, pwf] = initalSchedule_2026(p, sw, cs, Wellc, f, well_schedules_k) +nWel = size(Wellc, 1);%井数 +Weladd = 0; +pwf = zeros(1); +BW = f.Bw(p); +muW = f.muw(p); +Nc = f.Nc(cs); +krW = f.krw(sw,Nc); +BG = f.Bg(p); +muG = f.mug(p); +krG = f.krrg(sw,Nc); +Ygt = krG ./ (muG .* BG);%mu代表黏度 +Ygj = krG ./ muG; +Ywt = krW ./ (muW .* BW);%mu代表黏度 +Ywj = krW ./ muW; + +for i = 1 : nWel + if strcmp(well_schedules_k{i,2},'open') + if strcmp(well_schedules_k{i,3},'pro') && strcmp(well_schedules_k{i,4},'const_q') %该井是生产井并定产生产 + Weladd = Weladd + 1; + nper = Wellc{i,2}; %该井的射孔数量 + jperf = zeros(nper,1); + Trans = zeros(nper,1); + Tnp = 0; + Tn = 0; + for j = 1 : nper + jperf(j) = Wellc{i,3}(j);%该射孔点在基质网格和裂缝单元全体中的序号 + Tr = Wellc{i,4}(j);%该射孔点对应的生产指数(缺流度) + Trans(j) = Tr * (Ygt(jperf(j)) + Ywt(jperf(j)));%生产指数 + Tnp = Tnp + Trans(j)*p(jperf(j)); + Tn = Tn + Trans(j); + end + pwf(Weladd) = (Tnp - well_schedules_k{i,5}/86.4) / Tn;%说明井筒无限导流,压力为一个值 + elseif strcmp(well_schedules_k{i,3},'inj') && strcmp(well_schedules_k{i,4},'const_q') %注入井,恒定注入量 + Weladd = Weladd + 1; + nper = Wellc{i,2}; + jperf = zeros(nper,1); + Trans = zeros(nper,1); + Tnp = 0; + Tn = 0; + for j = 1 : nper + jperf(j) = Wellc{i,3}(j); + Tr = Wellc{i,4}(j); + Trans(j) = Tr / BW(jperf(j)) * (Ygj(jperf(j)) + Ywj(jperf(j)));%多相流注入方程 + Tnp = Tnp + Trans(j)*p(jperf(j)); + Tn = Tn + Trans(j); + end + pwf(Weladd) = (Tnp + well_schedules_k{i,5}/86.4) / Tn;%与生产井正好反过来 + else + continue + end + end +end + pwf = pwf'; \ No newline at end of file diff --git a/core functions/程序整合及组分流部分代码/input_fracture_2D.m b/core functions/程序整合及组分流部分代码/input_fracture_2D.m new file mode 100644 index 0000000..d60344f --- /dev/null +++ b/core functions/程序整合及组分流部分代码/input_fracture_2D.m @@ -0,0 +1,26 @@ +function [f,frac_information] = input_fracture_2D(fractureLines,fractureHeights,flowBarrierFlags) +f = zeros((size(fractureLines,1)/2-length(flowBarrierFlags))*5,3); +numberHighFracture = 0; +for i = 1:size(fractureLines,1)/2 + if ~ismember(i,flowBarrierFlags) + numberHighFracture = numberHighFracture +1; + f(5*numberHighFracture-4,:) = [fractureLines(2*i-1,:),0]; + f(5*numberHighFracture-3,:) = [fractureLines(2*i,:)-fractureLines(2*i-1,:),0]; + f(5*numberHighFracture-2,:) = [0,0,fractureHeights(i)]; + f(5*numberHighFracture-1,:) = [0,1,0]; + f(5*numberHighFracture-0,:) = [0,1,0]; + end +end +frac_information = zeros(size(fractureLines,1)*3,2); +for i = 1:size(fractureLines,1)/2 + frac_information(3*i-2,:) = [fractureLines(2*i-1,:)]; + frac_information(3*i-1,:) = [fractureLines(2*i,:)]; + if ismember(i,flowBarrierFlags) + frac_information(3*i-2,:) = frac_information(3*i-2,:); + frac_information(3*i-1,:) = frac_information(3*i-1,:); + frac_information(3*i-0,:) = [0*1e-3,1e-2]; + else + frac_information(3*i-0,:) = [10000*1e-3,1e-2]; + end +end +end diff --git a/core functions/程序整合及组分流部分代码/mainRS_MB_2026.m b/core functions/程序整合及组分流部分代码/mainRS_MB_2026.m new file mode 100644 index 0000000..f75540f --- /dev/null +++ b/core functions/程序整合及组分流部分代码/mainRS_MB_2026.m @@ -0,0 +1,165 @@ +function [Times, OutputRs, Wellpara, trun] = mainRS_MB_2026(r, f, os, w, state0) +t_start = clock; +dtmin = w.dtmin; +dtmax = w.dtmax; +Nmax = w.Nmax; +epsave = w.epsave; +epsmax = w.epsmax; +yitap = w.yitap; +yitas = w.yitas; +omega = w.omega; +Wellc = w.Wellc; +time = w.time; +well_schedules = w.well_schedules; +% WelChg = w.WelChg; +% tend = w.tend; +count = 0; +t = 0; +state = state0; +number_state_variables = f.number_state_variables; +OutputRs = cell(2,1); +Wellpara = cell(2,1); +Times = zeros(2,1); +% h0 = waitbar(0,'Please wait...'); +for k = 1:size(well_schedules,1) + dt=dtmin(k); + [Weladd, pwf] = initalSchedule_2026(state0.p, state0.sw, state0.cs, Wellc, f, well_schedules{k,1}); + % [Weladd, pwf] = initalSchedule(state0.p, state0.sw, Wellc, f); + WelChg = zeros(size(well_schedules{k,1},1),1); % 后续有用,先不用 + repi = 0; + Newton_step = 0; + cons_Jacob = 0; + leqs_solve_time = 0; + Newtons_vs_time = [0, 0]; + tend = sum(time(1:k),1); + while t < tend + for i = 1 : Nmax + dtc = dt * 86.4; + tic; + [eqs, Awell, qwell, Pvv, Boa, Bwa] = ... + eqsOW_MB_2014(state, state0, dtc, r, f, os, Wellc, Weladd, pwf, WelChg, well_schedules{k,1}); + Jacob = Awell; + Ris = qwell; + for iii = 1:number_state_variables + for jjj = 1:number_state_variables + Jacob((iii-1)*r.nc+1 : iii*r.nc,(jjj-1)*r.nc+1 : jjj*r.nc) = Jacob((iii-1)*r.nc+1 : iii*r.nc,(jjj-1)*r.nc+1 : jjj*r.nc) + eqs{iii}.jac{jjj} ; + end + Ris((iii-1)*r.nc+1 : iii*r.nc,1) = Ris((iii-1)*r.nc+1 : iii*r.nc,1) +eqs{iii}.val; + end + % % % Jacob(1 : r.nc,1 : 2 * r.nc) = Jacob(1 : r.nc,1 : 2 * r.nc) + [eqs{1}.jac{1} eqs{1}.jac{2}]; + % % % Jacob(r.nc + 1 : 2 * r.nc,1 : 2 * r.nc) = Jacob(r.nc + 1 : 2 * r.nc,1 : 2 * r.nc) + [eqs{2}.jac{1} eqs{2}.jac{2}]; + % % % Ris(1 : r.nc) = Ris(1 : r.nc) + eqs{1}.val ; + % % % Ris(r.nc + 1: 2 * r.nc) = Ris(r.nc + 1: 2 * r.nc) + eqs{2}.val ; + % 将误差无因次化,用以判断是否收敛 + Dimensionless_Ris = Ris(1: 4 * r.nc)./ [Pvv;Pvv;Pvv;Pvv] .* [Bwa;Boa;Bwa;Bwa] .* dtc; + % Dimensionless_Ris = Ris(1: 4 * r.nc); + cons_Jacob_lo=toc; + cons_Jacob=cons_Jacob+cons_Jacob_lo; + % PVall = sum(Pvv); + % MBw = Bwa*dtc*abs(sum(Ris(1:r.nc))/PVall); + % MBo = Boa*dtc*abs(sum(Ris(r.nc+1:2*r.nc))/PVall); + % CNVw = max(Bwa*dtc*abs(Ris(1:r.nc)./Pvv)); + % CNVo = max(Boa*dtc*abs(Ris(r.nc+1:2*r.nc)./Pvv)); + % [L,U] = ilu(-Jacob); + % tol = 1e-6; + % maxit = 50; + % [X, ~] = bicgstab(-Jacob,Ris,tol,maxit,L,U); + tic; + % tol = 1e-12; + % maxit = 200; + % [X0,fl0,rr0,it0,rv0] = gmres(-Jacob,Ris,[],tol,maxit); + % [L,U] = ilu(-Jacob,struct('type','ilutp','droptol',1e-6)); + % [X1,fl1,rr1,it1,rv1] = gmres(-Jacob,Ris,[],tol,maxit,L,U); + X = -Jacob \ Ris; + leqs_time=toc; + leqs_solve_time=leqs_solve_time+leqs_time; + Newton_step=Newton_step+1; + dp = X(1 : r.nc); + dsw = X(r.nc + 1 : 2*r.nc); + dcs = X(2*r.nc + 1 : 3*r.nc); + dcb = X(3*r.nc + 1 : 4*r.nc); + state.p = state.p + dp; + state.sw = state.sw + dsw; + state.cs = state.cs + dcs; + state.cb = state.cb + dcb; + % deltp=state.p-state0.p; + % deltsw=state.sw-state0.sw; + if Weladd > 0 + dpwf = X(4 * r.nc + 1 : end); + pwf = pwf + dpwf; + state.pwf = pwf; + end + % if MBw <= epsave && MBo <= epsave && CNVw <= epsmax && CNVo <=epsmax && max(dsw)<=0.02 && max(dp)<=1 + % break + % end + % 为适应更一般的情况,将Ris无因次化 + + if mean(abs(Dimensionless_Ris)) <= epsave && max(abs(Dimensionless_Ris)) <=epsmax + break + end + + % [L,U] = ilu(-Jacob); + % tol = 1e-6; + % maxit = 50; + % [X, ~] = bicgstab(-Jacob,Ris,tol,maxit,L,U); + % raodai=condest(Jacob); + % if condest(Jacob)>50000 + % dt = dt / 2; + % else + end + + if i == Nmax + repi = repi + 1; + if repi == 5 + error('too many iter') + end + if repi == 1 + dt = dt / 2; + elseif repi == 2 + dt = dt / 3; + else + dt = dt / 10; + end + % dt = max(dt, w.dtmin); + state = state0; + else + repi = 0; + t = t + dt; + count = count + 1; + Times(count) = t; + OutputRs{count} = state; + Newtons_vs_time = [Newtons_vs_time; t, Newton_step]; + % qwell=qwell/dtc;%转换为单位时间的流量 + [Wellpara_t, WelChg, Weladd] = calcWellequation(Weladd, Wellc, WelChg, well_schedules{k,1}, r.nc, qwell, state); + Wellpara{count} = Wellpara_t; + state0 = state; + tm = ADtimestep(yitap, yitas, omega, dp, dsw); + % tm=1; + dt = dt * tm; + if t + dt > tend + dt = tend - t; + end + if dt >= dtmax(k) + dt = dtmax(k); + end + if i ~= Nmax + % waitbar(t / tend); + % disp(t); + fprintf('正在计算:%.4f天/共%.4f天\n', t, sum(time)); + + end + if t>300 + flag = 1; + end + end + end +end +trun.cons_Jacob=cons_Jacob; +trun.leqs_solve_time=leqs_solve_time; +trun.total_simulation_time = etime(clock,t_start); +trun.Newton_step=Newton_step; +trun.Newtons_vs_time=Newtons_vs_time; +fprintf('计算完成'); +% close(h0); + + diff --git a/core functions/程序整合及组分流部分代码/multi_component_flow.m b/core functions/程序整合及组分流部分代码/multi_component_flow.m new file mode 100644 index 0000000..2e62237 --- /dev/null +++ b/core functions/程序整合及组分流部分代码/multi_component_flow.m @@ -0,0 +1,242 @@ +function [f,state0] = multi_component_flow(r) +%% 流体性质参数 +%% 水相中的表活剂、盐的扩散系数 +Ds = 0.76*1e-9; % m2/s +Db = 2.2*1e-9; % m2/s +%% 表活剂、盐在岩石表面的吸附浓度与水相浓度的关系表,第一列单位是kg/m3, 第二列和第三列单位是g/kg +c_ca_table = [ +0 0 0 +0.05 1 0.075 +0.1 1.75 0.125 +0.2 3 0.2 +0.5 4.35 0.325 +1 4.55 0.365 +]; +cs_data = c_ca_table(:,1); +cb_data = c_ca_table(:,1); +csa_data = c_ca_table(:,2)*1e-3; % 转换为 kg/kg +cba_data = c_ca_table(:,3)*1e-3; % 转换为 kg/kg +%% 化学势(压裂液与地层水的盐度差异给水相带来的额外压差) +R = 0.008314; % kJ/(mol*K) +Vm = 18.02*1e-6; % 水的偏摩尔体积,m^3/mol +Temperature = 293.15; % 温度,K +% salinity_fracturing_fluid = 0.1/100; +% salinity_reservoir_water = 28/100; +xf = 1; +xm = 0.9; +chemistry_cof = R*Temperature/Vm*1e-3/10; +x_total = [xm*ones(r.nmc,1); xf*ones(r.nfc,1)]; +chemistry_potential = chemistry_cof*log(x_total); +%% 动态相渗(凸显出表活剂对相渗的影响) +% 原本应先得到表活剂浓度与表面张力的关系,再结合渗流速度计算出个表面张力对应的毛管数, +% 为了简便代码编写,此处忽略渗流速度的影响, +% 并增强代码通用性,此处改为输入表活剂浓度与毛管数的对应表格, +% 第一列为表活剂浓度,第二列为相应的毛管数,,第三列是相应的表面张力 +% dynamic_kr = 1; +cs_Nc = [ +0 1.6*1e-6 30 +0.1 9.5*1e-6 10 +0.2 2.5*1e-5 4 +0.5 5.8*1e-5 1.4 +1 8.2*1e-5 1 +2 8.8*1e-5 0.75 +]; +Nc_nosurf = min(cs_Nc(:,2)); +Nc_surf = max(cs_Nc(:,2)); + +kr_nosurf = [ +0 0 0.64 +0.25 0 0.64 +0.30 0.072 0.6 +0.40 0.14 0.56 +0.50 0.26 0.48 +0.60 0.4 0.38 +0.70 0.56 0.26 +0.85 0.88 0 +1 0.88 0 + ]; + +kr_surf = [ +0 0 0.6 +0.18 0 0.6 +0.25 0.056 0.56 +0.30 0.1 0.52 +0.40 0.19 0.42 +0.50 0.29 0.3 +0.60 0.37 0.19 +0.75 0.46 0 +1 0.46 0 + ]; + +PC = [ +0 3.8916 +0.2 3.8916 +0.316 0.5796 +0.435 0.3724 +0.562 0.2425 +0.614 0.0608 +0.702 0.0372 +0.812 0.0137 +0.875 0.0104 +0.906 0.009 +0.937 0.0075 +0.969 0.0059 +1 0 +]; +cs_Nc_fracture = cs_Nc; +kr_nosurf_fracture = kr_nosurf; +kr_surf_fracture = kr_surf; +PC_fracture = PC; +ifpcgl = 0; % 是否考虑毛管力 +%% 启动压力梯度 +p_grad_threshold = 0.01; % MPa/m +%% ================气相Langmuir等温吸附模型,当 VL=0,亦可用于油相=============== +% VE = VL*P/(PL+P) +gas_prop.VL = 0.0; % Langmuir volume, m^3/kg +gas_prop.PL = 3.5; % Langmuir pressure, MPa +% Psc = 1; +% Zsc = 1; +% density_rock = 2000; % +% ===================== Knudsen 扩散系数,当 Kn=0,亦可用于油相 ==================== +gas_prop.Kn = 0; % Knudsen数 +c1 =1; c2 =8/9; +gas_prop.Kn_modified_factor = 1+8*c1*gas_prop.Kn+16*c2*gas_prop.Kn^2; +% ===================== 应力敏感系数 ==================== +gas_prop.stress_factor_fracture = 0.000; % 1/MPa 0.001 +gas_prop.stress_factor_matrix = 0.000; % 1/MPa +gas_prop.stress_factor_ref_pressure = 20; % 一般取为原始地层压力 +% ===================== 高速非达西流 Forchheimer 方程 ==================== +gas_prop.beta_non_Darcy_flow = 0; % 1e-8 +% =======================气相体积系数、粘度=============================== +density_g_sc = 800; +% 第一种模式,直接输入参考压力、体积系数、压缩系数、粘度 +gas_model =1; +if gas_model == 1 +prg = 20; % reference pressure, MPa +Bgi = 1; % gas phase volume factor +cg = 5e-4 ;% gas phase compressibility, 1/MPa +vgi = 6; % gas viscosity, cp +cvg = 0; +[Ppr,BG,MUG] = cal_gas_prop(prg,Bgi,cg,vgi,cvg); +end +if gas_model == 2 +Ppr = [ 0.1013 + 2.0946 + 4.0878 + 6.0811 + 8.0743 + 10.0676 + 12.0608 + 14.0540 + 16.0473 + 18.0405 + 20.0338 + 22.0270 + 24.0203 + 26.0135 + 28.0068 + 30.0000 + ]; +% BG = 0.01*ones(size(Ppr,1),1); +BG = [ 1.18297 + 0.0557041 + 0.0278168 + 0.0182594 + 0.0134665 + 0.0106154 + 0.00874829 + 0.00744907 + 0.00650639 + 0.0058006 + 0.0052587 + 0.0048336 + 0.00449378 + 0.00421751 + 0.0039895 + 0.00379871 + ]; +% MUG = 0.01*ones(size(Ppr,1),1); +MUG = [0.0127683 + 0.0130191 + 0.0133973 + 0.013872 + 0.014437 + 0.015088 + 0.0158182 + 0.0166173 + 0.0174719 + 0.0183671 + 0.0192882 + 0.0202219 + 0.0211575 + 0.0220865 + 0.0230024 + 0.0239008 + ]; +end +% ========================水相体积系数、粘度=============================== +density_w_sc = 1000; +prw = 20; % reference pressure +Bwi = 1.000; % water phase volume factor +cw = 4.0e-4 ;% water phase compressibility +vwi = 1; % viscosity +cvw = 0; +% =============================基质相渗=============================== +% ifpcgl = 0; % 是否考虑毛管力 +% RPGW=[ +% 0.0000 0.0000 1.0000 3.8916 +% 0.2000 0.0000 1.0000 3.8916 +% 0.3160 0.0002 0.6784 0.5796 +% 0.4350 0.0004 0.6215 0.3724 +% 0.5620 0.0010 0.5456 0.2425 +% 0.6140 0.0020 0.3939 0.0608 +% 0.7020 0.0280 0.1399 0.0372 +% 0.8120 0.1721 0.0515 0.0137 +% 0.8750 0.3395 0.0297 0.0104 +% 0.9060 0.4395 0.0226 0.0090 +% 0.9370 0.5500 0.0173 0.0075 +% 0.9690 0.6702 0.0131 0.0059 +% 1.0 1.0000 0.0000 0.0000 +% ]; +% SW=RPGW(:,1);KRW=RPGW(:,2);KRG=RPGW(:,3);PCGL=RPGW(:,4); +% +% % =============================裂缝相渗=============================== +% PRF=[ +% 0.0000 0.0000 1.0000 3.8916 +% 0.2000 0.0000 1.0000 3.8916 +% 0.3160 0.0002 0.6784 0.5796 +% 0.4350 0.0004 0.6215 0.3724 +% 0.5620 0.0010 0.5456 0.2425 +% 0.6140 0.0020 0.3939 0.0608 +% 0.7020 0.0280 0.1399 0.0372 +% 0.8120 0.1721 0.0515 0.0137 +% 0.8750 0.3395 0.0297 0.0104 +% 0.9060 0.4395 0.0226 0.0090 +% 0.9370 0.5500 0.0173 0.0075 +% 1.0 1.0000 0.0000 0.0000 +% ]; +% SWF = PRF(:,1);KRWF = PRF(:,2);KRGF = PRF(:,3);PCGLF=PRF(:,4); + +%% 结合流体性质参数生成相应的数据体 +% f = fluidPVT(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, SW, KRG, KRW, PCGL, SWF, KRGF, KRWF, PCGLF, density_g_sc, ifpcgl, r.rpt, cs_data, csa_data, cb_data, cba_data, cs_Nc, kr_nosurf, kr_surf); +f = fluidPVT_new(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, ifpcgl, r.rpt, cs_data, csa_data, cb_data, cba_data, cs_Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, PC, cs_Nc_fracture, kr_nosurf_fracture, kr_surf_fracture, PC_fracture); +f.Dwsi = density_w_sc; +f.Dgsi = density_g_sc; +f.gas_prop = gas_prop; +f.Ds = Ds; +f.Db = Db; +f.x_total = x_total; +f.chemistry_potential = chemistry_potential; +f.p_grad_threshold = p_grad_threshold; +%% 初值条件 Initial Condition Section +% =================压力、饱和度初值======================================= % +%压力初值要考虑重力,给出油藏下表面压力值 +P = [20 * ones(r.nmc, 1); 20 * ones(r.nfc, 1)]; +% plow=25; % P =plow-1e-6*800*9.8*r.z; +Sw = [0.2 * ones(r.nmc, 1); 0.2 * ones(r.nfc, 1)]; +Cs = [0.0 * ones(r.nmc, 1); 0.0 * ones(r.nfc, 1)]; +Cb = [0.0 * ones(r.nmc, 1); 0.0 * ones(r.nfc, 1)]; +number_state_variables = 4; +f.number_state_variables = number_state_variables; +state0 = initialRS(P, Sw, Cs, Cb); +end \ No newline at end of file diff --git a/core functions/程序整合及组分流部分代码/smooth_relu_stable.m b/core functions/程序整合及组分流部分代码/smooth_relu_stable.m new file mode 100644 index 0000000..0e7bc4b --- /dev/null +++ b/core functions/程序整合及组分流部分代码/smooth_relu_stable.m @@ -0,0 +1,18 @@ +function ratio = smooth_relu_stable(dp,p_grad_threshold) + % 安全平滑ReLU,永不溢出,100%兼容自动微分 + eps = 1e-8; + s = 200; + dP_abs = (dp.^2 + eps).^(1/2); + x = dP_abs - p_grad_threshold; + y = zeros(length(x),1); + idx1 = x <= 0; + y(idx1) = 0; + % y(idx1) = log(1 + exp(s * x(idx1))) / s; + + idx2 = x > 0; + y(idx2) = x(idx2); + % y(idx2) = x(idx2) + log(1 + exp(-s * x(idx2))) / s; + + activate = y; + ratio = activate ./ (dP_abs); +end \ No newline at end of file diff --git a/core functions/程序整合及组分流部分代码/solver_NR.m b/core functions/程序整合及组分流部分代码/solver_NR.m new file mode 100644 index 0000000..d06438b --- /dev/null +++ b/core functions/程序整合及组分流部分代码/solver_NR.m @@ -0,0 +1,28 @@ +function [Times, OutputRs, Wellpara, trun] = solver_NR(r, flow_model, f, os, state0, yitap,yitas,omega,Nmax,epsave,epsmax,dtmin,dtmax,Wellc,time,well_schedules) +w.yitap = yitap; +w.yitas = yitas; +w.omega = omega; +w.Nmax = Nmax; +w.epsave = epsave; +w.epsmax = epsmax; +w.dtmin = dtmin; +w.dtmax = dtmax; +% w.tend = tend; +% w.WelChg = WelChg; +w.Wellc = Wellc; +w.time = time; +w.well_schedules = well_schedules; +%% 计算 +if r.modelflag==1 || r.modelflag==4 || r.modelflag==5 + if flow_model == 1 + [Times, OutputRs, Wellpara, trun] = mainRS_MB_gas_water_flow(r, f, os, w, state0); + end + if flow_model == 2 + [Times, OutputRs, Wellpara, trun] = mainRS_MB_oil_water_flow(r, f, os, w, state0); + end + if flow_model == 3 + [Times, OutputRs, Wellpara, trun] = mainRS_MB_2026(r, f, os, w, state0); + end + % [Times, OutputRs, Wellpara, trun] = mainRS_MB_2014(r, f, os, w, state0); +end +end \ No newline at end of file diff --git a/generic extended/GenerateNode_final_new.m b/generic extended/GenerateNode_final_new.m new file mode 100644 index 0000000..1b4d881 --- /dev/null +++ b/generic extended/GenerateNode_final_new.m @@ -0,0 +1,90 @@ +function [coordinates, nodes, nP, nE, dxv, dyv,dzv,zm,vm,xrao,yrao,zrao] = GenerateNode_final_new(dx, dy,dz ,nx,ny,nz,NTG) +% coordinates xy cordinateÿڵx,y +% nodes connectionÿӦİ˸ڵ +% nP numbers of pointڵ +% nE numbers of element +nP = (nx + 1) * (ny + 1)*(nz+1);%ڵ +nE = nx * ny*nz;% +% dx=dx*ones(nx,1);%˴ΪʱЭ +% dy=dy*ones(nx,1); +% dz=dz*ones(nx,1); +dxv = zeros(nE, 1);%ÿxϳߴ +dyv = zeros(nE, 1);%ÿyϳߴ +dzv = zeros(nE, 1); +zm=zeros(nE, 1);%ȣƽΪ׼õĸ߶ȣֵΪ +%ÿxy򸳳ߴ +vm=zeros(nE, 1);% +for k=1:nz + for i = 1 : nx + for j = 1 : ny + dxv(i+(j-1)*nx+nx*ny*(k-1)) = dx(i); + dyv(i+(j-1)*nx+nx*ny*(k-1)) = dy(j); + dzv(i+(j-1)*nx+nx*ny*(k-1))=dz(k); + vm(i+(j-1)*nx+nx*ny*(k-1))=dx(i)*dy(j)*dz(k)*NTG(i+(j-1)*nx+nx*ny*(k-1)); + + end + end +end +coordinates = zeros(nP, 3);%ʼÿڵx,y +nodes = zeros(nE, 8);%ʼÿӦİ˸ڵľ +%ÿڵ +x0 = zeros(nx+1,1); +y0 = zeros(ny+1,1); +z0=zeros(nz+1,1); +sumx = 0; +sumy = 0; +sumz=0; +for i = 1 : nx + sumx = sumx+dx(i); + x0(i+1) = sumx; +end +for i = 1 : ny + sumy = sumy+dy(i); + y0(i+1) = sumy; +end +for i = 1 : nz + sumz = sumz+dz(i); + z0(i+1) = sumz; +end +for k=1:nz+1 +for j = 1 : ny + 1 + for i = 1 : nx + 1 + coordinates(i + (j - 1) * (nx + 1)+(nx+1)*(ny+1)*(k-1), 1) = x0(i);%(i,jڵx긳ֵ + coordinates(i + (j - 1) * (nx + 1)+(nx+1)*(ny+1)*(k-1), 2) = y0(j);%(i,jڵy긳ֵ + coordinates(i + (j - 1) * (nx + 1)+(nx+1)*(ny+1)*(k-1), 3) = z0(k); + end +end +end +%ÿİ˸(ڵ㣩ӦĽڵ +for k=1:nz +for j = 1 : ny + for i = 1 : nx + nodes(i + (j - 1) * nx+nx*ny*(k-1), 1) = i + (j - 1) * (nx + 1)+(k-1)*(nx+1)*(ny+1); + nodes(i + (j - 1) * nx+nx*ny*(k-1), 2) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 1) + 1; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 3) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 1) + nx + 1; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 4) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 1) + nx + 2; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 5) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 1)+(nx+1)*(ny+1); + nodes(i + (j - 1) * nx+nx*ny*(k-1), 6) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 5) + 1; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 7) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 5) + nx + 1; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 8) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 5) + nx + 2; + zm(i+(j-1)*nx+nx*ny*(k-1))=sum(coordinates(nodes(i + (j - 1) * nx+nx*ny*(k-1), :),3))/8; + end +end +end + +xrao=[0]; +for i=1:nx + xxiang=sum(dx(1,1:i)); + xrao=[xrao xxiang]; +end +yrao=[0]; +for i=1:ny + yxiang=sum(dy(1,1:i)); + yrao=[yrao yxiang]; +end +zrao=[0]; +for i=1:nz + zxiang=sum(dz(1,1:i)); + zrao=[zrao zxiang]; +end +end \ No newline at end of file diff --git a/generic extended/GridProp_new.asv b/generic extended/GridProp_new.asv new file mode 100644 index 0000000..c781341 --- /dev/null +++ b/generic extended/GridProp_new.asv @@ -0,0 +1,510 @@ +function r = GridProp_new(modelflag,nx, ny, nz, dx, dy, dz, kx, ky, kz, f, frac_information, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca,co,NTG) +tic; +%% 基质网格参数及网格参数计算、存储 +r.modelflag=modelflag; +r.nx = nx; +r.ny = ny; +r.nz = nz; +r.dx = dx; +r.dy = dy; +r.dz = dz; +r.kx = kx; +r.ky = ky; +r.kz = kz; +r.Kf = Kf;%裂缝面对应的渗透率,非裂缝单元 +r.Wf = Wf;%裂缝面对应的缝宽,非裂缝单元 +r.cf = cf; +r.ca = ca; +r.co=co; +r.cpor=cpor; +r.cporf=cporf; +r.NTG=NTG; +r.frac_information = frac_information; + +[coordinates, nodes, nP, nE, dxv, dyv,dzv,zm,vm,xrao,yrao,zrao,cell_mid_xy_coordinates] = GenerateNode_final(dx, dy,dz ,nx,ny,nz,NTG); +r.coordinates = coordinates; +r.nodes = nodes; +nmc=nE; +r.nmc =nmc; +r.dxv = dxv; +r.dyv = dyv; +r.dzv = dzv; +r.vm=vm; +r.cell_mid_coordinates=cell_mid_xy_coordinates; +%% 求解裂缝与基质网格连接情况 +%% 关键参数矩阵初始化 +m=size(f,1); +n=size(fellip,1); +nfr=m/5;%矩形规则裂缝条数 +nfir=n/5;%不规则裂缝条数(当然包含椭圆) +r.nfr=nfr; r.nfir=nfir; +nf=nfr+nfir; +r.nf=nf; +if (nfir~=0) && (nfr~=0) + f=[f;fellip]; +else if nfr~=0 + f=f; + else if nfir~=0 + f=fellip; + else error('Dr Rao reminds you that there is no information about fractures'); + end + end +end + +%d3intersection=-1000*ones(1000,3);%用-1000做标识 +raopoint=cell(nfr+nfir,2);%利用元胞数组存储每条裂缝与基质网格线的交点, +%第一列是三维坐标形式,即d3intersection +%第二列是裂缝面参数形式,即anothersection +pointvsregion=cell(nfr+nfir,3);%利用元胞数组存储interarea函数的结果numofmesh, numvspoint,numofregion +fracrossfra=cell(nfr+nfir,nfr+nfir-1);%判断裂缝之间两交点坐标 +fratmaxfra=zeros(nfr+nfir,nfr+nfir-1);%判断裂缝之间交线参数的最大值 +fratminfra=zeros(nfr+nfir,nfr+nfir-1);%判断裂缝之间交线参数的最小值 +fracturemesh=cell(nf,1);%每一行是一条裂缝面上的网格剖分情况 + +%% 计算裂缝与基质网格相交情况 +for i=1:nfr + raopoint{i,1}= intersectionsolve_new_modified_r(f((5*i-4):(5*i),:),dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); + raopoint{i,2}= anosection( f((5*i-4):(5*i),:),raopoint{i,1} ); + [ pointvsregion{i,1},pointvsregion{i,2} ,pointvsregion{i,3}] = interarea( raopoint{i,1},dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); +end +% 不规则缝计算 +if nfir>0 + for i=1:nfir + raopoint{nfr+i,1}= intersectionsolve_new_modified_irr(fellip((5*i-4):(5*i),:),dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); + raopoint{nfr+i,2}= anosection( f((5*(nfr+i)-4):(5*(nfr+i)),:),raopoint{nfr+i,1} ); + [ pointvsregion{nfr+i,1},pointvsregion{nfr+i,2} ,pointvsregion{nfr+i,3}] = interarea( raopoint{nfr+i,1},dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); + end +end + +%% 计算裂缝之间相交线情况 +for i=1:nf + for j=1:nf + if i>nfr || j>nfr cross=zeros(2,3);tmax=0;tmin=0; + else +% [ cross,tmax,tmin ]=frac_cross_frac( f((5*i-4):(5*i),:),f((5*j-4):(5*j),:) ); + cross=zeros(2,3);tmax=0;tmin=0; + end + fracrossfra{i,j}=cross;fratmaxfra(i,j)=tmax;fratminfra(i,j)=tmin; + end +end +%% 计算裂缝被基质网格、其它裂缝与之相交后的网格分布情况,绘制二维裂缝平面参数坐标系上的网格分布情况 +% figure('color','w'); +addflag=zeros(nf,1);%乘2的幂次,防止因为裂缝条数较多,造成矩阵太大 +for i=1:nf + d3intersection=raopoint{i,1};anothersection=raopoint{i,2}; + [ mesh ] = frac_mat_mesh( d3intersection,anothersection,pointvsregion{i,2},pointvsregion{i,1} ); +% for j=1:nf +% [ mesh,d3intersection,anothersection,add_flag ]= frac_frac_mesh_modified(xrao,yrao,zrao,mesh,f(5*i-4,:),f(5*i-3,:),f(5*i-2,:),fracrossfra{i,j},fratmaxfra(i,j),fratminfra(i,j),d3intersection,anothersection,pointvsregion{i,2},pointvsregion{i,1} ); +% addflag(j,1)=addflag(j,1)+add_flag; +% end + raopoint{i,1} = d3intersection; raopoint{i,2} = anothersection;%由原来裂缝与网格的交点不断更新加入其它裂缝与该裂缝的交点 + fracturemesh{i,1}=mesh;subplot(nf,1,i);color_fill={'y','r','b','g'}; + plotmesh2D(mesh,raopoint{i,2},color_fill{1,mod(i,4)+1}); +end + +%% 绘制三维背景网格(基质网格)及裂缝网格分布 +%figure(2) +%network3D(dx,dy,dz,nx,ny,nz ); +%hold on; +figure('color','w'); +% plot_reservoir_3D(max(xrao),max(yrao),dz(1),1,1,nz); +% plot_reservoir_3D(dx(1),dy(1),dz(1),nx,ny,nz); +network3D(dx(1),dy(1),dz(1),nx,ny,nz); +hold on; + +% network3D_arbitrary(dx,dy,dz,nx,ny,nz); +hold on; +% refine; +% hold on; +for i=1:nf + % color_fill={'y','r','b','g','c','m'}; + % color_fill={'y','r','b','g'}; + % plotmesh3D( fracturemesh{i,1},raopoint{i,1},color_fill{1,mod(i,4)+1});hold on; + if i <= 30 + color_fill='b'; %流动屏障 +% elseif i <=19 +% color_fill='b'; %压裂缝 +if i == 2 || i == 9 + + rnf +elseif + color_fill='r'; %天然裂缝 + end +% plotmesh3D( fracturemesh{i,1},raopoint{i,1},color_fill{1,mod(i,4)+1});hold on; + plotmesh3D( fracturemesh{i,1},raopoint{i,1},color_fill);hold on; +end +% % % basic_node_coord = [0,0,0]; +% % % x_length = 700; +% % % y_length = 800; +% % % z_length = 10; +% % % nodes_domain = [basic_node_coord;] +% % % fill3(x,y,z,'w'); +refine1; +% refine_chengjiepaper; +% refine; +% plot_reservoir_3D(max(xrao),max(yrao),dz(1),1,1,nz); +% plot_reservoir_3D(dx(1),dy(1),dz(1),nx,ny,nz); +xlabel('x, m','FontSize',12); +ylabel('y, m','FontSize',12); +zlabel('z, m','FontSize',12); +% +zticks([0, 5]); +% yticks(-1:0.5:1); +% 设置x轴和y轴的刻度标签 +zticklabels({'-2005', '-2000'}); +% yticklabels({'-1', '-0.5', '0', '0.5', '1'}); +% 关闭刻度标签的旋转 +% xticklabels('Rotation', 0); +% yticklabels('Rotation', 0); + +axis equal; +% refine; +% hold on +% network3D(dx(1),dy(1),dz(1),nx,ny,nz); +% network3D(max(xrao),max(yrao),max(zrao),1,1,1 ); +% network3D(10,10,10,2,1,1 ); +% network3D(10,10,10,6,1,2 ); +alpha(1) +view(2) +% axis([min(xrao),max(xrao),min(yrao),max(yrao),min(zrao),max(zrao)]); +% axis equal +% % hold off; +%% 确定裂缝编号及连接情况,计算传导系数 +if modelflag==1 %表示用2014, Monifar + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,cell_divided_by_fracture_flag ] = connections_2014( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,pori,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; +elseif modelflag==4 %表示用 PEDFM + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_new( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==5 % 表示实用型PEDFM + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_new_new( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,pori,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==6 % 表示基于非结构网格pEDFM的validation model + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag] = connections_unstructured_EDFM( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag)*1/2; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag)*1/2; + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==7 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_EX1_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==8 % 表示基于非结构网格pEDFM的validation model + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio,fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX1_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.fractureCell_matrixCell_addedMatrixCell = fractureCell_matrixCell_addedMatrixCell; + r.volume_ratio=volume_ratio; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag).*volume_ratio; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag).*(1-volume_ratio); + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==9 % EX2 不同情况下 pEDFM 解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_EX2_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==10 % 表示基于非结构网格pEDFM的 EX2 参考解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio,fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX2_1to3_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.fractureCell_matrixCell_addedMatrixCell = fractureCell_matrixCell_addedMatrixCell; + r.volume_ratio=volume_ratio; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag).*volume_ratio; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag).*(1-volume_ratio); + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==11 % 表示基于非结构网格pEDFM的 EX2 参考解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio,fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX2_1to2_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.fractureCell_matrixCell_addedMatrixCell = fractureCell_matrixCell_addedMatrixCell; + r.volume_ratio=volume_ratio; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag).*volume_ratio; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag).*(1-volume_ratio); + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==12 % 表示基于非结构网格pEDFM的 EX2 参考解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio,fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX2_1to4_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + r.number_of_adding=number_of_adding; + nmc = nmc+number_of_adding; + r.nmc = nmc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.vf=vf; + r.fractureCell_matrixCell_addedMatrixCell = fractureCell_matrixCell_addedMatrixCell; + r.volume_ratio=volume_ratio; + % 劈分或增加 + vm_the_added_cell = vm(cell_divided_by_fracture_flag).*volume_ratio; + vm(cell_divided_by_fracture_flag) = vm(cell_divided_by_fracture_flag).*(1-volume_ratio); + vm = [vm; vm_the_added_cell]; + r.V=[vm;vf]; + pori = [pori; pori(cell_divided_by_fracture_flag)]; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; +elseif modelflag==13 % 表示基于非结构网格pEDFM的 EX2 参考解 + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_TPFA_MFD( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,perm,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +elseif modelflag==14 %表示用 PEDFM + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections_PEDFM_new_twofractures( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,frac_information, coordinates); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; +else + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff ] = connections( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,Kf,Wf,Porf,dxv,dyv,dzv,NTG ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%基质网格和裂缝单元总数 + r.nex=nex;%具有流体交换的总数 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%裂缝单元对应的渗透率 + r.wf=wf;%裂缝单元对应的缝宽 + r.N=N; + r.T=T; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; + %% 计算传导系数 + % dxvector=ones(1,nx);dyvector=ones(1,ny);dzvector=ones(1,nz); + % [ transmatrix,transfracture ] = trans(dxvector,dyvector,dzvector ,nx,ny,nz,nf,fracnumber,lengthvsfra,disvsfra,fracstart,connect_infrac,corevsfra,matrixvsfra,raopoint,f ); + %% 计算基质与裂缝之间窜流的相关系数 + if modelflag==2 %表示用2018, Rao + [ G,Gfm,Gff,Gf,Ap,Apf ]=interflowmf1(r,dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); + [Ka, M, F2M , MF_coef] = transFunc_aniso(nc,coordinates, nodes, connectmf,Ap,Apf, matrixvsfra,N,T,kx, ky,kz); + r.Ka = Ka; + r.M = M; + r.F2M = F2M; + r.MF_coef = MF_coef; + elseif modelflag==5 %表示用 Modified Rao, steady, 2018 + [ G,Gfm,Gff,Gf,Ap,Apf ] = interflowmf_MODIFIED(r,dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); + [Ka, M, F2M , MF_coef] = transFunc_aniso_MODIFIED(nc,coordinates, nodes, connectmf,Ap,Apf, matrixvsfra,N,T,kx, ky,kz); + r.Ka = Ka; + r.M = M; + r.F2M = F2M; + r.MF_coef = MF_coef; + % [ G,Gfm,Gff,Gf,Ap,Apf,Apmt,Apft ]=interflowmf1_transient(dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); + end + % [ G,Gfm,Gff,Gf,Ap,Apf ]=interflowmf1(dxv,dyv,dzv,matrixvsfra,connectmf,fracstart,fracnumber,raopoint,f,nodes,coordinates,nf,corevsfra ); + %% + + % r.MF_deltt=MF_deltt; +end +%% 计算深度(以下平面为基准计算得到的高度,值为正数) +z=[zm;zf]; +r.z=z; + + +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +r.rpt = rpt; +r.Porf = Porf; +pori = [pori; porf]; +r.pori = pori; +r.por = @(p)por(p, prpor, pori, cpor, prporf, cporf, r.rpt); +tpre=toc; +r.tpre=tpre; diff --git a/generic extended/GridProp_new.m b/generic extended/GridProp_new.m new file mode 100644 index 0000000..b196bc2 --- /dev/null +++ b/generic extended/GridProp_new.m @@ -0,0 +1,230 @@ +function r = GridProp_new(modelflag, r, kx, ky, kz, f, frac_information, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca, valid_grids) +tic; +%% ȡ +nx = r.nx; +ny = r.ny; +nz = r.nz; +dx = r.dx; +dy = r.dy; +dz = r.dz; +NTG = r.NTG; +coordinates = r.coordinates; +nodes = r.nodes; +nP = r.nP; +nmc = r.nmc; +dxv = r.dxv; +dyv = r.dyv; +dzv = r.dzv; +zm = r.zm; +vm = r.vm; +xrao = r.xrao; +yrao = r.yrao; +zrao = r.zrao; +cell_mid_coords = r.cell_mid_coords; +% +kx(valid_grids==0)=1e-12; +ky(valid_grids==0)=1e-12; +kz(valid_grids==0)=1e-12; +% +r.modelflag=modelflag; +r.kx = kx; +r.ky = ky; +r.kz = kz; +r.Kf = Kf;%ѷӦ͸ʣѷ쵥Ԫ +r.Wf = Wf;%ѷӦķѷ쵥Ԫ +r.cf = cf; +r.ca = ca; +% r.co=co; +r.cpor=cpor; +r.cporf=cporf; +r.frac_information = frac_information; + +% % % [coordinates, nodes, nP, nE, dxv, dyv,dzv,zm,vm,xrao,yrao,zrao,cell_mid_coordinates] = GenerateNode_final(dx, dy,dz ,nx,ny,nz,NTG); +% % % r.coordinates = coordinates; +% % % r.nodes = nodes; +% % % nmc=nE; +% % % r.nmc =nmc; +% % % r.dxv = dxv; +% % % r.dyv = dyv; +% % % r.dzv = dzv; +% % % r.vm=vm; +% % % r.cell_mid_coordinates=cell_mid_coordinates; +%% ѷ +%% ؼʼ +m=size(f,1); +n=size(fellip,1); +nfr=m/5;%ιѷ +nfir=n/5;%ѷȻԲ +r.nfr=nfr; r.nfir=nfir; +nf=nfr+nfir; +r.nf=nf; +if (nfir~=0) && (nfr~=0) + f=[f;fellip]; +else if nfr~=0 + f=f; +else if nfir~=0 + f=fellip; +else error('Dr Rao reminds you that there is no information about fractures'); +end +end +end + +%d3intersection=-1000*ones(1000,3);%-1000ʶ +raopoint=cell(nfr+nfir,2);%Ԫ洢ÿѷߵĽ㣬 +%һάʽd3intersection +%ڶѷʽanothersection +pointvsregion=cell(nfr+nfir,3);%Ԫ洢interareaĽnumofmesh, numvspoint,numofregion +fracrossfra=cell(nfr+nfir,nfr+nfir-1);%жѷ֮ +fratmaxfra=zeros(nfr+nfir,nfr+nfir-1);%жѷ֮佻ֵ߲ +fratminfra=zeros(nfr+nfir,nfr+nfir-1);%жѷ֮佻߲Сֵ +fracturemesh=cell(nf,1);%ÿһһѷϵʷ + +%% ѷཻ +for i=1:nfr + raopoint{i,1}= intersectionsolve_new_modified_r(f((5*i-4):(5*i),:),dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); + raopoint{i,2}= anosection( f((5*i-4):(5*i),:),raopoint{i,1} ); + [ pointvsregion{i,1},pointvsregion{i,2} ,pointvsregion{i,3}] = interarea( raopoint{i,1},dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); +end +% +if nfir>0 + for i=1:nfir + raopoint{nfr+i,1}= intersectionsolve_new_modified_irr(fellip((5*i-4):(5*i),:),dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); + raopoint{nfr+i,2}= anosection( f((5*(nfr+i)-4):(5*(nfr+i)),:),raopoint{nfr+i,1} ); + [ pointvsregion{nfr+i,1},pointvsregion{nfr+i,2} ,pointvsregion{nfr+i,3}] = interarea( raopoint{nfr+i,1},dx,dy,dz,nx,ny,nz,xrao,yrao,zrao ); + end +end + +%% ѷཻ֮ +for i=1:nf + for j=1:nf + if i>nfr || j>nfr cross=zeros(2,3);tmax=0;tmin=0; + else + % [ cross,tmax,tmin ]=frac_cross_frac( f((5*i-4):(5*i),:),f((5*j-4):(5*j),:) ); + cross=zeros(2,3);tmax=0;tmin=0; + end + fracrossfra{i,j}=cross;fratmaxfra(i,j)=tmax;fratminfra(i,j)=tmin; + end +end +%% ѷ챻ѷֲཻ֮,ƶάѷƽϵϵֲ +% figure('color','w'); +addflag=zeros(nf,1);%2ݴΣֹΪѷ϶࣬ɾ̫ +for i=1:nf + d3intersection=raopoint{i,1};anothersection=raopoint{i,2}; + [ mesh ] = frac_mat_mesh( d3intersection,anothersection,pointvsregion{i,2},pointvsregion{i,1} ); + % for j=1:nf + % [ mesh,d3intersection,anothersection,add_flag ]= frac_frac_mesh_modified(xrao,yrao,zrao,mesh,f(5*i-4,:),f(5*i-3,:),f(5*i-2,:),fracrossfra{i,j},fratmaxfra(i,j),fratminfra(i,j),d3intersection,anothersection,pointvsregion{i,2},pointvsregion{i,1} ); + % addflag(j,1)=addflag(j,1)+add_flag; + % end + raopoint{i,1} = d3intersection; raopoint{i,2} = anothersection;%ԭѷĽ㲻ϸ¼ѷѷĽ + fracturemesh{i,1}=mesh; + % subplot(nf,1,i);color_fill={'y','r','b','g'}; + % plotmesh2D(mesh,raopoint{i,2},color_fill{1,mod(i,4)+1}); +end + +%% ά񣨻񣩼ѷֲ +%figure(2) +%network3D(dx,dy,dz,nx,ny,nz ); +%hold on; +figure('color','w'); +% plot_reservoir_3D(max(xrao),max(yrao),dz(1),1,1,nz); +% plot_reservoir_3D(dx(1),dy(1),dz(1),nx,ny,nz); +network3D(dx(1),dy(1),dz(1),nx,ny,nz); +% network3D(1000,700,10,1,1,1); +% network3D(800,300,10,1,1,1); +hold on; + +% network3D_arbitrary(dx,dy,dz,nx,ny,nz); +% refine; +% hold on; +for i=1:nf + % color_fill={'y','r','b','g','c','m'}; + % color_fill={'y','r','b','g'}; + % plotmesh3D( fracturemesh{i,1},raopoint{i,1},color_fill{1,mod(i,4)+1});hold on; + if i <= 100 + color_fill='b'; % + % elseif i <=19 + % color_fill='b'; %ѹѷ +% if i == 2 || i == 9 +% color_fill='r'; +% end + else + color_fill='k'; %Ȼѷ + end + % plotmesh3D( fracturemesh{i,1},raopoint{i,1},color_fill{1,mod(i,4)+1});hold on; + plotmesh3D( fracturemesh{i,1},raopoint{i,1},color_fill);hold on; +end +% % % basic_node_coord = [0,0,0]; +% % % x_length = 700; +% % % y_length = 800; +% % % z_length = 10; +% % % nodes_domain = [basic_node_coord;] +% % % fill3(x,y,z,'w'); +% refine1; +% refine_chengjiepaper; +% refine; +% plot_reservoir_3D(max(xrao),max(yrao),dz(1),1,1,nz); +% plot_reservoir_3D(dx(1),dy(1),dz(1),nx,ny,nz); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +zlabel('z, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +% +% zticks([0, 5]); +% yticks(-1:0.5:1); +% xyĿ̶ȱǩ +% zticklabels({'-2005', '-2000'}); +% yticklabels({'-1', '-0.5', '0', '0.5', '1'}); +% رտ̶ȱǩת +% xticklabels('Rotation', 0); +% yticklabels('Rotation', 0); +% axis equal; +% refine; +% hold on +% network3D(dx(1),dy(1),dz(1),nx,ny,nz); +% network3D(max(xrao),max(yrao),max(zrao),1,1,1 ); +% network3D(10,10,10,2,1,1 ); +% network3D(10,10,10,6,1,2 ); +alpha(1) +view(3) +% axis([min(xrao),max(xrao),min(yrao),max(yrao),min(zrao),max(zrao)]); +% axis equal +% % hold off; +%% ȷѷż㴫ϵ +if modelflag==1 %ʾ2014, Monifar + [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac, N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,cell_divided_by_fracture_flag, flowArea, perm, matrixflag, T_diff ] = connections_2014( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,pori,Kf,Wf,Porf,dxv,dyv,dzv,coordinates,nodes,NTG,addflag,valid_grids ); + nfc=size(fracnumber,1); + nex=size(T,1); + r.nfc=nfc; + nc=nfc+nmc; + r.nc=nc;%ѷ쵥Ԫ + r.nex=nex;%彻 + kf=Kf(fcinff); + wf=Wf(fcinff); + r.kf=kf;%ѷ쵥ԪӦ͸ + r.wf=wf;%ѷ쵥ԪӦķ + r.N=N; + r.T=T; + r.T_convection=T_convection; + r.T_diff = T_diff; + r.vf=vf; + r.V=[vm;vf]; + r.porf=porf; + r.fcff=fcff; + r.mat_frac=mat_frac; + r.cell_divided_by_fracture_flag = cell_divided_by_fracture_flag; + r.flowArea=flowArea; + r.perm=perm; + r.matrixflag=matrixflag; +end +%% ȣƽΪ׼õĸ߶ȣֵΪ +z=[zm;zf]; +r.z=z; +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +r.rpt = rpt; +r.Porf = Porf; +pori = [pori; porf]; +r.pori = pori; +r.por = @(p)por(p, prpor, pori, cpor, prporf, cporf, r.rpt); +tpre=toc; +r.tpre=tpre; diff --git a/generic extended/calculate_relative_errors.m b/generic extended/calculate_relative_errors.m new file mode 100644 index 0000000..4726f83 --- /dev/null +++ b/generic extended/calculate_relative_errors.m @@ -0,0 +1,35 @@ +function [ relative_errors ] = calculate_relative_errors( results_EDFM_matrix, results_pEDFM_case1, results_pEDFM_case2, r_EDFMs) +%CALCULATE_RELATIVE_ERRORS ˴ʾйش˺ժҪ +% ˴ʾϸ˵ +% % % EDFM_result = results_EDFM_matrix(:,1); +% % % pEDFM_result_case1 = results_pEDFM_case1(:,2); +% % % modified_EDFM_result = results_pEDFM_case2(:,3); +% % % new_EDFM_result = results_EDFMs_matrix(:,4); +% % % LGR_result = results_LGR(:,1); + +EDFMs_cell_mid_point_coordinates = r_EDFMs.cell_mid_coordinates; +% LGR_cell_mid_point_coordinates = r_LGR.cell_mid_coordinates; + +num_of_cells = size(EDFMs_cell_mid_point_coordinates,1); +% the_reference_solution_for_comparison = zeros(num_of_cells,1); + +% % % for i = 1:num_of_cells +% % % [a,b]=min((LGR_cell_mid_point_coordinates(:,1)- EDFMs_cell_mid_point_coordinates(i,1)).^2+(LGR_cell_mid_point_coordinates(:,2)- EDFMs_cell_mid_point_coordinates(i,2)).^2); +% % % the_reference_solution_for_comparison(i,1) = LGR_result(b(1),1); +% % % end +% +fracture_perm = [ 100, 700, 4000, 20000, 100000]; +relative_errors = zeros(2,5); +for j = 1:5 +relative_errors(1,j) = norm(results_EDFM_matrix(1:num_of_cells,j)-results_pEDFM_case2(1:num_of_cells,j))/norm(results_pEDFM_case2(1:num_of_cells,j)); +relative_errors(2,j) = norm(results_pEDFM_case1(1:num_of_cells,j)-results_pEDFM_case2(1:num_of_cells,j))/norm(results_pEDFM_case2(1:num_of_cells,j)); + +% relative_errors(1,2) = norm(pEDFM_result(1:num_of_cells,1)-the_reference_solution_for_comparison(:,1))/norm(the_reference_solution_for_comparison(:,1)); +% relative_errors(1,3) = norm(modified_EDFM_result(1:num_of_cells,1)-the_reference_solution_for_comparison(:,1))/norm(the_reference_solution_for_comparison(:,1)); +% relative_errors(1,4) = norm(new_EDFM_result(1:num_of_cells,1)-the_reference_solution_for_comparison(:,1))/norm(the_reference_solution_for_comparison(:,1)); +end +% relative_errors(1,5) = norm(LGR_result(:,1)-the_reference_solution_for_comparison(:,1))/norm(the_reference_solution_for_comparison(:,1)); + + +end + diff --git a/generic extended/calculate_relative_errors_vs_cellsize.m b/generic extended/calculate_relative_errors_vs_cellsize.m new file mode 100644 index 0000000..7c2b4b8 --- /dev/null +++ b/generic extended/calculate_relative_errors_vs_cellsize.m @@ -0,0 +1,72 @@ +function [ relative_errors ] = calculate_relative_errors_vs_cellsize( results_EDFM_matrix, results_pEDFM_case1, results_pEDFM_case2, results_reference, r_0_5m, r_1m, r_2m, r_4m) +% r_EDFMs_0_25, r_EDFMs_0_5, r_EDFMs_1, r_EDFMs_2, r_EDFMs_4 +%CALCULATE_RELATIVE_ERRORS ˴ʾйش˺ժҪ +% ˴ʾϸ˵ +% % % EDFM_result = results_EDFM_matrix(:,1); +% % % pEDFM_result_case1 = results_pEDFM_case1(:,2); +% % % modified_EDFM_result = results_pEDFM_case2(:,3); +% % % new_EDFM_result = results_EDFMs_matrix(:,4); +% % % LGR_result = results_LGR(:,1); + +% EDFMs_cell_mid_point_coordinates = r_EDFMs.cell_mid_coordinates; +% % LGR_cell_mid_point_coordinates = r_LGR.cell_mid_coordinates; +% +% num_of_cells = size(EDFMs_cell_mid_point_coordinates,1); +% the_reference_solution_for_comparison = zeros(num_of_cells,1); + +% % % for i = 1:num_of_cells +% % % [a,b]=min((LGR_cell_mid_point_coordinates(:,1)- EDFMs_cell_mid_point_coordinates(i,1)).^2+(LGR_cell_mid_point_coordinates(:,2)- EDFMs_cell_mid_point_coordinates(i,2)).^2); +% % % the_reference_solution_for_comparison(i,1) = LGR_result(b(1),1); +% % % end +% +x_data = [0.5, 1, 2, 5]; +relative_errors = zeros(2,4); +for j = 1:4 +% if j == 1 r_EDFMs = r_EDFMs_0_25; end; +% if j == 2 r_EDFMs = r_EDFMs_0_5; end; +% if j == 3 r_EDFMs = r_EDFMs_1; end; +% if j == 4 r_EDFMs = r_EDFMs_2; end; +% if j == 5 r_EDFMs = r_EDFMs_4; end; + if j == 1 r_EDFMs = r_0_5m; end; + if j == 2 r_EDFMs = r_1m; end; + if j == 3 r_EDFMs = r_2m; end; + if j == 4 r_EDFMs = r_4m; end; +% if j == 5 r_EDFMs = r_EDFMs_4; end; + +EDFMs_cell_mid_point_coordinates = r_EDFMs.cell_mid_coordinates; +% LGR_cell_mid_point_coordinates = r_LGR.cell_mid_coordinates; +num_of_cells = size(EDFMs_cell_mid_point_coordinates,1); +the_numnering = (1:(r_EDFMs.nx*r_EDFMs.ny*r_EDFMs.nz))'; +the_numnering(r_EDFMs.cell_divided_by_fracture_flag)=[]; +% relative_errors(1,j) = norm(results_EDFM_matrix(1:num_of_cells,j)-results_pEDFM_case2(1:num_of_cells,j))/norm(results_pEDFM_case2(1:num_of_cells,j)); +% relative_errors(2,j) = norm(results_pEDFM_case1(1:num_of_cells,j)-results_pEDFM_case2(1:num_of_cells,j))/norm(results_pEDFM_case2(1:num_of_cells,j)); + +% relative_errors(1,j) = sqrt(sum((results_EDFM_matrix(the_numnering,j)-results_reference(the_numnering,j)).^2)/size(the_numnering,1)); +% relative_errors(2,j) = sqrt(sum((results_pEDFM_case1(the_numnering,j)-results_reference(the_numnering,j)).^2)/size(the_numnering,1)); +% relative_errors(3,j) = sqrt(sum((results_pEDFM_case2(the_numnering,j)-results_reference(the_numnering,j)).^2)/size(the_numnering,1)); +% +relative_errors(1,j) = norm(results_EDFM_matrix(the_numnering,j)-results_reference(the_numnering,j))/norm(1-results_reference(the_numnering,j)); +relative_errors(2,j) = norm(results_pEDFM_case1(the_numnering,j)-results_reference(the_numnering,j))/norm(1-results_reference(the_numnering,j)); +relative_errors(3,j) = norm(results_pEDFM_case2(the_numnering,j)-results_reference(the_numnering,j))/norm(1-results_reference(the_numnering,j)); + +% relative_errors(1,2) = norm(pEDFM_result(1:num_of_cells,1)-the_reference_solution_for_comparison(:,1))/norm(the_reference_solution_for_comparison(:,1)); +% relative_errors(1,3) = norm(modified_EDFM_result(1:num_of_cells,1)-the_reference_solution_for_comparison(:,1))/norm(the_reference_solution_for_comparison(:,1)); +% relative_errors(1,4) = norm(new_EDFM_result(1:num_of_cells,1)-the_reference_solution_for_comparison(:,1))/norm(the_reference_solution_for_comparison(:,1)); +end +% relative_errors(1,5) = norm(LGR_result(:,1)-the_reference_solution_for_comparison(:,1))/norm(the_reference_solution_for_comparison(:,1)); +figure('color','w'); +plot(x_data,relative_errors(1,:),'k^-'); +hold on; +plot(x_data,relative_errors(2,:),'rs-'); +hold on; +plot(x_data,relative_errors(3,:),'bo-'); +hold on; +plot(x_data,relative_errors(3,:),'gv-'); +hold off; +xlabel('grid size, m'); +ylabel('L_2 relative error, dimensionless'); +legend('EDFM', 'pEDFM-SDP', 'pEDFM-MTM', 'pEDFM-continuous'); + + +end + diff --git a/generic extended/connections_PEDFM_EX1_solutions.m b/generic extended/connections_PEDFM_EX1_solutions.m new file mode 100644 index 0000000..3b360a7 --- /dev/null +++ b/generic extended/connections_PEDFM_EX1_solutions.m @@ -0,0 +1,642 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff] = connections_PEDFM_EX1_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,addflag,frac_information,coordinates) +% úԸѷţ洢ӹϵʣǰĹؼ +% ͬڶάǶʽɢѷģͣάģУѷǶάƽ棬֮ӹϵӣ +%ܼ򵥵ôӻжڣѷزڣڣѷȴһ +%ԭȥȷconnectionsȡ· +%һ:xinkȥк󣬰θijѷţͬʱ洢ѷڵĻ +%ڶ:洢ÿѷ߽磬߽糤ȣĵ꣬ĵ㵽߽ľ룬Ϊ׼ +%:ѷ˳򣬰ձ߽ͬı߽磬ѷڵ +%matrixvsfraаѷŵ +%fracnumberűʾѷţݱʾĵ +%areavsfraűʾѷţݱʾѷ +%ÿһߣȻ˳򷴹һ +%lengthvsfraűʾѷţݱʾѷĸ߳ +%corevsfraűʾѷţݱʾѷ +%disvsfraűʾѷţݱʾѷĵߵľ +matrixvsfra=zeros(nx*ny*nz,10);%Ϊ˼ٸþĴСʵһУһ㲻г10ѷ +fracnumber=zeros(1000,20);%ʵѷһ㲻ᳬ1000Ҳɸʵı +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf + rownum(i)=size(fracturemesh{i,1},1); +end +%% ѷһţӸӦĻ +q=1; +fracstart=zeros(nf+1,1);%ʾܱУÿѷʼĺ +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; + for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%qǸѷ + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); + % indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%ѷŸӦĻ + q=q+1; + end + end +end +fracstart(nf+1)=q;%ѷ+1 +fracnumber(q:1000,:)=[]; + + +%% ѷ쵥ԪĻɸѡ,д +m=size(matrixvsfra,1); +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %ɸѡѷĻ + % if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %洢û + connectmf{cc,1} = i; + %Щѷ/ѷ쵥Ԫ˳ + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; + end +end + +%% һѷѷ߽ȵ +% edgevsfra=cell(nf,1); +% +fractureCellType = zeros(q-1,1); +theNumber = 3; +fractureCellType = repmat((1:theNumber)',(q-1)/theNumber,1); +% +normalvec=zeros(q-1,3);%unit +areavsfra=zeros(q-1,1);%q-1ѷ +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,1);%ѷ͸ +Wf=zeros(q-1,1);%ѷ쵥Ԫ +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +avtran=zeros(q-1,1);%ѷƽںļ򻯼 +fcinff=zeros(q-1,1);%ʾѷ쵥Ԫڵѷ +zf=zeros(q-1,1);%ѷ쵥Ԫ߶ȣ±Ϊ׼ +vf=zeros(q-1,1);%ѷ쵥Ԫ +porf=zeros(q-1,1);%ѷ쵥ԪĿ϶ +for i=1:1:q-1 %ѷв + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 + for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if Kf(j)==0 || Kf(k)==0 + hartran=0; + else + tran1=Kf(j)*wf(i)*lengthcat/disk; + tran2=Kf(k)*wf(i)*lengthcat/disj; + % hartran=length/(disk+disj);%ȡƽһ + hartran=tran1*tran2/(tran1+tran2); + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 + % lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + if sumtran==0 Tmff=[Tmff; 0]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + end + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% ϵ +nmc=nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +S_ex=zeros(nmm,1);% 彻 + +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +c = 0; +for k= 1 : nz + for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); + % 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)/(Kx(index)*dxv(indexn) + Kx(indexn)*dxv(index)); + S_ex(c)=dzv(index)*dyv(index); + end + end +end + +for k= 1 : nz + for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + S_ex(c)=dzv(index)*dxv(index); + end + end +end + +for i = 1 : nx + for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + S_ex(c)=dxv(index)*dyv(index); + end + end +end + + + + +%% 2014ķΪƵʽ +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +for i=1:nx*ny*nz % + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + Knnc=kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=areavsfra(matrixvsfra(i,j));% ˴ԭʼǶʽһԭʼ + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); + % dn=abs(dn);%ӰֵЧ + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + % Ϊ޸ + % Dn=0.9; + % Dn=2.5; + raoT=Knnc*Annc/Dn; + Tinterflow=[Tinterflow;raoT]; + end + end +end + +%% ͶӰǶʽ +nmc=size(matrixvsfra,1); +%彻ϵѷ쵥ԪͶӰ֮ +S_p=zeros(nmm,1); +% ΪͶӰ¼ӵF-M connections +Nmf_projection=[]; +Tmf_projection=[]; +for i=1:nmc + matnodes=nodes(i,:); + dx_grid=dxv(i); + dy_grid=dyv(i); + dz_grid=dzv(i); + grid_core=mean(coord(matnodes,:));%û + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>=1) %Ƚn=1ʱ + selected_face=zeros(1,3); + the_frac_cell=matrixvsfra(i,indice);%ѷ쵥Ԫ + % if Kf(the_frac_cell) <= (kx(i)*ky(i)*kz(i))^(1/3);% + % else + which_frac=fcff{1,2}(the_frac_cell,1);%ѷ쵥Ԫڵѷ + core_frac_cell=fcff{1,4}(the_frac_cell,1:3);%ѷ쵥Ԫ + area_frac_cell=fcff{1,8}(the_frac_cell,1);%ѷ쵥Ԫ + rao_struct=[i,the_frac_cell+nmc]; + pos_rao=find_row(rao_struct,Ninterflow); + %ѷ淨 + D_value=core_frac_cell-grid_core;% OF + vector_1=f(5*which_frac-3,:); + vector_2=f(5*which_frac-2,:); + n_vector_1=cross(vector_1,vector_2); + n_vector_2=-cross(vector_1,vector_2); + if (dot(n_vector_1,D_value))>=0 + n_vector=n_vector_1; + else + n_vector=n_vector_2; + end + % ͶӰ + area_frac_cell_x=abs(area_frac_cell*dot([1,0,0],n_vector)/norm(n_vector)); + area_frac_cell_y=abs(area_frac_cell*dot([0,1,0],n_vector)/norm(n_vector)); + area_frac_cell_z=abs(area_frac_cell*dot([0,0,1],n_vector)/norm(n_vector)); + %% ----------------------% fractureCellTypeѡȡͶӰ-------------------------------------- + % selected_face(1)=4; nei_grid_x=i+1; + % selected_face(2)=5; nei_grid_y=i+nx; + % selected_face(3)=6;nei_grid_z=i+nx*ny; + %% ѡַ + selectedMethod = 1; + %% method 1 + if selectedMethod == 1 + if fractureCellType(the_frac_cell) == 1 + nei_grid_x=i-1;nei_grid_y=i-nx;nei_grid_z=i+nx*ny; + end + if fractureCellType(the_frac_cell) == 2 + nei_grid_x=i-1;nei_grid_y=i-nx;nei_grid_z=i+nx*ny; + end + if fractureCellType(the_frac_cell) == 3 + nei_grid_x=i+1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + end + struc_x=[i,nei_grid_x]; + struc_y=[i,nei_grid_y]; + struc_z=[i,nei_grid_z]; + end + %% method 2 + if selectedMethod == 2 + if fractureCellType(the_frac_cell) == 1 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + end + if fractureCellType(the_frac_cell) == 2 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + end + if fractureCellType(the_frac_cell) == 3 + nei_grid_x=i+1;nei_grid_y=i-nx;nei_grid_z=i+nx*ny; + end + struc_x=[i,nei_grid_x]; + struc_y=[i,nei_grid_y]; + struc_z=[i,nei_grid_z]; + end + %% method 3 + if selectedMethod == 3 + if fractureCellType(the_frac_cell) == 1 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + struc_x=[i,nei_grid_x]; + struc_y=[i,i];% ൱û + struc_z=[i,nei_grid_z]; + end + if fractureCellType(the_frac_cell) == 2 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + struc_x=[i,nei_grid_x]; + struc_y=[i,nei_grid_y];area_frac_cell_y = area_frac_cell_y*2;% fractureCellType(the_frac_cell) == 1ʱarea_frac_cell_y + struc_z=[i,nei_grid_z]; + end + if fractureCellType(the_frac_cell) == 3 + nei_grid_x=i+1;nei_grid_y=i-nx;nei_grid_z=i+nx*ny; + struc_x=[i,nei_grid_x]; + struc_y=[i,nei_grid_y]; + struc_z=[i,nei_grid_z]; + end + end + %% ----------------------% ͶӰӼʼ--------------------------------------------------------------- + %% x direction +% struc_x=[i,nei_grid_x]; + pos=find_row(struc_x,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_x; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_x)*ky(nei_grid_x)*kz(nei_grid_x))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_x,:); + nei_grid_core=mean(coord(added_matnodes,:));%û + % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ + % dis_added=norm(nei_grid_core-core_frac_cell); + % T_added=Knnc*area_frac_cell_x/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_x/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); + % T_added=0;% + % T_added=0;% + % T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_x,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + end + %% y direction +% struc_y=[i,nei_grid_y]; + pos=find_row(struc_y,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_y; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_y)*ky(nei_grid_y)*kz(nei_grid_y))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_y,:); + nei_grid_core=mean(coord(added_matnodes,:));%û + % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ + % dis_added=norm(nei_grid_core-core_frac_cell); + % T_added=Knnc*area_frac_cell_y/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_y/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); + % T_added=0;% + % T_added=0.002;% + % T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_y,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + end + + %% z direction +% struc_z=[i,nei_grid_z]; + pos=find_row(struc_z,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_z; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_z)*ky(nei_grid_z)*kz(nei_grid_z))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_z,:); + nei_grid_core=mean(coord(added_matnodes,:));%û + % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ + % dis_added=norm(nei_grid_core-core_frac_cell); + % T_added=Knnc*area_frac_cell_z/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_z/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); + % T_added=0;% + % T_added=0.0;% + % T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_z,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + end + + end + end +end +%% ӵĸĽ +im_N=[]; +im_T=[]; +% % % q=length(Kf)+1; +% % % for i=1:(q-1)/2%q-1ѷ쵥Ԫ +% % % for j=(q-1)/2+1:(q-1) +% % % if abs(corevsfra(j,2)-corevsfra(i,2))<=1e-2 +% % % im_N=[im_N;i+nmc,j+nmc]; +% % % % im_T=[im_T;0]; +% % % % im_T=[im_T;0.0039604]; +% % % % im_T=[im_T;(((Kf(i))^(-1)+(1e-3)^(-1)+(1e-3)^(-1)+(Kf(j))^(-1))/4)^(-1)*2*2/0.4]; +% % % im_T=[im_T;(((Kf(i))^(-1)+(1e-3)^(-1)+(1e-3)^(-1)+(Kf(j))^(-1))/4)^(-1)*0.5*2/0.4]; +% % % % +% % % end +% % % end +% % % end +%% ͶӰ䴫 +for i=1:nmm + % Ϊֵûס + if (S_ex(i)-S_p(i))/S_ex(i)<=1e-2 + T(i)=0; + else + T(i)= T(i)*(S_ex(i)-S_p(i))/S_ex(i); + end +end +%% ʵpEDFM⴦ +% % % num_frac = size(frac_information,1)/3; +% % % for i = 1:num_frac +% % % if frac_information(3*i,1) <= (kx(1)*ky(1)*kz(1))^(1/3) +% % % % ѷ˵ +% % % one_end = frac_information(3*i-2,:); +% % % the_other_end = frac_information(3*i-1,:); +% % % % ֮ +% % % for j = 1:size(N,1) +% % % added_matnodes_1=nodes(N(j,1),:); +% % % one_node_connect=mean(coord(added_matnodes_1,:));%û +% % % added_matnodes_2=nodes(N(j,2),:); +% % % the_other_node_connect=mean(coord(added_matnodes_2,:)); +% % % coef_matrix = [ +% % % the_other_end(1)-one_end(1),-(the_other_node_connect(1)-one_node_connect(1)); +% % % the_other_end(2)-one_end(2),-(the_other_node_connect(2)-one_node_connect(2));]; +% % % coef_vector = [one_node_connect(1)-one_end(1);one_node_connect(2)-one_end(2);]; +% % % if abs(det(coef_matrix))<=1e-12 +% % % else +% % % parameters = coef_matrix\coef_vector; +% % % if parameters(1)>=0 && parameters(1)<=1 && parameters(2)>=0 && parameters(2)<=1 +% % % T(j) = (T(j)^-1 + frac_information(3*i,1)^-1)^-1; +% % % end +% % % end +% % % end +% % % end +% % % end +%% ľֱ +N = [N; Nmff+nmc; Nff+nmc;Ninterflow;Nmf_projection;im_N]; +T = [T; Tmff; Tff;Tinterflow;Tmf_projection;im_T]; +% N = [N; Nmff+nmc; Nff+nmc;Ninterflow;Nmf_projection]; +% T = [T; Tmff; Tff;Tinterflow;Tmf_projection]; +nex=size(N,1); +end + + diff --git a/generic extended/connections_PEDFM_EX2_solutions.m b/generic extended/connections_PEDFM_EX2_solutions.m new file mode 100644 index 0000000..bd9ffb3 --- /dev/null +++ b/generic extended/connections_PEDFM_EX2_solutions.m @@ -0,0 +1,707 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff] = connections_PEDFM_EX2_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,addflag,frac_information,coordinates) +% úԸѷţ洢ӹϵʣǰĹؼ +% ͬڶάǶʽɢѷģͣάģУѷǶάƽ棬֮ӹϵӣ +%ܼ򵥵ôӻжڣѷزڣڣѷȴһ +%ԭȥȷconnectionsȡ· +%һ:xinkȥк󣬰θijѷţͬʱ洢ѷڵĻ +%ڶ:洢ÿѷ߽磬߽糤ȣĵ꣬ĵ㵽߽ľ룬Ϊ׼ +%:ѷ˳򣬰ձ߽ͬı߽磬ѷڵ +%matrixvsfraаѷŵ +%fracnumberűʾѷţݱʾĵ +%areavsfraűʾѷţݱʾѷ +%ÿһߣȻ˳򷴹һ +%lengthvsfraűʾѷţݱʾѷĸ߳ +%corevsfraűʾѷţݱʾѷ +%disvsfraűʾѷţݱʾѷĵߵľ +matrixvsfra=zeros(nx*ny*nz,10);%Ϊ˼ٸþĴСʵһУһ㲻г10ѷ +fracnumber=zeros(1000,20);%ʵѷһ㲻ᳬ1000Ҳɸʵı +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf + rownum(i)=size(fracturemesh{i,1},1); +end +%% ѷһţӸӦĻ +q=1; +fracstart=zeros(nf+1,1);%ʾܱУÿѷʼĺ +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; + for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%qǸѷ + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); + % indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%ѷŸӦĻ + q=q+1; + end + end +end +fracstart(nf+1)=q;%ѷ+1 +fracnumber(q:1000,:)=[]; + + +%% ѷ쵥ԪĻɸѡ,д +m=size(matrixvsfra,1); +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %ɸѡѷĻ + % if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %洢û + connectmf{cc,1} = i; + %Щѷ/ѷ쵥Ԫ˳ + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; + end +end + +%% һѷѷ߽ȵ +% edgevsfra=cell(nf,1); +% +numberFractureCells = q-1; +% +normalvec=zeros(q-1,3);%unit +areavsfra=zeros(q-1,1);%q-1ѷ +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,1);%ѷ͸ +Wf=zeros(q-1,1);%ѷ쵥Ԫ +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +avtran=zeros(q-1,1);%ѷƽںļ򻯼 +fcinff=zeros(q-1,1);%ʾѷ쵥Ԫڵѷ +zf=zeros(q-1,1);%ѷ쵥Ԫ߶ȣ±Ϊ׼ +vf=zeros(q-1,1);%ѷ쵥Ԫ +porf=zeros(q-1,1);%ѷ쵥ԪĿ϶ +for i=1:1:q-1 %ѷв + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 + for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if Kf(j)==0 || Kf(k)==0 + hartran=0; + else + tran1=Kf(j)*wf(i)*lengthcat/disk; + tran2=Kf(k)*wf(i)*lengthcat/disj; + % hartran=length/(disk+disj);%ȡƽһ + hartran=tran1*tran2/(tran1+tran2); + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 + % lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + if sumtran==0 Tmff=[Tmff; 0]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + end + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% ϵ +nmc=nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +S_ex=zeros(nmm,1);% 彻 + +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +c = 0; +for k= 1 : nz + for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); + % 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)/(Kx(index)*dxv(indexn) + Kx(indexn)*dxv(index)); + S_ex(c)=dzv(index)*dyv(index); + end + end +end + +for k= 1 : nz + for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + S_ex(c)=dzv(index)*dxv(index); + end + end +end + +for i = 1 : nx + for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + S_ex(c)=dxv(index)*dyv(index); + end + end +end + + + + +%% 2014ķΪƵʽ +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +for i=1:nx*ny*nz % + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + Knnc=kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=areavsfra(matrixvsfra(i,j));% ˴ԭʼǶʽһԭʼ + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); + % dn=abs(dn);%ӰֵЧ + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + % Ϊ޸ + % Dn=0.9; + % Dn=2.5; + raoT=Knnc*Annc/Dn; + Tinterflow=[Tinterflow;raoT]; + end + end +end + +%% ͶӰǶʽ +nmc=size(matrixvsfra,1); +%彻ϵѷ쵥ԪͶӰ֮ +S_p=zeros(nmm,1); +% ΪͶӰ¼ӵF-M connections +Nmf_projection=[]; +Tmf_projection=[]; +for i=1:nmc + matnodes=nodes(i,:); + dx_grid=dxv(i); + dy_grid=dyv(i); + dz_grid=dzv(i); + grid_core=mean(coord(matnodes,:));%û + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>=1) %Ƚn=1ʱ + selected_face=zeros(1,3); + the_frac_cell=matrixvsfra(i,indice);%ѷ쵥Ԫ + % if Kf(the_frac_cell) <= (kx(i)*ky(i)*kz(i))^(1/3);% + % else + which_frac=fcff{1,2}(the_frac_cell,1);%ѷ쵥Ԫڵѷ + core_frac_cell=fcff{1,4}(the_frac_cell,1:3);%ѷ쵥Ԫ + area_frac_cell=fcff{1,8}(the_frac_cell,1);%ѷ쵥Ԫ + rao_struct=[i,the_frac_cell+nmc]; + pos_rao=find_row(rao_struct,Ninterflow); + %ѷ淨 + D_value=core_frac_cell-grid_core;% OF + vector_1=f(5*which_frac-3,:); + vector_2=f(5*which_frac-2,:); + n_vector_1=cross(vector_1,vector_2); + n_vector_2=-cross(vector_1,vector_2); + if (dot(n_vector_1,D_value))>=0 + n_vector=n_vector_1; + else + n_vector=n_vector_2; + end + % ͶӰ + area_frac_cell_x=abs(area_frac_cell*dot([1,0,0],n_vector)/norm(n_vector)); + area_frac_cell_y=abs(area_frac_cell*dot([0,1,0],n_vector)/norm(n_vector)); + area_frac_cell_z=abs(area_frac_cell*dot([0,0,1],n_vector)/norm(n_vector)); + %% ----------------------% fractureCellTypeѡȡͶӰ-------------------------------------- + % selected_face(1)=4; nei_grid_x=i+1; + % selected_face(2)=5; nei_grid_y=i+nx; + % selected_face(3)=6;nei_grid_z=i+nx*ny; + %% ͣ 12 13 14 + fractureCellType = zeros(numberFractureCells,1); + theNumber = 2; + fractureCellType = repmat((1:theNumber)',numberFractureCells/theNumber,1); + %% ѡַ + selectedMethod = 2; + %% when number = 2 + if theNumber == 2 + % method 1 + if selectedMethod == 1 + if fractureCellType(the_frac_cell) == 1 + nei_grid_x=i-1;nei_grid_y=i-nx;nei_grid_z=i+nx*ny; + end + if fractureCellType(the_frac_cell) == 2 + nei_grid_x=i+1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + end + struc_x=[i,nei_grid_x]; + struc_y=[i,nei_grid_y]; + struc_z=[i,nei_grid_z]; + end + % method 2 + if selectedMethod == 2 + if fractureCellType(the_frac_cell) == 1 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + end + if fractureCellType(the_frac_cell) == 2 + nei_grid_x=i+1;nei_grid_y=i-nx;nei_grid_z=i+nx*ny; + end + struc_x=[i,nei_grid_x]; + struc_y=[i,nei_grid_y]; + struc_z=[i,nei_grid_z]; + end + end + %% when number = 3 + if theNumber == 3 + % method 1 + if selectedMethod == 1 + if fractureCellType(the_frac_cell) == 1 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + end + if fractureCellType(the_frac_cell) == 2 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + end + if fractureCellType(the_frac_cell) == 3 + nei_grid_x=i+1;nei_grid_y=i-nx;nei_grid_z=i+nx*ny; + end + struc_x=[i,nei_grid_x]; + struc_y=[i,nei_grid_y]; + struc_z=[i,nei_grid_z]; + end + % method 2 + if selectedMethod == 2 + if fractureCellType(the_frac_cell) == 1 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + struc_x=[i,nei_grid_x]; + struc_y=[i,i];% ൱û + struc_z=[i,nei_grid_z]; + end + if fractureCellType(the_frac_cell) == 2 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + struc_x=[i,nei_grid_x]; + struc_y=[i,nei_grid_y];area_frac_cell_y = area_frac_cell_y*2;% fractureCellType(the_frac_cell) == 1ʱarea_frac_cell_y + struc_z=[i,nei_grid_z]; + end + if fractureCellType(the_frac_cell) == 3 + nei_grid_x=i+1;nei_grid_y=i-nx;nei_grid_z=i+nx*ny; + struc_x=[i,nei_grid_x]; + struc_y=[i,nei_grid_y]; + struc_z=[i,nei_grid_z]; + end + end + end + %% when number = 4 + if theNumber == 4 + % method 1 + if selectedMethod == 1 + if fractureCellType(the_frac_cell) == 1 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + end + if fractureCellType(the_frac_cell) == 2 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + end + if fractureCellType(the_frac_cell) == 3 + nei_grid_x=i+1;nei_grid_y=i-nx;nei_grid_z=i+nx*ny; + end + if fractureCellType(the_frac_cell) == 4 + nei_grid_x=i+1;nei_grid_y=i-nx;nei_grid_z=i+nx*ny; + end + struc_x=[i,nei_grid_x]; + struc_y=[i,nei_grid_y]; + struc_z=[i,nei_grid_z]; + end + % method 2 + if selectedMethod == 2 + if fractureCellType(the_frac_cell) == 1 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + struc_x=[i,nei_grid_x]; + struc_y=[i,i]; + struc_z=[i,nei_grid_z]; + end + if fractureCellType(the_frac_cell) == 2 + nei_grid_x=i-1;nei_grid_y=i+nx;nei_grid_z=i+nx*ny; + struc_x=[i,nei_grid_x]; + struc_y=[i,nei_grid_y];area_frac_cell_y = area_frac_cell_y*2; + struc_z=[i,nei_grid_z]; + end + if fractureCellType(the_frac_cell) == 3 + nei_grid_x=i+1;nei_grid_y=i-nx;nei_grid_z=i+nx*ny; + struc_x=[i,nei_grid_x]; + struc_y=[i,nei_grid_y];area_frac_cell_y = area_frac_cell_y*2; + struc_z=[i,nei_grid_z]; + end + if fractureCellType(the_frac_cell) == 4 + nei_grid_x=i+1;nei_grid_y=i-nx;nei_grid_z=i+nx*ny; + struc_x=[i,nei_grid_x]; + struc_y=[i,i]; + struc_z=[i,nei_grid_z]; + end + end + end + %% ----------------------% ͶӰӼʼ--------------------------------------------------------------- + %% x direction +% struc_x=[i,nei_grid_x]; + pos=find_row(struc_x,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_x; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_x)*ky(nei_grid_x)*kz(nei_grid_x))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_x,:); + nei_grid_core=mean(coord(added_matnodes,:));%û + % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ + % dis_added=norm(nei_grid_core-core_frac_cell); + % T_added=Knnc*area_frac_cell_x/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_x/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); + % T_added=0;% + % T_added=0;% + % T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_x,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + end + %% y direction +% struc_y=[i,nei_grid_y]; + pos=find_row(struc_y,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_y; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_y)*ky(nei_grid_y)*kz(nei_grid_y))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_y,:); + nei_grid_core=mean(coord(added_matnodes,:));%û + % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ + % dis_added=norm(nei_grid_core-core_frac_cell); + % T_added=Knnc*area_frac_cell_y/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_y/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); + % T_added=0;% + % T_added=0.002;% + % T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_y,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + end + + %% z direction +% struc_z=[i,nei_grid_z]; + pos=find_row(struc_z,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_z; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_z)*ky(nei_grid_z)*kz(nei_grid_z))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_z,:); + nei_grid_core=mean(coord(added_matnodes,:));%û + % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ + % dis_added=norm(nei_grid_core-core_frac_cell); + % T_added=Knnc*area_frac_cell_z/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_z/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); + % T_added=0;% + % T_added=0.0;% + % T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_z,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + end + + end + end +end +%% ӵĸĽ +im_N=[]; +im_T=[]; +% % % q=length(Kf)+1; +% % % for i=1:(q-1)/2%q-1ѷ쵥Ԫ +% % % for j=(q-1)/2+1:(q-1) +% % % if abs(corevsfra(j,2)-corevsfra(i,2))<=1e-2 +% % % im_N=[im_N;i+nmc,j+nmc]; +% % % % im_T=[im_T;0]; +% % % % im_T=[im_T;0.0039604]; +% % % % im_T=[im_T;(((Kf(i))^(-1)+(1e-3)^(-1)+(1e-3)^(-1)+(Kf(j))^(-1))/4)^(-1)*2*2/0.4]; +% % % im_T=[im_T;(((Kf(i))^(-1)+(1e-3)^(-1)+(1e-3)^(-1)+(Kf(j))^(-1))/4)^(-1)*0.5*2/0.4]; +% % % % +% % % end +% % % end +% % % end +%% ͶӰ䴫 +for i=1:nmm + % Ϊֵûס + if (S_ex(i)-S_p(i))/S_ex(i)<=1e-2 + T(i)=0; + else + T(i)= T(i)*(S_ex(i)-S_p(i))/S_ex(i); + end +end +%% ʵpEDFM⴦ +% % % num_frac = size(frac_information,1)/3; +% % % for i = 1:num_frac +% % % if frac_information(3*i,1) <= (kx(1)*ky(1)*kz(1))^(1/3) +% % % % ѷ˵ +% % % one_end = frac_information(3*i-2,:); +% % % the_other_end = frac_information(3*i-1,:); +% % % % ֮ +% % % for j = 1:size(N,1) +% % % added_matnodes_1=nodes(N(j,1),:); +% % % one_node_connect=mean(coord(added_matnodes_1,:));%û +% % % added_matnodes_2=nodes(N(j,2),:); +% % % the_other_node_connect=mean(coord(added_matnodes_2,:)); +% % % coef_matrix = [ +% % % the_other_end(1)-one_end(1),-(the_other_node_connect(1)-one_node_connect(1)); +% % % the_other_end(2)-one_end(2),-(the_other_node_connect(2)-one_node_connect(2));]; +% % % coef_vector = [one_node_connect(1)-one_end(1);one_node_connect(2)-one_end(2);]; +% % % if abs(det(coef_matrix))<=1e-12 +% % % else +% % % parameters = coef_matrix\coef_vector; +% % % if parameters(1)>=0 && parameters(1)<=1 && parameters(2)>=0 && parameters(2)<=1 +% % % T(j) = (T(j)^-1 + frac_information(3*i,1)^-1)^-1; +% % % end +% % % end +% % % end +% % % end +% % % end +%% ľֱ +N = [N; Nmff+nmc; Nff+nmc;Ninterflow;Nmf_projection;im_N]; +T = [T; Tmff; Tff;Tinterflow;Tmf_projection;im_T]; +% N = [N; Nmff+nmc; Nff+nmc;Ninterflow;Nmf_projection]; +% T = [T; Tmff; Tff;Tinterflow;Tmf_projection]; +nex=size(N,1); +end + + diff --git a/generic extended/connections_PEDFM_new.m b/generic extended/connections_PEDFM_new.m new file mode 100644 index 0000000..1e3bbab --- /dev/null +++ b/generic extended/connections_PEDFM_new.m @@ -0,0 +1,735 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff] = connections_PEDFM_new( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,addflag,frac_information,coordinates) +% úԸѷţ洢ӹϵʣǰĹؼ +% ͬڶάǶʽɢѷģͣάģУѷǶάƽ棬֮ӹϵӣ +%ܼ򵥵ôӻжڣѷزڣڣѷȴһ +%ԭȥȷconnectionsȡ· +%һ:xinkȥк󣬰θijѷţͬʱ洢ѷڵĻ +%ڶ:洢ÿѷ߽磬߽糤ȣĵ꣬ĵ㵽߽ľ룬Ϊ׼ +%:ѷ˳򣬰ձ߽ͬı߽磬ѷڵ +%matrixvsfraаѷŵ +%fracnumberűʾѷţݱʾĵ +%areavsfraűʾѷţݱʾѷ +%ÿһߣȻ˳򷴹һ +%lengthvsfraűʾѷţݱʾѷĸ߳ +%corevsfraűʾѷţݱʾѷ +%disvsfraűʾѷţݱʾѷĵߵľ +matrixvsfra=zeros(nx*ny*nz,10);%Ϊ˼ٸþĴСʵһУһ㲻г10ѷ +fracnumber=zeros(1000,20);%ʵѷһ㲻ᳬ1000Ҳɸʵı +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf +rownum(i)=size(fracturemesh{i,1},1); +end +%% ѷһţӸӦĻ +q=1; +fracstart=zeros(nf+1,1);%ʾܱУÿѷʼĺ +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; +for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%qǸѷ + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); +% indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%ѷŸӦĻ + q=q+1; + end +end +end +fracstart(nf+1)=q;%ѷ+1 +fracnumber(q:1000,:)=[]; + + +%% ѷ쵥ԪĻɸѡ,д +m=size(matrixvsfra,1); +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %ɸѡѷĻ +% if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %洢û + connectmf{cc,1} = i; + %Щѷ/ѷ쵥Ԫ˳ + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; +end +end + +%% һѷѷ߽ȵ +% edgevsfra=cell(nf,1); +normalvec=zeros(q-1,3);%unit +areavsfra=zeros(q-1,1);%q-1ѷ +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,1);%ѷ͸ +Wf=zeros(q-1,1);%ѷ쵥Ԫ +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +avtran=zeros(q-1,1);%ѷƽںļ򻯼 +fcinff=zeros(q-1,1);%ʾѷ쵥Ԫڵѷ +zf=zeros(q-1,1);%ѷ쵥Ԫ߶ȣ±Ϊ׼ +vf=zeros(q-1,1);%ѷ쵥Ԫ +porf=zeros(q-1,1);%ѷ쵥ԪĿ϶ +for i=1:1:q-1 %ѷв + if i == 41 + flag = 1; + end + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 +for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if Kf(j)==0 || Kf(k)==0 + hartran=0; + else + tran1=Kf(j)*wf(i)*lengthcat/disk; + tran2=Kf(k)*wf(i)*lengthcat/disj; +% hartran=length/(disk+disj);%ȡƽһ + hartran=tran1*tran2/(tran1+tran2); + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 +% lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + if sumtran==0 Tmff=[Tmff; 0]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + end + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% ϵ +nmc=nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +S_ex=zeros(nmm,1);% 彻 + +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +c = 0; +for k= 1 : nz +for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); +% 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)/(Kx(index)*dxv(indexn) + Kx(indexn)*dxv(index)); + S_ex(c)=dzv(index)*dyv(index); + end +end +end + +for k= 1 : nz +for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + S_ex(c)=dzv(index)*dxv(index); + end +end +end + +for i = 1 : nx +for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + S_ex(c)=dxv(index)*dyv(index); + end +end +end + + + + +%% 2014ķΪƵʽ +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +for i=1:nx*ny*nz % + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + Knnc=kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=areavsfra(matrixvsfra(i,j));% ˴ԭʼǶʽһԭʼ + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% dn=abs(dn);%ӰֵЧ + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + % Ϊ޸ +% Dn=0.9; +% Dn=2.5; + % raoT=Knnc*Annc/Dn; + raoT1 = kcell*Annc/Dn; + raoT2 = Kf(matrixvsfra(i,j))*Annc/(Wf(matrixvsfra(i,j))/2); + raoT = (raoT1^-1+raoT2^-1)^-1; + Tinterflow=[Tinterflow;raoT]; + end + end +end + +%% ͶӰǶʽ +nmc=size(matrixvsfra,1); +%彻ϵѷ쵥ԪͶӰ֮ +S_p=zeros(nmm,1); +% ΪͶӰ¼ӵF-M connections +Nmf_projection=[]; +Tmf_projection=[]; +for i=1:nmc + matnodes=nodes(i,:); + dx_grid=dxv(i); + dy_grid=dyv(i); + dz_grid=dzv(i); + grid_core=mean(coord(matnodes,:));%û + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n==1) %Ƚn=1ʱ + selected_face=zeros(1,3); + the_frac_cell=matrixvsfra(i,indice);%ѷ쵥Ԫ +% if Kf(the_frac_cell) <= (kx(i)*ky(i)*kz(i))^(1/3);% +% else + which_frac=fcff{1,2}(the_frac_cell,1);%ѷ쵥Ԫڵѷ + core_frac_cell=fcff{1,4}(the_frac_cell,1:3);%ѷ쵥Ԫ + area_frac_cell=fcff{1,8}(the_frac_cell,1);%ѷ쵥Ԫ + rao_struct=[i,the_frac_cell+nmc]; + pos_rao=find_row(rao_struct,Ninterflow); + D_value=core_frac_cell-grid_core;% OF + vector_1=f(5*which_frac-3,:); + vector_2=f(5*which_frac-2,:); + n_vector_1=cross(vector_1,vector_2); + n_vector_2=-cross(vector_1,vector_2); + if (dot(n_vector_1,D_value))>=0 + n_vector=n_vector_1; + else + n_vector=n_vector_2; + end + %ѷ淨 + % xͶӰ + area_frac_cell_x=abs(area_frac_cell*dot([1,0,0],n_vector)/norm(n_vector)); + area_frac_cell_y=abs(area_frac_cell*dot([0,1,0],n_vector)/norm(n_vector)); + area_frac_cell_z=abs(area_frac_cell*dot([0,0,1],n_vector)/norm(n_vector)); +% %% Ϊvalid case޸ +% area_frac_cell_x=10*10; +% area_frac_cell_y=10*10; +% area_frac_cell_z=10*10; + %ѷط΢СƽƣʱٰվԭжϣԱ֤õ + new_core=core_frac_cell+1e-6*n_vector; + % ѷ쵥Ԫڻĵʸ + %x direction + D_value_new=new_core-grid_core; + if D_value_new(1)<=0 + selected_face(1)=3;nei_grid_x=i-1; + else selected_face(1)=4; nei_grid_x=i+1; + end +%% ----------------------% ΪʵpEDFMΪӴ-------------------------------------- + % ΪʵpEDFMΪӴ +% selected_face(1)=4; nei_grid_x=i+1; +%% ----------------------% Ϊ--------------------------------------------------------------- + struc_x=[i,nei_grid_x]; + pos=find_row(struc_x,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_x; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_x)*ky(nei_grid_x)*kz(nei_grid_x))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_x,:); + nei_grid_core=mean(coord(added_matnodes,:));%û +% Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ +% dis_added=norm(nei_grid_core-core_frac_cell); +% T_added=Knnc*area_frac_cell_x/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_x/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); + % T_added=0;% +% T_added=0;% +% T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_x,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + end + + %y direction + if D_value_new(2)<=0 + selected_face(2)=2;nei_grid_y=i-nx; + else selected_face(2)=5;nei_grid_y=i+nx; + end +%% ----------------------% ΪʵpEDFMΪӴ-------------------------------------- + % ΪʵpEDFMΪӴ +% selected_face(2)=5; nei_grid_y=i+nx; +%% ----------------------% Ϊ--------------------------------------------------------------- + struc_y=[i,nei_grid_y]; + pos=find_row(struc_y,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_y; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_y)*ky(nei_grid_y)*kz(nei_grid_y))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_y,:); + nei_grid_core=mean(coord(added_matnodes,:));%û +% Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ +% dis_added=norm(nei_grid_core-core_frac_cell); +% T_added=Knnc*area_frac_cell_y/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_y/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); + % T_added=0;% +% T_added=0.002;% +% T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_y,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + end + + + % z direction + if D_value_new(3)<=0 + selected_face(3)=1;nei_grid_z=i-nx*ny; + else selected_face(3)=6;nei_grid_z=i+nx*ny; + end +%% ----------------------% ΪʵpEDFMΪӴ-------------------------------------- + % ΪʵpEDFMΪӴ +% selected_face(3)=6;nei_grid_z=i+nx*ny; +%% ----------------------% Ϊ--------------------------------------------------------------- +% nei_grid_z=i-nx*ny; + struc_z=[i,nei_grid_z]; + pos=find_row(struc_z,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_z; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_z)*ky(nei_grid_z)*kz(nei_grid_z))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_z,:); + nei_grid_core=mean(coord(added_matnodes,:));%û +% Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ +% dis_added=norm(nei_grid_core-core_frac_cell); +% T_added=Knnc*area_frac_cell_z/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_z/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); +% T_added=0;% +% T_added=0.0;% +% T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_z,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + end +% %% ӵ +% if D_value_new(1)>0 +% selected_face(1)=3;nei_grid_x=i-1; +% else selected_face(1)=4; nei_grid_x=i+1; +% end +% struc_x=[i,nei_grid_x]; +% pos=find_row(struc_x,N); +% if size(pos,1)==1 %˵ҪĴϵ +% S_p(pos)=S_p(pos)+area_frac_cell_x; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ +% knei=(kx(nei_grid_x)*ky(nei_grid_x)*kz(nei_grid_x))^(1/3);%Ǹ͸ +% added_matnodes=nodes(nei_grid_x,:); +% nei_grid_core=mean(coord(added_matnodes,:));%û +% % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ +% % dis_added=norm(nei_grid_core-core_frac_cell); +% % T_added=Knnc*area_frac_cell_x/dis_added; +% % һַʽ㼸 +% dis_added=norm(nei_grid_core-core_frac_cell); +% if Kf(the_frac_cell)==0 +% T_added=0; +% else +% % ѷ쵥Ԫ +% Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); +% % ڻѷ쵥Ԫ +% Geofnei=knei*area_frac_cell_x/dis_added; +% % ûѷ쵥Ԫ +% Geofcell=Tinterflow(pos_rao,1); +% +% T_added=1/(1/Geofnei+1/Geofcell+1/Geof); +% % T_added=0;% +% % T_added=0;% +% % T_added=0.0039604;% +% end +% Nmf_projection=[Nmf_projection;nei_grid_x,the_frac_cell+nmc]; +% Tmf_projection=[Tmf_projection;T_added]; +% end +% +% %y direction +% if D_value_new(2)>0 +% selected_face(1)=2;nei_grid_y=i-nx; +% else selected_face(1)=5;nei_grid_y=i+nx; +% end +% struc_y=[i,nei_grid_y]; +% pos=find_row(struc_y,N); +% if size(pos,1)==1 %˵ҪĴϵ +% S_p(pos)=S_p(pos)+area_frac_cell_y; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ +% knei=(kx(nei_grid_y)*ky(nei_grid_y)*kz(nei_grid_y))^(1/3);%Ǹ͸ +% added_matnodes=nodes(nei_grid_y,:); +% nei_grid_core=mean(coord(added_matnodes,:));%û +% % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ +% % dis_added=norm(nei_grid_core-core_frac_cell); +% % T_added=Knnc*area_frac_cell_y/dis_added; +% % һַʽ㼸 +% dis_added=norm(nei_grid_core-core_frac_cell); +% if Kf(the_frac_cell)==0 +% T_added=0; +% else +% % ѷ쵥Ԫ +% Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); +% % ڻѷ쵥Ԫ +% Geofnei=knei*area_frac_cell_y/dis_added; +% % ûѷ쵥Ԫ +% Geofcell=Tinterflow(pos_rao,1); +% +% T_added=1/(1/Geofnei+1/Geofcell+1/Geof); +% % T_added=0;% +% % T_added=0.002;% +% % T_added=0.0039604;% +% end +% Nmf_projection=[Nmf_projection;nei_grid_y,the_frac_cell+nmc]; +% Tmf_projection=[Tmf_projection;T_added]; +% end +% +% +% % z direction +% if D_value_new(3)>0 +% selected_face(1)=1;nei_grid_z=i-nx*ny; +% else selected_face(1)=6;nei_grid_z=i+nx*ny; +% end +% % nei_grid_z=i-nx*ny; +% struc_z=[i,nei_grid_z]; +% pos=find_row(struc_z,N); +% if size(pos,1)==1 %˵ҪĴϵ +% S_p(pos)=S_p(pos)+area_frac_cell_z; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ +% knei=(kx(nei_grid_z)*ky(nei_grid_z)*kz(nei_grid_z))^(1/3);%Ǹ͸ +% added_matnodes=nodes(nei_grid_z,:); +% nei_grid_core=mean(coord(added_matnodes,:));%û +% % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ +% % dis_added=norm(nei_grid_core-core_frac_cell); +% % T_added=Knnc*area_frac_cell_z/dis_added; +% % һַʽ㼸 +% dis_added=norm(nei_grid_core-core_frac_cell); +% if Kf(the_frac_cell)==0 +% T_added=0; +% else +% % ѷ쵥Ԫ +% Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); +% % ڻѷ쵥Ԫ +% Geofnei=knei*area_frac_cell_z/dis_added; +% % ûѷ쵥Ԫ +% Geofcell=Tinterflow(pos_rao,1); +% +% T_added=1/(1/Geofnei+1/Geofcell+1/Geof); +% % T_added=0;% +% % T_added=0.0;% +% % T_added=0.0039604;% +% end +% Nmf_projection=[Nmf_projection;nei_grid_z,the_frac_cell+nmc]; +% Tmf_projection=[Tmf_projection;T_added]; +% end + +% end + end + end +end +%% ӵĸĽ +im_N=[]; +im_T=[]; +% q=length(Kf)+1; +% for i=1:(q-1)/2%q-1ѷ쵥Ԫ +% for j=(q-1)/2+1:(q-1) +% if norm(corevsfra(j,:)-corevsfra(i,:))<=3*1e-1 +% im_N=[im_N;i+nmc,j+nmc]; +% % im_T=[im_T;0]; +% % im_T=[im_T;0.0039604]; +% % im_T=[im_T;(((Kf(i))^(-1)+(1e-3)^(-1)+(1e-3)^(-1)+(Kf(j))^(-1))/4)^(-1)*2*2/0.4]; +% % im_T=[im_T;(((Kf(i))^(-1)+(1e-3)^(-1)+(1e-3)^(-1)+(Kf(j))^(-1))/4)^(-1)*0.5*2/0.4]; +% im_T=[im_T;((Kf(i)*1*2/0.005)^-1+(Kf(j)*1*2/0.005)^-1+(5*1e-3*1*2/0.1)^-1+(5*1e-3*1*2/0.1)^-1)^-1]; +% % +% end +% end +% end +%% ͶӰ䴫 +for i=1:nmm + % Ϊֵûס + if (S_ex(i)-S_p(i))/S_ex(i)<=1e-2 + T(i)=0; + else + T(i)= T(i)*(S_ex(i)-S_p(i))/S_ex(i); + end +end +%% ʵpEDFM⴦ +% % % num_frac = size(frac_information,1)/3; +% % % for i = 1:num_frac +% % % if frac_information(3*i,1) <= (kx(1)*ky(1)*kz(1))^(1/3) +% % % % ѷ˵ +% % % one_end = frac_information(3*i-2,:); +% % % the_other_end = frac_information(3*i-1,:); +% % % % ֮ +% % % for j = 1:size(N,1) +% % % added_matnodes_1=nodes(N(j,1),:); +% % % one_node_connect=mean(coord(added_matnodes_1,:));%û +% % % added_matnodes_2=nodes(N(j,2),:); +% % % the_other_node_connect=mean(coord(added_matnodes_2,:)); +% % % coef_matrix = [ +% % % the_other_end(1)-one_end(1),-(the_other_node_connect(1)-one_node_connect(1)); +% % % the_other_end(2)-one_end(2),-(the_other_node_connect(2)-one_node_connect(2));]; +% % % coef_vector = [one_node_connect(1)-one_end(1);one_node_connect(2)-one_end(2);]; +% % % if abs(det(coef_matrix))<=1e-12 +% % % else +% % % parameters = coef_matrix\coef_vector; +% % % if parameters(1)>=0 && parameters(1)<=1 && parameters(2)>=0 && parameters(2)<=1 +% % % T(j) = (T(j)^-1 + frac_information(3*i,1)^-1)^-1; +% % % end +% % % end +% % % end +% % % end +% % % end +%% ľֱ +N = [N; Nmff+nmc; Nff+nmc;Ninterflow;Nmf_projection;im_N]; +T = [T; Tmff; Tff;Tinterflow;Tmf_projection;im_T]; +% N = [N; Nmff+nmc; Nff+nmc;Ninterflow;Nmf_projection]; +% T = [T; Tmff; Tff;Tinterflow;Tmf_projection]; +nex=size(N,1); +end diff --git a/generic extended/connections_PEDFM_new_new.m b/generic extended/connections_PEDFM_new_new.m new file mode 100644 index 0000000..4540d17 --- /dev/null +++ b/generic extended/connections_PEDFM_new_new.m @@ -0,0 +1,714 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff, flowArea, perm, matrixflag] = connections_PEDFM_new_new( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,pori,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,addflag,frac_information,coordinates) +% úԸѷţ洢ӹϵʣǰĹؼ +% ͬڶάǶʽɢѷģͣάģУѷǶάƽ棬֮ӹϵӣ +%ܼ򵥵ôӻжڣѷزڣڣѷȴһ +%ԭȥȷconnectionsȡ· +%һ:xinkȥк󣬰θijѷţͬʱ洢ѷڵĻ +%ڶ:洢ÿѷ߽磬߽糤ȣĵ꣬ĵ㵽߽ľ룬Ϊ׼ +%:ѷ˳򣬰ձ߽ͬı߽磬ѷڵ +%matrixvsfraаѷŵ +%fracnumberűʾѷţݱʾĵ +%areavsfraűʾѷţݱʾѷ +%ÿһߣȻ˳򷴹һ +%lengthvsfraűʾѷţݱʾѷĸ߳ +%corevsfraűʾѷţݱʾѷ +%disvsfraűʾѷţݱʾѷĵߵľ +matrixvsfra=zeros(nx*ny*nz,10);%Ϊ˼ٸþĴСʵһУһ㲻г10ѷ +fracnumber=zeros(1000,20);%ʵѷһ㲻ᳬ1000Ҳɸʵı +cell_center_coordinates = zeros(nx*ny*nz, 3); % ѷڸþ +for j = 1:nx*ny*nz + nodes_of_the_cell = nodes(j,:); + cell_center_coordinates(j,:) = mean(coord(nodes_of_the_cell,:));%û +end +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf + rownum(i)=size(fracturemesh{i,1},1); +end +%% ѷһţӸӦĻ +q=1; +fracstart=zeros(nf+1,1);%ʾܱУÿѷʼĺ +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; + for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%qǸѷ + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); + % indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%ѷŸӦĻ + q=q+1; + end + end +end +fracstart(nf+1)=q;%ѷ+1 +fracnumber(q:1000,:)=[]; + + +%% ѷ쵥ԪĻɸѡ,д +m=size(matrixvsfra,1); +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %ɸѡѷĻ + % if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %洢û + connectmf{cc,1} = i; + %Щѷ/ѷ쵥Ԫ˳ + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; + end +end + +%% һѷѷ߽ȵ +% edgevsfra=cell(nf,1); +number_fracture_cells = q-1; +normalvec=zeros(q-1,3);%unit +areavsfra=zeros(q-1,1);%q-1ѷ +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,1);%ѷ͸ +Wf=zeros(q-1,1);%ѷ쵥Ԫ +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +fracFaceArea=zeros(q-1,10); +avtran=zeros(q-1,1);%ѷƽںļ򻯼 +avfracFaceArea=zeros(q-1,1); +fcinff=zeros(q-1,1);%ʾѷ쵥Ԫڵѷ +zf=zeros(q-1,1);%ѷ쵥Ԫ߶ȣ±Ϊ׼ +vf=zeros(q-1,1);%ѷ쵥Ԫ +porf=zeros(q-1,1);%ѷ쵥ԪĿ϶ +for i=1:1:q-1 %ѷв + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 + for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if Kf(j)==0 || Kf(k)==0 + hartran=0; + kij = 0; + else + tran1=Kf(j)*wf(i)*lengthcat/disk; + tran2=Kf(k)*wf(i)*lengthcat/disj; + % hartran=length/(disk+disj);%ȡƽһ + hartran=tran1*tran2/(tran1+tran2); + kij = 2*(Kf(j)^(-1)+Kf(k)^(-1))^(-1); + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + perm_ff = [perm_ff; kij]; + flowArea_ff = [flowArea_ff; wf(i)*lengthcat]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +perm_ff(1,:)=[]; +flowArea_ff(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +perm_mff=zeros(1,1); +flowArea_mff=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 + % lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + if sumtran==0 Tmff=[Tmff; 0]; perm_mff=[perm_mff;0];flowArea_mff=[flowArea_mff;(avfracFaceArea(fc1)+avfracFaceArea(fc2))/2]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + perm_mff=[perm_mff;(Kf(fc1)^(-1)+Kf(fc2)^(-1))^(-1)]; + flowArea_mff=[flowArea_mff;(avfracFaceArea(fc1)+avfracFaceArea(fc2))/2]; + end + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +perm_mff(1,:)=[]; +flowArea_mff(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; +%% ϵ +nmc=nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +S_ex=zeros(nmm,1);% 彻 + +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +perm = zeros(nmm, 1); +flowArea = zeros(nmm, 1); +c = 0; +for k= 1 : nz + for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); + % 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)/(Kx(index)*dxv(indexn) + Kx(indexn)*dxv(index)); + S_ex(c)=dzv(index)*dyv(index); + perm(c)=2*Kx(index)*Kx(indexn)/(Kx(index) + Kx(indexn)); + flowArea(c)=dzv(index)*dyv(index); + end + end +end + +for k= 1 : nz + for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + S_ex(c)=dzv(index)*dxv(index); + perm(c)=2*Ky(index)*Ky(indexn)/(Ky(index) + Ky(indexn)); + flowArea(c)=dzv(index)*dxv(index); + end + end +end + +for i = 1 : nx + for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + S_ex(c)=dxv(index)*dyv(index); + perm(c)=2*Kz(index)*Kz(indexn)/(Kz(index) + Kz(indexn)); + flowArea(c)=dxv(index)*dyv(index); + end + end +end + +%% 2014ķΪƵʽ +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +perm_interflow=[]; +flowArea_interflow=[]; +for i=1:nx*ny*nz % + for j=1:10 +% if matrixvsfra(i,j)~=0 + if matrixvsfra(i,j)~=0 && (matrixvsfra(i,j) <= number_fracture_cells) %this matrix cell contains a fracture cell + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + Annc=areavsfra(matrixvsfra(i,j));% ˴ԭʼǶʽһԭʼ + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); + % dn=abs(dn);%ӰֵЧ + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + % Dn=0.9; + % Dn=0.15; + % Dn = (5-0.5)/2; + raoT1 = kcell*Annc/Dn; + raoT2 = Kf(matrixvsfra(i,j))*Annc/(Wf(matrixvsfra(i,j))/2); + raoT = (raoT1^-1+raoT2^-1)^-1; + % raoT=Knnc*Annc/Dn; + Tinterflow=[Tinterflow;raoT]; + perm_mf_this = kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + perm_interflow = [perm_interflow; perm_mf_this]; + flowArea_interflow = [flowArea_interflow; Annc]; + end + end +end + +%% ͶӰǶʽ +nmc=size(matrixvsfra,1); +%彻ϵѷ쵥ԪͶӰ֮ +S_p=zeros(nmm,1); +% ΪͶӰ¼ӵF-M connections +Nmf_projection=[]; +Tmf_projection=[]; +perm_projection=[]; +flowArea_projection=[]; +for i=1:nmc + matnodes=nodes(i,:); + dx_grid=dxv(i); + dy_grid=dyv(i); + dz_grid=dzv(i); + grid_core=mean(coord(matnodes,:));%û + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); +% if (n>=1) + the_frac_cells=matrixvsfra(i,indice);%ѷ쵥Ԫ + if (n>=1) %Ƚn=1ʱ + selected_face=zeros(1,3); + if n>1 + flag =1; + end + for haihaihai = 1:length(the_frac_cells) + the_frac_cell = the_frac_cells(haihaihai); + if Kf(the_frac_cell) <= (kx(i)*ky(i)*kz(i))^(1/3) % + else + which_frac=fcff{1,2}(the_frac_cell,1);%ѷ쵥Ԫڵѷ + core_frac_cell=fcff{1,4}(the_frac_cell,1:3);%ѷ쵥Ԫ + area_frac_cell=fcff{1,8}(the_frac_cell,1);%ѷ쵥Ԫ + rao_struct=[i,the_frac_cell+nmc]; + pos_rao=find_row(rao_struct,Ninterflow); + D_value=core_frac_cell-grid_core;% OF + vector_1=f(5*which_frac-3,:); + vector_2=f(5*which_frac-2,:); + n_vector_1=cross(vector_1,vector_2); + n_vector_2=-cross(vector_1,vector_2); + if (dot(n_vector_1,D_value))>=0 + n_vector=n_vector_1; + else + n_vector=n_vector_2; + end + %ѷ淨 + % xͶӰ + area_frac_cell_x=abs(area_frac_cell*dot([1,0,0],n_vector)/norm(n_vector)); + area_frac_cell_y=abs(area_frac_cell*dot([0,1,0],n_vector)/norm(n_vector)); + area_frac_cell_z=abs(area_frac_cell*dot([0,0,1],n_vector)/norm(n_vector)); + % %% Ϊvalid case޸ + % area_frac_cell_x=10*10; + % area_frac_cell_y=10*10; + % area_frac_cell_z=10*10; + %ѷط΢СƽƣʱٰվԭжϣԱ֤õ + new_core=core_frac_cell+1e-4*n_vector; + % ѷ쵥Ԫڻĵʸ + %x direction + D_value_new=new_core-grid_core; + if D_value_new(1)<=0 + selected_face(1)=3;nei_grid_x=i-1; + else selected_face(1)=4; nei_grid_x=i+1; + end + %% ----------------------% ΪʵpEDFMΪӴ-------------------------------------- + % ΪʵpEDFMΪӴ +% selected_face(1)=4; nei_grid_x=i+1; + %% ----------------------% Ϊ--------------------------------------------------------------- + struc_x=[i,nei_grid_x]; + pos=find_row(struc_x,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_x; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_x)*ky(nei_grid_x)*kz(nei_grid_x))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_x,:); + nei_grid_core=mean(coord(added_matnodes,:));%û + % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ + % dis_added=norm(nei_grid_core-core_frac_cell); + % T_added=Knnc*area_frac_cell_x/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + % dis_added = (5+0.5)/2; + Geofnei=knei*area_frac_cell_x/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); + T_added = 1/(1/Geofnei+1/Geof); +% T_added=0;% + % T_added=0;% + % T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_x,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + perm_projection =[perm_projection;knei]; + flowArea_projection = [flowArea_projection;area_frac_cell_x]; + end + + %y direction + if D_value_new(2)<=0 + selected_face(2)=2;nei_grid_y=i-nx; + else selected_face(2)=5;nei_grid_y=i+nx; + end + %% ----------------------% ΪʵpEDFMΪӴ-------------------------------------- + % ΪʵpEDFMΪӴ +% selected_face(2)=5; nei_grid_y=i+nx; + %% ----------------------% Ϊ--------------------------------------------------------------- + struc_y=[i,nei_grid_y]; + pos=find_row(struc_y,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_y; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_y)*ky(nei_grid_y)*kz(nei_grid_y))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_y,:); + nei_grid_core=mean(coord(added_matnodes,:));%û + % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ + % dis_added=norm(nei_grid_core-core_frac_cell); + % T_added=Knnc*area_frac_cell_y/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_y/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); + T_added = 1/(1/Geofnei+1/Geof); +% T_added=0;% + % T_added=0.002;% + % T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_y,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + perm_projection =[perm_projection;knei]; + flowArea_projection = [flowArea_projection;area_frac_cell_y]; + end + + + % z direction + if D_value_new(3)<=0 + selected_face(3)=1;nei_grid_z=i-nx*ny; + else selected_face(3)=6;nei_grid_z=i+nx*ny; + end + %% ----------------------% ΪʵpEDFMΪӴ-------------------------------------- + % ΪʵpEDFMΪӴ +% selected_face(3)=6;nei_grid_z=i+nx*ny; + %% ----------------------% Ϊ--------------------------------------------------------------- + % nei_grid_z=i-nx*ny; + struc_z=[i,nei_grid_z]; + pos=find_row(struc_z,N); + if size(pos,1)==1 %˵ҪĴϵ + S_p(pos)=S_p(pos)+area_frac_cell_z; + kcell=(kx(i)*ky(i)*kz(i))^(1/3);%͸ + knei=(kx(nei_grid_z)*ky(nei_grid_z)*kz(nei_grid_z))^(1/3);%Ǹ͸ + added_matnodes=nodes(nei_grid_z,:); + nei_grid_core=mean(coord(added_matnodes,:));%û + % Knnc=2*kcell*Kf(the_frac_cell)/(kcell+Kf(the_frac_cell));%ƽ + % dis_added=norm(nei_grid_core-core_frac_cell); + % T_added=Knnc*area_frac_cell_z/dis_added; + % һַʽ㼸 + dis_added=norm(nei_grid_core-core_frac_cell); + if Kf(the_frac_cell)==0 + T_added=0; + else + % ѷ쵥Ԫ + Geof=Kf(the_frac_cell)*area_frac_cell/(Wf(the_frac_cell)/2); + % ڻѷ쵥Ԫ + Geofnei=knei*area_frac_cell_z/dis_added; + % ûѷ쵥Ԫ + Geofcell=Tinterflow(pos_rao,1); + + T_added=1/(1/Geofnei+1/Geofcell+1/Geof); +% T_added=0;% + % T_added=0.0;% + % T_added=0.0039604;% + end + Nmf_projection=[Nmf_projection;nei_grid_z,the_frac_cell+nmc]; + Tmf_projection=[Tmf_projection;T_added]; + perm_projection =[perm_projection;knei]; + flowArea_projection = [flowArea_projection;area_frac_cell_z]; + end + end + end + end + end +end +%% ӵĸĽ +im_N=[]; +im_T=[]; +% q=length(Kf)+1; +% for i=1:(q-1)/2%q-1ѷ쵥Ԫ +% for j=(q-1)/2+1:(q-1) +% if abs(corevsfra(j,1)-corevsfra(i,1))<=1e-2 +% im_N=[im_N;i+nmc,j+nmc]; +% % im_T=[im_T;0]; +% im_T=[im_T;0.0039604]; +% % im_T=[im_T;(((Kf(i))^(-1)+(1e-3)^(-1)+(1e-3)^(-1)+(Kf(j))^(-1))/4)^(-1)*2*2/0.4]; +% % +% end +% end +% end +%% ͶӰ䴫 +num_weaken = 0; +for i=1:nmm + % Ϊֵûס + if (S_ex(i)-S_p(i))/S_ex(i)<=1e-2 + T(i)=0; + num_weaken = num_weaken+1; + else + T(i)= T(i)*(S_ex(i)-S_p(i))/S_ex(i); + end +end +% % % %% ʵpEDFM⴦ +% % % num_frac = size(frac_information,1)/3; +% % % for i = 1:num_frac +% % % if frac_information(3*i,1) <= (kx(1)*ky(1)*kz(1))^(1/3) +% % % % ѷ˵ +% % % one_end = frac_information(3*i-2,:); +% % % the_other_end = frac_information(3*i-1,:); +% % % % ֮ +% % % for j = 1:size(N,1) +% % % added_matnodes_1=nodes(N(j,1),:); +% % % one_node_connect=mean(coord(added_matnodes_1,:));%û +% % % added_matnodes_2=nodes(N(j,2),:); +% % % the_other_node_connect=mean(coord(added_matnodes_2,:)); +% % % coef_matrix = [ +% % % the_other_end(1)-one_end(1),-(the_other_node_connect(1)-one_node_connect(1)); +% % % the_other_end(2)-one_end(2),-(the_other_node_connect(2)-one_node_connect(2));]; +% % % coef_vector = [one_node_connect(1)-one_end(1);one_node_connect(2)-one_end(2);]; +% % % if abs(det(coef_matrix))<=1e-12 +% % % else +% % % parameters = coef_matrix\coef_vector; +% % % if parameters(1)>=0 && parameters(1)<=1 && parameters(2)>=0 && parameters(2)<=1 +% % % T(j) = (T(j)^-1 + frac_information(3*i,1)^-1)^-1; +% % % end +% % % end +% % % end +% % % end +% % % end +%% ľֱ +matrixflag = [ones(size(T,1),1); zeros(size(Tmff,1),1); zeros(size(Tff,1),1); ones(size(Tinterflow,1),1); ones(size(Tmf_projection,1),1); ones(size(im_T,1),1)]; +N = [N; Nmff+nmc; Nff+nmc;Ninterflow;Nmf_projection;im_N]; +% Tmff = Tmff*0; +T = [T; Tmff; Tff;Tinterflow;Tmf_projection;im_T]; +perm = [perm; perm_mff; perm_ff;perm_interflow; perm_projection]; +flowArea = [flowArea; flowArea_mff; flowArea_ff;flowArea_interflow; flowArea_projection+0.0001]; +% N = [N; Nmff+nmc; Nff+nmc;Ninterflow;Nmf_projection]; +% T = [T; Tmff; Tff;Tinterflow;Tmf_projection]; +nex=size(N,1); +%% ʵpEDFM⴦ +num_frac = size(frac_information,1)/3; +for i = 1:num_frac + if frac_information(3*i,1) <= (kx(1)*ky(1)*kz(1))^(1/3) % ˴Ϊ򻯱д, || i == 2 + % ѷ˵ + one_end = frac_information(3*i-2,:); + the_other_end = frac_information(3*i-1,:); + % ֮ + for j = 1:size(N,1) + % added_matnodes_1=nodes(N(j,1),:); + % one_node_connect=mean(coord(added_matnodes_1,:));%û + % added_matnodes_2=nodes(N(j,2),:); + % the_other_node_connect=mean(coord(added_matnodes_2,:)); + one_node_connect = cell_center_coordinates(N(j,1),:); + the_other_node_connect = cell_center_coordinates(N(j,2),:); + coef_matrix = [ + the_other_end(1)-one_end(1),-(the_other_node_connect(1)-one_node_connect(1)); + the_other_end(2)-one_end(2),-(the_other_node_connect(2)-one_node_connect(2));]; + coef_vector = [one_node_connect(1)-one_end(1);one_node_connect(2)-one_end(2);]; + if abs(det(coef_matrix))<=1e-12 + else + parameters = coef_matrix\coef_vector; + if parameters(1)>=0 && parameters(1)<=1 && parameters(2)>=0 && parameters(2)<=1 + disp('a T modfification in the new pEDFM'); + disp(T(j)); + if T(j) > 0.006 + flag = 1; + end + T(j) = (T(j)^-1 + (frac_information(3*i,1)/(frac_information(3*i,2)/2))^-1)^-1; +% T(j) = 0.005; + disp(T(j)); + end + end + end + end +end +%% תCMGECLIPSEм +% [ Data_for_ECLIPSE ] = pEDFM_to_CMG_horizontalFractureWell(dxv,dyv,dzv,kx,ky,kz,pori,Kf,Wf,vf,porf,N,T); +% [ Data_for_ECLIPSE ] = pEDFM_to_CMG_horizontalFractureWell_net_pay(dxv,dyv,dzv,kx,ky,kz,pori,Kf,Wf,vf,porf,N,T); +end diff --git a/generic extended/connections_unstructured_EDFM_EX1_solutions.m b/generic extended/connections_unstructured_EDFM_EX1_solutions.m new file mode 100644 index 0000000..b99c0e9 --- /dev/null +++ b/generic extended/connections_unstructured_EDFM_EX1_solutions.m @@ -0,0 +1,629 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio, fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX1_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,addflag ) +% úԸѷţ洢ӹϵʣǰĹؼ +% ͬڶάǶʽɢѷģͣάģУѷǶάƽ棬֮ӹϵӣ +%ܼ򵥵ôӻжڣѷزڣڣѷȴһ +%ԭȥȷconnectionsȡ· +%һ:xinkȥк󣬰θijѷţͬʱ洢ѷڵĻ +%ڶ:洢ÿѷ߽磬߽糤ȣĵ꣬ĵ㵽߽ľ룬Ϊ׼ +%:ѷ˳򣬰ձ߽ͬı߽磬ѷڵ +%matrixvsfraаѷŵ +%fracnumberűʾѷţݱʾĵ +%areavsfraűʾѷţݱʾѷ +%ÿһߣȻ˳򷴹һ +%lengthvsfraűʾѷţݱʾѷĸ߳ +%corevsfraűʾѷţݱʾѷ +%disvsfraűʾѷţݱʾѷĵߵľ +matrixvsfra=zeros(nx*ny*nz,10);%Ϊ˼ٸþĴСʵһУһ㲻г10ѷ +fracnumber=zeros(1000,20);%ʵѷһ㲻ᳬ1000Ҳɸʵı +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf +rownum(i)=size(fracturemesh{i,1},1); +end +%% ѷһţӸӦĻ +q=1; +fracstart=zeros(nf+1,1);%ʾܱУÿѷʼĺ +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; +for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%qǸѷ +% m=floor((i+(2^nf)-1)/(2^nf)); + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); +% indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%ѷŸӦĻ + q=q+1; + end +end +end +fracstart(nf+1)=q;%ѷ+1 +fracnumber(q:1000,:)=[]; + + +%% ѷ쵥ԪĻɸѡ,д +m=size(matrixvsfra,1); +mat_frac=[]; +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %ɸѡѷĻ +% if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %洢û + connectmf{cc,1} = i; + mat_frac=[mat_frac;i]; + %Щѷ/ѷ쵥Ԫ˳ + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; +end +end + +%% һѷѷ߽ȵ +% edgevsfra=cell(nf,1); +% Kffl=funtion_data.Kffl; +% Dffl=funtion_data.Dffl; +% kffl=zeros(q-1,1); +% dffl=zeros(q-1,1); +fractureCellFlag = (1:q-1)'; +normalvec=zeros(q-1,3);%unit +areavsfra=zeros(q-1,1);%q-1ѷ +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,10);%ѷ͸ +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +avtran=zeros(q-1,1);%ѷƽںļ򻯼 +ave_disvsfra=zeros(q-1,1); +fcinff=zeros(q-1,1);%ʾѷ쵥Ԫڵѷ +zf=zeros(q-1,1);%ѷ쵥Ԫ߶ȣ±Ϊ׼ +vf=zeros(q-1,1);%ѷ쵥Ԫ +porf=zeros(q-1,1);%ѷ쵥ԪĿ϶ +for i=1:1:q-1 %ѷв + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 +for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if kf(i)==0 hartran=0;hartran_convection=0; + else + tran1=kf(i)*wf(i)*lengthcat/disk; + tran2=kf(i)*wf(i)*lengthcat/disj; +% hartran=length/(disk+disj);%ȡƽ + hartran=tran1*tran2/(tran1+tran2); + k_harmony= kf(i); + hartran_convection=kf(i)/(disk+disj)^2; + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + Tff_convection=[Tff_convection;hartran_convection]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +Tff_convection(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +Tmff_convection=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 +% lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + if sumtran==0 Tmff=[Tmff; 0];Tmff_convection=[Tmff_convection;0]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + end + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +Tmff_convection(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% ϵ +nmc=nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +T_convection = zeros(nmm, 1); +c = 0; +for k= 1 : nz +for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); + T_convection(c) = 2/(1/Kx(index)+1/Kx(indexn))/(dxv(indexn)+dxv(index)); + end +end +end + +for k= 1 : nz +for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + T_convection(c) = 2/(1/Ky(index)+1/Ky(indexn))/(dyv(indexn)+dyv(index)); + end +end +end + +for i = 1 : nx +for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + T_convection(c) = 2/(1/Kz(index)+1/Kz(indexn))/(dzv(indexn)+dzv(index)); + end +end +end +%% 2014ķΪƵʽ +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +Tinterflow_convection=[]; +matrix_cells_containing_fracture_cells = []; +volume_ratio = []; +fractureMatrixFlag = zeros(size(fractureCellFlag,1),2); +numberInGroup = 3; +for i=1:nx*ny*nz % + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + fractureMatrixFlag(matrixvsfra(i,j),:) = [matrixvsfra(i,j),i]; + matrix_cells_containing_fracture_cells = [matrix_cells_containing_fracture_cells; i]; + if mod(matrixvsfra(i,j),numberInGroup) == 1 volume_ratio = [volume_ratio; 5/6];end + if mod(matrixvsfra(i,j),numberInGroup) == 2 volume_ratio = [volume_ratio; 1/2];end + if mod(matrixvsfra(i,j),numberInGroup) == 0 volume_ratio = [volume_ratio; 1/6];end + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + Knnc=kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=2*areavsfra(matrixvsfra(i,j)); + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% dn=abs(dn);%ӰֵЧ + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + raoT=Knnc*Annc/Dn; + raoT_convection=2*Knnc/Dn^2; + Tinterflow=[Tinterflow;raoT]; + Tinterflow_convection=[Tinterflow_convection;raoT_convection]; + end + end +end +%% ⴦˴δͨûдһչ +nfc=size(fracnumber,1); +the_added_matrix_cells = []; +nmc=nx * ny*nz; +the_added_mf_connec = []; +the_added_mf_T = []; +number_of_adding = 0; +cell_divided_by_fracture_flag = matrix_cells_containing_fracture_cells; +% ¼񱻷ֳ,ɾԭеЩص +matrixCellsDivided = zeros(size(matrix_cells_containing_fracture_cells,1),2); +deletedFlag = []; +for i = 1:size(matrix_cells_containing_fracture_cells,1) + the_matrix_cell = matrix_cells_containing_fracture_cells(i,1); + number_of_adding = number_of_adding+1; + the_new_cell = number_of_adding+nmc; + the_added_matrix_cells = [the_added_matrix_cells; the_new_cell]; + matrixCellsDivided(i,:) = [the_matrix_cell, the_new_cell]; + % m-m + for j = 1:size(N,1) + if N(j,1) == the_matrix_cell || N(j,2) == the_matrix_cell + deletedFlag = [deletedFlag; j]; + end +% % % if N(j,2) == the_matrix_cell+1 +% % % N(j,1) = the_new_cell; T(j) = ... +% % % ((Kx(the_matrix_cell)*dzv(the_matrix_cell)*dyv(the_matrix_cell)/(dxv(the_matrix_cell)/3))^(-1)+(Kx(the_matrix_cell+1)*dzv(the_matrix_cell+1)*dyv(the_matrix_cell+1)/(dxv(the_matrix_cell+1)/2))^(-1))^(-1); +% % % end + +% % % if N(j,2) == the_matrix_cell-nx +% % % N(j,1) = the_new_cell; T(j) = ... +% % % ((Ky(the_matrix_cell)*dzv(the_matrix_cell)*dxv(the_matrix_cell)/(dyv(the_matrix_cell)/3))^(-1)+(Ky(the_matrix_cell-n)*dzv(the_matrix_cell-n)*dxv(the_matrix_cell-n)/(dxv(the_matrix_cell-n)/2))^(-1))^(-1); +% % % end + +% % % if N(j,1) == the_matrix_cell+1 +% % % N(j,2) = the_new_cell; T(j) = ... +% % % ((Kx(the_matrix_cell)*dzv(the_matrix_cell)*dyv(the_matrix_cell)/(dxv(the_matrix_cell)/3))^(-1)+(Kx(the_matrix_cell+1)*dzv(the_matrix_cell+1)*dyv(the_matrix_cell+1)/(dxv(the_matrix_cell+1)/2))^(-1))^(-1); +% % % end + +% % % if N(j,1) == the_matrix_cell-nx +% % % N(j,2) = the_new_cell; T(j) = ... +% % % ((Ky(the_matrix_cell)*dzv(the_matrix_cell)*dxv(the_matrix_cell)/(dyv(the_matrix_cell)/3))^(-1)+(Ky(the_matrix_cell-n)*dzv(the_matrix_cell-n)*dxv(the_matrix_cell-n)/(dxv(the_matrix_cell-n)/2))^(-1))^(-1); +% % % end + + end +end +deletedFlag = unique(deletedFlag); +N(deletedFlag,:) = []; +T(deletedFlag,:) = []; +% ѷ--ӻĶӦ󣬰ѷ˳У +fractureCell_matrixCell_addedMatrixCell = zeros(size(fractureCellFlag,1),3); +for xiang = 1:size(fractureCellFlag,1) + theFractureCell = fractureCellFlag(xiang,1); + aaa = find(fractureMatrixFlag(:,1) == theFractureCell); + theMatrixCell = fractureMatrixFlag(aaa,2); + bbb = find(matrixCellsDivided(:,1) == theMatrixCell); + theAddedMatrixCells = matrixCellsDivided(bbb,2); + fractureCell_matrixCell_addedMatrixCell(theFractureCell,:) = [theFractureCell, theMatrixCell, theAddedMatrixCells]; +end +% Щʵ +relatedN = []; +relatedT = []; +for xiang = 1:size(fractureCellFlag,1)/numberInGroup + addedNSs =[ + % ԭл xϵ + fractureCell_matrixCell_addedMatrixCell(3*xiang-2,2)-1, fractureCell_matrixCell_addedMatrixCell(3*xiang-2,2); + fractureCell_matrixCell_addedMatrixCell(3*xiang-1,2)-1, fractureCell_matrixCell_addedMatrixCell(3*xiang-1,2); + fractureCell_matrixCell_addedMatrixCell(3*xiang-0,2)-1, fractureCell_matrixCell_addedMatrixCell(3*xiang-0,2); + % Ҳӻ xϵ + fractureCell_matrixCell_addedMatrixCell(3*xiang-2,3), fractureCell_matrixCell_addedMatrixCell(3*xiang-2,2)+1; + fractureCell_matrixCell_addedMatrixCell(3*xiang-1,3), fractureCell_matrixCell_addedMatrixCell(3*xiang-1,2)+1; + fractureCell_matrixCell_addedMatrixCell(3*xiang-0,3), fractureCell_matrixCell_addedMatrixCell(3*xiang-0,2)+1; + % ԭл yϵ + fractureCell_matrixCell_addedMatrixCell(3*xiang-2,2), fractureCell_matrixCell_addedMatrixCell(3*xiang-1,2); + fractureCell_matrixCell_addedMatrixCell(3*xiang-1,2), fractureCell_matrixCell_addedMatrixCell(3*xiang-0,2); + fractureCell_matrixCell_addedMatrixCell(3*xiang-0,2), fractureCell_matrixCell_addedMatrixCell(3*xiang-0,2)+nx; + % Ҳӻ yϵ + fractureCell_matrixCell_addedMatrixCell(3*xiang-2,2)-nx, fractureCell_matrixCell_addedMatrixCell(3*xiang-2,3); + fractureCell_matrixCell_addedMatrixCell(3*xiang-2,3), fractureCell_matrixCell_addedMatrixCell(3*xiang-1,3); + fractureCell_matrixCell_addedMatrixCell(3*xiang-1,3), fractureCell_matrixCell_addedMatrixCell(3*xiang-0,3); + ]; + relatedN = [relatedN; + addedNSs + ]; + % 㴫 + addedTs = []; + for dai = 1:size(addedNSs,1) + the_matrix_cell1 = addedNSs(dai,1); the_matrix_cell2 = addedNSs(dai,2); + if the_matrix_cell1> nmc + aaa = find(fractureCell_matrixCell_addedMatrixCell(:,3) == the_matrix_cell1); + the_matrix_cell1 = fractureCell_matrixCell_addedMatrixCell(aaa,2); + end + if the_matrix_cell2> nmc + aaa = find(fractureCell_matrixCell_addedMatrixCell(:,3) == the_matrix_cell2); + the_matrix_cell2 = fractureCell_matrixCell_addedMatrixCell(aaa,2); + end + if dai == 1 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/6))^(-1))^(-1); + end + if dai == 2 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/4))^(-1))^(-1); + end + if dai == 3 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)*5/12))^(-1))^(-1); + end + if dai == 4 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*5/12))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 5 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/4))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 6 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/6))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 7 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 8 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 9 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 10 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 11 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 12 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end +% % % ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*5/12))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/4))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/6))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% % % +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + + addedTs = [addedTs; theT]; + end + relatedT = [relatedT;addedTs]; +end +N = [N; relatedN]; +T = [T; relatedT]; + +% +Ninterflow(:,2) = Ninterflow(:,2)+ number_of_adding; +ori_nmc = nmc; +nmc = ori_nmc +number_of_adding; +% m-f +% number_of_adding = 0; +for i = 1:size(matrix_cells_containing_fracture_cells,1) + the_matrix_cell = matrix_cells_containing_fracture_cells(i,1); + aaa = find(fractureCell_matrixCell_addedMatrixCell(:,2) == the_matrix_cell); + the_new_cell = fractureCell_matrixCell_addedMatrixCell(aaa,3); + the_fracture_cell_flag = fractureCell_matrixCell_addedMatrixCell(aaa,1); +% number_of_adding = number_of_adding+1; +% the_new_cell = number_of_adding+ori_nmc; +for j = 1:size(Ninterflow,1) + if Ninterflow(j,1) == the_matrix_cell + the_added_mf_connec = [the_added_mf_connec;the_new_cell,Ninterflow(j,2)]; + if mod(the_fracture_cell_flag, numberInGroup) == 1 + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2*((1/4)/((1+2/3)/2))]; + Tinterflow(j) = Tinterflow(j)/2*((1/4)/((0+1/3)/2)); + end + if mod(the_fracture_cell_flag, numberInGroup) == 2 + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2]; + Tinterflow(j) = Tinterflow(j)/2; + end + if mod(the_fracture_cell_flag, numberInGroup) == 0 + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2*((1/4)/((0+1/3)/2))]; + Tinterflow(j) = Tinterflow(j)/2*((1/4)/((1+2/3)/2)); + end + end +end +end +Ninterflow = [Ninterflow; the_added_mf_connec]; +Tinterflow = [Tinterflow; the_added_mf_T]; +%% 2014ķΪƵʽ +% syms x y z; +% Ninterflow=[]; +% Tinterflow=[]; +% for i=1:nx*ny*nz % +% for j=1:10 +% if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell +% Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3); +% K1=Kf(matrixvsfra(i,j));d1=Wf(matrixvsfra(i,j)); +% K2=kffl(matrixvsfra(i,j));d2=dffl(matrixvsfra(i,j)); +% Annc=2*areavsfra(matrixvsfra(i,j)); +% fracore=corevsfra(matrixvsfra(i,j),:); +% matnodes=nodes(i,:); +% verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); +% matcore=mean(verco);d0=matcore-fracore; +% dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% % dn=abs(dn);%ӰֵЧ +% dn=sqrt(dn^2); +% dn=matlabFunction(dn); +% if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 +% Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(2)~=0 +% Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(3)~=0 +% Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 && norvec(3)~=0 +% Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 +% Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 +% Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(3)~=0 +% Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% end +% end +% end +% end +% end +% end +% end +% raoT=((Kcell*Annc/(Dn-d2))^(-1)+(K2*Annc/d2)^(-1)+(K1*Annc/d1)^(-1))^(-1); +% Tinterflow=[Tinterflow;raoT]; +% end +% end +% end + +%% ľֱ +N = [N; Nmff+nmc; Nff+nmc;Ninterflow;]; +T = [T; Tmff; Tff;Tinterflow;]; +T_convection = [T_convection;Tmff_convection; Tff_convection;Tinterflow_convection;]; +nex=size(N,1); +end diff --git a/generic extended/connections_unstructured_EDFM_EX2_1to2_solutions.m b/generic extended/connections_unstructured_EDFM_EX2_1to2_solutions.m new file mode 100644 index 0000000..ac698f7 --- /dev/null +++ b/generic extended/connections_unstructured_EDFM_EX2_1to2_solutions.m @@ -0,0 +1,638 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio, fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX2_1to2_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,addflag ) +% úԸѷţ洢ӹϵʣǰĹؼ +% ͬڶάǶʽɢѷģͣάģУѷǶάƽ棬֮ӹϵӣ +%ܼ򵥵ôӻжڣѷزڣڣѷȴһ +%ԭȥȷconnectionsȡ· +%һ:xinkȥк󣬰θijѷţͬʱ洢ѷڵĻ +%ڶ:洢ÿѷ߽磬߽糤ȣĵ꣬ĵ㵽߽ľ룬Ϊ׼ +%:ѷ˳򣬰ձ߽ͬı߽磬ѷڵ +%matrixvsfraаѷŵ +%fracnumberűʾѷţݱʾĵ +%areavsfraűʾѷţݱʾѷ +%ÿһߣȻ˳򷴹һ +%lengthvsfraűʾѷţݱʾѷĸ߳ +%corevsfraűʾѷţݱʾѷ +%disvsfraűʾѷţݱʾѷĵߵľ +matrixvsfra=zeros(nx*ny*nz,10);%Ϊ˼ٸþĴСʵһУһ㲻г10ѷ +fracnumber=zeros(1000,20);%ʵѷһ㲻ᳬ1000Ҳɸʵı +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf +rownum(i)=size(fracturemesh{i,1},1); +end +%% ѷһţӸӦĻ +q=1; +fracstart=zeros(nf+1,1);%ʾܱУÿѷʼĺ +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; +for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%qǸѷ +% m=floor((i+(2^nf)-1)/(2^nf)); + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); +% indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%ѷŸӦĻ + q=q+1; + end +end +end +fracstart(nf+1)=q;%ѷ+1 +fracnumber(q:1000,:)=[]; + + +%% ѷ쵥ԪĻɸѡ,д +m=size(matrixvsfra,1); +mat_frac=[]; +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %ɸѡѷĻ +% if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %洢û + connectmf{cc,1} = i; + mat_frac=[mat_frac;i]; + %Щѷ/ѷ쵥Ԫ˳ + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; +end +end + +%% һѷѷ߽ȵ +% edgevsfra=cell(nf,1); +% Kffl=funtion_data.Kffl; +% Dffl=funtion_data.Dffl; +% kffl=zeros(q-1,1); +% dffl=zeros(q-1,1); +fractureCellFlag = (1:q-1)'; +normalvec=zeros(q-1,3);%unit +areavsfra=zeros(q-1,1);%q-1ѷ +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,10);%ѷ͸ +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +avtran=zeros(q-1,1);%ѷƽںļ򻯼 +ave_disvsfra=zeros(q-1,1); +fcinff=zeros(q-1,1);%ʾѷ쵥Ԫڵѷ +zf=zeros(q-1,1);%ѷ쵥Ԫ߶ȣ±Ϊ׼ +vf=zeros(q-1,1);%ѷ쵥Ԫ +porf=zeros(q-1,1);%ѷ쵥ԪĿ϶ +for i=1:1:q-1 %ѷв + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 +for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if kf(i)==0 hartran=0;hartran_convection=0; + else + tran1=kf(i)*wf(i)*lengthcat/disk; + tran2=kf(i)*wf(i)*lengthcat/disj; +% hartran=length/(disk+disj);%ȡƽ + hartran=tran1*tran2/(tran1+tran2); + k_harmony= kf(i); + hartran_convection=kf(i)/(disk+disj)^2; + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + Tff_convection=[Tff_convection;hartran_convection]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +Tff_convection(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +Tmff_convection=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 +% lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + if sumtran==0 Tmff=[Tmff; 0];Tmff_convection=[Tmff_convection;0]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + end + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +Tmff_convection(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% ϵ +nmc=nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +T_convection = zeros(nmm, 1); +c = 0; +for k= 1 : nz +for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); + T_convection(c) = 2/(1/Kx(index)+1/Kx(indexn))/(dxv(indexn)+dxv(index)); + end +end +end + +for k= 1 : nz +for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + T_convection(c) = 2/(1/Ky(index)+1/Ky(indexn))/(dyv(indexn)+dyv(index)); + end +end +end + +for i = 1 : nx +for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + T_convection(c) = 2/(1/Kz(index)+1/Kz(indexn))/(dzv(indexn)+dzv(index)); + end +end +end +%% 2014ķΪƵʽ +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +Tinterflow_convection=[]; +matrix_cells_containing_fracture_cells = []; +volume_ratio = []; +fractureMatrixFlag = zeros(size(fractureCellFlag,1),2); +%% -------------------------------------------------------------------------˴޸֮--------------------------------------------------------------- +numberInGroup = 2; +%% -------------------------------------------------------------------------Ϸ޸Ľ--------------------------------------------------------------- +for i=1:nx*ny*nz % + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + fractureMatrixFlag(matrixvsfra(i,j),:) = [matrixvsfra(i,j),i]; + matrix_cells_containing_fracture_cells = [matrix_cells_containing_fracture_cells; i]; +%% -------------------------------------------------------------------------˴޸֮--------------------------------------------------------------- + if mod(matrixvsfra(i,j),numberInGroup) == 1 volume_ratio = [volume_ratio; 3/4];end % Ҳ±ռ +% if mod(matrixvsfra(i,j),numberInGroup) == 2 volume_ratio = [volume_ratio; 1/2];end + if mod(matrixvsfra(i,j),numberInGroup) == 0 volume_ratio = [volume_ratio; 1/4];end +%% -------------------------------------------------------------------------Ϸ޸Ľ--------------------------------------------------------------- + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + Knnc=kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=2*areavsfra(matrixvsfra(i,j)); + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% dn=abs(dn);%ӰֵЧ + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + raoT=Knnc*Annc/Dn; + raoT_convection=2*Knnc/Dn^2; + Tinterflow=[Tinterflow;raoT]; + Tinterflow_convection=[Tinterflow_convection;raoT_convection]; + end + end +end +%% ⴦˴δͨûдһչ +nfc=size(fracnumber,1); +the_added_matrix_cells = []; +nmc=nx * ny*nz; +the_added_mf_connec = []; +the_added_mf_T = []; +number_of_adding = 0; +cell_divided_by_fracture_flag = matrix_cells_containing_fracture_cells; +% ¼񱻷ֳ,ɾԭеЩص +matrixCellsDivided = zeros(size(matrix_cells_containing_fracture_cells,1),2); +deletedFlag = []; +for i = 1:size(matrix_cells_containing_fracture_cells,1) + the_matrix_cell = matrix_cells_containing_fracture_cells(i,1); + number_of_adding = number_of_adding+1; + the_new_cell = number_of_adding+nmc; + the_added_matrix_cells = [the_added_matrix_cells; the_new_cell]; + matrixCellsDivided(i,:) = [the_matrix_cell, the_new_cell]; + % m-m + for j = 1:size(N,1) + if N(j,1) == the_matrix_cell || N(j,2) == the_matrix_cell + deletedFlag = [deletedFlag; j]; + end +% % % if N(j,2) == the_matrix_cell+1 +% % % N(j,1) = the_new_cell; T(j) = ... +% % % ((Kx(the_matrix_cell)*dzv(the_matrix_cell)*dyv(the_matrix_cell)/(dxv(the_matrix_cell)/3))^(-1)+(Kx(the_matrix_cell+1)*dzv(the_matrix_cell+1)*dyv(the_matrix_cell+1)/(dxv(the_matrix_cell+1)/2))^(-1))^(-1); +% % % end + +% % % if N(j,2) == the_matrix_cell-nx +% % % N(j,1) = the_new_cell; T(j) = ... +% % % ((Ky(the_matrix_cell)*dzv(the_matrix_cell)*dxv(the_matrix_cell)/(dyv(the_matrix_cell)/3))^(-1)+(Ky(the_matrix_cell-n)*dzv(the_matrix_cell-n)*dxv(the_matrix_cell-n)/(dxv(the_matrix_cell-n)/2))^(-1))^(-1); +% % % end + +% % % if N(j,1) == the_matrix_cell+1 +% % % N(j,2) = the_new_cell; T(j) = ... +% % % ((Kx(the_matrix_cell)*dzv(the_matrix_cell)*dyv(the_matrix_cell)/(dxv(the_matrix_cell)/3))^(-1)+(Kx(the_matrix_cell+1)*dzv(the_matrix_cell+1)*dyv(the_matrix_cell+1)/(dxv(the_matrix_cell+1)/2))^(-1))^(-1); +% % % end + +% % % if N(j,1) == the_matrix_cell-nx +% % % N(j,2) = the_new_cell; T(j) = ... +% % % ((Ky(the_matrix_cell)*dzv(the_matrix_cell)*dxv(the_matrix_cell)/(dyv(the_matrix_cell)/3))^(-1)+(Ky(the_matrix_cell-n)*dzv(the_matrix_cell-n)*dxv(the_matrix_cell-n)/(dxv(the_matrix_cell-n)/2))^(-1))^(-1); +% % % end + + end +end +deletedFlag = unique(deletedFlag); +N(deletedFlag,:) = []; +T(deletedFlag,:) = []; +% ѷ--ӻĶӦ󣬰ѷ˳У +fractureCell_matrixCell_addedMatrixCell = zeros(size(fractureCellFlag,1),3); +for xiang = 1:size(fractureCellFlag,1) + theFractureCell = fractureCellFlag(xiang,1); + aaa = find(fractureMatrixFlag(:,1) == theFractureCell); + theMatrixCell = fractureMatrixFlag(aaa,2); + bbb = find(matrixCellsDivided(:,1) == theMatrixCell); + theAddedMatrixCells = matrixCellsDivided(bbb,2); + fractureCell_matrixCell_addedMatrixCell(theFractureCell,:) = [theFractureCell, theMatrixCell, theAddedMatrixCells]; +end +% Щʵ +relatedN = []; +relatedT = []; +for xiang = 1:size(fractureCellFlag,1)/numberInGroup +%% -------------------------------------------------------------------------˴޸֮----------------------------------------------------------------------- + addedNSs =[ + % ԭл xϵ +% fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2)-1, fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2)-1, fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2)-1, fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2); + % Ҳӻ xϵ +% fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2)+1; + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2)+1; + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2)+1; + % ԭл yϵ +% fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2)+nx; + % Ҳӻ yϵ + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2)-nx, fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,3); +% fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,3); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,3); + ]; +%% --------------------------------------------------------------˴޸Ľ----------------------------------------------------------------- + relatedN = [relatedN; + addedNSs + ]; + % 㴫 + addedTs = []; + for dai = 1:size(addedNSs,1) + the_matrix_cell1 = addedNSs(dai,1); the_matrix_cell2 = addedNSs(dai,2); + if the_matrix_cell1> nmc + aaa = find(fractureCell_matrixCell_addedMatrixCell(:,3) == the_matrix_cell1); + the_matrix_cell1 = fractureCell_matrixCell_addedMatrixCell(aaa,2); + end + if the_matrix_cell2> nmc + aaa = find(fractureCell_matrixCell_addedMatrixCell(:,3) == the_matrix_cell2); + the_matrix_cell2 = fractureCell_matrixCell_addedMatrixCell(aaa,2); + end +%% -------------------------------------------------------------------------˴޸֮----------------------------------------------------------------------- +% if dai == 1 +% theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/6))^(-1))^(-1); +% end + if dai == 1 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)*1/8))^(-1))^(-1); + end + if dai == 2 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)*3/8))^(-1))^(-1); + end +% if dai == 4 +% theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*5/12))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% end + if dai == 3 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*3/8))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 4 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/8))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); + end +% if dai == 7 +% theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% end + if dai == 5 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/2/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/2/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 6 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/2/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/2/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 7 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/2/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/2/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end +% if dai == 11 +% theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% end + if dai == 8 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/2/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/2/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end +%% -------------------------------------------------------------------------˴޸Ľ----------------------------------------------------------------------- +% % % ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*5/12))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/4))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/6))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% % % +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + + addedTs = [addedTs; theT]; + end + relatedT = [relatedT;addedTs]; +end +N = [N; relatedN]; +T = [T; relatedT]; +% +Ninterflow(:,2) = Ninterflow(:,2)+ number_of_adding; +ori_nmc = nmc; +nmc = ori_nmc +number_of_adding; +% m-f +% number_of_adding = 0; +for i = 1:size(matrix_cells_containing_fracture_cells,1) + the_matrix_cell = matrix_cells_containing_fracture_cells(i,1); + aaa = find(fractureCell_matrixCell_addedMatrixCell(:,2) == the_matrix_cell); + the_new_cell = fractureCell_matrixCell_addedMatrixCell(aaa,3); + the_fracture_cell_flag = fractureCell_matrixCell_addedMatrixCell(aaa,1); +% number_of_adding = number_of_adding+1; +% the_new_cell = number_of_adding+ori_nmc; +for j = 1:size(Ninterflow,1) + if Ninterflow(j,1) == the_matrix_cell + the_added_mf_connec = [the_added_mf_connec;the_new_cell,Ninterflow(j,2)]; +%% -------------------------------------------------------------------------˴޸֮----------------------------------------------------------------------- + if mod(the_fracture_cell_flag, numberInGroup) == 1 + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2*((1/4)/((1+1/2)/4))]; + Tinterflow(j) = Tinterflow(j)/2*((1/4)/((2-1-1/2)/4)); + end +% % % if mod(the_fracture_cell_flag, numberInGroup) == 2 +% % % the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2]; +% % % Tinterflow(j) = Tinterflow(j)/2; +% % % end + if mod(the_fracture_cell_flag, numberInGroup) == 0 + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2*((1/4)/((1/2+0)/4))]; + Tinterflow(j) = Tinterflow(j)/2*((1/4)/((1/2+0)/4)); + end +%% -------------------------------------------------------------------------˴޸֮----------------------------------------------------------------------- + end +end +end +Ninterflow = [Ninterflow; the_added_mf_connec]; +Tinterflow = [Tinterflow; the_added_mf_T]; +%% 2014ķΪƵʽ +% syms x y z; +% Ninterflow=[]; +% Tinterflow=[]; +% for i=1:nx*ny*nz % +% for j=1:10 +% if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell +% Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3); +% K1=Kf(matrixvsfra(i,j));d1=Wf(matrixvsfra(i,j)); +% K2=kffl(matrixvsfra(i,j));d2=dffl(matrixvsfra(i,j)); +% Annc=2*areavsfra(matrixvsfra(i,j)); +% fracore=corevsfra(matrixvsfra(i,j),:); +% matnodes=nodes(i,:); +% verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); +% matcore=mean(verco);d0=matcore-fracore; +% dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% % dn=abs(dn);%ӰֵЧ +% dn=sqrt(dn^2); +% dn=matlabFunction(dn); +% if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 +% Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(2)~=0 +% Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(3)~=0 +% Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 && norvec(3)~=0 +% Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 +% Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 +% Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(3)~=0 +% Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% end +% end +% end +% end +% end +% end +% end +% raoT=((Kcell*Annc/(Dn-d2))^(-1)+(K2*Annc/d2)^(-1)+(K1*Annc/d1)^(-1))^(-1); +% Tinterflow=[Tinterflow;raoT]; +% end +% end +% end + +%% ľֱ +N = [N; Nmff+nmc; Nff+nmc;Ninterflow;]; +T = [T; Tmff; Tff;Tinterflow;]; +T_convection = [T_convection;Tmff_convection; Tff_convection;Tinterflow_convection;]; +nex=size(N,1); +end diff --git a/generic extended/connections_unstructured_EDFM_EX2_1to3_solutions.m b/generic extended/connections_unstructured_EDFM_EX2_1to3_solutions.m new file mode 100644 index 0000000..164d7b9 --- /dev/null +++ b/generic extended/connections_unstructured_EDFM_EX2_1to3_solutions.m @@ -0,0 +1,638 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio, fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX2_1to3_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,addflag ) +% úԸѷţ洢ӹϵʣǰĹؼ +% ͬڶάǶʽɢѷģͣάģУѷǶάƽ棬֮ӹϵӣ +%ܼ򵥵ôӻжڣѷزڣڣѷȴһ +%ԭȥȷconnectionsȡ· +%һ:xinkȥк󣬰θijѷţͬʱ洢ѷڵĻ +%ڶ:洢ÿѷ߽磬߽糤ȣĵ꣬ĵ㵽߽ľ룬Ϊ׼ +%:ѷ˳򣬰ձ߽ͬı߽磬ѷڵ +%matrixvsfraаѷŵ +%fracnumberűʾѷţݱʾĵ +%areavsfraűʾѷţݱʾѷ +%ÿһߣȻ˳򷴹һ +%lengthvsfraűʾѷţݱʾѷĸ߳ +%corevsfraűʾѷţݱʾѷ +%disvsfraűʾѷţݱʾѷĵߵľ +matrixvsfra=zeros(nx*ny*nz,10);%Ϊ˼ٸþĴСʵһУһ㲻г10ѷ +fracnumber=zeros(1000,20);%ʵѷһ㲻ᳬ1000Ҳɸʵı +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf +rownum(i)=size(fracturemesh{i,1},1); +end +%% ѷһţӸӦĻ +q=1; +fracstart=zeros(nf+1,1);%ʾܱУÿѷʼĺ +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; +for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%qǸѷ +% m=floor((i+(2^nf)-1)/(2^nf)); + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); +% indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%ѷŸӦĻ + q=q+1; + end +end +end +fracstart(nf+1)=q;%ѷ+1 +fracnumber(q:1000,:)=[]; + + +%% ѷ쵥ԪĻɸѡ,д +m=size(matrixvsfra,1); +mat_frac=[]; +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %ɸѡѷĻ +% if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %洢û + connectmf{cc,1} = i; + mat_frac=[mat_frac;i]; + %Щѷ/ѷ쵥Ԫ˳ + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; +end +end + +%% һѷѷ߽ȵ +% edgevsfra=cell(nf,1); +% Kffl=funtion_data.Kffl; +% Dffl=funtion_data.Dffl; +% kffl=zeros(q-1,1); +% dffl=zeros(q-1,1); +fractureCellFlag = (1:q-1)'; +normalvec=zeros(q-1,3);%unit +areavsfra=zeros(q-1,1);%q-1ѷ +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,10);%ѷ͸ +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +avtran=zeros(q-1,1);%ѷƽںļ򻯼 +ave_disvsfra=zeros(q-1,1); +fcinff=zeros(q-1,1);%ʾѷ쵥Ԫڵѷ +zf=zeros(q-1,1);%ѷ쵥Ԫ߶ȣ±Ϊ׼ +vf=zeros(q-1,1);%ѷ쵥Ԫ +porf=zeros(q-1,1);%ѷ쵥ԪĿ϶ +for i=1:1:q-1 %ѷв + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 +for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if kf(i)==0 hartran=0;hartran_convection=0; + else + tran1=kf(i)*wf(i)*lengthcat/disk; + tran2=kf(i)*wf(i)*lengthcat/disj; +% hartran=length/(disk+disj);%ȡƽ + hartran=tran1*tran2/(tran1+tran2); + k_harmony= kf(i); + hartran_convection=kf(i)/(disk+disj)^2; + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + Tff_convection=[Tff_convection;hartran_convection]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +Tff_convection(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +Tmff_convection=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 +% lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + if sumtran==0 Tmff=[Tmff; 0];Tmff_convection=[Tmff_convection;0]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + end + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +Tmff_convection(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% ϵ +nmc=nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +T_convection = zeros(nmm, 1); +c = 0; +for k= 1 : nz +for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); + T_convection(c) = 2/(1/Kx(index)+1/Kx(indexn))/(dxv(indexn)+dxv(index)); + end +end +end + +for k= 1 : nz +for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + T_convection(c) = 2/(1/Ky(index)+1/Ky(indexn))/(dyv(indexn)+dyv(index)); + end +end +end + +for i = 1 : nx +for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + T_convection(c) = 2/(1/Kz(index)+1/Kz(indexn))/(dzv(indexn)+dzv(index)); + end +end +end +%% 2014ķΪƵʽ +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +Tinterflow_convection=[]; +matrix_cells_containing_fracture_cells = []; +volume_ratio = []; +fractureMatrixFlag = zeros(size(fractureCellFlag,1),2); +%% -------------------------------------------------------------------------˴޸֮--------------------------------------------------------------- +numberInGroup = 3; +%% -------------------------------------------------------------------------Ϸ޸Ľ--------------------------------------------------------------- +for i=1:nx*ny*nz % + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + fractureMatrixFlag(matrixvsfra(i,j),:) = [matrixvsfra(i,j),i]; + matrix_cells_containing_fracture_cells = [matrix_cells_containing_fracture_cells; i]; +%% -------------------------------------------------------------------------˴޸֮--------------------------------------------------------------- + if mod(matrixvsfra(i,j),numberInGroup) == 1 volume_ratio = [volume_ratio; 5/6];end % Ҳ±ռ + if mod(matrixvsfra(i,j),numberInGroup) == 2 volume_ratio = [volume_ratio; 1/2];end + if mod(matrixvsfra(i,j),numberInGroup) == 0 volume_ratio = [volume_ratio; 1/6];end +%% -------------------------------------------------------------------------Ϸ޸Ľ--------------------------------------------------------------- + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + Knnc=kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=2*areavsfra(matrixvsfra(i,j)); + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% dn=abs(dn);%ӰֵЧ + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + raoT=Knnc*Annc/Dn; + raoT_convection=2*Knnc/Dn^2; + Tinterflow=[Tinterflow;raoT]; + Tinterflow_convection=[Tinterflow_convection;raoT_convection]; + end + end +end +%% ⴦˴δͨûдһչ +nfc=size(fracnumber,1); +the_added_matrix_cells = []; +nmc=nx * ny*nz; +the_added_mf_connec = []; +the_added_mf_T = []; +number_of_adding = 0; +cell_divided_by_fracture_flag = matrix_cells_containing_fracture_cells; +% ¼񱻷ֳ,ɾԭеЩص +matrixCellsDivided = zeros(size(matrix_cells_containing_fracture_cells,1),2); +deletedFlag = []; +for i = 1:size(matrix_cells_containing_fracture_cells,1) + the_matrix_cell = matrix_cells_containing_fracture_cells(i,1); + number_of_adding = number_of_adding+1; + the_new_cell = number_of_adding+nmc; + the_added_matrix_cells = [the_added_matrix_cells; the_new_cell]; + matrixCellsDivided(i,:) = [the_matrix_cell, the_new_cell]; + % m-m + for j = 1:size(N,1) + if N(j,1) == the_matrix_cell || N(j,2) == the_matrix_cell + deletedFlag = [deletedFlag; j]; + end +% % % if N(j,2) == the_matrix_cell+1 +% % % N(j,1) = the_new_cell; T(j) = ... +% % % ((Kx(the_matrix_cell)*dzv(the_matrix_cell)*dyv(the_matrix_cell)/(dxv(the_matrix_cell)/3))^(-1)+(Kx(the_matrix_cell+1)*dzv(the_matrix_cell+1)*dyv(the_matrix_cell+1)/(dxv(the_matrix_cell+1)/2))^(-1))^(-1); +% % % end + +% % % if N(j,2) == the_matrix_cell-nx +% % % N(j,1) = the_new_cell; T(j) = ... +% % % ((Ky(the_matrix_cell)*dzv(the_matrix_cell)*dxv(the_matrix_cell)/(dyv(the_matrix_cell)/3))^(-1)+(Ky(the_matrix_cell-n)*dzv(the_matrix_cell-n)*dxv(the_matrix_cell-n)/(dxv(the_matrix_cell-n)/2))^(-1))^(-1); +% % % end + +% % % if N(j,1) == the_matrix_cell+1 +% % % N(j,2) = the_new_cell; T(j) = ... +% % % ((Kx(the_matrix_cell)*dzv(the_matrix_cell)*dyv(the_matrix_cell)/(dxv(the_matrix_cell)/3))^(-1)+(Kx(the_matrix_cell+1)*dzv(the_matrix_cell+1)*dyv(the_matrix_cell+1)/(dxv(the_matrix_cell+1)/2))^(-1))^(-1); +% % % end + +% % % if N(j,1) == the_matrix_cell-nx +% % % N(j,2) = the_new_cell; T(j) = ... +% % % ((Ky(the_matrix_cell)*dzv(the_matrix_cell)*dxv(the_matrix_cell)/(dyv(the_matrix_cell)/3))^(-1)+(Ky(the_matrix_cell-n)*dzv(the_matrix_cell-n)*dxv(the_matrix_cell-n)/(dxv(the_matrix_cell-n)/2))^(-1))^(-1); +% % % end + + end +end +deletedFlag = unique(deletedFlag); +N(deletedFlag,:) = []; +T(deletedFlag,:) = []; +% ѷ--ӻĶӦ󣬰ѷ˳У +fractureCell_matrixCell_addedMatrixCell = zeros(size(fractureCellFlag,1),3); +for xiang = 1:size(fractureCellFlag,1) + theFractureCell = fractureCellFlag(xiang,1); + aaa = find(fractureMatrixFlag(:,1) == theFractureCell); + theMatrixCell = fractureMatrixFlag(aaa,2); + bbb = find(matrixCellsDivided(:,1) == theMatrixCell); + theAddedMatrixCells = matrixCellsDivided(bbb,2); + fractureCell_matrixCell_addedMatrixCell(theFractureCell,:) = [theFractureCell, theMatrixCell, theAddedMatrixCells]; +end +% Щʵ +relatedN = []; +relatedT = []; +for xiang = 1:size(fractureCellFlag,1)/numberInGroup +%% -------------------------------------------------------------------------˴޸֮----------------------------------------------------------------------- + addedNSs =[ + % ԭл xϵ + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2)-1, fractureCell_matrixCell_addedMatrixCell(3*xiang-2,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2)-1, fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2)-1, fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2); + % Ҳӻ xϵ + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2)+1; + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2)+1; + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2)+1; + % ԭл yϵ + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2)+nx; + % Ҳӻ yϵ + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2)-nx, fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,3); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,3); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,3); + ]; +%% --------------------------------------------------------------˴޸Ľ----------------------------------------------------------------- + relatedN = [relatedN; + addedNSs + ]; + % 㴫 + addedTs = []; + for dai = 1:size(addedNSs,1) + the_matrix_cell1 = addedNSs(dai,1); the_matrix_cell2 = addedNSs(dai,2); + if the_matrix_cell1> nmc + aaa = find(fractureCell_matrixCell_addedMatrixCell(:,3) == the_matrix_cell1); + the_matrix_cell1 = fractureCell_matrixCell_addedMatrixCell(aaa,2); + end + if the_matrix_cell2> nmc + aaa = find(fractureCell_matrixCell_addedMatrixCell(:,3) == the_matrix_cell2); + the_matrix_cell2 = fractureCell_matrixCell_addedMatrixCell(aaa,2); + end +%% -------------------------------------------------------------------------˴޸֮----------------------------------------------------------------------- + if dai == 1 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/12))^(-1))^(-1); + end + if dai == 2 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/4))^(-1))^(-1); + end + if dai == 3 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)*5/12))^(-1))^(-1); + end + if dai == 4 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*5/12))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 5 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/4))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 6 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/12))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 7 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 8 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 9 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 10 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 11 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 12 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end +%% -------------------------------------------------------------------------˴޸Ľ----------------------------------------------------------------------- +% % % ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*5/12))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/4))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/6))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% % % +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + + addedTs = [addedTs; theT]; + end + relatedT = [relatedT;addedTs]; +end +N = [N; relatedN]; +T = [T; relatedT]; +% +Ninterflow(:,2) = Ninterflow(:,2)+ number_of_adding; +ori_nmc = nmc; +nmc = ori_nmc +number_of_adding; +% m-f +% number_of_adding = 0; +for i = 1:size(matrix_cells_containing_fracture_cells,1) + the_matrix_cell = matrix_cells_containing_fracture_cells(i,1); + aaa = find(fractureCell_matrixCell_addedMatrixCell(:,2) == the_matrix_cell); + the_new_cell = fractureCell_matrixCell_addedMatrixCell(aaa,3); + the_fracture_cell_flag = fractureCell_matrixCell_addedMatrixCell(aaa,1); +% number_of_adding = number_of_adding+1; +% the_new_cell = number_of_adding+ori_nmc; +for j = 1:size(Ninterflow,1) + if Ninterflow(j,1) == the_matrix_cell + the_added_mf_connec = [the_added_mf_connec;the_new_cell,Ninterflow(j,2)]; +%% -------------------------------------------------------------------------˴޸֮----------------------------------------------------------------------- + if mod(the_fracture_cell_flag, numberInGroup) == 1 + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2*((1/4)/((1+2/3)/2))]; + Tinterflow(j) = Tinterflow(j)/2*((1/4)/((0+1/3)/2)); + end + if mod(the_fracture_cell_flag, numberInGroup) == 2 + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2]; + Tinterflow(j) = Tinterflow(j)/2; + end + if mod(the_fracture_cell_flag, numberInGroup) == 0 + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2*((1/4)/((0+1/3)/2))]; + Tinterflow(j) = Tinterflow(j)/2*((1/4)/((1+2/3)/2)); + end +%% -------------------------------------------------------------------------˴޸֮----------------------------------------------------------------------- + end +end +end +Ninterflow = [Ninterflow; the_added_mf_connec]; +Tinterflow = [Tinterflow; the_added_mf_T]; +%% 2014ķΪƵʽ +% syms x y z; +% Ninterflow=[]; +% Tinterflow=[]; +% for i=1:nx*ny*nz % +% for j=1:10 +% if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell +% Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3); +% K1=Kf(matrixvsfra(i,j));d1=Wf(matrixvsfra(i,j)); +% K2=kffl(matrixvsfra(i,j));d2=dffl(matrixvsfra(i,j)); +% Annc=2*areavsfra(matrixvsfra(i,j)); +% fracore=corevsfra(matrixvsfra(i,j),:); +% matnodes=nodes(i,:); +% verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); +% matcore=mean(verco);d0=matcore-fracore; +% dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% % dn=abs(dn);%ӰֵЧ +% dn=sqrt(dn^2); +% dn=matlabFunction(dn); +% if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 +% Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(2)~=0 +% Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(3)~=0 +% Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 && norvec(3)~=0 +% Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 +% Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 +% Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(3)~=0 +% Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% end +% end +% end +% end +% end +% end +% end +% raoT=((Kcell*Annc/(Dn-d2))^(-1)+(K2*Annc/d2)^(-1)+(K1*Annc/d1)^(-1))^(-1); +% Tinterflow=[Tinterflow;raoT]; +% end +% end +% end + +%% ľֱ +N = [N; Nmff+nmc; Nff+nmc;Ninterflow;]; +T = [T; Tmff; Tff;Tinterflow;]; +T_convection = [T_convection;Tmff_convection; Tff_convection;Tinterflow_convection;]; +nex=size(N,1); +end diff --git a/generic extended/connections_unstructured_EDFM_EX2_1to4_solutions.m b/generic extended/connections_unstructured_EDFM_EX2_1to4_solutions.m new file mode 100644 index 0000000..0c5beb4 --- /dev/null +++ b/generic extended/connections_unstructured_EDFM_EX2_1to4_solutions.m @@ -0,0 +1,663 @@ +function [ matrixvsfra,connectmf,fracnumber,fracstart,corevsfra,connect_infrac,N,T,zf,fcinff,vf,porf,fcff,T_convection,mat_frac,number_of_adding,cell_divided_by_fracture_flag,volume_ratio, fractureCell_matrixCell_addedMatrixCell] = connections_unstructured_EDFM_EX2_1to4_solutions( fracturemesh,pointvsregion,raopoint,f,nf,nx,ny,nz,kx,ky,kz,kf,wf,Porf,dxv,dyv,dzv,coord,nodes,NTG,addflag ) +% úԸѷţ洢ӹϵʣǰĹؼ +% ͬڶάǶʽɢѷģͣάģУѷǶάƽ棬֮ӹϵӣ +%ܼ򵥵ôӻжڣѷزڣڣѷȴһ +%ԭȥȷconnectionsȡ· +%һ:xinkȥк󣬰θijѷţͬʱ洢ѷڵĻ +%ڶ:洢ÿѷ߽磬߽糤ȣĵ꣬ĵ㵽߽ľ룬Ϊ׼ +%:ѷ˳򣬰ձ߽ͬı߽磬ѷڵ +%matrixvsfraаѷŵ +%fracnumberűʾѷţݱʾĵ +%areavsfraűʾѷţݱʾѷ +%ÿһߣȻ˳򷴹һ +%lengthvsfraűʾѷţݱʾѷĸ߳ +%corevsfraűʾѷţݱʾѷ +%disvsfraűʾѷţݱʾѷĵߵľ +matrixvsfra=zeros(nx*ny*nz,10);%Ϊ˼ٸþĴСʵһУһ㲻г10ѷ +fracnumber=zeros(1000,20);%ʵѷһ㲻ᳬ1000Ҳɸʵı +%m=size(xink,1); +rownum=zeros(nf,1); +for i=1:nf +rownum(i)=size(fracturemesh{i,1},1); +end +%% ѷһţӸӦĻ +q=1; +fracstart=zeros(nf+1,1);%ʾܱУÿѷʼĺ +for j=1:nf + fracstart(j)=q; + numofmesh=pointvsregion{j,1}; +for i=1:1:rownum(j) + if(norm(fracturemesh{j,1}(i,:))~=0) + raoindice=size(fracturemesh{j,1}(i,:),2); + fracnumber(q,1:raoindice)=fracturemesh{j,1}(i,:);%qǸѷ +% m=floor((i+(2^nf)-1)/(2^nf)); + m=floor((i+(2^addflag(j)-1))/(2^addflag(j))); + indice=find(matrixvsfra(numofmesh(m),:)~=0); +% indice=find(matrixvsfra(numofmesh(i),:)~=0); + if (size(indice,2)==0) xiang=1; + else + rao=max(indice'); + xiang=rao(1)+1; + end + matrixvsfra(numofmesh(m),xiang)=q;%ѷŸӦĻ + q=q+1; + end +end +end +fracstart(nf+1)=q;%ѷ+1 +fracnumber(q:1000,:)=[]; + + +%% ѷ쵥ԪĻɸѡ,д +m=size(matrixvsfra,1); +mat_frac=[]; +connectmf=cell(1,4); +% for i=1:m +% if (norm(matrixvsfra(i,:))~=0) +% ConnecS = cell(1,4); +cc = 0; +cl = 1; +for i = 1 : m + %ɸѡѷĻ +% if ~isempty(matrixvsfra(i,:)) + if (norm(matrixvsfra(i,:)))~=0 + cc = cc + 1; + %洢û + connectmf{cc,1} = i; + mat_frac=[mat_frac;i]; + %Щѷ/ѷ쵥Ԫ˳ + A=matrixvsfra(i,:); + A(A==0)=[]; + connectmf{cc,2} =A; +end +end + +%% һѷѷ߽ȵ +% edgevsfra=cell(nf,1); +% Kffl=funtion_data.Kffl; +% Dffl=funtion_data.Dffl; +% kffl=zeros(q-1,1); +% dffl=zeros(q-1,1); +fractureCellFlag = (1:q-1)'; +normalvec=zeros(q-1,3);%unit +areavsfra=zeros(q-1,1);%q-1ѷ +lengthvsfra=zeros(q-1,10); +Kf=zeros(q-1,10);%ѷ͸ +corevsfra=zeros(q-1,3); +disvsfra=zeros(q-1,10); +tran=zeros(q-1,10); +avtran=zeros(q-1,1);%ѷƽںļ򻯼 +ave_disvsfra=zeros(q-1,1); +fcinff=zeros(q-1,1);%ʾѷ쵥Ԫڵѷ +zf=zeros(q-1,1);%ѷ쵥Ԫ߶ȣ±Ϊ׼ +vf=zeros(q-1,1);%ѷ쵥Ԫ +porf=zeros(q-1,1);%ѷ쵥ԪĿ϶ +for i=1:1:q-1 %ѷв + if(norm(fracnumber(i,:))==0) break; + else + for k=2:(nf+1) + if(i0 +for i=1:(q-1) + [dogindex,~]=find(deindex==i); + if length(dogindex)~=0 + newnum(i)=0; + else + [catindex,~]=find(deindex2)||((size(raoflag,2)<2))) continue;%Ϊ͹ΣֻҪѷĹԪ2йߣ + %2ͬѷΪǣһǰΣìܣ֤ϣСûйеı + else if (a==b) continue; %˵ѷ쵥ԪͬһУ˲Ӧڴ + else + raoconnect(p,q)=k;q=q+1; + lengthcat=norm(d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:));%ѷ쵥Ԫ߳ + rao1k=corevsfra(k,:)-d3intersection(raoflag(1),:); + rao1j=corevsfra(j,:)-d3intersection(raoflag(1),:); + rao2=d3intersection(raoflag(1),:)-d3intersection(raoflag(2),:); + %ֱѷ쵥Ԫĵߵľ + disk=norm(cross(rao1k',rao2'))/norm(rao2); + disj=norm(cross(rao1j',rao2'))/norm(rao2); + if kf(i)==0 hartran=0;hartran_convection=0; + else + tran1=kf(i)*wf(i)*lengthcat/disk; + tran2=kf(i)*wf(i)*lengthcat/disj; +% hartran=length/(disk+disj);%ȡƽ + hartran=tran1*tran2/(tran1+tran2); + k_harmony= kf(i); + hartran_convection=kf(i)/(disk+disj)^2; + end + Nff=[Nff; j,k]; + Tff=[Tff;hartran]; + Tff_convection=[Tff_convection;hartran_convection]; + %ÿѷĵÿߵľ + end + end + p=p+1; + end + connect_infrac{i,1}=raoconnect; + end +end +Nff(1,:)=[]; %ȥһе +Tff(1,:)=[]; +Tff_convection(1,:)=[]; +%% ͬһеѷ쵥Ԫʼ +nmc=size(matrixvsfra,1); +Nmff=zeros(1,2); +Tmff=zeros(1,1); +Tmff_convection=zeros(1,1); +for i=1:nmc + if(norm(matrixvsfra(i,:))~=0) + indice=find(matrixvsfra(i,:)~=0); + n=size(indice,2); + if (n>1) %ʱҪȡļ㷨 +% lengthvsfra(matrixvsfra(i,indice))./disvsfra(matrixvsfra(i,indice)) + for j=1:n-1 + for k=(j+1):n + Nmff=[Nmff;matrixvsfra(i,indice(j)), matrixvsfra(i,indice(k))]; + % ʱļ㷽ʽÿѷƽڸûеѷ쵥Ԫƽ + fc1=matrixvsfra(i,indice(j)); fc2=matrixvsfra(i,indice(k)); + allfc=matrixvsfra(i,1:n); sumtran=sum(fcff{1,7}(allfc)); + if sumtran==0 Tmff=[Tmff; 0];Tmff_convection=[Tmff_convection;0]; + else + Tmff=[Tmff; fcff{1,7}(fc1)*fcff{1,7}(fc2)/sumtran]; + end + end + end + end + end +end +Nmff(1,:)=[]; %ȥͷ +Tmff(1,:)=[]; +Tmff_convection(1,:)=[]; +% N = [N; Nmff+nmc]; +% T = [T; Tmff]; + +%% ϵ +nmc=nx * ny*nz;%Ŀ +nfc=size(fracnumber,1);%ѷ쵥ԪĿ +rpt = [ones(nmc, 1); zeros(nfc, 1)]; +% r.rpt = rpt; +nmm = (nx-1)*ny*nz+(ny-1)*nx*nz+(nz-1)*nx*ny;%nmmǻ֮彻 +% r.nf = nmm + nff;%nffѷ쵥Ԫ֮彻 +Kx=kx.*ones(nmc,1); +Ky=ky.*ones(nmc,1); +Kz=kz.*ones(nmc,1); +N = zeros(nmm, 2);%洢֮彻 +T = zeros(nmm, 1);%洢ӦNĴϵ +T_convection = zeros(nmm, 1); +c = 0; +for k= 1 : nz +for j = 1 : ny + for i = 1 : nx - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + 1; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dyv(index)*Kx(index)*Kx(indexn)*NTG(index)*NTG(indexn)/(Kx(index)*dxv(indexn)*NTG(index) + Kx(indexn)*dxv(index)*NTG(indexn)); + T_convection(c) = 2/(1/Kx(index)+1/Kx(indexn))/(dxv(indexn)+dxv(index)); + end +end +end + +for k= 1 : nz +for i = 1 : nx + for j = 1 : ny - 1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx; + N(c, :) = [index, indexn]; + T(c) = 2 * dzv(index)*dxv(index)*Ky(index)*Ky(indexn)/(Ky(index)*dyv(indexn) + Ky(indexn)*dyv(index)); + T_convection(c) = 2/(1/Ky(index)+1/Ky(indexn))/(dyv(indexn)+dyv(index)); + end +end +end + +for i = 1 : nx +for j = 1 : ny + for k= 1: nz-1 + c = c + 1; + index = i + (j - 1) * nx + (k - 1) * nx * ny; + indexn = index + nx * ny; + N(c, :) = [index, index + nx*ny]; + T(c) = 2 * dxv(index)*dyv(index)*Kz(index)*Kz(indexn)/(Kz(index)*dzv(indexn) + Kz(indexn)*dzv(index)); + T_convection(c) = 2/(1/Kz(index)+1/Kz(indexn))/(dzv(indexn)+dzv(index)); + end +end +end +%% 2014ķΪƵʽ +syms x y z; +Ninterflow=[]; +Tinterflow=[]; +Tinterflow_convection=[]; +matrix_cells_containing_fracture_cells = []; +volume_ratio = []; +fractureMatrixFlag = zeros(size(fractureCellFlag,1),2); +%% -------------------------------------------------------------------------˴޸֮--------------------------------------------------------------- +numberInGroup = 4; +%% -------------------------------------------------------------------------Ϸ޸Ľ--------------------------------------------------------------- +for i=1:nx*ny*nz % + for j=1:10 + if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell + fractureMatrixFlag(matrixvsfra(i,j),:) = [matrixvsfra(i,j),i]; + matrix_cells_containing_fracture_cells = [matrix_cells_containing_fracture_cells; i]; +%% -------------------------------------------------------------------------˴޸֮--------------------------------------------------------------- + if mod(matrixvsfra(i,j),numberInGroup) == 1 volume_ratio = [volume_ratio; 7/8];end % Ҳ±ռ + if mod(matrixvsfra(i,j),numberInGroup) == 2 volume_ratio = [volume_ratio; 5/8];end + if mod(matrixvsfra(i,j),numberInGroup) == 3 volume_ratio = [volume_ratio; 3/8];end + if mod(matrixvsfra(i,j),numberInGroup) == 0 volume_ratio = [volume_ratio; 1/8];end +%% -------------------------------------------------------------------------Ϸ޸Ľ--------------------------------------------------------------- + Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; + kcell=(kx(i)*ky(i)*kz(i))^(1/3); + Knnc=kcell*Kf(matrixvsfra(i,j))/(kcell+Kf(matrixvsfra(i,j))); + Annc=2*areavsfra(matrixvsfra(i,j)); + fracore=corevsfra(matrixvsfra(i,j),:); + matnodes=nodes(i,:); + verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); + matcore=mean(verco);d0=matcore-fracore; + dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% dn=abs(dn);%ӰֵЧ + dn=sqrt(dn^2); + dn=matlabFunction(dn); + if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 + Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(2)~=0 + Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 && norvec(3)~=0 + Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 && norvec(3)~=0 + Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(1)~=0 + Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(2)~=0 + Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + else if norvec(3)~=0 + Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); + end + end + end + end + end + end + end + raoT=Knnc*Annc/Dn; + raoT_convection=2*Knnc/Dn^2; + Tinterflow=[Tinterflow;raoT]; + Tinterflow_convection=[Tinterflow_convection;raoT_convection]; + end + end +end +%% ⴦˴δͨûдһչ +nfc=size(fracnumber,1); +the_added_matrix_cells = []; +nmc=nx * ny*nz; +the_added_mf_connec = []; +the_added_mf_T = []; +number_of_adding = 0; +cell_divided_by_fracture_flag = matrix_cells_containing_fracture_cells; +% ¼񱻷ֳ,ɾԭеЩص +matrixCellsDivided = zeros(size(matrix_cells_containing_fracture_cells,1),2); +deletedFlag = []; +for i = 1:size(matrix_cells_containing_fracture_cells,1) + the_matrix_cell = matrix_cells_containing_fracture_cells(i,1); + number_of_adding = number_of_adding+1; + the_new_cell = number_of_adding+nmc; + the_added_matrix_cells = [the_added_matrix_cells; the_new_cell]; + matrixCellsDivided(i,:) = [the_matrix_cell, the_new_cell]; + % m-m + for j = 1:size(N,1) + if N(j,1) == the_matrix_cell || N(j,2) == the_matrix_cell + deletedFlag = [deletedFlag; j]; + end +% % % if N(j,2) == the_matrix_cell+1 +% % % N(j,1) = the_new_cell; T(j) = ... +% % % ((Kx(the_matrix_cell)*dzv(the_matrix_cell)*dyv(the_matrix_cell)/(dxv(the_matrix_cell)/3))^(-1)+(Kx(the_matrix_cell+1)*dzv(the_matrix_cell+1)*dyv(the_matrix_cell+1)/(dxv(the_matrix_cell+1)/2))^(-1))^(-1); +% % % end + +% % % if N(j,2) == the_matrix_cell-nx +% % % N(j,1) = the_new_cell; T(j) = ... +% % % ((Ky(the_matrix_cell)*dzv(the_matrix_cell)*dxv(the_matrix_cell)/(dyv(the_matrix_cell)/3))^(-1)+(Ky(the_matrix_cell-n)*dzv(the_matrix_cell-n)*dxv(the_matrix_cell-n)/(dxv(the_matrix_cell-n)/2))^(-1))^(-1); +% % % end + +% % % if N(j,1) == the_matrix_cell+1 +% % % N(j,2) = the_new_cell; T(j) = ... +% % % ((Kx(the_matrix_cell)*dzv(the_matrix_cell)*dyv(the_matrix_cell)/(dxv(the_matrix_cell)/3))^(-1)+(Kx(the_matrix_cell+1)*dzv(the_matrix_cell+1)*dyv(the_matrix_cell+1)/(dxv(the_matrix_cell+1)/2))^(-1))^(-1); +% % % end + +% % % if N(j,1) == the_matrix_cell-nx +% % % N(j,2) = the_new_cell; T(j) = ... +% % % ((Ky(the_matrix_cell)*dzv(the_matrix_cell)*dxv(the_matrix_cell)/(dyv(the_matrix_cell)/3))^(-1)+(Ky(the_matrix_cell-n)*dzv(the_matrix_cell-n)*dxv(the_matrix_cell-n)/(dxv(the_matrix_cell-n)/2))^(-1))^(-1); +% % % end + + end +end +deletedFlag = unique(deletedFlag); +N(deletedFlag,:) = []; +T(deletedFlag,:) = []; +% ѷ--ӻĶӦ󣬰ѷ˳У +fractureCell_matrixCell_addedMatrixCell = zeros(size(fractureCellFlag,1),3); +for xiang = 1:size(fractureCellFlag,1) + theFractureCell = fractureCellFlag(xiang,1); + aaa = find(fractureMatrixFlag(:,1) == theFractureCell); + theMatrixCell = fractureMatrixFlag(aaa,2); + bbb = find(matrixCellsDivided(:,1) == theMatrixCell); + theAddedMatrixCells = matrixCellsDivided(bbb,2); + fractureCell_matrixCell_addedMatrixCell(theFractureCell,:) = [theFractureCell, theMatrixCell, theAddedMatrixCells]; +end +% Щʵ +relatedN = []; +relatedT = []; +for xiang = 1:size(fractureCellFlag,1)/numberInGroup +%% -------------------------------------------------------------------------˴޸֮----------------------------------------------------------------------- + addedNSs =[ + % ԭл xϵ + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-3,2)-1, fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-3,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2)-1, fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2)-1, fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2)-1, fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2); + % Ҳӻ xϵ + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-3,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-3,2)+1; + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2)+1; + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2)+1; + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2)+1; + % ԭл yϵ + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-3,2), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,2), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,2), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,2)+nx; + % Ҳӻ yϵ + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-3,2)-nx, fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-3,3); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-3,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,3); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-2,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,3); + fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-1,3), fractureCell_matrixCell_addedMatrixCell(numberInGroup*xiang-0,3); + ]; +%% --------------------------------------------------------------˴޸Ľ----------------------------------------------------------------- + relatedN = [relatedN; + addedNSs + ]; + % 㴫 + addedTs = []; + for dai = 1:size(addedNSs,1) + the_matrix_cell1 = addedNSs(dai,1); the_matrix_cell2 = addedNSs(dai,2); + if the_matrix_cell1> nmc + aaa = find(fractureCell_matrixCell_addedMatrixCell(:,3) == the_matrix_cell1); + the_matrix_cell1 = fractureCell_matrixCell_addedMatrixCell(aaa,2); + end + if the_matrix_cell2> nmc + aaa = find(fractureCell_matrixCell_addedMatrixCell(:,3) == the_matrix_cell2); + the_matrix_cell2 = fractureCell_matrixCell_addedMatrixCell(aaa,2); + end +%% -------------------------------------------------------------------------˴޸֮----------------------------------------------------------------------- + % + if dai == 1 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)*1/16))^(-1))^(-1); + end + if dai == 2 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)*3/16))^(-1))^(-1); + end + if dai == 3 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)*5/16))^(-1))^(-1); + end + if dai == 4 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)*7/16))^(-1))^(-1); + end + % + if dai == 5 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*7/16))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 6 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*5/16))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 7 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*3/16))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 8 + theT = ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/16))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); + end + % + if dai == 9 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/4/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/4/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 10 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/4/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/4/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 11 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/4/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/4/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 12 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*4/4/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*4/4/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + % + if dai == 13 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*4/4/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*4/4/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 14 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/4/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/4/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 15 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/4/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/4/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end + if dai == 16 + theT = ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/4/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/4/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + end +%% -------------------------------------------------------------------------˴޸Ľ----------------------------------------------------------------------- +% % % ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*5/12))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/4))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Kx(the_matrix_cell1)*dzv(the_matrix_cell1)*dyv(the_matrix_cell1)/(dxv(the_matrix_cell1)*1/6))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dyv(the_matrix_cell2)/(dxv(the_matrix_cell2)/2))^(-1))^(-1); +% % % +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*3/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*3/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*2/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*2/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); +% % % ((Ky(the_matrix_cell1)*dzv(the_matrix_cell1)*dxv(the_matrix_cell1)*1/3/(dyv(the_matrix_cell1)/2))^(-1)+(Kx(the_matrix_cell2)*dzv(the_matrix_cell2)*dxv(the_matrix_cell2)*1/3/(dyv(the_matrix_cell2)/2))^(-1))^(-1); + + addedTs = [addedTs; theT]; + end + relatedT = [relatedT;addedTs]; +end +N = [N; relatedN]; +T = [T; relatedT]; +% +Ninterflow(:,2) = Ninterflow(:,2)+ number_of_adding; +ori_nmc = nmc; +nmc = ori_nmc +number_of_adding; +% m-f +% number_of_adding = 0; +for i = 1:size(matrix_cells_containing_fracture_cells,1) + the_matrix_cell = matrix_cells_containing_fracture_cells(i,1); + aaa = find(fractureCell_matrixCell_addedMatrixCell(:,2) == the_matrix_cell); + the_new_cell = fractureCell_matrixCell_addedMatrixCell(aaa,3); + the_fracture_cell_flag = fractureCell_matrixCell_addedMatrixCell(aaa,1); +% number_of_adding = number_of_adding+1; +% the_new_cell = number_of_adding+ori_nmc; +for j = 1:size(Ninterflow,1) + if Ninterflow(j,1) == the_matrix_cell + the_added_mf_connec = [the_added_mf_connec;the_new_cell,Ninterflow(j,2)]; +%% -------------------------------------------------------------------------˴޸֮----------------------------------------------------------------------- + if mod(the_fracture_cell_flag, numberInGroup) == 1 + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2*((1/4)/((1+3/4)/4))]; + Tinterflow(j) = Tinterflow(j)/2*((1/4)/((2-1-3/4)/4)); + end + if mod(the_fracture_cell_flag, numberInGroup) == 2 + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2*((1/4)/((3/4+2/4)/4))]; + Tinterflow(j) = Tinterflow(j)/2*((1/4)/((2-3/4-2/4)/4)); + end + if mod(the_fracture_cell_flag, numberInGroup) == 3 + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2*((1/4)/((2/4+1/4)/4))]; + Tinterflow(j) = Tinterflow(j)/2*((1/4)/((2-2/4-1/4)/4)); + end + if mod(the_fracture_cell_flag, numberInGroup) == 0 + the_added_mf_T = [the_added_mf_T; Tinterflow(j)/2*((1/4)/((0+1/4)/4))]; + Tinterflow(j) = Tinterflow(j)/2*((1/4)/((2-0-1/4)/4)); + end +%% -------------------------------------------------------------------------˴޸֮----------------------------------------------------------------------- + end +end +end +Ninterflow = [Ninterflow; the_added_mf_connec]; +Tinterflow = [Tinterflow; the_added_mf_T]; +%% 2014ķΪƵʽ +% syms x y z; +% Ninterflow=[]; +% Tinterflow=[]; +% for i=1:nx*ny*nz % +% for j=1:10 +% if matrixvsfra(i,j)~=0 %this matrix cell contains a fracture cell +% Ninterflow=[Ninterflow;i,matrixvsfra(i,j)+nmc]; +% kcell=(kx(i)*ky(i)*kz(i))^(1/3); +% K1=Kf(matrixvsfra(i,j));d1=Wf(matrixvsfra(i,j)); +% K2=kffl(matrixvsfra(i,j));d2=dffl(matrixvsfra(i,j)); +% Annc=2*areavsfra(matrixvsfra(i,j)); +% fracore=corevsfra(matrixvsfra(i,j),:); +% matnodes=nodes(i,:); +% verco=coord(matnodes,:);norvec=normalvec(matrixvsfra(i,j),:); +% matcore=mean(verco);d0=matcore-fracore; +% dn=(x+d0(1))*norvec(1)+(y+d0(2))*norvec(2)+(z+d0(3))*norvec(3); +% % dn=abs(dn);%ӰֵЧ +% dn=sqrt(dn^2); +% dn=matlabFunction(dn); +% if norvec(1)~=0 && norvec(2)~=0 && norvec(3)~=0 +% Dn=integral3(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(2)~=0 +% Dn=dzv(i)*NTG(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 && norvec(3)~=0 +% Dn=dyv(i)*integral2(dn,-dxv(i)/2,dxv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 && norvec(3)~=0 +% Dn=dxv(i)*integral2(dn,-dyv(i)/2,dyv(i)/2,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(1)~=0 +% Dn=dyv(i)*dzv(i)*NTG(i)*integral(dn,-dxv(i)/2,dxv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(2)~=0 +% Dn=dxv(i)*dzv(i)*NTG(i)*integral(dn,-dyv(i)/2,dyv(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% else if norvec(3)~=0 +% Dn=dxv(i)*dyv(i)*integral(dn,-dzv(i)*NTG(i)/2,dzv(i)*NTG(i)/2)/(dxv(i)*dyv(i)*dzv(i)*NTG(i)); +% end +% end +% end +% end +% end +% end +% end +% raoT=((Kcell*Annc/(Dn-d2))^(-1)+(K2*Annc/d2)^(-1)+(K1*Annc/d1)^(-1))^(-1); +% Tinterflow=[Tinterflow;raoT]; +% end +% end +% end + +%% ľֱ +N = [N; Nmff+nmc; Nff+nmc;Ninterflow;]; +T = [T; Tmff; Tff;Tinterflow;]; +T_convection = [T_convection;Tmff_convection; Tff_convection;Tinterflow_convection;]; +nex=size(N,1); +end diff --git a/generic extended/plotDis_3D_to_2D_1to3.m b/generic extended/plotDis_3D_to_2D_1to3.m new file mode 100644 index 0000000..310a4ed --- /dev/null +++ b/generic extended/plotDis_3D_to_2D_1to3.m @@ -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 diff --git a/generic extended/plotDis_3D_to_2D_new.m b/generic extended/plotDis_3D_to_2D_new.m new file mode 100644 index 0000000..257c064 --- /dev/null +++ b/generic extended/plotDis_3D_to_2D_new.m @@ -0,0 +1,85 @@ +function plotDis_3D_to_2D_new(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 +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); +the_numbering_division = 0; +for i = 1 :nmc + if ismember(i,cell_divided_by_fracture_flag) + the_numbering_division = the_numbering_division +2; +% for j = 1 :nel + x_division(1, the_numbering_division-1) = coordinate(nodes(i,1), 1); + y_division(1, the_numbering_division-1) = coordinate(nodes(i,1), 2); + x_division(2, the_numbering_division-1) = coordinate(nodes(i,4), 1); + y_division(2, the_numbering_division-1) = coordinate(nodes(i,4), 2); + x_division(3, the_numbering_division-1) = coordinate(nodes(i,3), 1); + y_division(3, the_numbering_division-1) = coordinate(nodes(i,3), 2); + dis_division(1:3, the_numbering_division-1) = v(i)*ones(3,1); + + x_division(1, the_numbering_division) = coordinate(nodes(i,1), 1); + y_division(1, the_numbering_division) = coordinate(nodes(i,1), 2); + x_division(2, the_numbering_division) = coordinate(nodes(i,2), 1); + y_division(2, the_numbering_division) = coordinate(nodes(i,2), 2); + x_division(3, the_numbering_division) = coordinate(nodes(i,4), 1); + y_division(3, the_numbering_division) = coordinate(nodes(i,4), 2); + + dis_division(1:3, the_numbering_division) = v(nmc+the_numbering_division/2)*ones(3,1); +% end + end +end +% fill(x,y,dis,'EdgeAlpha',1); +figure('color','w'); +fill(x,y,dis,'EdgeColor','interp'); +hold on; +fill(x_division,y_division,dis_division,'EdgeColor','interp'); +xlabel( 'x, m' ); +ylabel( 'y, m' ); +axis equal; +axis tight +xlim([0,60]); +ylim([0,60]); +colorbar +colormap jet +% fill(x,y,dis); +% axis off diff --git a/generic extended/plotDislayer.m b/generic extended/plotDislayer.m new file mode 100644 index 0000000..4d53d84 --- /dev/null +++ b/generic extended/plotDislayer.m @@ -0,0 +1,145 @@ +function plotDislayer(i, k ,r,OutputRs, type) +%i:ʱ㣬kǴIJλtype: 1ѹ +figure('color','w') +[ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dislayer( r,k ); +coordinate=r.coordinates; +nodes=r.nodes; +nx=r.nx; +ny=r.ny; +nz=r.nz; +% order=[1,2,4,3,1,5,6,8,7,3,4,8,6,2,1];%fillͼ +% % nmc = size(nodes,1);% +% nmc = nx*ny; +% % nel = size(nodes,2);%ÿĵ +% nel=size(order,2); +if type == 1 + v = OutputRs{i}.p; +% v = log(r.kx); +elseif type == 2 +% v = 1-OutputRs{i}.sw -OutputRs{i}.sg;%ͱͶ + v = 1-OutputRs{i}.sw;%ͱͶ +elseif type == 3 + v = OutputRs{i}.sg;%ͱͶ +else + v = OutputRs{i}.sw;%ͱͶ +end +% +order=[1,2,4,3,1]; +nel=size(order,2); +nmc=size(downgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(downgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(downgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(downgrid(i),order(j)), 3); + dis(j, i) = v(downgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +hold on + +% +order=[1,5,7,3,1]; +nel=size(order,2); +nmc=size(leftgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(leftgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(leftgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(leftgrid(i),order(j)), 3); + dis(j, i) = v(leftgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[2,4,8,6,2]; +nel=size(order,2); +nmc=size(rightgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(rightgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(rightgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(rightgrid(i),order(j)), 3); + dis(j, i) = v(rightgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%ǰ +order=[1,2,6,5,1]; +nel=size(order,2); +nmc=size(frontgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(frontgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(frontgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(frontgrid(i),order(j)), 3); + dis(j, i) = v(frontgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[3,4,8,7,3]; +nel=size(order,2); +nmc=size(backgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(backgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(backgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(backgrid(i),order(j)), 3); + dis(j, i) = v(backgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[5,6,8,7,5]; +nel=size(order,2); +nmc=size(upgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(upgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(upgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(upgrid(i),order(j)), 3); + dis(j, i) = v(upgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +xlabel('x, m'); +ylabel('y, m'); +zlabel('z, m'); +view(2); +% fill(x,y,dis); +axis equal +% axis off +axis tight +colormap jet +colorbar +% caxis([0.2,0.8]); diff --git a/generic extended/plotWellResponse.m b/generic extended/plotWellResponse.m new file mode 100644 index 0000000..b6509ec --- /dev/null +++ b/generic extended/plotWellResponse.m @@ -0,0 +1,15 @@ +figure('color','w'); +plot(wellResponseData(1:105,1),wellResponseData(1:105,2),'rs-','markersize',6); +hold on; +plot(wellResponseData(1:105,3),wellResponseData(1:105,4),'bo-','markersize',6); +hold on; +plot(wellResponseData(1:104,5),wellResponseData(1:104,6),'k^-','markersize',6); +hold on; +plot(wellResponseData(1:104,7),wellResponseData(1:104,8),'gv-','markersize',6); +hold on; +plot(wellResponseData(1:104,9),wellResponseData(1:104,10),'k-','markersize',6); +hold off; +xlabel('time, days'); +ylabel('water cut of the porduction well, fraction'); +ylabel('BHP of the injection well, MPa'); +legend('EDFM', 'pEDFM-discontinuous', 'pEDFM-continuous','proposed pEDFM workflow','reference solution');% ,'pEDFM, case 3' \ No newline at end of file diff --git a/generic extended/plot_Newtons.m b/generic extended/plot_Newtons.m new file mode 100644 index 0000000..1b940d9 --- /dev/null +++ b/generic extended/plot_Newtons.m @@ -0,0 +1,13 @@ +figure('color','w'); +plot(Newtons(1:120,1),Newtons(1:120,2),'k^-'); +hold on; +plot(Newtons(1:123,3),Newtons(1:123,4),'rs-'); +hold on; +plot(Newtons(1:121,5),Newtons(1:121,6),'bo-'); +hold on; +plot(Newtons(1:121,7),Newtons(1:121,8),'gv-'); +hold off; +xlabel('time, days'); +ylabel('cumulative Newton iteration steps'); +legend('EDFM', 'pEDFM, method 1', 'pEDFM, method 2','pEDFM, method 3');% ,'pEDFM, case 3' + diff --git a/generic extended/plot_continuous.m b/generic extended/plot_continuous.m new file mode 100644 index 0000000..eb775fc --- /dev/null +++ b/generic extended/plot_continuous.m @@ -0,0 +1,116 @@ +dx=[0.5*ones(1,120) ]; +dy=[0.5*ones(1,120) ]; +dz=[2*ones(1,1)]; +nx=size(dx,2); +ny=size(dy,2); +nz=size(dz,2); +x_size = 60; +y_size = 60; +coordinates_pre = zeros(nx*ny*nz,2); +select_t = 120; +for k = 1:nz + for j = 1:ny + for i = 1:nx + if i == 1 + coordinates_pre(i+(j-1)*nx+(k-1)*nx*ny,1) = sum(dx(1:1),2)/2; + else + coordinates_pre(i+(j-1)*nx+(k-1)*nx*ny,1) = (sum(dx(1:i-1),2)+sum(dx(1:i),2))/2; + end + if j == 1 + coordinates_pre(i+(j-1)*nx+(k-1)*nx*ny,2) = sum(dy(1:1),2)/2; + else + coordinates_pre(i+(j-1)*nx+(k-1)*nx*ny,2) = (sum(dy(1:j-1),2)+sum(dy(1:j),2))/2; + end + % if k == 1 + % coordinates_pre(i+(j-1)*nx+(k-1)*nx*ny,3) = sum(dz(1:1),2)/2; + % else + % coordinates_pre(i+(j-1)*nx+(k-1)*nx*ny,3) = (sum(dz(1:k-1),2)+sum(dz(1:k),2))/2; + % end + end + end +end +% select_t = 508; +zData = OutputRs{select_t, 1}.p(1:nx*ny*nz,1); +zData1 = 1-OutputRs{select_t, 1}.sw(1:nx*ny*nz,1); +xData = coordinates_pre(:,1); +yData = coordinates_pre(:,2); +% zData = DATA_plot(:,21); +% zData1 = DATA_plot(:,22); + +% minx = min(xData); +% maxx = max(xData); +% miny = min(yData); +% maxy = max(yData); +minx = 0; +maxx = x_size; +miny = 0; +maxy = y_size; + +tx = (minx:0.05:maxx)'; +ty = (miny:0.05:maxy)'; + +[XI,YI] = meshgrid(tx,ty); +% ǻͼ +% ο̻ +% Comput_domain_x = [0 40 200 160 200 40 0]; +% Comput_domain_y = [40 80 80 40 0 0 40]; +Comput_domain_x = [0 x_size x_size 0 0]; +Comput_domain_y = [0 0 y_size y_size 0]; +% load('coordinates_boundary_node_order.mat'); +% coordinates_boundary_node_order(:,1) = coordinates_boundary_node_order(:,1) + 200; +% coordinates_boundary_node_order(:,2) = coordinates_boundary_node_order(:,2) + 130; +% Comput_domain_x = coordinates_boundary_node_order(:,1); +% Comput_domain_y = coordinates_boundary_node_order(:,2); +% +NX = size(XI,1); +NY = size(YI,1); +% for i = 1:NX +% for j = 1:NY +% in=inpolygon(XI,YI,Comput_domain_x,Comput_domain_x); +% end +% end +in=inpolygon(XI,YI,Comput_domain_x',Comput_domain_y'); +XI(~in) = nan; YI(~in) = nan; + +% for i = 1:NX +% for j = 1:NY +% in=inpolygon(XI(i,j),YI(i,j),Comput_domain_x',Comput_domain_y'); +% if ~in XI(i,j) = nan; YI(i,j) = nan; end +% end +% end +ZI = griddata(xData,yData,zData,XI,YI); +ZII = griddata(xData,yData,zData1,XI,YI); +figure('color','w');surf(XI,YI,ZI), hold +% plot3(xData,yData,zData,'o'), hold off +grid off +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +xlabel( 'x, m' ); +ylabel( 'y, m' ); +zlabel( 'z, m' ); +% grid on +view( 0, 90 ); +axis equal; +xlim([0,60]); +ylim([0,60]); +colorbar +colormap jet +% caxis([10,15]); +hold off +shading interp +% set('edgecolor','none') +figure('color','w');surf(XI,YI,ZII), hold +% plot3(xData,yData,zData1,'o'), hold off +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +xlabel( 'x, m' ); +ylabel( 'y, m' ); +zlabel( 'z, m' ); +view( 0, 90 ); +axis equal; +xlim([0,60]); +ylim([0,60]); +grid off +colorbar +colormap jet +caxis([0.2,0.8]); +hold off +shading interp diff --git a/generic extended/plotfigures.m b/generic extended/plotfigures.m new file mode 100644 index 0000000..e03cdd7 --- /dev/null +++ b/generic extended/plotfigures.m @@ -0,0 +1,42 @@ +numberMatrixCells = 120*120; +% % % resultsSaturation1to2 = zeros(numberMatrixCells,5); +% % % resultsPressure1to2 = zeros(numberMatrixCells,5); +% % % +% % % load('resultsEDFM.mat') +% % % theMaxNumber = size(OutputRs,1); +% % % plotDis_3D_to_2D(theMaxNumber, r, OutputRs, 2);saveas(gcf, 'EDFM_saturation.fig'); +% % % plotDis_3D_to_2D(theMaxNumber, r, OutputRs, 1);saveas(gcf, 'EDFM_pressure.fig'); +% % % resultsSaturation1to2(:,1) = OutputRs{theMaxNumber,1}.sw(1:numberMatrixCells,1); +% % % resultsPressure1to2(:,1) = OutputRs{theMaxNumber,1}.p(1:numberMatrixCells,1); +% % % +% % % load('resultsPEDFM_method1.mat') +% % % theMaxNumber = size(OutputRs,1); +% % % plotDis_3D_to_2D(theMaxNumber, r, OutputRs, 2);saveas(gcf, 'pEDFM_method1_saturation.fig'); +% % % plotDis_3D_to_2D(theMaxNumber, r, OutputRs, 1);saveas(gcf, 'pEDFM_method1_pressure.fig'); +% % % resultsSaturation1to2(:,2) = OutputRs{theMaxNumber,1}.sw(1:numberMatrixCells,1); +% % % resultsPressure1to2(:,2) = OutputRs{theMaxNumber,1}.p(1:numberMatrixCells,1); +% % % +% % % load('resultsPEDFM_method2.mat') +% % % theMaxNumber = size(OutputRs,1); +% % % plotDis_3D_to_2D(theMaxNumber, r, OutputRs, 2);saveas(gcf, 'pEDFM_method2_saturation.fig'); +% % % plotDis_3D_to_2D(theMaxNumber, r, OutputRs, 1);saveas(gcf, 'pEDFM_method2_pressure.fig'); +% % % resultsSaturation1to2(:,3) = OutputRs{theMaxNumber,1}.sw(1:numberMatrixCells,1); +% % % resultsPressure1to2(:,3) = OutputRs{theMaxNumber,1}.p(1:numberMatrixCells,1); +% % % +% % % load('resultsNewPEDFM.mat') +% % % theMaxNumber = size(OutputRs,1); +% % % plotDis_3D_to_2D(theMaxNumber, r, OutputRs, 2);saveas(gcf, 'NewPEDFM_saturation.fig'); +% % % plotDis_3D_to_2D(theMaxNumber, r, OutputRs, 1);saveas(gcf, 'NewPEDFM_pressure.fig'); +% % % resultsSaturation1to2(:,4) = OutputRs{theMaxNumber,1}.sw(1:numberMatrixCells,1); +% % % resultsPressure1to2(:,4) = OutputRs{theMaxNumber,1}.p(1:numberMatrixCells,1); + +load('resultsReference.mat') +theMaxNumber = size(OutputRs,1); +plotDis_3D_to_2D_1to2(theMaxNumber, r, OutputRs, 2);saveas(gcf, 'reference_saturation.fig'); +plotDis_3D_to_2D_1to2(theMaxNumber, r, OutputRs, 1);saveas(gcf, 'reference_pressure.fig'); +% % % resultsSaturation1to2(:,5) = OutputRs{theMaxNumber,1}.sw(1:numberMatrixCells,1); +% % % resultsPressure1to2(:,5) = OutputRs{theMaxNumber,1}.p(1:numberMatrixCells,1); + +% save resultsSaturation1to2 resultsSaturation1to2; +% save resultsPressure1to2 resultsPressure1to2 + diff --git a/generic extended/plotwell.m b/generic extended/plotwell.m new file mode 100644 index 0000000..3b0bcf9 --- /dev/null +++ b/generic extended/plotwell.m @@ -0,0 +1,14 @@ +t = Times; +n=size(Times,1); +% para = cell2mat(Wellpara); +nw=1;%ѡ +% n = length(para); +bhp = zeros(n,1); +for i = 1 : n +% bhp(i) = para(i).bhp(2); +% bhp(i) = Wellpara{i,1}{1,nw}.pwf; +bhp(i) = Wellpara{i}{1,nw}.qo; +% bhp(i) = Wellpara{i}{1,nw}.pwf; +end +plot(t,bhp,'b*-') +hold on \ No newline at end of file diff --git a/main.asv b/main.asv new file mode 100644 index 0000000..7594c47 --- /dev/null +++ b/main.asv @@ -0,0 +1,194 @@ +function [ r, Times, OutputRs, Wellpara, trun ] = main() +%% ==================================PART 1: 模型选取======================================== +% 1-- classical EDFM +modelflag = 1;% 此处固定为1即可 +%% ==================================PART 2: 基质网格定义===================================== +dx=[10*ones(1,100) ];nx=size(dx,2); +dy=[10*ones(1,50) ];ny=size(dy,2); +dz=[10*ones(1,2)];nz=size(dz,2); + +%% ==================================PART 3: 裂缝分布数据输入===================================== +% 四种输入方式: 1表示工程应用输入;2表示向量输入;3表示工程应用输入,包括基准点、倾角、方位角、抬升角;4表示从.fab文件读取 +input_style = 1; +%% 输入方式1:工程应用输入 +%仅能刻画具有双对称性质的矩形缝或椭圆缝 +% 基准点坐标(1),方位角(2),倾角(3),抬升角(4),缝长(椭圆长轴长)(5),缝高(椭圆短轴长)(6),类型1是矩形缝、2是椭圆缝(7) +if input_style==1 +input_content={ + [255,255,5],90,90,0,200,10,1; + [305,255,5],90,90,0,200,10,1; + [355,255,5],90,90,0,200,10,1; + [405,255,5],90,90,0,200,10,1; + [455,255,10],90,90,0,200,20,1; + [505,255,10],90,90,0,200,20,1; + [555,255,15],90,90,0,200,10,1; + [605,255,15],90,90,0,200,10,1; + [655,255,15],90,90,0,200,10,1; + [705,255,15],90,90,0,200,10,1; + [755,255,15],90,90,0,200,10,1; + }; +[f,fellip] = sort_fracture(input_content); +frac_information = fractureInformation_input_engineering_vector(f,fellip); +end +%% 输入方式2:向量输入 +%首先对矩形缝进行研究,裂缝参数包括三个向量和两个参数的取值范围,如果是其它类型缝,则是两个参数间的函数关系 +%因此一个5行三列的矩阵可以确定一条裂缝 +%向量分量可为非整数,以此保证参数范围的取值为整数即可, +%故可先随意确定为整数的参数范围,再根据缝长缝高去确定向量分量的取值 +% 矩形缝 +if input_style==2 + f=[ + 0,1200,0;10,-20,0;0,0,10;0,60,0;0,3,0; + 0,1200,0;10,20,0;0,0,10;0,15,0;0,3,0; + 150,1500,0;20,-10,0;0,0,10;0,20,0;0,3,0; + 550,1300,0;10,10,0;0,0,10;0,10,0;0,3,0; + 650,1400,0;10,-20,0;0,0,10;0,55,0;0,3,0; + 605,705,0;10,0,0;0,0,10;-20,20,0;0,3,0; + ]; +% 椭圆缝 +% fellip=[320,210,10;10,2,0;0,0,2;0,0,8;0,0,5; +% 280,300,10;10,2,0;0,0,2;0,0,10;0,0,4;]; +% 300,205,10;10,0,0;0,0,2;0,0,10;0,0,5]; +fellip=[]; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +frac_information = fractureInformation_input_engineering_vector(f,fellip); +end +%% 输入方式3:二维输入 +% load('fractures_generated.mat'); +% fractureLines = fractures_generated; +fractureLines = [ + 105,150;105,350; + 205,150;205,350; + 305,150;305,350; + 405,150;405,350; + 505,150;505,350; + 605,150;605,350; + 705,150;705,350; + 805,150;805,350; + 905,150;905,350; + ]; +fellip=[]; % 椭圆缝 +fractureHeights = [ + 10;10;10;10;10;10;10;10;10]; +% 椭圆缝 +fellip=[]; +flowBarrierFlags = [];% flowBarrierFlags = [1;2;3;4]; +[f,frac_information] = input_fracture_2D(fractureLines,fractureHeights,flowBarrierFlags); +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +%% 输入方式4:从.fab文件读取 +if input_style==4 + +end + +%% ==================================PART 4: 基质网格及裂缝物性参数输入===================================== +% 1-- 单重介质 +% 2-- 双重介质(双孔双渗) +grid_model = 1; +if grid_model == 1 +r = grid_discretization_SP_model(modelflag, nx, ny, nz, dx, dy, dz, f, frac_information, fellip, nf); +end +if grid_model == 2 +r = grid_discretization_DP_model(modelflag, nx, ny, nz, dx, dy, dz, f, frac_information, fellip, nf); +end +%% 生成向量化变成所需要的算子 +os = OperatorRS(r.N, r.nex, r.nc); + +%% ==================================PART 5: 模型类型选取及初始状态设定========================================= +% 1-- 气水两相流 +% 2-- 油水两相流 +flow_model = 2; +if flow_model == 1 +[f,state0] = gas_water_flow(r); +end +if flow_model == 2 +[f,state0] = oil_water_flow(r); +end + +%% ==================================PART 6: 井制度schedule设定================================================ +%将直井、水平井与多段压裂水平井分开处理 +%% 直井、常规水平井定义 +% Wellcpara: wellname(1) nperf,射孔点数量(2) index(3) rw(4) skin(5) welltype(6) +% welltype=1 直井,welltype=2 水平井沿x方向,welltype=3 水平井沿y方向 welltype=4 多段压裂水平井 +% 直井、水平井,该种井型的处理是将射孔段安排在基质网格 +% 对于直井、斜井、水平井,采取与eclipse一致的方式,给出其在基质网格中位置 +% 每个射孔点由下px,py,pz确定,分别表示该射孔点在x方向,y方向的网格编号,及层数即z反方向上的网格编号(最初是以垂直向上建立的基质网格) +well1={ + 'w1', 2, [20 10 1;20 10 2;], 0.178/2, 0, 1; + 'w2', 2, [80 10 1;80 10 2;], 0.178/2, 0, 1; + 'w3', 1, [20 40 1;], 0.178/2, 0, 1; + 'w4', 1, [80 40 1;], 0.178/2, 0, 1; +% 'w2', 3, [67 20 1;67 20 2;67 20 3], 0.178/2, 0, 1; + }; +well1 = handle_well1(well1,r); +%% 压裂水平井定义 +% 多段压裂水平井:射孔段设置在裂缝单元上,可以给出该射孔点所在的坐标,然后去寻找该点所在的裂缝单元编号 +num_fracture_wells = 1; +welloc = cell(num_fracture_wells,1); +perfnum = cell(num_fracture_wells,1); +welloc{1,1}=[ + 255,155,5; + 305,155,5; + 355,155,5; + 405,155,5; + 455,155,5; + 505,155,5; + 555,155,15; + 605,155,15; + 655,155,15; + 705,155,15; + 755,155,15; + ]; +for i = 1:num_fracture_wells +perfnum{i,1} = findWelloc(r, welloc{i,1});%在用以Wellc0之中 +end +% perfnum2 = findWelloc(r, welloc2); +well2={ + 'w5', length(perfnum{1,1}), perfnum{1,1}, 0.178/2, 0,4; + }; +Wellc = handle_well1_well2(well1,well2,welloc,r); +%% 井制度设置(开关井、定压/定产、便于吞吐等) +number_phases = 1; +well_schedules = cell(number_phases,1); +time = zeros(number_phases,1); +% time = [100;30;200]; +% (1)well state: 'open'表示该井是开的;'close'表明该井一直是关的,如果只是阶段性关井,就用'open'定流量0生产 +% (2)well type: 'pro'表示是生产井;'inj'表示是注入井; +% (3)protype:'const_q'是定流量;'const_pwf'则是定压 +% (4)value:定的流量值或者井底压力值 +% (5)value:此代码该值与(3)值相同 +time(1) = 0.001; +well_schedules{1,1} = {'w1','open','inj','const_pwf',30,30; + 'w2','open','inj','const_pwf',30,30; + 'w3','open','inj','const_pwf',30,30; + 'w4','open','inj','const_pwf',30,30; + 'w5','open','pro','const_pwf',10,10;}; +% time(2) = 30; +% well_schedules{2,1} = {'w1','open','inj','const_pwf',30,30; +% 'w2','open','pro','const_q',0,0;}; +% time(3) = 200; +% well_schedules{3,1} = {'w1','open','inj','const_pwf',30,30; +% 'w2','open','pro','const_pwf',10,10;}; +% time(4) = 200; +% well_schedules{4,1} = {'w1','open','inj','const_pwf',30,30; +% 'w2','open','pro','const_pwf',10,10;}; +% time(5) = 200; +% well_schedules{5,1} = {'w1','open','inj','const_pwf',30,30; +% 'w2','open','pro','const_pwf',10,10;}; +% time(6) = 200; +% well_schedules{6,1} = {'w1','open','inj','const_pwf',30,30; +% 'w2','open','pro','const_pwf',10,10;}; + +%% ======================================PART 7: Solver设置=========================================== +yitap = 5; % 50-500psi +yitas = 0.04; % 0.05-0.5 +omega = 0.5; % 0-1 +Nmax = 50; +epsave = 1e-6; +epsmax = 1e-6; +dtmin = 0.000001; +dtmax = 0.0001; +%% ======================================PART 8: 正式计算=========================================== +[Times, OutputRs, Wellpara, trun] = solver_NR(r, f, os, state0, yitap,yitas,omega,Nmax,epsave,epsmax,dtmin,dtmax,Wellc,time,well_schedules); +run_time=toc; +trun.run_time=run_time; +end \ No newline at end of file diff --git a/plotWellResponse.asv b/plotWellResponse.asv new file mode 100644 index 0000000..b5a88f8 --- /dev/null +++ b/plotWellResponse.asv @@ -0,0 +1,55 @@ +function [] = plotWellResponse(Times,Wellpara) +% 输入 +wellNumber = 1; % 井号 +dataType = 'GPR'; % 类型,产气速度 GPR,产气速度 OPR, 产水速度 WPR,井底流压 BHP,压力导数 dPWF +% +t = Times; +n= size(Times,1); +% para = cell2mat(Wellpara); +nw = wellNumber;%选井号 +% n = length(para); +data = zeros(n,1); +if strcmp(dataType, 'GPR') +for i = 1 : n +data(i) = Wellpara{i}{1,nw}.qg; +figureYlegend = 'Gas production rate, m^3/d'; +end +end +if strcmp(dataType, 'OPR') +for i = 1 : n +data(i) = Wellpara{i}{1,nw}.qo; +figureYlegend = 'Oil production rate, m^3/d'; +end +end +if strcmp(dataType, 'WPR') +for i = 1 : n +data(i) = Wellpara{i}{1,nw}.qw; +figureYlegend = 'Water production rate, m^3/d'; +end +end +if strcmp(dataType, 'BHP') +for i = 1 : n +data(i) = Wellpara{i}{1,nw}.pwf; +figureYlegend = 'BHP, MPa'; +end +end +if strcmp(dataType, 'dPWF') % dpwf/dlnt = t*dpwf/dt +for i = 1 : n + if i == 1 +data(i) = Wellpara{i}{1,nw}.pwf; + elseif i == n +data(i) = Wellpara{i}{1,nw}.pwf; + else +data(i) = Wellpara{i}{1,nw}.pwf; + end +figureYlegend = 'Pressure derivative, MPa'; +end +end + +plot(t,data,'k^-') +hold off +% ylim([0,200]); +xlabel('Time, day'); +% ylabel('water cut'); +ylabel('Gas production rate, m^3/d'); +end \ No newline at end of file diff --git a/post processor/plot functions/data_standard.m b/post processor/plot functions/data_standard.m new file mode 100644 index 0000000..b0e4f3c --- /dev/null +++ b/post processor/plot functions/data_standard.m @@ -0,0 +1,343 @@ +function [ r, Times, OutputRs, Wellpara, trun ] = data_standard( ) +tic; +%% ģѡȡ +% 1--2014, Monifar 2--2018, steady, Rao 3--2018, transient, Rao +% 4-- PEDFM, Tene, Jiang, Younis +modelflag=1; +%ǰۺ +%% 벢 +% dx=[10*ones(1,100) ];nx=size(dx,2); +% dy=[10*ones(1,50) ];ny=size(dy,2); +% dz=[10*ones(1,4)];nz=size(dz,2); +% dx=[10*ones(1,50) ];nx=size(dx,2); +% dy=[10*ones(1,30) ];ny=size(dy,2); +% dz=[10*ones(1,3)];nz=size(dz,2); +dx=[10*ones(1,100) ];nx=size(dx,2); +dy=[10*ones(1,50) ];ny=size(dy,2); +dz=[10*ones(1,1)];nz=size(dz,2); +%% ѷ +% 뷽ʽ1ʾ룬2ʾ׼㡢ǡλǡ̧ +input_style=2; +if input_style==1 +% ======================================================== % +%ȶԾηоѷȡֵΧͷ죬ĺϵ +%һ5еľȷһѷ +%ΪԴ˱֤ΧȡֵΪɣ +%ʿȷΪIJΧٸݷ쳤ȥȷȡֵ + f=[ + 0,1200,0;10,-20,0;0,0,10;0,60,0;0,3,0; + 0,1200,0;10,20,0;0,0,10;0,15,0;0,3,0; + 150,1500,0;20,-10,0;0,0,10;0,20,0;0,3,0; + 550,1300,0;10,10,0;0,0,10;0,10,0;0,3,0; + 650,1400,0;10,-20,0;0,0,10;0,55,0;0,3,0; + 605,705,0;10,0,0;0,0,10;-20,20,0;0,3,0; + +% 385,485,2;5,0,0;0,0,1;-6,12,0;0,24,0; +% 385,365,2;5,0,0;0,0,1;-12,20,0;0,24,0; +% 385,245,2;5,0,0;0,0,1;-10,20,0;0,24,0; +% 385,925,2;5,0,0;0,0,1;-9,18,0;0,20,0; +% 385,805,2;5,0,0;0,0,1;-8,14,0;0,20,0; +% 385,685,2;5,0,0;0,0,1;-12,20,0;0,24,0; +% 385,565,2;5,0,0;0,0,1;-10,20,0;0,22,0; +% 385,445,2;5,0,0;0,0,1;-6,12,0;0,24,0; +% 955,1305,5;5,0,0;0,0,1;-5,4,0;0,15,0; +% 955,1225,5;5,0,0;0,0,1;-7,5,0;0,15,0; +% 955,1145,5;5,0,0;0,0,1;-9,6,0;0,15,0; +% 955,1065,5;5,0,0;0,0,1;-7,6,0;0,15,0; +% 955,985,5;5,0,0;0,0,1;-6,4,0;0,15,0; +% 955,755,5;5,0,0;0,0,1;-5,4,0;0,15,0; +% 955,675,5;5,0,0;0,0,1;-8,6,0;0,15,0; +% 955,595,5;5,0,0;0,0,1;-8,6,0;0,15,0; +% 955,515,5;5,0,0;0,0,1;-10,7,0;0,15,0; +% 955,435,5;5,0,0;0,0,1;-7,6,0;0,15,0; +% 955,355,5;5,0,0;0,0,1;-9,6,0;0,15,0; +% 1635,1245,5;5,0,0;0,0,1;-10,2,0;0,20,0; +% 1635,1165,5;5,0,0;0,0,1;-16,3,0;0,20,0; +% 1635,1085,5;5,0,0;0,0,1;-15,3,0;0,20,0; +% 1635,1005,5;5,0,0;0,0,1;-12,2,0;0,20,0; +% 1635,925,5;5,0,0;0,0,1;-10,2,0;0,20,0; +% 1635,695,5;5,0,0;0,0,1;-10,2,0;0,20,0; +% 1635,615,5;5,0,0;0,0,1;-12,2,0;0,20,0; + ]; +% Բ +% fellip=[320,210,10;10,2,0;0,0,2;0,0,8;0,0,5; +% 280,300,10;10,2,0;0,0,2;0,0,10;0,0,4;]; +% 300,205,10;10,0,0;0,0,2;0,0,10;0,0,5]; +fellip=[]; +else +% ==================Ӧ====================================== % +%̻ܿ˫ԳʵľηԲ +% ׼꣨1λǣ2ǣ3̧ǣ4쳤Բ᳤5ߣԲ᳤61Ǿη졢2Բ죨7 + input_content={ + [255,255,5],90,90,0,200,10,1; + [305,255,5],90,90,0,200,10,1; + [355,255,5],90,90,0,200,10,1; + [405,255,5],90,90,0,200,10,1; + [455,255,5],90,90,0,200,10,1; + [505,255,5],90,90,0,200,10,1; + [555,255,5],90,90,0,200,10,1; + [605,255,5],90,90,0,200,10,1; + [655,255,5],90,90,0,200,10,1; + [705,255,5],90,90,0,200,10,1; + [755,255,5],90,90,0,200,10,1; + }; +[f,fellip]=sort_fracture(input_content); +end + +% ==================ѷ====================================== % +m=size(f,1); +n=size(fellip,1); +nf=(m+n)/5;%ѷ +%% ز +% =====================ʿ====================================== % +% kx = 0.1*1e-3 * ones(nx*ny*nz, 1);%ɻ͸x +% ky =0.1*1e-3 * ones(nx*ny*nz, 1);%y +% kz = 0.1*1e-3 * ones(nx*ny*nz, 1);%y +pori = 0.3 * ones(nx*ny*nz, 1);%ɻ϶Ⱦ +prpor = 16;%ʿ϶Ȼ׼ѹ +cpor = 1.07e-4;%϶ѹϵ +NTG= 1 * ones(nx*ny*nz, 1); +% SRV +base_x=23:78; nx_SRV=length(base_x); +base_y=15:36; ny_SRV=length(base_y); +base_z=1:1;nz_SRV=length(base_z); +SRV=[]; +for k=1:nz_SRV + for j=1:ny_SRV + for i=1:nx_SRV + SRV=[SRV;(base_z(k)-1)*nx*ny+(base_y(j)-1)*nx+base_x(i)]; + end + end +end +% SRV͸ʸֵ +kx = 0.1*1e-3 * ones(nx*ny*nz, 1);%ɻ͸x +ky =0.1*1e-3 * ones(nx*ny*nz, 1);%y +kz = 0.1*1e-3 * ones(nx*ny*nz, 1);%y +% SRV͸ʸֵ +kx(SRV)=2*1e-3 * ones(length(SRV), 1); +ky(SRV)=2*1e-3 * ones(length(SRV), 1); +kz(SRV)=2*1e-3 * ones(length(SRV), 1); +% load ('NTG.mat'); +% NTG=sort_input(NTG,nx,ny,nz); +% =====================ѷ====================================== % +Kf = 20000*1e-3*ones(1,nf);%ѷ͸ +% Kf = [0*1e-3*ones(1,5) 10000*1e-3*ones(1,1);];%ѷ͸ +Wf =1e-2*ones(1,nf);%ѷ +Porf = 0.30*ones(1,nf);%ѷ϶ +prporf = 20;%ѷ϶Ȼ׼ѹ +cporf = 1.07e-4;%ѷ϶ѹϵ + +Rpt = 2;%flag +cf = 1; +ca = 1; +% co = 3.02e-3; +%% ʲ +% =======================ܶ================================= % +Dosi=820; %Dosiǵ²õܶȣλǧ/ÿ +Dwsi=1000; %Dwsiǵ²õˮܶ +% ====================ϵѹϵ================================= % +pb = 20.0;%ݵѹ +Bopb = 1.0;%ݵѹpbӦԭϵ +co = 3.02e-3;%ԭѹϵ +prw = 20.0;%زˮϵ׼ѹ +Bwi = 1.00001;%ԭʼزˮϵ +cw = 5e-4;%زˮѹϵ +prg = 25.0;%زˮϵ׼ѹ +% =======================ճ================================= % +visopb = 2;%ݵѹpbӦԭճ +cvo = 0;%ԭճѹ仯ϵ +vwi =0.6;%ԭʼزˮճ +cvw = 0;%زˮճѹ仯ϵ +% ==================ë====================================== % +% ==================ˮ====================================== % +RPOW=[ +0 0 0.8 0 +0.15 0 0.8 0 +0.45 0.04 0.4 0 +0.5212 0.08 0.227 0 +0.5425 0.103 0.184 0 +0.5638 0.125 0.156 0 +0.5851 0.145 0.125 0 +0.6064 0.174 0.094 0 +0.6276 0.207 0.063 0 +0.6489 0.247 0.046 0 +0.6701 0.292 0.031 0 +0.6914 0.335 0.021 0 +0.7127 0.378 0.011 0 +0.76 0.475 0.005 0 +0.85 0.552 0 0 +1 0.552 0 0 +]; +SW=RPOW(:,1);KRW=RPOW(:,2);KRO=RPOW(:,3);PCOW=RPOW(:,4); +% ==================ѷˮ====================================== % +% ѷУʾǼ򵥵Բֵ +if Rpt ~= 1%ʾѷ +PRF=[ +0 0 0.8 0 +0.15 0 0.8 0 +0.85 0.6 0 0 +1 0.6 0 0 +]; +SWF = PRF(:,1);KRWF = PRF(:,2);KROF = PRF(:,3);PCOWF=PRF(:,4); +end +% ==================ë====================================== % +ifpcow = 0;%˴ΪǷˮë0ԣ0 +%% ʲǰ +r = GridProp(modelflag, nx, ny, nz, dx, dy, dz, kx, ky, kz, f, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca,co, NTG); +%% Ҫ +os = OperatorRS(r.N, r.nex, r.nc); +%% ʲд +f = fluidPVT(Bopb, pb, co, Bwi, prw, cw, vwi, cvw, visopb, cvo, SW, KRO, KRW, PCOW, ifpcow, SWF, KROF, KRWF, PCOWF, r.rpt,Dosi,Dwsi); +%% ֵ Initial Condition Section +% =================ѹͶȳֵ======================================= % +%ѹֵҪͲ±ѹֵ +P = [20 * ones(r.nmc, 1); 20 * ones(r.nfc, 1)]; +% plow=25; % P =plow-1e-6*800*9.8*r.z; +Sw = [0.15 * ones(r.nmc, 1); 0.15 * ones(r.nfc, 1)]; +state0 = initialRS(P, Sw); +%% schedule +% +% Wellcpara: welltype(1) nperf(2) index(3) rw(4) protype(5) value(6) +% constraints(7) skin(8) welltype2(9) +% welltype = 1 prod, welltype = 2 inj +% protype = 1 const flowrate, protype = 2 const pwf +% welltype2=1 ֱ welltype2=2 ˮƽxwelltype2=3 ˮƽy welltype2=4 ѹˮƽ +%ֱˮƽѹˮƽֿ +%ֱˮƽ־͵Ĵǽ׶ΰڻ +%άĴ㣬񲻺ֱӸֱбˮƽȡeclipseһµķʽڻλ +%ÿ׵px,py,pzȷֱʾ׵xyţzϵţԴֱϽĻ +well1={ +% 2, 3, [10 20 1;10 20 2;10 20 3], 0.178/2, 2, 35 , 35, 0, 1; +% 2, 3, [67 20 1;67 20 2;67 20 3], 0.178/2, 2, 35 , 35, 0, 1; +% 2, 3, [130 20 1;130 20 2;130 20 3], 0.178/2, 2, 35 , 35, 0, 1; +% 2, 3, [196 20 1;196 20 2;196 20 3], 0.178/2, 2, 35 , 35, 0, 1; +% 2, 3, [10 148 1;10 148 2;10 148 3], 0.178/2, 2, 35 , 35, 0, 1; +% 2, 3, [67 148 1;67 148 2;67 148 3], 0.178/2, 2, 35 , 35, 0, 1; +% 2, 3, [130 148 1;130 148 2;130 148 3], 0.178/2, 2, 35 , 35, 0, 1; +% 2, 3, [196 148 1;196 148 2;196 148 3], 0.178/2, 2, 35 , 35, 0, 1; + }; +%Ҫҵ׶ξڵĻ +n1=size(well1,1); +for i=1:n1 + perf=well1{i,3}; + nperf=well1{i,2}; + perf(:,3)=(r.nz+1)*ones(nperf,1)-perf(:,3); + A=repmat([0 1 1],nperf,1); + B=(perf-A)*[1;r.nx;r.nx*r.ny]; + B=B'; %תΪ + well1{i,3}=B; +end +% %ѹˮƽĴ׶ѷ쵥ԪϣԸ׵ڵ꣬ȻȥѰҸõڵѷ쵥Ԫ +welloc1=[ + [255,255,5]; + [305,255,5]; + [355,255,5]; + [405,255,5]; + [455,255,5]; + [505,255,5]; + [555,255,5]; + [605,255,5]; + [655,255,5]; + [705,255,5]; + [755,255,5]; +% [205,255,15]; +% [405,255,21]; +% [605,255,21]; +% [805,255,31]; +% 385,805,15; +% 385,685,15; +% 385,565,15; +% 385,445,15; + ]; +% welloc2=[955,1305,15; +% 955,1225,15; +% 955,1145,15; +% 955,1065,15; +% 955,985,15; +% 955,755,15; +% 955,675,15; +% 955,595,15; +% 955,515,15; +% 955,435,15; +% 955,355,15;]; +% welloc3=[1635,1245,15; +% 1635,1165,15; +% 1635,1085,15; +% 1635,1005,15; +% 1635,925,15; +% 1635,695,15; +% 1635,615,15; +% ]; +perfnum1 = findWelloc(r, welloc1);%Wellc0֮ +% perfnum2 = findWelloc(r, welloc2); +% perfnum3 = findWelloc(r, welloc3); +well2={ + 1, length(perfnum1), perfnum1, 0.178/2, 2,10, 10, 0,4; +% 1, length(perfnum2), perfnum2, 0.178/2, 2,8, 8, 0,4; +% 1, length(perfnum3), perfnum3, 0.178/2, 2,8, 8, 0,4; + }; +% well2={}; +% well2={1, length(perfnum), perfnum, 0.1, 2,10, 10, 0,4; +% }; +% 2, 1, [ 5030 ], 0.3/0.318, 1,0.05, 30, 0,4 +%ྮϵһ +nwell1=size(well1,1); +nwell2=size(well2,1); +nwell=nwell1+nwell2; +Wellc0=cell(nwell,9); +if nwell1==0 + Wellc0=well2; +elseif nwell2==0 + Wellc0=well1; +else +for i=1:nwell1 + for j=1:9 + Wellc0{i,j}=well1{i,j}; + end +end +for i=1:nwell2 + for j=1:9 + Wellc0{i+nwell1,j}=well2{i,j}; + end +end +end + +yitap = 5; % 50-500psi +yitas = 0.04; % 0.05-0.5 +omega = 0.5; % 0-1 +Nmax = 50; +epsave = 1e-6; +epsmax = 1e-6; +dtmin = 0.001; +dtmax =20; +tend = 500; +nwel = size(Wellc0, 1); +WelChg = zeros(nwel, 1);%ʾ +Wellc = calcTrans(r, Wellc0); +w.yitap = yitap; +w.yitas = yitas; +w.omega = omega; +w.Nmax = Nmax; +w.epsave = epsave; +w.epsmax = epsmax; +w.epsave = epsave; +w.epsmax = epsmax; +w.dtmin = dtmin; +w.dtmax = dtmax; +w.tend = tend; +w.WelChg = WelChg; +w.Wellc = Wellc; + +%% +if modelflag==1 || modelflag==4 + [Times, OutputRs, Wellpara, trun] = mainRS_MB_2014(r, f, os, w, state0); +else +[Times, OutputRs, Wellpara, trun] = mainRS_MB_modified(r, f, os, w, state0); +end +% [Times, OutputRs, Wellpara, trun] = mainRS_MB_modified(r, f, os, w, state0); +run_time=toc; +trun.run_time=run_time; + end + + + diff --git a/post processor/plot functions/plotDis.m b/post processor/plot functions/plotDis.m new file mode 100644 index 0000000..c492aea --- /dev/null +++ b/post processor/plot functions/plotDis.m @@ -0,0 +1,144 @@ +function plotDis(i, r,OutputRs, type) +%Ϊͼǰ +figure('color','w') +[ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dis( r ); +coordinate=r.coordinates; +nodes=r.nodes; +% nmc = size(nodes,1);% +% % nel = size(nodes,2);%ÿĵ +% order=[1,2,4,3,1,5,6,8,7,3,4,8,6,2,1];%fillͼ +% nel=size(order,2); +if type == 1 + v = OutputRs{i}.p; +elseif type == 2 + v = 1-OutputRs{i}.sw;%ͱͶ +elseif type == 3 + v = OutputRs{i}.sg;%ͱͶ +else + v = OutputRs{i}.sw;%ͱͶ +end +% +order=[1,2,4,3,1]; +nel=size(order,2); +nmc=size(downgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(downgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(downgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(downgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(downgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +hold on + +% +order=[1,5,7,3,1]; +nel=size(order,2); +nmc=size(leftgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(leftgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(leftgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(leftgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(leftgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[2,4,8,6,2]; +nel=size(order,2); +nmc=size(rightgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(rightgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(rightgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(rightgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(rightgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%ǰ +order=[1,2,6,5,1]; +nel=size(order,2); +nmc=size(frontgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(frontgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(frontgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(frontgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(frontgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[3,4,8,7,3]; +nel=size(order,2); +nmc=size(backgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(backgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(backgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(backgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(backgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[5,6,8,7,5]; +nel=size(order,2); +nmc=size(upgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(upgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(upgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(upgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(upgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +xlabel('x, m'); +ylabel('y, m'); +zlabel('z, m'); +view(3); +% Ͳؿ +% plotframe( r ); +alpha(1) +% caxis([0.2,0.8]); +caxis([10,13]); +% caxis([12,22]); +colormap jet +colorbar +% zlim([-2020,-2000]); +% axis equal +axis tight + diff --git a/post processor/plot functions/plotDis_3D_to_2D.m b/post processor/plot functions/plotDis_3D_to_2D.m new file mode 100644 index 0000000..79331a4 --- /dev/null +++ b/post processor/plot functions/plotDis_3D_to_2D.m @@ -0,0 +1,46 @@ +function plotDis_3D_to_2D(i, r, OutputRs, type) +coordinate=r.coordinates; +nodes=r.nodes; +nmc = size(nodes,1); +% nel = size(nodes,2); +nel = 4; +if type == 1 +% v = r.kx; + v = OutputRs{i}.p; +else + v = 1-OutputRs{i}.sw;%Ͷ +end +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +for i = 1 :nmc + for j = 1 :nel + x(j, i) = coordinate(nodes(i,j), 1); + y(j, i) = coordinate(nodes(i,j), 2); + if j == 3 + x(j, i) = coordinate(nodes(i,4), 1); + y(j, i) = coordinate(nodes(i,4), 2); + end + if j == 4 + x(j, i) = coordinate(nodes(i,3), 1); + y(j, i) = coordinate(nodes(i,3), 2); + end + dis(j, i) = v(i); + end +end +% fill(x,y,dis,'EdgeAlpha',1); +figure('color','w'); +fill(x,y,dis,'EdgeColor','interp'); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +axis equal; +axis tight +% xlim([0,60]); +% ylim([0,60]); +% clim([10,15]); +colorbar +colormap jet +% fill(x,y,dis); +% axis off diff --git a/post processor/plot functions/plotDis_ECLIPSE.m b/post processor/plot functions/plotDis_ECLIPSE.m new file mode 100644 index 0000000..8e6d7a5 --- /dev/null +++ b/post processor/plot functions/plotDis_ECLIPSE.m @@ -0,0 +1,129 @@ +function plotDis_ECLIPSE( r,ECLIPSE_data) +%Ϊͼǰ +[ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dis( r ); + +coordinate=r.coordinates; +nodes=r.nodes; +% nmc = size(nodes,1);% +% % nel = size(nodes,2);%ÿĵ +% order=[1,2,4,3,1,5,6,8,7,3,4,8,6,2,1];%fillͼ +% nel=size(order,2); + v =reshape( ECLIPSE_data',[],1);%ͱͶ + +% +order=[1,2,4,3,1]; +nel=size(order,2); +nmc=size(downgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(downgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(downgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(downgrid(i),order(j)), 3); + dis(j, i) = v(downgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +hold on + +% +order=[1,5,7,3,1]; +nel=size(order,2); +nmc=size(leftgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(leftgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(leftgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(leftgrid(i),order(j)), 3); + dis(j, i) = v(leftgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[2,4,8,6,2]; +nel=size(order,2); +nmc=size(rightgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(rightgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(rightgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(rightgrid(i),order(j)), 3); + dis(j, i) = v(rightgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%ǰ +order=[1,2,6,5,1]; +nel=size(order,2); +nmc=size(frontgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(frontgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(frontgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(frontgrid(i),order(j)), 3); + dis(j, i) = v(frontgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[3,4,8,7,3]; +nel=size(order,2); +nmc=size(backgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(backgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(backgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(backgrid(i),order(j)), 3); + dis(j, i) = v(backgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[5,6,8,7,5]; +nel=size(order,2); +nmc=size(upgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(upgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(upgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(upgrid(i),order(j)), 3); + dis(j, i) = v(upgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% Ͳؿ +% plotframe( r ); + + + +% axis equal +axis tight + diff --git a/post processor/plot functions/plotDislayer.asv b/post processor/plot functions/plotDislayer.asv new file mode 100644 index 0000000..ae3bc32 --- /dev/null +++ b/post processor/plot functions/plotDislayer.asv @@ -0,0 +1,147 @@ +function plotDislayer(i, k ,r,OutputRs, type) +%i:时间点,k是从上至下数的层位,type: 1是压力场 +figure('color','w') +[ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dislayer( r,k ); +coordinate=r.coordinates; +nodes=r.nodes; +nx=r.nx; +ny=r.ny; +nz=r.nz; +% order=[1,2,4,3,1,5,6,8,7,3,4,8,6,2,1];%用以fill函数作图 +% % nmc = size(nodes,1);%基质网格数量 +% nmc = nx*ny; +% % nel = size(nodes,2);%每个基质网格所包含的点数量 +% nel=size(order,2); +if type == 1 + v = OutputRs{i}.p; +% v = log(r.kx); +elseif type == 2 +% v = 1-OutputRs{i}.sw -OutputRs{i}.sg;%含油饱和度 + v = 1-OutputRs{i}.sw;%含油饱和度 +elseif type == 3 + v = OutputRs{i}.sg;%含油饱和度 +else + v = OutputRs{i}.sw;%含油饱和度 +end +% 底面 +order=[1,2,4,3,1]; +nel=size(order,2); +nmc=size(downgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(downgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(downgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(downgrid(i),order(j)), 3); + dis(j, i) = v(downgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +hold on + +%左面 +order=[1,5,7,3,1]; +nel=size(order,2); +nmc=size(leftgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(leftgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(leftgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(leftgrid(i),order(j)), 3); + dis(j, i) = v(leftgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%右面 +order=[2,4,8,6,2]; +nel=size(order,2); +nmc=size(rightgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(rightgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(rightgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(rightgrid(i),order(j)), 3); + dis(j, i) = v(rightgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%前面 +order=[1,2,6,5,1]; +nel=size(order,2); +nmc=size(frontgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(frontgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(frontgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(frontgrid(i),order(j)), 3); + dis(j, i) = v(frontgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%后面 +order=[3,4,8,7,3]; +nel=size(order,2); +nmc=size(backgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(backgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(backgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(backgrid(i),order(j)), 3); + dis(j, i) = v(backgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%上面 +order=[5,6,8,7,5]; +nel=size(order,2); +nmc=size(upgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(upgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(upgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(upgrid(i),order(j)), 3); + dis(j, i) = v(upgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +xlabel('x, m'); +ylabel('y, m'); +zlabel('z, m'); +view(2); +% fill(x,y,dis); +axis equal +% axis off +axis tight +colormap jet +% caxis([12,22]); +colorbar +caxis([0.2,0.8]); + diff --git a/post processor/plot functions/plotDislayer.m b/post processor/plot functions/plotDislayer.m new file mode 100644 index 0000000..f5d736c --- /dev/null +++ b/post processor/plot functions/plotDislayer.m @@ -0,0 +1,153 @@ +function plotDislayer(i, k ,r,OutputRs, type) +%i:ʱ㣬kǴIJλtype: 1ѹ +figure('color','w') +[ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dislayer( r,k ); +coordinate=r.coordinates; +nodes=r.nodes; +nx=r.nx; +ny=r.ny; +nz=r.nz; +% order=[1,2,4,3,1,5,6,8,7,3,4,8,6,2,1];%fillͼ +% % nmc = size(nodes,1);% +% nmc = nx*ny; +% % nel = size(nodes,2);%ÿĵ +% nel=size(order,2); +if type == 1 + v = OutputRs{i}.p; +% v = log(r.kx); +elseif type == 2 +% v = 1-OutputRs{i}.sw -OutputRs{i}.sg;%ͱͶ + v = 1-OutputRs{i}.sw;%ͱͶ +elseif type == 3 + v = OutputRs{i}.sg;%ͱͶ +else + v = OutputRs{i}.sw;%ͱͶ +end +% +order=[1,2,4,3,1]; +nel=size(order,2); +nmc=size(downgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(downgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(downgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(downgrid(i),order(j)), 3); + dis(j, i) = v(downgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +hold on + +% +order=[1,5,7,3,1]; +nel=size(order,2); +nmc=size(leftgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(leftgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(leftgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(leftgrid(i),order(j)), 3); + dis(j, i) = v(leftgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[2,4,8,6,2]; +nel=size(order,2); +nmc=size(rightgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(rightgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(rightgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(rightgrid(i),order(j)), 3); + dis(j, i) = v(rightgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%ǰ +order=[1,2,6,5,1]; +nel=size(order,2); +nmc=size(frontgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(frontgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(frontgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(frontgrid(i),order(j)), 3); + dis(j, i) = v(frontgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[3,4,8,7,3]; +nel=size(order,2); +nmc=size(backgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(backgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(backgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(backgrid(i),order(j)), 3); + dis(j, i) = v(backgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[5,6,8,7,5]; +nel=size(order,2); +nmc=size(upgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(upgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(upgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(upgrid(i),order(j)), 3); + dis(j, i) = v(upgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +xlabel('x, m'); +ylabel('y, m'); +zlabel('z, m'); +view(2); +% fill(x,y,dis); +axis equal +% axis off +axis tight +colormap jet +if type ==1 + caxis([5,22]); +else + caxis([0.2,0.8]); +end +% caxis([12,22]); +% caxis([10,13]); +colorbar +% caxis([0.2,0.8]); + diff --git a/post processor/plot functions/plotDislayer_ECLIPSE.m b/post processor/plot functions/plotDislayer_ECLIPSE.m new file mode 100644 index 0000000..076c15d --- /dev/null +++ b/post processor/plot functions/plotDislayer_ECLIPSE.m @@ -0,0 +1,131 @@ +function plotDislayer_ECLIPSE( k ,r,ECLIPSE_data) +%i:ʱ㣬kǴIJλtype: 1ѹ +[ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dislayer( r,k ); +coordinate=r.coordinates; +nodes=r.nodes; +nx=r.nx; +ny=r.ny; +nz=r.nz; +% order=[1,2,4,3,1,5,6,8,7,3,4,8,6,2,1];%fillͼ +% % nmc = size(nodes,1);% +% nmc = nx*ny; +% % nel = size(nodes,2);%ÿĵ +% nel=size(order,2); +v =reshape( ECLIPSE_data',[],1);%ͱͶ +% +order=[1,2,4,3,1]; +nel=size(order,2); +nmc=size(downgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(downgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(downgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(downgrid(i),order(j)), 3); + dis(j, i) = v(downgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +hold on + +% +order=[1,5,7,3,1]; +nel=size(order,2); +nmc=size(leftgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(leftgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(leftgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(leftgrid(i),order(j)), 3); + dis(j, i) = v(leftgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[2,4,8,6,2]; +nel=size(order,2); +nmc=size(rightgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(rightgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(rightgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(rightgrid(i),order(j)), 3); + dis(j, i) = v(rightgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%ǰ +order=[1,2,6,5,1]; +nel=size(order,2); +nmc=size(frontgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(frontgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(frontgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(frontgrid(i),order(j)), 3); + dis(j, i) = v(frontgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[3,4,8,7,3]; +nel=size(order,2); +nmc=size(backgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(backgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(backgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(backgrid(i),order(j)), 3); + dis(j, i) = v(backgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[5,6,8,7,5]; +nel=size(order,2); +nmc=size(upgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(upgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(upgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(upgrid(i),order(j)), 3); + dis(j, i) = v(upgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +xlabel('X, m'); +ylabel('Y, m'); +zlabel('Z, m'); +view(2); +% fill(x,y,dis); +axis equal +% axis off +axis tight diff --git a/post processor/plot functions/plot_layer.asv b/post processor/plot functions/plot_layer.asv new file mode 100644 index 0000000..33bf8c4 --- /dev/null +++ b/post processor/plot functions/plot_layer.asv @@ -0,0 +1,48 @@ +function plot_layer(i, k, r, OutputRs, type) +coordinate=r.coordinates; +nodes=r.nodes; +nz=r.nz; +nx=r.nx +nmc = size(nodes,1); +% nel = size(nodes,2); +nel = 4; +if type == 1 +% v = r.kx; + v = OutputRs{i}.p; +else + v = 1-OutputRs{i}.sw;%含气饱和度 +end +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +for i = 1 :nmc + for j = 1 :nel + x(j, i) = coordinate(nodes(i,j), 1); + y(j, i) = coordinate(nodes(i,j), 2); + if j == 3 + x(j, i) = coordinate(nodes(i,4), 1); + y(j, i) = coordinate(nodes(i,4), 2); + end + if j == 4 + x(j, i) = coordinate(nodes(i,3), 1); + y(j, i) = coordinate(nodes(i,3), 2); + end + dis(j, i) = v(i); + end +end +% fill(x,y,dis,'EdgeAlpha',1); +figure('color','w'); +fill(x,y,dis,'EdgeColor','interp'); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +axis equal; +axis tight +% xlim([0,60]); +% ylim([0,60]); +% clim([10,15]); +colorbar +colormap jet +% fill(x,y,dis); +% axis off diff --git a/post processor/plot functions/plot_layer.m b/post processor/plot functions/plot_layer.m new file mode 100644 index 0000000..f91a485 --- /dev/null +++ b/post processor/plot functions/plot_layer.m @@ -0,0 +1,49 @@ +function plot_layer(i, k, r, OutputRs, type) +coordinate=r.coordinates; +nodes=r.nodes; +nz=r.nz; +nx=r.nx; +ny=r.ny; +nmc = size(nodes,1); +% nel = size(nodes,2); +nel = 4; +if type == 1 +% v = r.kx; + v = OutputRs{i}.p; +else + v = 1-OutputRs{i}.sw;%Ͷ +end +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +for i = 1 :nmc + for j = 1 :nel + x(j, i) = coordinate(nodes(i,j), 1); + y(j, i) = coordinate(nodes(i,j), 2); + if j == 3 + x(j, i) = coordinate(nodes(i,4), 1); + y(j, i) = coordinate(nodes(i,4), 2); + end + if j == 4 + x(j, i) = coordinate(nodes(i,3), 1); + y(j, i) = coordinate(nodes(i,3), 2); + end + dis(j, i) = v(i+(nz-k)*nx*ny); + end +end +% fill(x,y,dis,'EdgeAlpha',1); +figure('color','w'); +fill(x,y,dis,'EdgeColor','interp'); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +axis equal; +axis tight +% xlim([0,60]); +% ylim([0,60]); +% clim([10,15]); +colorbar +colormap jet +% fill(x,y,dis); +% axis off diff --git a/post processor/plot functions/plot_reservoir_3D.m b/post processor/plot functions/plot_reservoir_3D.m new file mode 100644 index 0000000..840fc76 --- /dev/null +++ b/post processor/plot functions/plot_reservoir_3D.m @@ -0,0 +1,44 @@ +function [ ] = plot_reservoir_3D(dx,dy,dz,nx,ny,nz ) +%UNTITLED ˴ʾйش˺ժҪ +% ˴ʾϸ˵ +%figure +% x-yƽ +for i=1:(nz+1) +% if i ==nz+1 +face=[0,0,(i-1)*dz;nx*dx,0,(i-1)*dz;nx*dx,ny*dy,(i-1)*dz;0,ny*dy,(i-1)*dz]; +% fill3(face(:,1),face(:,2),face(:,3),[0.5,0.5,0.5]); +fill3(face(:,1),face(:,2),face(:,3),'w'); +% end + +hold on +end +% [0.5,0.5,0.5] + +% x-zƽ +for i=1:(ny+1) +% if i == 1 +face=[0,(i-1)*dy,0;nx*dx,(i-1)*dy,0;nx*dx,(i-1)*dy,nz*dz;0,(i-1)*dy,nz*dz]; +% fill3(face(:,1),face(:,2),face(:,3),[0.5,0.5,0.5]); +fill3(face(:,1),face(:,2),face(:,3),'w'); +% end +hold on +end + +% y-zƽ +for i=1:(nx+1) +% if i == 1 +face=[(i-1)*dx,0,0;(i-1)*dx,ny*dy,0;(i-1)*dx,ny*dy,nz*dz;(i-1)*dx,0,nz*dz;]; +% fill3(face(:,1),face(:,2),face(:,3),[0.5,0.5,0.5]); +fill3(face(:,1),face(:,2),face(:,3),'w'); +% end +hold on +end + +xlabel('x,m'); +ylabel('y,m'); +zlabel('z,m'); +alpha(1); +hold on; +view(3) +end + diff --git a/post processor/plot functions/plotcp.m b/post processor/plot functions/plotcp.m new file mode 100644 index 0000000..aefe722 --- /dev/null +++ b/post processor/plot functions/plotcp.m @@ -0,0 +1,37 @@ +function [ ] = plotcp( Times,Times2,Wellpara,Wellpara2 ) +%PLOTCP ˴ʾйش˺ժҪ +% ˴ʾϸ˵ +t = Times; +n=size(Times,1); +% para = cell2mat(Wellpara); +nw=1;%ѡ +% n = length(para); +bhp = zeros(n,1); +for i = 1 : n +% bhp(i) = para(i).bhp(2); +bhp(i) = Wellpara{i}{1,nw}.qo; +% bhp(i) = Wellpara{i}{1,nw}.qw; +% bhp(i) = Wellpara{i}{1,nw}.pwf; +end +plot(t,bhp,'r*-'); + +hold on +t = Times2; +n=size(Times2,1); +% para = cell2mat(Wellpara); +nw=1;%ѡ +% n = length(para); +bhp = zeros(n,1); +for i = 1 : n +% bhp(i) = para(i).bhp(2); +% bhp(i) = Wellpara2{i}{1,nw}.qo; +bhp(i) = Wellpara2(i); +% bhp(i) = Wellpara{i}{1,nw}.qw; +% bhp(i) = Wellpara{i}{1,nw}.pwf; +end +plot(t,bhp,'bo-'); + +hold off + +end + diff --git a/post processor/plot functions/plotframe.m b/post processor/plot functions/plotframe.m new file mode 100644 index 0000000..8981a2a --- /dev/null +++ b/post processor/plot functions/plotframe.m @@ -0,0 +1,37 @@ +function [ ] = plotframe( r ) +%PLOTFRAME ˴ʾйش˺ժҪ +% ˴ʾϸ˵ +xe=1000;ye=500;ze=10; +network3D(xe,ye,ze,1,1,1 ); +% f1=[335,445,0; +% 335,445,10; +% 335,555,10; +% 335,555,0; +% 335,455,0;]; +% plot3(f1(:,1),f1(:,2),f1(:,3)); +% +% f2=[445,445,0; +% 445,445,10; +% 445,555,10; +% 445,555,0 +% 445,445,0;]; +% plot3(f2(:,1),f2(:,2),f2(:,3)); +% +% f3=[555,445,0; +% 555,445,10; +% 555,550,10; +% 555,550,0 +% 555,445,0;]; +% plot3(f3(:,1),f3(:,2),f3(:,3)); +% +% f4=[665,445,0; +% 665,445,10; +% 665,555,10; +% 665,555,0 +% 665,445,0;]; +% plot3(f4(:,1),f4(:,2),f4(:,3)); + +% hold off + +end + diff --git a/post processor/plot functions/plotgraph.m b/post processor/plot functions/plotgraph.m new file mode 100644 index 0000000..0b6e506 --- /dev/null +++ b/post processor/plot functions/plotgraph.m @@ -0,0 +1,63 @@ + +%PLOTGRAPH ˴ʾйش˺ժҪ +% ˴ʾϸ˵ +% set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +subplot(1,2,1) +plotDislayer_new(15, 1 ,r,OutputRs, 1); +% caxis([10,30]); +title('Layer 1 in the 50th day','FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); + +axis equal +axis tight +% set(gca,'ztick',[0 30]) +% set(gca,'zticklabel',{'0' '30'}) +% xlabel('Layer 1 in the 50th day'); +% subplot(2,2,2) +% plotDislayer_new(15, 2 ,r,OutputRs, 1); +% caxis([10,20]); +% title('Layer 2 in the 50th day','FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +% set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +% axis equal +% axis tight +% set(gca,'ztick',[0 30]) +% set(gca,'zticklabel',{'0' '30'}) +% xlabel('Layer 2 in the 50th day'); +% subplot(2,2,3) +% plotDislayer_new(15, 3 ,r,OutputRs, 1); +% caxis([10,20]); +% title('Layer 3 in the 50th day','FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +% set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +% axis equal +% axis tight +% set(gca,'ztick',[0 30]) +% set(gca,'zticklabel',{'0' '30'}) +% xlabel('Layer 3 in the 50th day'); +subplot(1,2,2) +plotDis_new(15 ,r,OutputRs, 1); +% caxis([10,30]); +% xlabel('3D reservoir in the 50th day'); +title('3D reservoir in the 50th day','FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +axis equal +axis tight +% set(gca,'ztick',[0 30]) +% set(gca,'zticklabel',{'0' '30'}) +% colorbar('SouthOutside'); +colorbar('position',[0.93 0.3 0.03 0.4]); +% subplot(1,2,1) +% plotDislayer_new(9, 1 ,r,OutputRs, 1); +% subplot(1,2,2) +% plotDislayer_new(9, 2 ,r,OutputRs, 1); +% subplot(2,4,5) +% plotDislayer_new(31, 1 ,r,OutputRs, 1); +% subplot(2,4,6) +% plotDislayer_new(31, 2 ,r,OutputRs, 1); +% subplot(2,4,7) +% plotDislayer_new(31, 3 ,r,OutputRs, 1); +% subplot(2,4,8) +% plotDis_new(31 ,r,OutputRs, 1); + + + + diff --git a/post processor/plot functions/plotwell.m b/post processor/plot functions/plotwell.m new file mode 100644 index 0000000..f87460a --- /dev/null +++ b/post processor/plot functions/plotwell.m @@ -0,0 +1,19 @@ +t = Times; +n=size(Times,1); +% para = cell2mat(Wellpara); +nw= 1;%ѡ +% n = length(para); +bhp = zeros(n,1); +for i = 1 : n +% bhp(i) = para(i).bhp(2); +% bhp(i) = Wellpara{i}{1,nw}.pwf; +bhp(i) = Wellpara{i}{1,nw}.qo; +% bhp(i) = Wellpara{i}{1,nw}.pwf; +% bhp(i) = Wellpara{i}{1,nw}.qw/(Wellpara{i}{1,nw}.qw+Wellpara{i}{1,nw}.qo); +end +plot(t,bhp,'b^-') +hold off +% ylim([0,200]); +xlabel('time, day'); +% ylabel('water cut'); +ylabel('oil production rate, m^3/d'); \ No newline at end of file diff --git a/post processor/plot functions/plotwell_set.m b/post processor/plot functions/plotwell_set.m new file mode 100644 index 0000000..1c01228 --- /dev/null +++ b/post processor/plot functions/plotwell_set.m @@ -0,0 +1,130 @@ + +n=size(Times,1); +t = Times; +% para = cell2mat(Wellpara); +total_oil=sum(r.V.*r.pori)*0.85/1.056; +total_water=sum(r.V.*r.pori)*0.15/1.056; + +nw=1;%ѡ +% n = length(para); +Qo = zeros(n,1); +Qw = zeros(n,1); +% Qg = zeros(n,1); +water_content = zeros(n,1); +Pwf = zeros(n,1); +accumu_quan_oil = 0; +% ۼƲɳ +accumu_oil = zeros(n,1); +% ɳ̶ +proportion_oil = zeros(n,1); +% ƽزѹ +average_pressure = zeros(n,1); + +for i = 1 : n +Qo(i) = Wellpara{i}{1,nw}.qo; +Qw(i) = Wellpara{i}{1,nw}.qw; +water_content(i) = Qw(i)/(Qo(i)+Qw(i)); +Pwf(i) = Wellpara{i}{1,nw}.pwf; +if i==1 + one_time_oil=Times(i)*Qo(i); + one_time_water=Times(i)*Qw(i); + accumu_oil(i)=one_time_oil; + accumu_water(i)=one_time_water; + else + one_time_oil=(Times(i)-Times(i-1))*Qo(i); + accumu_oil(i)=accumu_oil(i-1)+one_time_oil; + one_time_water=(Times(i)-Times(i-1))*Qw(i); + accumu_water(i)=accumu_water(i-1)+one_time_water; +end +proportion_oil(i)=accumu_oil(i)/total_oil; +proportion_water(i)=accumu_water(i)/total_water; +average_pressure(i)=mean(OutputRs{i,1}.p(1:r.nmc)); +end +%% ǰ +t=t/1; +%% ղۻ +% color('w'); +figure('color','w') +% figure(1) +[AX,H1,H2]=plotyy(t,Qo,t,accumu_oil); +% [AX,H1,H2] = plotyy(24,0,0,0,'plot'); +set(AX(1),'XColor','k','YColor','b'); +set(AX(2),'XColor','k','YColor','r'); +set(get(AX(1),'Ylabel'),'String','ղ/m^3') +set(get(AX(2),'Ylabel'),'String','ۻ/m^3') +set(H1,'LineStyle','-'); +set(H1,'Marker','o');set(H1,'MarkerSize',4); +set(H1,'color','b'); +set(H2,'LineStyle','-'); +set(H2,'Marker','^');set(H2,'MarkerSize',4); +set(H2,'color','r'); +legend([H1,H2],{'ղ';'ۻ'},'Location','Best'); +set(AX(1),'ylim',[0 500]) +% set(AX(2),'ylim',[0 600]) +% set(AX(1),'ytick',50:50:250) +% set(AX(2),'ytick',0:100:600) +% set(AX,'xlim',[0 30]) +% set(AX,'xtick',0:5:30) +% grid on +xlabel('ʱ/') +% title('ղۻ'); +%% ղˮۻˮ +% color('w'); +figure('color','w') +% figure(1) +[AX,H1,H2]=plotyy(t,Qw,t,accumu_water); +% [AX,H1,H2] = plotyy(24,0,0,0,'plot'); +set(AX(1),'XColor','k','YColor','b'); +set(AX(2),'XColor','k','YColor','r'); +set(get(AX(1),'Ylabel'),'String','ղˮ/m^3') +set(get(AX(2),'Ylabel'),'String','ۻˮ/m^3') +set(H1,'LineStyle','-'); +set(H1,'Marker','o');set(H1,'MarkerSize',4); +set(H1,'color','b'); +set(H2,'LineStyle','-'); +set(H2,'Marker','^');set(H2,'MarkerSize',4); +set(H2,'color','r'); +legend([H1,H2],{'ղˮ';'ۻˮ'},'Location','Best'); +% set(AX(1),'ylim',[50 250]) +% set(AX(2),'ylim',[0 600]) +% set(AX(1),'ytick',50:50:250) +% set(AX(2),'ytick',0:100:600) +% set(AX,'xlim',[0 30]) +% set(AX,'xtick',0:5:30) +% grid on +xlabel('ʱ/') +% title('ղˮۻˮ'); +%% ƽزѹͲɳ̶ +% color('w'); +figure('color','w') +% figure(1) +[AX,H1,H2]=plotyy(t,average_pressure,t,proportion_oil*100); +% [AX,H1,H2] = plotyy(24,0,0,0,'plot'); +set(AX(1),'XColor','k','YColor','b'); +set(AX(2),'XColor','k','YColor','r'); +set(get(AX(1),'Ylabel'),'String','ƽزѹ/MPa') +set(get(AX(2),'Ylabel'),'String','ɳ̶/%') +set(H1,'LineStyle','-'); +set(H1,'Marker','o');set(H1,'MarkerSize',4); +set(H1,'color','b'); +set(H2,'LineStyle','-'); +set(H2,'Marker','^');set(H2,'MarkerSize',4); +set(H2,'color','r'); +legend([H1,H2],{'ƽزѹ';'ɳ̶'},'Location','Best'); +% set(AX(1),'ylim',[50 250]) +% set(AX(2),'ylim',[0 600]) +% set(AX(1),'ytick',50:50:250) +% set(AX(2),'ytick',0:100:600) +% set(AX,'xlim',[0 30]) +% set(AX,'xtick',0:5:30) +% grid on +xlabel('ʱ/') +% title('ղۻ'); +%% ƺˮ +figure('color','w') +plot(t,water_content); +set(get(gca,'Xlabel'),'String','ʱ/') +xlabel('ʱ/') +ylabel('ˮ') +% hold on +% plot(ECLIPSE(:,1),ECLIPSE(:,2),'B'); \ No newline at end of file diff --git a/post processor/plot functions/refine.m b/post processor/plot functions/refine.m new file mode 100644 index 0000000..b6db513 --- /dev/null +++ b/post processor/plot functions/refine.m @@ -0,0 +1,64 @@ +% network3D(2060,1580,10,1,1,3 ); +%REFINE ˴ʾйش˺ժҪ +% ˴ʾϸ˵ +% % % well=cell(4,1); +% % % load('perforation1.mat');welloc1 = [perforation1, 7.5*ones(size(perforation1,1),1)]; +% % % load('perforation2.mat');welloc2 = [perforation2, 7.5*ones(size(perforation2,1),1)]; +% % % load('perforation3.mat');welloc3 = [perforation3, 7.5*ones(size(perforation3,1),1)]; +% % % load('perforation4.mat');welloc4 = [perforation4, 7.5*ones(size(perforation4,1),1)]; +% % % well{1,1} = welloc1; +% % % well{2,1} = welloc2; +% % % well{3,1} = welloc3; +% % % well{4,1} = welloc4; +% % % +% % % for i=1:4 +% % % line(well{i,1}(:,1)',well{i,1}(:,2)',well{i,1}(:,3)','color','k','LineWidth',2); +% % % hold on +% % % end + +% load('injectionWellsCoord.mat') +% injectionWellsCoord = [45,45; +% 655,45; +% 45,625; +% 655,625;]; +% for i=1:size(injectionWellsCoord,1) +% line(injectionWellsCoord(i,1)*ones(2,1),injectionWellsCoord(i,2)*ones(2,1),[0;20],'color','k','LineWidth',2); +% hold on +% text(injectionWellsCoord(i,1),injectionWellsCoord(i,2),20,'עˮ','FontSize',12,'FontWeight','bold'); +% hold on +% end + +% wellbore +% wellbore = [250+100,100+100,46; +% 550+100,100+1700,46]; +% % wellbore = [50,352,10; +% % 950,352,10;]; +% plot3(wellbore(:,1),wellbore(:,2),wellbore(:,3),'color','k','LineWidth',2.5); + +% wellbore = [450,520,10; +% 450,1420,10;]; +% % wellbore = [50,352,10; +% % 950,352,10;]; +% plot3(wellbore(:,1),wellbore(:,2),wellbore(:,3),'color','k','LineWidth',2.5); +hold on +% wellbore = [1175,370,10; +% 1175,1170,10;]; +% % wellbore = [50,352,10; +% % 950,352,10;]; +% plot3(wellbore(:,1),wellbore(:,2),wellbore(:,3),'color','k','LineWidth',2.5); +% text(wellbore(1,1),wellbore(1,2),10,'ѹˮƽ','FontSize',12,'FontWeight','bold'); +hold on +% hwell=cell(1,1); +% hwell{1,1}=[385,1300,15; +% 385,400,15;]; +% hwell{2,1}=[955,1330,15; +% 955,330,15;]; +% hwell{3,1}=[1635,1275,15; +% 1635,580,15;]; +% for i=1:3 +% line(hwell{i,1}(:,1)',hwell{i,1}(:,2)',hwell{i,1}(:,3)','color','k'); +% hold on +% end + + + diff --git a/post processor/plotWellResponse.m b/post processor/plotWellResponse.m new file mode 100644 index 0000000..b3bcc97 --- /dev/null +++ b/post processor/plotWellResponse.m @@ -0,0 +1,55 @@ +function [] = plotWellResponse(Times,Wellpara) +% +wellNumber = 1; % +dataType = 'dPWF'; % ͣٶ GPRٶ OPR, ˮٶ WPRѹ BHPѹ dPWF +% +t = Times; +n= size(Times,1); +% para = cell2mat(Wellpara); +nw = wellNumber;%ѡ +% n = length(para); +data = zeros(n,1); +if strcmp(dataType, 'GPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qg; + figureYlegend = 'Gas production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'OPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qo; + figureYlegend = 'Oil production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'WPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qw; + figureYlegend = 'Water production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'BHP') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.pwf; + figureYlegend = 'BHP, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'dPWF') % dpwf/dlnt = t*dpwf/dt + for i = 1 : n + if i == 1 + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i}{1,nw}.pwf)/(log(t(i+1))-log(t(i))); + elseif i == n + data(i) = (Wellpara{i}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i))-log(t(i-1))); + else + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i+1))-log(t(i-1))); + end + figureYlegend = 'Pressure derivative, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); + set(gca, 'XScale', 'log'); + set(gca, 'YScale', 'log'); +end +end \ No newline at end of file diff --git a/post processor/plot_2D_layer.m b/post processor/plot_2D_layer.m new file mode 100644 index 0000000..0d45394 --- /dev/null +++ b/post processor/plot_2D_layer.m @@ -0,0 +1,50 @@ +function plot_2D_layer(i, k, r, OutputRs, type) +coordinate=r.coordinates; +nodes=r.nodes; +nz=r.nz; +nx=r.nx; +ny=r.ny; +nmc = size(nodes,1); +% nel = size(nodes,2); +nel = 4; +if type == 1 +% v = r.kx; + v = OutputRs{i}.p; +else + v = 1-OutputRs{i}.sw;%Ͷ +end +dis = zeros(nel, nx*ny); +x = zeros(nel, nx*ny); +y = zeros(nel, nx*ny); +for i = 1 :nx*ny + for j = 1 :nel + grid_numbering = i+(nz-k)*nx*ny; + x(j, i) = coordinate(nodes(grid_numbering,j), 1); + y(j, i) = coordinate(nodes(grid_numbering,j), 2); + if j == 3 + x(j, i) = coordinate(nodes(grid_numbering,4), 1); + y(j, i) = coordinate(nodes(grid_numbering,4), 2); + end + if j == 4 + x(j, i) = coordinate(nodes(grid_numbering,3), 1); + y(j, i) = coordinate(nodes(grid_numbering,3), 2); + end + dis(j, i) = v(grid_numbering); + end +end +% fill(x,y,dis,'EdgeAlpha',1); +figure('color','w'); +fill(x,y,dis,'EdgeColor','interp'); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +axis equal; +axis tight +% xlim([0,60]); +% ylim([0,60]); +% clim([10,15]); +colorbar +colormap jet +% fill(x,y,dis); +% axis off diff --git a/post processor/plot_3D.m b/post processor/plot_3D.m new file mode 100644 index 0000000..05ac1b2 --- /dev/null +++ b/post processor/plot_3D.m @@ -0,0 +1,70 @@ +% 主程序示例 +clear; clc; close all; + +% 设置网格参数 +nx = 20; +ny = 15; +nz = 10; + +% 生成非均匀网格尺寸 +dx = linspace(0.5, 1.5, nx)'; % x方向网格尺寸从0.5到1.5变化 +dy = linspace(0.8, 1.2, ny)'; % y方向网格尺寸从0.8到1.2变化 +dz = ones(nz, 1) * 1.0; % z方向均匀网格 + +% 生成示例数据(例如:三维高斯分布) +x_center = sum(dx)/2; % 中心位置 +y_center = sum(dy)/2; +z_center = sum(dz)/2; + +% 计算每个网格点的坐标 +x_pos = zeros(nx, 1); +x_pos(1) = dx(1)/2; +for i = 2:nx + x_pos(i) = x_pos(i-1) + (dx(i-1) + dx(i))/2; +end + +y_pos = zeros(ny, 1); +y_pos(1) = dy(1)/2; +for i = 2:ny + y_pos(i) = y_pos(i-1) + (dy(i-1) + dy(i))/2; +end + +z_pos = zeros(nz, 1); +z_pos(1) = dz(1)/2; +for i = 2:nz + z_pos(i) = z_pos(i-1) + (dz(i-1) + dz(i))/2; +end + +% 创建网格坐标 +[X, Y, Z] = ndgrid(x_pos, y_pos, z_pos); + +% 生成示例物理量数据(三维高斯分布) +sigma_x = max(x_pos)/3; +sigma_y = max(y_pos)/3; +sigma_z = max(z_pos)/3; +data = exp(-((X - x_center).^2/(2*sigma_x^2) + ... + (Y - y_center).^2/(2*sigma_y^2) + ... + (Z - z_center).^2/(2*sigma_z^2))); + +% 绘制不同类型的图 +% plot_3d_grid_data_slice(nx, ny, nz, dx, dy, dz, data); +% plot_3d_grid_data_scatter(nx, ny, nz, dx, dy, dz, data); +% plot_3d_grid_data_volume(nx, ny, nz, dx, dy, dz, data); +% 方法1:基本体素图 +fprintf('绘制方法1:基本体素图...\n'); +plot_3d_grid_voxel_full(nx, ny, nz, dx, dy, dz, data); +title('方法1:基本体素图 - 高斯分布'); + +% 方法2:优化版本 +fprintf('绘制方法2:优化版本...\n'); +plot_3d_grid_patch_optimized(nx, ny, nz, dx, dy, dz, data); +title('方法2:优化版本 - 球壳分布'); + +% 方法3:体素函数法 +fprintf('绘制方法3:体素函数法...\n'); +plot_3d_grid_voxel_function(nx, ny, nz, dx, dy, dz, data); +title('方法3:体素函数法 - 波纹分布'); + +% 方法4:半透明效果 +fprintf('绘制方法4:半透明效果...\n'); +plot_3d_grid_transparent(nx, ny, nz, dx, dy, dz, data); \ No newline at end of file diff --git a/post processor/plot_3D_dis.m b/post processor/plot_3D_dis.m new file mode 100644 index 0000000..6674f45 --- /dev/null +++ b/post processor/plot_3D_dis.m @@ -0,0 +1,144 @@ +function plot_3D_dis(i, r,OutputRs, type) +%Ϊͼǰ +figure('color','w') +[ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dis( r ); +coordinate=r.coordinates; +nodes=r.nodes; +% nmc = size(nodes,1);% +% % nel = size(nodes,2);%ÿĵ +% order=[1,2,4,3,1,5,6,8,7,3,4,8,6,2,1];%fillͼ +% nel=size(order,2); +if type == 1 + v = OutputRs{i}.p; +elseif type == 2 + v = 1-OutputRs{i}.sw;%ͱͶ +elseif type == 3 + v = OutputRs{i}.sg;%ͱͶ +else + v = OutputRs{i}.sw;%ͱͶ +end +% +order=[1,2,4,3,1]; +nel=size(order,2); +nmc=size(downgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(downgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(downgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(downgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(downgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +hold on + +% +order=[1,5,7,3,1]; +nel=size(order,2); +nmc=size(leftgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(leftgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(leftgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(leftgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(leftgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[2,4,8,6,2]; +nel=size(order,2); +nmc=size(rightgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(rightgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(rightgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(rightgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(rightgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%ǰ +order=[1,2,6,5,1]; +nel=size(order,2); +nmc=size(frontgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(frontgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(frontgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(frontgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(frontgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[3,4,8,7,3]; +nel=size(order,2); +nmc=size(backgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(backgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(backgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(backgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(backgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[5,6,8,7,5]; +nel=size(order,2); +nmc=size(upgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(upgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(upgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(upgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(upgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +xlabel('x, m'); +ylabel('y, m'); +zlabel('z, m'); +view(3); +% Ͳؿ +% plotframe( r ); +alpha(1) +% caxis([0.2,0.8]); +caxis([10,13]); +% caxis([12,22]); +colormap jet +colorbar +% zlim([-2020,-2000]); +% axis equal +axis tight + diff --git a/post processor/plot_3d_grid_data_scatter.m b/post processor/plot_3d_grid_data_scatter.m new file mode 100644 index 0000000..ba40397 --- /dev/null +++ b/post processor/plot_3d_grid_data_scatter.m @@ -0,0 +1,54 @@ +function plot_3d_grid_data_scatter(nx, ny, nz, dx, dy, dz, data) +% 绘制三维网格数据的点云图 +% 输入参数: +% nx, ny, nz - 各方向的网格数 +% dx, dy, dz - 各方向的网格尺寸向量 +% data - 物理量数据,维度为(nx, ny, nz) + +% 计算每个网格点的坐标位置 +x = zeros(1, nx); +x(1) = dx(1)/2; +for i = 2:nx + x(i) = x(i-1) + (dx(i-1) + dx(i))/2; +end + +y = zeros(1, ny); +y(1) = dy(1)/2; +for i = 2:ny + y(i) = y(i-1) + (dy(i-1) + dy(i))/2; +end + +z = zeros(1, nz); +z(1) = dz(1)/2; +for i = 2:nz + z(i) = z(i-1) + (dz(i-1) + dz(i))/2; +end + +% 创建所有网格点的坐标矩阵 +[X, Y, Z] = ndgrid(x, y, z); +% data已经是(nx, ny, nz)格式,与ndgrid输出匹配 + +% 将数据展平用于scatter3 +X_flat = X(:); +Y_flat = Y(:); +Z_flat = Z(:); +data_flat = data(:); + +% 创建新图形 +figure('Position', [100, 100, 800, 600]); + +% 使用scatter3绘制点云图 +scatter3(X_flat, Y_flat, Z_flat, 20, data_flat, 'filled'); +colorbar; +colormap('jet'); +xlabel('X'); +ylabel('Y'); +zlabel('Z'); +title('三维网格物理量分布(点云图)'); +axis equal; +view(3); +grid on; + +% 添加透明度设置(可选,用于显示内部点) +alpha(0.8); +end \ No newline at end of file diff --git a/post processor/plot_3d_grid_data_slice.m b/post processor/plot_3d_grid_data_slice.m new file mode 100644 index 0000000..164b596 --- /dev/null +++ b/post processor/plot_3d_grid_data_slice.m @@ -0,0 +1,52 @@ +function plot_3d_grid_data_slice(nx, ny, nz, dx, dy, dz, data) +% 绘制三维网格数据的切片图 +% 输入参数: +% nx, ny, nz - 各方向的网格数 +% dx, dy, dz - 各方向的网格尺寸向量 +% data - 物理量数据,维度为(nx, ny, nz) + +% 计算每个网格点的坐标位置(取网格中心点) +x = zeros(1, nx); +x(1) = dx(1)/2; +for i = 2:nx + x(i) = x(i-1) + (dx(i-1) + dx(i))/2; +end + +y = zeros(1, ny); +y(1) = dy(1)/2; +for i = 2:ny + y(i) = y(i-1) + (dy(i-1) + dy(i))/2; +end + +z = zeros(1, nz); +z(1) = dz(1)/2; +for i = 2:nz + z(i) = z(i-1) + (dz(i-1) + dz(i))/2; +end + +% 创建三维网格 +[X, Y, Z] = meshgrid(x, y, z); +% 注意:meshgrid生成的数组维度顺序为(ny, nx, nz) +% 如果data是(nx, ny, nz),需要转置 +data_plot = permute(data, [2, 1, 3]); + +% 创建新图形 +figure('Position', [100, 100, 800, 600]); + +% 使用slice绘制三个正交切面 +xslice = [x(round(nx/4)), x(round(nx/2)), x(round(3*nx/4))]; +yslice = [y(round(ny/4)), y(round(ny/2)), y(round(3*ny/4))]; +zslice = [z(round(nz/4)), z(round(nz/2)), z(round(3*nz/4))]; + +slice(X, Y, Z, data_plot, xslice, yslice, zslice); +shading interp; +colorbar; +colormap('jet'); +xlabel('X'); +ylabel('Y'); +zlabel('Z'); +title('三维网格物理量分布(切片图)'); +axis equal; +view(3); +grid on; +end \ No newline at end of file diff --git a/post processor/plot_3d_grid_data_volume.m b/post processor/plot_3d_grid_data_volume.m new file mode 100644 index 0000000..14388a0 --- /dev/null +++ b/post processor/plot_3d_grid_data_volume.m @@ -0,0 +1,66 @@ +function plot_3d_grid_data_volume(nx, ny, nz, dx, dy, dz, data) +% 绘制三维网格数据的体绘制图 +% 输入参数: +% nx, ny, nz - 各方向的网格数 +% dx, dy, dz - 各方向的网格尺寸向量 +% data - 物理量数据,维度为(nx, ny, nz) + +% 计算每个网格点的坐标位置 +x = zeros(1, nx); +x(1) = dx(1)/2; +for i = 2:nx + x(i) = x(i-1) + (dx(i-1) + dx(i))/2; +end + +y = zeros(1, ny); +y(1) = dy(1)/2; +for i = 2:ny + y(i) = y(i-1) + (dy(i-1) + dy(i))/2; +end + +z = zeros(1, nz); +z(1) = dz(1)/2; +for i = 2:nz + z(i) = z(i-1) + (dz(i-1) + dz(i))/2; +end + +% 创建三维网格 +[X, Y, Z] = meshgrid(x, y, z); +% 调整data维度 +data_plot = permute(data, [2, 1, 3]); + +% 创建新图形 +figure('Position', [100, 100, 900, 700]); + +% 方法1:使用vol3d v2(如果安装了File Exchange的vol3d工具) +% 如果没有安装,可以使用以下基本体绘制 + +% 创建多个等值面 +levels = linspace(min(data(:)), max(data(:)), 5); +for i = 2:length(levels)-1 + p = patch(isosurface(X, Y, Z, data_plot, levels(i))); + isonormals(X, Y, Z, data_plot, p); + set(p, 'FaceColor', 'interp', 'EdgeColor', 'none'); + + % 根据数据值设置颜色 + cdata = get(p, 'FaceVertexCData'); + set(p, 'FaceVertexCData', cdata); +end + +% 添加一些切片来显示内部结构 +hold on; +h = slice(X, Y, Z, data_plot, x(round(nx/2)), y(round(ny/2)), z(round(nz/2))); +set(h, 'FaceAlpha', 0.6, 'EdgeColor', 'none'); + +colorbar; +colormap('jet'); +xlabel('X'); +ylabel('Y'); +zlabel('Z'); +title('三维网格物理量分布(体绘制)'); +axis equal; +view(3); +grid on; +camlight; +lighting gouraud; +end \ No newline at end of file diff --git a/post processor/plot_3d_grid_patch_optimized.m b/post processor/plot_3d_grid_patch_optimized.m new file mode 100644 index 0000000..eba5c39 --- /dev/null +++ b/post processor/plot_3d_grid_patch_optimized.m @@ -0,0 +1,128 @@ +function plot_3d_grid_patch_optimized(nx, ny, nz, dx, dy, dz, data) +% 使用patch一次性绘制所有网格(优化版本) +% 输入参数: +% nx, ny, nz - 各方向的网格数 +% dx, dy, dz - 各方向的网格尺寸向量 +% data - 物理量数据,维度为(nx, ny, nz) + +% 计算每个网格的边界坐标 +x_edges = zeros(nx+1, 1); +x_edges(1) = 0; +for i = 1:nx + x_edges(i+1) = x_edges(i) + dx(i); +end + +y_edges = zeros(ny+1, 1); +y_edges(1) = 0; +for i = 1:ny + y_edges(i+1) = y_edges(i) + dy(i); +end + +z_edges = zeros(nz+1, 1); +z_edges(1) = 0; +for i = 1:nz + z_edges(i+1) = z_edges(i) + dz(i); +end + +% 创建网格顶点坐标 +[X_edges, Y_edges, Z_edges] = ndgrid(x_edges, y_edges, z_edges); + +% 重新排列顶点 +vertices = [X_edges(:), Y_edges(:), Z_edges(:)]; + +% 创建每个体素的8个顶点索引 +n_cells = nx * ny * nz; +faces = zeros(n_cells * 6, 4); % 每个体素6个面,每个面4个顶点 +face_colors = zeros(n_cells * 6, 1); + +% 顶点编号方式:按照(i,j,k)顺序 +% 每个体素的8个顶点索引 +% v1: (i,j,k) +% v2: (i+1,j,k) +% v3: (i+1,j+1,k) +% v4: (i,j+1,k) +% v5: (i,j,k+1) +% v6: (i+1,j,k+1) +% v7: (i+1,j+1,k+1) +% v8: (i,j+1,k+1) + +face_idx = 1; +for i = 1:nx + for j = 1:ny + for k = 1:nz + % 计算当前体素的8个顶点索引 + idx = @(ii, jj, kk) (ii-1)*(ny+1)*(nz+1) + (jj-1)*(nz+1) + kk; + + v1 = idx(i, j, k); + v2 = idx(i+1, j, k); + v3 = idx(i+1, j+1, k); + v4 = idx(i, j+1, k); + v5 = idx(i, j, k+1); + v6 = idx(i+1, j, k+1); + v7 = idx(i+1, j+1, k+1); + v8 = idx(i, j+1, k+1); + + % 当前体素的值 + cell_value = data(i, j, k); + + % 底面 (k层) + faces(face_idx, :) = [v1, v2, v3, v4]; + face_colors(face_idx) = cell_value; + face_idx = face_idx + 1; + + % 顶面 (k+1层) + faces(face_idx, :) = [v5, v6, v7, v8]; + face_colors(face_idx) = cell_value; + face_idx = face_idx + 1; + + % 前面 (j层) + faces(face_idx, :) = [v1, v2, v6, v5]; + face_colors(face_idx) = cell_value; + face_idx = face_idx + 1; + + % 后面 (j+1层) + faces(face_idx, :) = [v4, v3, v7, v8]; + face_colors(face_idx) = cell_value; + face_idx = face_idx + 1; + + % 左面 (i层) + faces(face_idx, :) = [v1, v4, v8, v5]; + face_colors(face_idx) = cell_value; + face_idx = face_idx + 1; + + % 右面 (i+1层) + faces(face_idx, :) = [v2, v3, v7, v6]; + face_colors(face_idx) = cell_value; + face_idx = face_idx + 1; + end + end +end + +% 创建图形 +figure('Position', [100, 100, 1000, 800]); + +% 绘制所有面 +patch('Vertices', vertices, 'Faces', faces, ... + 'FaceVertexCData', face_colors, ... + 'FaceColor', 'flat', ... + 'CDataMapping', 'scaled', ... + 'EdgeColor', 'none', ... + 'FaceAlpha', 0.9); + +% 设置属性 +colorbar; +colormap jet; +xlabel('X'); +ylabel('Y'); +zlabel('Z'); +title('三维笛卡尔网格全充满物理量分布(优化版)'); +axis equal; +view(3); +grid on; +box on; + +% 光照设置 +lighting gouraud; +light('Position', [1 1 1], 'Style', 'infinite'); +light('Position', [-1 -1 -1], 'Style', 'infinite'); +end \ No newline at end of file diff --git a/post processor/plot_3d_grid_transparent.m b/post processor/plot_3d_grid_transparent.m new file mode 100644 index 0000000..24256cb --- /dev/null +++ b/post processor/plot_3d_grid_transparent.m @@ -0,0 +1,105 @@ +function plot_3d_grid_transparent(nx, ny, nz, dx, dy, dz, data) +% 绘制半透明效果的三维网格 +% 输入参数: +% nx, ny, nz - 各方向的网格数 +% dx, dy, dz - 各方向的网格尺寸向量 +% data - 物理量数据,维度为(nx, ny, nz) + +% 计算每个网格的边界坐标 +x_edges = zeros(nx+1, 1); +x_edges(1) = 0; +for i = 1:nx + x_edges(i+1) = x_edges(i) + dx(i); +end + +y_edges = zeros(ny+1, 1); +y_edges(1) = 0; +for i = 1:ny + y_edges(i+1) = y_edges(i) + dy(i); +end + +z_edges = zeros(nz+1, 1); +z_edges(1) = 0; +for i = 1:nz + z_edges(i+1) = z_edges(i) + dz(i); +end + +% 创建图形 +figure('Position', [100, 100, 1000, 800]); +hold on; + +% 设置颜色映射 +colormap jet; +caxis([min(data(:)), max(data(:))]); + +% 根据物理量值设置透明度 +% 值越大越不透明,值越小越透明 +data_min = min(data(:)); +data_max = max(data(:)); +data_range = data_max - data_min; + +for i = 1:nx + for j = 1:ny + for k = 1:nz + % 获取当前体素的边界 + x_min = x_edges(i); + x_max = x_edges(i+1); + y_min = y_edges(j); + y_max = y_edges(j+1); + z_min = z_edges(k); + z_max = z_edges(k+1); + + % 获取当前体素的物理量值 + value = data(i, j, k); + + % 根据值设置透明度(值越大越不透明) + % alpha_val = 0.3 + 0.6 * (value - data_min) / data_range; + alpha_val = 1; + + % 创建体素的8个顶点 + vertices = [x_min, y_min, z_min; + x_max, y_min, z_min; + x_max, y_max, z_min; + x_min, y_max, z_min; + x_min, y_min, z_max; + x_max, y_min, z_max; + x_max, y_max, z_max; + x_min, y_max, z_max]; + + % 创建6个面的顶点索引 + faces = [1 2 3 4; % 底面 + 5 6 7 8; % 顶面 + 1 2 6 5; % 前面 + 2 3 7 6; % 右面 + 3 4 8 7; % 后面 + 4 1 5 8]; % 左面 + + % 绘制体素 + patch('Vertices', vertices, 'Faces', faces, ... + 'FaceColor', 'flat', ... + 'FaceVertexCData', value, ... + 'CDataMapping', 'scaled', ... + 'FaceAlpha', alpha_val, ... + 'EdgeColor', 'none'); + end + end +end + +% 设置图形属性 +colorbar; +xlabel('X'); +ylabel('Y'); +zlabel('Z'); +title('三维笛卡尔网格全充满物理量分布(透明度与数值相关)'); +axis equal; +view(3); +grid on; +box on; + +% 光照设置 +lighting gouraud; +light('Position', [1 1 1], 'Style', 'infinite'); +light('Position', [-1 -1 -1], 'Style', 'infinite'); + +hold off; +end \ No newline at end of file diff --git a/post processor/plot_3d_grid_voxel_full.m b/post processor/plot_3d_grid_voxel_full.m new file mode 100644 index 0000000..b85b56a --- /dev/null +++ b/post processor/plot_3d_grid_voxel_full.m @@ -0,0 +1,99 @@ +function plot_3d_grid_voxel_full(nx, ny, nz, dx, dy, dz, data) +% 绘制三维笛卡尔网格全充满的体素图(每个网格单一颜色) +% 输入参数: +% nx, ny, nz - 各方向的网格数 +% dx, dy, dz - 各方向的网格尺寸向量 +% data - 物理量数据,维度为(nx, ny, nz) + +% 计算每个网格的边界坐标 +x_edges = zeros(nx+1, 1); +x_edges(1) = 0; +for i = 1:nx + x_edges(i+1) = x_edges(i) + dx(i); +end + +y_edges = zeros(ny+1, 1); +y_edges(1) = 0; +for i = 1:ny + y_edges(i+1) = y_edges(i) + dy(i); +end + +z_edges = zeros(nz+1, 1); +z_edges(1) = 0; +for i = 1:nz + z_edges(i+1) = z_edges(i) + dz(i); +end + +% 创建图形窗口 +figure('Position', [100, 100, 1000, 800]); +hold on; + +% 设置颜色映射 +colormap jet; +caxis([min(data(:)), max(data(:))]); + +% 绘制每个体素 +alpha_value = 0.9; % 透明度 + +for i = 1:nx + for j = 1:ny + for k = 1:nz + % 获取当前体素的边界 + x_min = x_edges(i); + x_max = x_edges(i+1); + y_min = y_edges(j); + y_max = y_edges(j+1); + z_min = z_edges(k); + z_max = z_edges(k+1); + + % 获取当前体素的物理量值 + value = data(i, j, k); + + % 创建体素的8个顶点 + vertices = [x_min, y_min, z_min; + x_max, y_min, z_min; + x_max, y_max, z_min; + x_min, y_max, z_min; + x_min, y_min, z_max; + x_max, y_min, z_max; + x_max, y_max, z_max; + x_min, y_max, z_max]; + + % 创建6个面的顶点索引 + faces = [1 2 3 4; % 底面 + 5 6 7 8; % 顶面 + 1 2 6 5; % 前面 + 2 3 7 6; % 右面 + 3 4 8 7; % 后面 + 4 1 5 8]; % 左面 + + % 关键修改:使用 'flat' 确保每个面单一颜色 + % 并且为每个面指定相同的颜色值 + patch('Vertices', vertices, 'Faces', faces, ... + 'FaceColor', 'flat', ... % 'flat' 确保每个面单一颜色 + 'FaceVertexCData', value * ones(size(faces, 1), 1), ... % 所有面使用相同颜色值 + 'CDataMapping', 'scaled', ... + 'FaceAlpha', alpha_value, ... + 'EdgeColor', 'none'); + end + end +end + +% 设置图形属性 +colorbar; +xlabel('X'); +ylabel('Y'); +zlabel('Z'); +title('三维笛卡尔网格全充满物理量分布(每个网格单一颜色)'); +axis equal; +view(3); +grid on; +box on; + +% 设置光照 +lighting gouraud; +light('Position', [1 1 1], 'Style', 'infinite'); +light('Position', [-1 -1 -1], 'Style', 'infinite'); + +hold off; +end \ No newline at end of file diff --git a/post processor/plot_3d_grid_voxel_function.m b/post processor/plot_3d_grid_voxel_function.m new file mode 100644 index 0000000..3cbaac7 --- /dev/null +++ b/post processor/plot_3d_grid_voxel_function.m @@ -0,0 +1,105 @@ +function plot_3d_grid_voxel_function_fixed(nx, ny, nz, dx, dy, dz, data) +% 使用自定义voxel函数绘制三维网格(每个网格单一颜色) +% 输入参数: +% nx, ny, nz - 各方向的网格数 +% dx, dy, dz - 各方向的网格尺寸向量 +% data - 物理量数据,维度为(nx, ny, nz) + +% 计算每个网格的中心坐标 +x_center = zeros(nx, 1); +x_center(1) = dx(1)/2; +for i = 2:nx + x_center(i) = x_center(i-1) + (dx(i-1) + dx(i))/2; +end + +y_center = zeros(ny, 1); +y_center(1) = dy(1)/2; +for i = 2:ny + y_center(i) = y_center(i-1) + (dy(i-1) + dy(i))/2; +end + +z_center = zeros(nz, 1); +z_center(1) = dz(1)/2; +for i = 2:nz + z_center(i) = z_center(i-1) + (dz(i-1) + dz(i))/2; +end + +% 创建图形 +figure('Position', [100, 100, 1000, 800]); +hold on; + +% 设置颜色映射 +colormap jet; +caxis([min(data(:)), max(data(:))]); + +% 绘制每个体素 +alpha_val = 0.9; % 透明度 + +for i = 1:nx + for j = 1:ny + for k = 1:nz + % 绘制体素 - 传递当前网格的值 + voxel_fixed([x_center(i), y_center(j), z_center(k)], ... + [dx(i), dy(j), dz(k)], ... + data(i, j, k), alpha_val); + end + end +end + +% 设置图形属性 +colorbar; +xlabel('X'); +ylabel('Y'); +zlabel('Z'); +title('三维笛卡尔网格全充满物理量分布(体素法,单一颜色)'); +axis equal; +view(3); +grid on; +box on; + +% 光照设置 +lighting gouraud; +light('Position', [1 1 1], 'Style', 'infinite'); +light('Position', [-1 -1 -1], 'Style', 'infinite'); + +hold off; +end + +function voxel_fixed(center, size, value, alpha) +% 绘制单个体素的辅助函数(每个面使用相同颜色) +% center: [x, y, z] 中心坐标 +% size: [dx, dy, dz] 尺寸 +% value: 物理量值 +% alpha: 透明度 + +% 计算8个顶点 +x = center(1) + [-size(1)/2, size(1)/2]; +y = center(2) + [-size(2)/2, size(2)/2]; +z = center(3) + [-size(3)/2, size(3)/2]; + +% 创建8个顶点 +vertices = [x(1), y(1), z(1); + x(2), y(1), z(1); + x(2), y(2), z(1); + x(1), y(2), z(1); + x(1), y(1), z(2); + x(2), y(1), z(2); + x(2), y(2), z(2); + x(1), y(2), z(2)]; + +% 6个面的顶点索引 +faces = [1 2 3 4; + 5 6 7 8; + 1 2 6 5; + 2 3 7 6; + 3 4 8 7; + 4 1 5 8]; + +% 关键修改:使用 'flat' 并确保所有面使用相同的颜色值 +patch('Vertices', vertices, 'Faces', faces, ... + 'FaceColor', 'flat', ... % 'flat' 确保每个面单一颜色 + 'FaceVertexCData', value * ones(size(faces, 1), 1), ... % 所有面相同颜色 + 'CDataMapping', 'scaled', ... + 'FaceAlpha', alpha, ... + 'EdgeColor', 'none'); +end \ No newline at end of file diff --git a/post processor/plot_SP_DP.m b/post processor/plot_SP_DP.m new file mode 100644 index 0000000..7f63e8e --- /dev/null +++ b/post processor/plot_SP_DP.m @@ -0,0 +1,51 @@ +function plot_SP_DP(k, r) +coordinate=r.coordinates; +nodes=r.nodes; +nz=r.nz; +nx=r.nx; +ny=r.ny; +nmc = size(nodes,1); +% nel = size(nodes,2); +nel = 4; +v = r.sigma; +% if type == 1 +% % v = r.kx; +% v = OutputRs{i}.p; +% else +% v = 1-OutputRs{i}.sw;%Ͷ +% end +dis = zeros(nel, nx*ny); +x = zeros(nel, nx*ny); +y = zeros(nel, nx*ny); +for i = 1 :nx*ny + for j = 1 :nel + grid_numbering = i+(nz-k)*nx*ny; + x(j, i) = coordinate(nodes(grid_numbering,j), 1); + y(j, i) = coordinate(nodes(grid_numbering,j), 2); + if j == 3 + x(j, i) = coordinate(nodes(grid_numbering,4), 1); + y(j, i) = coordinate(nodes(grid_numbering,4), 2); + end + if j == 4 + x(j, i) = coordinate(nodes(grid_numbering,3), 1); + y(j, i) = coordinate(nodes(grid_numbering,3), 2); + end + dis(j, i) = v(grid_numbering); + end +end +% fill(x,y,dis,'EdgeAlpha',1); +figure('color','w'); +fill(x,y,dis,'EdgeColor','interp'); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +axis equal; +axis tight +% xlim([0,60]); +% ylim([0,60]); +% clim([10,15]); +colorbar +colormap jet +% fill(x,y,dis); +% axis off diff --git a/post processor/pre_plot/preplot_dis.m b/post processor/pre_plot/preplot_dis.m new file mode 100644 index 0000000..5609ee9 --- /dev/null +++ b/post processor/pre_plot/preplot_dis.m @@ -0,0 +1,40 @@ +function [ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dis( r ) +%PREPLOT ˴ʾйش˺ժҪ +% ˴ʾϸ˵ +nx=r.nx; +ny=r.ny; +nz=r.nz; +downgrid=[]; +frontgrid=[]; +leftgrid=[]; +rightgrid=[]; +backgrid=[]; +upgrid=[]; +for k=1:nz + for j=1:ny + for i=1:nx + rao=i+(j-1)*nx+(k-1)*nx*ny; + if k==1 + downgrid=[downgrid rao]; + end + if k==nz + upgrid=[upgrid rao]; + end + if i==1 + leftgrid=[leftgrid rao]; + end + if i==nx + rightgrid=[rightgrid rao]; + end + if j==1 + frontgrid=[frontgrid rao]; + end + if j==ny + backgrid=[backgrid rao]; + end + end + end +end + +end + diff --git a/post processor/pre_plot/preplot_dislayer.m b/post processor/pre_plot/preplot_dislayer.m new file mode 100644 index 0000000..a78a754 --- /dev/null +++ b/post processor/pre_plot/preplot_dislayer.m @@ -0,0 +1,41 @@ +function [ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dislayer( r,k ) +%PREPLOT ˴ʾйش˺ժҪ +% ˴ʾϸ˵ +% kʾIJ +nx=r.nx; +ny=r.ny; +nz=r.nz; +downgrid=[]; +frontgrid=[]; +leftgrid=[]; +rightgrid=[]; +backgrid=[]; +upgrid=[]; +xiang=nz+1-k; + for j=1:ny + for i=1:nx + rao=i+(j-1)*nx+(xiang-1)*nx*ny; + + downgrid=[downgrid rao]; + + + upgrid=[upgrid rao]; + + if i==1 + leftgrid=[leftgrid rao]; + end + if i==nx + rightgrid=[rightgrid rao]; + end + if j==1 + frontgrid=[frontgrid rao]; + end + if j==ny + backgrid=[backgrid rao]; + end + end + end + + +end + diff --git a/post processor/pre_plot/sort_fracture.m b/post processor/pre_plot/sort_fracture.m new file mode 100644 index 0000000..cb8c49f --- /dev/null +++ b/post processor/pre_plot/sort_fracture.m @@ -0,0 +1,27 @@ +function [ f,fellip ] = sort_fracture( inputf ) +nf=size(inputf,1); +f=[];fellip=[]; +for i=1:nf + ft1=inputf{i,1}; + alpha=inputf{i,2}/180*pi;beta=inputf{i,3}/180*pi;gama=inputf{i,4}/180*pi;%ǶתΪ + lf=inputf{i,5};hf=inputf{i,6}; + ft2=lf/2*[cos(alpha)*cos(gama)+sin(alpha)*cos(beta)*sin(gama),-cos(alpha)*cos(beta)*sin(gama)+sin(alpha)*cos(gama),... + sin(beta)*sin(gama)]; + ft3=hf/2*[sin(alpha)*cos(beta)*cos(gama)-cos(alpha)*sin(gama),-sin(alpha)*sin(gama)-cos(alpha)*cos(beta)*cos(gama),sin(beta)*cos(gama)]; + if inputf{i,7}==1 %η + ft4=[-1,1,0];ft5=[-1,1,0]; + f=[f;ft1;ft2;ft3;ft4;ft5]; + f(abs(f)<=1e-4)=0; + else %Բ + ft4=[0,0,1];ft5=[0,0,1]; + fellip=[fellip;ft1;ft2;ft3;ft4;ft5]; + fellip(abs(fellip)<=1e-4)=0; + end +end + + +end + + + + diff --git a/post processor/pre_plot/sort_fracture_project.m b/post processor/pre_plot/sort_fracture_project.m new file mode 100644 index 0000000..ace60dc --- /dev/null +++ b/post processor/pre_plot/sort_fracture_project.m @@ -0,0 +1,29 @@ +function [ f,fellip ] = sort_fracture_project( inputf ) +nf=size(inputf{1,1},1); +f=[];fellip=[]; +for i=1:nf + ft1=inputf{1,1}(i,:); +% alpha=inputf{i,2}/180*pi;beta=inputf{i,3}/180*pi;gama=inputf{i,4}/180*pi;%ǶתΪ +% lf=inputf{i,5};hf=inputf{i,6}; + alpha=90/180*pi;beta=90/180*pi;gama=0/180*pi;%ǶתΪ + lf=200;hf=5; + ft2=lf/2*[cos(alpha)*cos(gama)+sin(alpha)*cos(beta)*sin(gama),-cos(alpha)*cos(beta)*sin(gama)+sin(alpha)*cos(gama),... + sin(beta)*sin(gama)]; + ft3=hf/2*[sin(alpha)*cos(beta)*cos(gama)-cos(alpha)*sin(gama),-sin(alpha)*sin(gama)-cos(alpha)*cos(beta)*cos(gama),sin(beta)*cos(gama)]; +% if inputf{i,7}==1 %η + ft4=[-1,1,0];ft5=[-1,1,0]; + f=[f;ft1;ft2;ft3;ft4;ft5]; + f(abs(f)<=1e-4)=0; +% else %Բ +% ft4=[0,0,1];ft5=[0,0,1]; +% fellip=[fellip;ft1;ft2;ft3;ft4;ft5]; +% fellip(abs(fellip)<=1e-4)=0; +% end +end + + +end + + + + diff --git a/post processor/pre_plot/sort_input.m b/post processor/pre_plot/sort_input.m new file mode 100644 index 0000000..4441eb2 --- /dev/null +++ b/post processor/pre_plot/sort_input.m @@ -0,0 +1,22 @@ +function [ input_modi ] = sort_input( input,nx,ny,nz ) +input=reshape(input',[],1); +input(input==0)=0.0001; +% hei=length(input); +hei=nx*ny*nz; +input=input(1:hei,1); +input_modi=zeros(hei,1); +for i=1:hei + zz=floor((i-1)/(nx*ny)); + zzz=nz-zz; + yy=floor((i-zz*nx*ny-1)/nx); + yyy=ny-yy; +% yyy=yy+1; + xxx=mod(i-zz*nx*ny-1,nx); + if xxx==0 xxx=nx; + end + input_modi(xxx+(yyy-1)*nx+(zzz-1)*nx*ny,1)=input(i); +end + + + + diff --git a/post processor/untitled2.m b/post processor/untitled2.m new file mode 100644 index 0000000..aa3428e --- /dev/null +++ b/post processor/untitled2.m @@ -0,0 +1,11 @@ +% 加载生成的数据 +load('test_data.mat'); + +% 使用高斯分布数据绘制切片图 +plot_3d_grid_data_slice(nx, ny, nz, dx, dy, dz, data1); + +% 使用球壳分布数据绘制点云图 +plot_3d_grid_data_scatter(nx, ny, nz, dx, dy, dz, data2); + +% 使用波纹分布数据绘制体绘制图 +plot_3d_grid_data_volume(nx, ny, nz, dx, dy, dz, data3); \ No newline at end of file diff --git a/startup.m b/startup.m new file mode 100644 index 0000000..b8702bb --- /dev/null +++ b/startup.m @@ -0,0 +1 @@ + addpath(genpath(pwd)) \ No newline at end of file diff --git a/算例1-组分流-不规则非均质计算域/GridProp_pre.m b/算例1-组分流-不规则非均质计算域/GridProp_pre.m new file mode 100644 index 0000000..e7b75b1 --- /dev/null +++ b/算例1-组分流-不规则非均质计算域/GridProp_pre.m @@ -0,0 +1,115 @@ +function [r] = GridProp_pre(dx, dy,dz,nx,ny,nz,NTG) +% coordinates xy cordinate,即每个节点的x,y坐标 +% nodes connection,即每个子区域对应的八个节点数 +% nP numbers of point,即节点数量 +% nE numbers of element,即子区域数量 +nP = (nx + 1) * (ny + 1)*(nz+1);%计算节点数量 +nE = nx * ny*nz;%子区域数量计算 +% dx=dx*ones(nx,1);%此处是为了暂时妥协 +% dy=dy*ones(nx,1); +% dz=dz*ones(nx,1); +dxv = zeros(nE, 1);%每个子区域x方向上尺寸矩阵 +dyv = zeros(nE, 1);%每个子区域y方向上尺寸矩阵 +dzv = zeros(nE, 1); +zm=zeros(nE, 1);%基质网格计算深度(以下平面为基准计算得到的高度,值为正数) +xm=zeros(nE, 1); +ym=zeros(nE, 1); +%给每个子区域的x方向和y方向赋尺寸 +vm=zeros(nE, 1);%基质网格体积 +for k=1:nz + for i = 1 : nx + for j = 1 : ny + dxv(i+(j-1)*nx+nx*ny*(k-1)) = dx(i); + dyv(i+(j-1)*nx+nx*ny*(k-1)) = dy(j); + dzv(i+(j-1)*nx+nx*ny*(k-1))= dz(k); + vm(i+(j-1)*nx+nx*ny*(k-1))=dx(i)*dy(j)*dz(k)*NTG(i+(j-1)*nx+nx*ny*(k-1)); + end + end +end +coordinates = zeros(nP, 3);%初始化每个节点的x,y坐标矩阵 +nodes = zeros(nE, 8);%初始化每个子区域对应的八个节点数的矩阵 +%计算每个节点的坐标 +x0 = zeros(nx+1,1); +y0 = zeros(ny+1,1); +z0=zeros(nz+1,1); +sumx = 0; +sumy = 0; +sumz=0; +for i = 1 : nx + sumx = sumx+dx(i); + x0(i+1) = sumx; +end +for i = 1 : ny + sumy = sumy+dy(i); + y0(i+1) = sumy; +end +for i = 1 : nz + sumz = sumz+dz(i); + z0(i+1) = sumz; +end +for k=1:nz+1 +for j = 1 : ny + 1 + for i = 1 : nx + 1 + coordinates(i + (j - 1) * (nx + 1)+(nx+1)*(ny+1)*(k-1), 1) = x0(i);%(i,j)节点的x坐标赋值 + coordinates(i + (j - 1) * (nx + 1)+(nx+1)*(ny+1)*(k-1), 2) = y0(j);%(i,j)节点的y坐标赋值 + coordinates(i + (j - 1) * (nx + 1)+(nx+1)*(ny+1)*(k-1), 3) = z0(k); + end +end +end +%计算每个子区域的八个顶点(节点)对应的节点编号 +for k=1:nz +for j = 1 : ny + for i = 1 : nx + nodes(i + (j - 1) * nx+nx*ny*(k-1), 1) = i + (j - 1) * (nx + 1)+(k-1)*(nx+1)*(ny+1); + nodes(i + (j - 1) * nx+nx*ny*(k-1), 2) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 1) + 1; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 3) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 1) + nx + 1; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 4) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 1) + nx + 2; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 5) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 1)+(nx+1)*(ny+1); + nodes(i + (j - 1) * nx+nx*ny*(k-1), 6) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 5) + 1; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 7) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 5) + nx + 1; + nodes(i + (j - 1) * nx+nx*ny*(k-1), 8) = nodes(i + (j - 1) * nx+nx*ny*(k-1), 5) + nx + 2; + zm(i+(j-1)*nx+nx*ny*(k-1))=sum(coordinates(nodes(i + (j - 1) * nx+nx*ny*(k-1), :),3))/8; + xm(i+(j-1)*nx+nx*ny*(k-1))=sum(coordinates(nodes(i + (j - 1) * nx+nx*ny*(k-1), :),1))/8; + ym(i+(j-1)*nx+nx*ny*(k-1))=sum(coordinates(nodes(i + (j - 1) * nx+nx*ny*(k-1), :),2))/8; + end +end +end + +cell_mid_coordinates = [xm,ym,zm]; + +xrao=[0]; +for i=1:nx + xxiang=sum(dx(1,1:i)); + xrao=[xrao xxiang]; +end +yrao=[0]; +for i=1:ny + yxiang=sum(dy(1,1:i)); + yrao=[yrao yxiang]; +end +zrao=[0]; +for i=1:nz + zxiang=sum(dz(1,1:i)); + zrao=[zrao zxiang]; +end +r.dx = dx; +r.dy = dy; +r.dz = dz; +r.nx = nx; +r.ny = ny; +r.nz = nz; +r.coordinates = coordinates; +r.nodes = nodes; +r.nP = nP; +r.nmc = nE; +r.dxv = dxv; +r.dyv = dyv; +r.dzv = dzv; +r.zm = zm; +r.vm = vm; +r.xrao = xrao; +r.yrao = yrao; +r.zrao = zrao; +r.cell_mid_coords = cell_mid_coordinates; +r.NTG = NTG; +end \ No newline at end of file diff --git a/算例1-组分流-不规则非均质计算域/grid_discretization_SP_model.m b/算例1-组分流-不规则非均质计算域/grid_discretization_SP_model.m new file mode 100644 index 0000000..5333e3e --- /dev/null +++ b/算例1-组分流-不规则非均质计算域/grid_discretization_SP_model.m @@ -0,0 +1,70 @@ +function r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf) +% 数据读取 +nx = r.nx; ny = r.ny; nz = r.nz; NTG = r.NTG; cell_mid_coords = r.cell_mid_coords; +% 不规则边界设定 +boundary = [0,100; + 800,50; + 1000,150; + 1000,350; + 800,450; + 0,400; + 0,100]; +% 将不在边界内的网格的valid值赋为0 +valid_grids = ones(nx*ny*nz); +in = inpolygon(cell_mid_coords(:,1),cell_mid_coords(:,2),boundary(:,1),boundary(:,2)); +valid_grids(~in) = 0; +invalid_layer = []; % +if ~isempty(invalid_layer) + for i = 1:length(invalid_layer) + grid_numbering_range = ((invalid_layer(i)-1)*nx*ny+1:invalid_layer(i)*nx*ny)'; + valid_grids(grid_numbering_range,1) = 0; + end +end +% 举例,给出渗透率函数形式 k(x,y) = (x/500+y/250+1)*1e-3 D,或者通过已知点插值计算等,都行 +kx = (cell_mid_coords(:,1)/500+cell_mid_coords(:,2)/250+1)*1e-3; +ky = kx; +kz = kx; +% 举例,给出孔隙度函数形式 phi(x,y) = (x/20000+y/10000+0.1),或者通过已知点插值计算等,都行 +pori = (cell_mid_coords(:,1)/20000+cell_mid_coords(:,2)/10000+0.1); +% +prpor = 20; % 参考压力,MPa +cpor = 1.0e-5;% 基质压缩系数,MPa +rock_density = 2700; % 岩石密度,kg/m^3 + +% SRV区域定义 +% % % base_x=23:78; nx_SRV=length(base_x); +% % % base_y=15:36; ny_SRV=length(base_y); +% % % base_z=1:1;nz_SRV=length(base_z); +% % % SRV=[]; +% % % for k=1:nz_SRV +% % % for j=1:ny_SRV +% % % for i=1:nx_SRV +% % % SRV=[SRV;(base_z(k)-1)*nx*ny+(base_y(j)-1)*nx+base_x(i)]; +% % % end +% % % end +% % % end +% % % % SRV渗透率赋值 +% % % kx(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % ky(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % kz(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% 裂缝孔渗 +Kf = 10000*1e-3*ones(1,nf);% 裂缝渗透率 +Wf = 1e-2*ones(1,nf);% 裂缝开度 +Porf = 0.30*ones(1,nf);% 裂缝孔隙度 +prporf = 20;% 裂缝系统参考压力 +cporf = 1.0e-5;% 裂缝系统压缩系数 +% 应力敏感系数 +stress_factor_fracture = 0.000; % 1/MPa 0.001 +stress_factor_matrix = 0.000; % 1/MPa +stress_factor_ref_pressure = 20; % 一般取为原始地层压力 +% +Rpt = 2;cf = 1;ca = 1; +%% 结合基质、裂缝的几何及物性信息开展前处理 +% r = GridProp(modelflag, nx, ny, nz, dx, dy, dz, kx, ky, kz, f, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca,co, NTG); +r = GridProp_new(modelflag, r, kx, ky, kz, f, frac_information, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca,valid_grids); +r.rock_density = rock_density; +r.valid_grids = valid_grids; +r.stress_factor_fracture = stress_factor_fracture; +r.stress_factor_matrix = stress_factor_matrix; +r.stress_factor_ref_pressure = stress_factor_ref_pressure; +end \ No newline at end of file diff --git a/算例1-组分流-不规则非均质计算域/main1.m b/算例1-组分流-不规则非均质计算域/main1.m new file mode 100644 index 0000000..e6cd6e4 --- /dev/null +++ b/算例1-组分流-不规则非均质计算域/main1.m @@ -0,0 +1,222 @@ +function [ r, Times, OutputRs, Wellpara, trun ] = main1() +%% ==================================PART 1: 模型选取======================================== +% 1-- classical EDFM +modelflag = 1;% 此处固定为1即可 +%% ==================================PART 2: 基质网格定义===================================== +dx=[10*ones(1,100) ];nx=size(dx,2); +dy=[10*ones(1,50) ];ny=size(dy,2); +dz=[10*ones(1,1)];nz=size(dz,2); +NTG= 1*ones(nx*ny*nz,1); +r = GridProp_pre(dx, dy,dz,nx,ny,nz,NTG); +%% ==================================PART 3: 裂缝分布数据输入===================================== +% 四种输入方式: 1表示工程应用输入;2表示向量输入;3表示工程应用输入,包括基准点、倾角、方位角、抬升角;4表示从.fab文件读取 +input_style = 1; +%% 输入方式1:工程应用输入 +%仅能刻画具有双对称性质的矩形缝或椭圆缝 +% 基准点坐标(1),方位角(2),倾角(3),抬升角(4),缝长(椭圆长轴长)(5),缝高(椭圆短轴长)(6),类型1是矩形缝、2是椭圆缝(7) +if input_style==1 +input_content={ + [255,255,5],90,90,0,200,10,1; + [305,255,5],90,90,0,200,10,1; + [355,255,5],90,90,0,200,10,1; + [405,255,5],90,90,0,200,10,1; + [455,255,5],90,90,0,200,10,1; + [505,255,5],90,90,0,200,10,1; + [555,255,5],90,90,0,200,10,1; + [605,255,5],90,90,0,200,10,1; + [655,255,5],90,90,0,200,10,1; + [705,255,5],90,90,0,200,10,1; + [755,255,5],90,90,0,200,10,1; + }; +[f,fellip] = sort_fracture(input_content); +flowBarrierFlags = []; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5; +frac_information = fractureInformation_input_engineering_vector(f,fellip,flowBarrierFlags); +end +%% 输入方式2:向量输入 +%首先对矩形缝进行研究,裂缝参数包括三个向量和两个参数的取值范围,如果是其它类型缝,则是两个参数间的函数关系 +%因此一个5行三列的矩阵可以确定一条裂缝 +%向量分量可为非整数,以此保证参数范围的取值为整数即可, +%故可先随意确定为整数的参数范围,再根据缝长缝高去确定向量分量的取值 +% 矩形缝 +if input_style==2 + f=[ + 0,1200,0;10,-20,0;0,0,10;0,60,0;0,3,0; + 0,1200,0;10,20,0;0,0,10;0,15,0;0,3,0; + 150,1500,0;20,-10,0;0,0,10;0,20,0;0,3,0; + 550,1300,0;10,10,0;0,0,10;0,10,0;0,3,0; + 650,1400,0;10,-20,0;0,0,10;0,55,0;0,3,0; + 605,705,0;10,0,0;0,0,10;-20,20,0;0,3,0; + ]; +% 椭圆缝 +% fellip=[320,210,10;10,2,0;0,0,2;0,0,8;0,0,5; +% 280,300,10;10,2,0;0,0,2;0,0,10;0,0,4;]; +% 300,205,10;10,0,0;0,0,2;0,0,10;0,0,5]; +fellip=[]; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +frac_information = fractureInformation_input_engineering_vector(f,fellip); +end +%% 输入方式3:二维输入 +% load('fractures_generated.mat'); +% fractureLines = fractures_generated; +if input_style==3 +fractureLines = [ + 105,150;105,350; + 205,150;205,350; + 305,150;305,350; + 405,150;405,350; + 505,150;505,350; + 605,150;605,350; + 705,150;705,350; + 805,150;805,350; + 905,150;905,350; + ]; +fellip=[]; % 椭圆缝 +fractureHeights = [ + 10;10;10;10;10;10;10;10;10]; +% 椭圆缝 +fellip=[]; +flowBarrierFlags = [];% flowBarrierFlags = [1;2;3;4]; +[f,frac_information] = input_fracture_2D(fractureLines,fractureHeights,flowBarrierFlags); +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +end +%% 输入方式4:从.fab文件读取 Frac_PT +if input_style==4 + +end + +%% ==================================PART 4: 基质网格及裂缝物性参数输入===================================== +% 1-- 单重介质 +% 2-- 双重介质(双孔双渗) +grid_model = 1; +if grid_model == 1 +r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf); +end +if grid_model == 2 +r = grid_discretization_DP_model(modelflag, r, f, frac_information, fellip, nf); +end + +%% 生成向量化变成所需要的算子 +os = OperatorRS(r.N, r.nex, r.nc); + +%% ==================================PART 5: 模型类型选取及初始状态设定========================================= +% 1-- 气水两相流 +% 2-- 油水两相流 +flow_model = 3; +if flow_model == 1 +[f,state0] = gas_water_flow(r); +end +if flow_model == 2 +[f,state0] = oil_water_flow(r); +end +if flow_model == 3 +[f,state0] = multi_component_flow(r); +end + +%% ==================================PART 6: 井制度schedule设定================================================ +%将直井、水平井与多段压裂水平井分开处理 +%% 直井、常规水平井定义 +% Wellcpara: wellname(1) nperf,射孔点数量(2) index(3) rw(4) skin(5) welltype(6) +% welltype=1 直井,welltype=2 水平井沿x方向,welltype=3 水平井沿y方向 welltype=4 多段压裂水平井 +% 直井、水平井,该种井型的处理是将射孔段安排在基质网格 +% 对于直井、斜井、水平井,采取与eclipse一致的方式,给出其在基质网格中位置 +% 每个射孔点由下px,py,pz确定,分别表示该射孔点在x方向,y方向的网格编号,及层数即z反方向上的网格编号(最初是以垂直向上建立的基质网格) +well1={ + % 'w1', 2, [20 10 1;20 10 2;], 0.178/2, 0, 1; + % 'w2', 2, [80 10 1;80 10 2;], 0.178/2, 0, 1; + % 'w3', 1, [20 40 1;], 0.178/2, 0, 1; + % 'w4', 1, [80 40 1;], 0.178/2, 0, 1; +% 'w2', 3, [67 20 1;67 20 2;67 20 3], 0.178/2, 0, 1; + }; +well1 = handle_well1(well1,r); +%% 压裂水平井定义 +% 多段压裂水平井:射孔段设置在裂缝单元上,可以给出该射孔点所在的坐标,然后去寻找该点所在的裂缝单元编号 +num_fracture_wells = 1; +welloc = cell(num_fracture_wells,1); +perfnum = cell(num_fracture_wells,1); +welloc{1,1}=[ + 255,255,5; + 305,255,5; + 355,255,5; + 405,255,5; + 455,255,5; + 505,255,5; + 555,255,5; + 605,255,5; + 655,255,5; + 705,255,5; + 755,255,5; + ]; +for i = 1:num_fracture_wells +perfnum{i,1} = findWelloc(r, welloc{i,1});%在用以Wellc0之中 +end +% perfnum2 = findWelloc(r, welloc2); +well2={ + 'w1', length(perfnum{1,1}), perfnum{1,1}, 0.178/2, 0,4; + }; +Wellc = handle_well1_well2(well1,well2,welloc,r); %加井和射孔位置 +%% 井制度设置(开关井、定压/定产、便于吞吐等) +number_phases = 3; +well_schedules = cell(number_phases,1); +time = zeros(number_phases,1); +% 不同方式对应的收敛难度、需要不一样,需分阶段调控, +% 例如在注入阶段需要小一些,如果需要做早期试井,dtmax、dtmin都需要小一些 +dtmax = zeros(number_phases,1); +dtmin = zeros(number_phases,1); + +% (1)well state: 'open'表示该井是开的;'close'表明该井一直是关的,如果只是阶段性关井,就用'open'定流量0生产 +% (2)well type: 'pro'表示是生产井;'inj'表示是注入井; +% (3)protype:'const_q'是定流量;'const_pwf'则是定压 +% (4)value:定的流量值或者井底压力值 +% (5)value:此代码该值与(3)值相同 +% (8)value:注入表活剂的浓度 kg/m3 +% (10)value:注入水/压裂液的盐浓度(矿化度),一般是 1kg/m3 +time(1) = 10; dtmax(1) = 0.1; dtmin(1) = 0.001; +well_schedules{1,1} = { + % 'w1','open','inj','const_pwf',30,30; + % 'w2','open','inj','const_pwf',30,30; + % 'w3','open','inj','const_pwf',30,30; + % 'w4','open','inj','const_pwf',30,30; + 'w1','open','inj','const_pwf',40,40,'Cs_inj',0.5,'Cb_inj',1}; +time(2) = 30; dtmax(2) = 0.5; dtmin(2) = 0.001; +well_schedules{2,1} = { + 'w1','open','pro','const_q',0,0; + % 'w1','open','pro','const_pwf',10,10; + % 'w2','open','pro','const_q',0,0; + }; +time(3) = 200; dtmax(3) = 0.5; dtmin(3) = 0.001; +well_schedules{3,1} = { + 'w1','open','pro','const_pwf',10,10; + % 'w2','open','pro','const_pwf',10,10; + }; +% time(1) = 200; +% well_schedules{1,1} = { +% 'w1','open','pro','const_pwf',10,10; +% % 'w2','open','pro','const_pwf',10,10; +% }; +% time(4) = 200; +% well_schedules{4,1} = {'w1','open','inj','const_pwf',30,30; +% 'w2','open','pro','const_pwf',10,10;}; +% time(5) = 200; +% well_schedules{5,1} = {'w1','open','inj','const_pwf',30,30; +% 'w2','open','pro','const_pwf',10,10;}; +% time(6) = 200; +% well_schedules{6,1} = {'w1','open','inj','const_pwf',30,30; +% 'w2','open','pro','const_pwf',10,10;}; + +%% ======================================PART 7: Solver设置=========================================== +yitap = 5; % 50-500psi +yitas = 0.04; % 0.05-0.5 +omega = 0.5; % 0-1 +Nmax = 50; +epsave = 1e-6; +epsmax = 1e-6; +% dtmin = 0.001; +% dtmax = 10; +% dtmin = 0.000001; +% dtmax = 0.0001; +%% ======================================PART 8: 正式计算=========================================== +[Times, OutputRs, Wellpara, trun] = solver_NR(r, flow_model, f, os, state0, yitap,yitas,omega,Nmax,epsave,epsmax,dtmin,dtmax,Wellc,time,well_schedules); +run_time=toc; +trun.run_time=run_time; +end \ No newline at end of file diff --git a/算例1-组分流-不规则非均质计算域/multi_component_flow.m b/算例1-组分流-不规则非均质计算域/multi_component_flow.m new file mode 100644 index 0000000..94eb4b0 --- /dev/null +++ b/算例1-组分流-不规则非均质计算域/multi_component_flow.m @@ -0,0 +1,232 @@ +function [f,state0] = multi_component_flow(r) +%% 流体性质参数 +%% 水相中的表活剂、盐的扩散系数 +Ds = 0.76*1e-9; % m2/s +Db = 2.2*1e-9; % m2/s +%% 表活剂、盐在岩石表面的吸附浓度与水相浓度的关系表,第一列单位是kg/m3, 第二列和第三列单位是g/kg +c_ca_table = [ +0 0 0 +0.05 1 0.075 +0.1 1.75 0.125 +0.2 3 0.2 +0.5 4.35 0.325 +1 4.55 0.365 +]; +cs_data = c_ca_table(:,1); +cb_data = c_ca_table(:,1); +csa_data = c_ca_table(:,2)*1e-3; % 转换为 kg/kg +cba_data = c_ca_table(:,3)*1e-3; % 转换为 kg/kg +%% 化学势(压裂液与地层水的盐度差异给水相带来的额外压差) +R = 0.008314; % kJ/(mol*K) +Vm = 18.02*1e-6; % 水的偏摩尔体积,m^3/mol +Temperature = 293.15; % 温度,K +chemistry_cof = R*Temperature/Vm*1e-3/10; +%% 动态相渗(凸显出表活剂对相渗的影响) +% 原本应先得到表活剂浓度与表面张力的关系,再结合渗流速度计算出个表面张力对应的毛管数, +% 为了简便代码编写,此处忽略渗流速度的影响, +% 并增强代码通用性,此处改为输入表活剂浓度与毛管数的对应表格, +% 第一列为表活剂浓度,第二列为相应的毛管数,,第三列是相应的表面张力 +% dynamic_kr = 1; +cs_Nc = [ +0 1.6*1e-6 30 +0.1 9.5*1e-6 10 +0.2 2.5*1e-5 4 +0.5 5.8*1e-5 1.4 +1 8.2*1e-5 1 +2 8.8*1e-5 0.75 +]; +Nc_nosurf = min(cs_Nc(:,2)); +Nc_surf = max(cs_Nc(:,2)); + +kr_nosurf = [ +0 0 0.64 +0.25 0 0.64 +0.30 0.072 0.6 +0.40 0.14 0.56 +0.50 0.26 0.48 +0.60 0.4 0.38 +0.70 0.56 0.26 +0.85 0.88 0 +1 0.88 0 + ]; + +kr_surf = [ +0 0 0.6 +0.18 0 0.6 +0.25 0.056 0.56 +0.30 0.1 0.52 +0.40 0.19 0.42 +0.50 0.29 0.3 +0.60 0.37 0.19 +0.75 0.46 0 +1 0.46 0 + ]; + +PC = [ +0 3.8916 +0.2 3.8916 +0.316 0.5796 +0.435 0.3724 +0.562 0.2425 +0.614 0.0608 +0.702 0.0372 +0.812 0.0137 +0.875 0.0104 +0.906 0.009 +0.937 0.0075 +0.969 0.0059 +1 0 +]; +cs_Nc_fracture = cs_Nc; +kr_nosurf_fracture = kr_nosurf; +kr_surf_fracture = kr_surf; +PC_fracture = PC; +ifpcgl = 0; % 是否考虑毛管力 +%% 启动压力梯度 +p_grad_threshold = 0.00; % MPa/m +%% ================气相Langmuir等温吸附模型,当 VL=0,亦可用于油相=============== +% VE = VL*P/(PL+P) +gas_prop.VL = 0.0; % Langmuir volume, m^3/kg +gas_prop.PL = 3.5; % Langmuir pressure, MPa +% Psc = 1; +% Zsc = 1; +% density_rock = 2000; % +% ===================== Knudsen 扩散系数,当 Kn=0,亦可用于油相 ==================== +gas_prop.Kn = 0; % Knudsen数 +c1 =1; c2 =8/9; +gas_prop.Kn_modified_factor = 1+8*c1*gas_prop.Kn+16*c2*gas_prop.Kn^2; +% ===================== 高速非达西流 Forchheimer 方程 ==================== +gas_prop.beta_non_Darcy_flow = 0; % 1e-8 +% =======================气相体积系数、粘度=============================== +density_g_sc = 800; +% 第一种模式,直接输入参考压力、体积系数、压缩系数、粘度 +gas_model =1; +if gas_model == 1 +prg = 20; % reference pressure, MPa +Bgi = 1; % gas phase volume factor +cg = 5e-4 ;% gas phase compressibility, 1/MPa +vgi = 6; % gas viscosity, cp +cvg = 0; +[Ppr,BG,MUG] = cal_gas_prop(prg,Bgi,cg,vgi,cvg); +end +if gas_model == 2 +Ppr = [ 0.1013 + 2.0946 + 4.0878 + 6.0811 + 8.0743 + 10.0676 + 12.0608 + 14.0540 + 16.0473 + 18.0405 + 20.0338 + 22.0270 + 24.0203 + 26.0135 + 28.0068 + 30.0000 + ]; +% BG = 0.01*ones(size(Ppr,1),1); +BG = [ 1.18297 + 0.0557041 + 0.0278168 + 0.0182594 + 0.0134665 + 0.0106154 + 0.00874829 + 0.00744907 + 0.00650639 + 0.0058006 + 0.0052587 + 0.0048336 + 0.00449378 + 0.00421751 + 0.0039895 + 0.00379871 + ]; +% MUG = 0.01*ones(size(Ppr,1),1); +MUG = [0.0127683 + 0.0130191 + 0.0133973 + 0.013872 + 0.014437 + 0.015088 + 0.0158182 + 0.0166173 + 0.0174719 + 0.0183671 + 0.0192882 + 0.0202219 + 0.0211575 + 0.0220865 + 0.0230024 + 0.0239008 + ]; +end +% ========================水相体积系数、粘度=============================== +density_w_sc = 1000; +prw = 20; % reference pressure +Bwi = 1.000; % water phase volume factor +cw = 4.0e-4 ;% water phase compressibility +vwi = 1; % viscosity +cvw = 0; +% =============================基质相渗=============================== +% ifpcgl = 0; % 是否考虑毛管力 +% RPGW=[ +% 0.0000 0.0000 1.0000 3.8916 +% 0.2000 0.0000 1.0000 3.8916 +% 0.3160 0.0002 0.6784 0.5796 +% 0.4350 0.0004 0.6215 0.3724 +% 0.5620 0.0010 0.5456 0.2425 +% 0.6140 0.0020 0.3939 0.0608 +% 0.7020 0.0280 0.1399 0.0372 +% 0.8120 0.1721 0.0515 0.0137 +% 0.8750 0.3395 0.0297 0.0104 +% 0.9060 0.4395 0.0226 0.0090 +% 0.9370 0.5500 0.0173 0.0075 +% 0.9690 0.6702 0.0131 0.0059 +% 1.0 1.0000 0.0000 0.0000 +% ]; +% SW=RPGW(:,1);KRW=RPGW(:,2);KRG=RPGW(:,3);PCGL=RPGW(:,4); +% +% % =============================裂缝相渗=============================== +% PRF=[ +% 0.0000 0.0000 1.0000 3.8916 +% 0.2000 0.0000 1.0000 3.8916 +% 0.3160 0.0002 0.6784 0.5796 +% 0.4350 0.0004 0.6215 0.3724 +% 0.5620 0.0010 0.5456 0.2425 +% 0.6140 0.0020 0.3939 0.0608 +% 0.7020 0.0280 0.1399 0.0372 +% 0.8120 0.1721 0.0515 0.0137 +% 0.8750 0.3395 0.0297 0.0104 +% 0.9060 0.4395 0.0226 0.0090 +% 0.9370 0.5500 0.0173 0.0075 +% 1.0 1.0000 0.0000 0.0000 +% ]; +% SWF = PRF(:,1);KRWF = PRF(:,2);KRGF = PRF(:,3);PCGLF=PRF(:,4); + +%% 结合流体性质参数生成相应的数据体 +% f = fluidPVT(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, SW, KRG, KRW, PCGL, SWF, KRGF, KRWF, PCGLF, density_g_sc, ifpcgl, r.rpt, cs_data, csa_data, cb_data, cba_data, cs_Nc, kr_nosurf, kr_surf); +f = fluidPVT_new(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, ifpcgl, r.rpt, cs_data, csa_data, cb_data, cba_data, cs_Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, PC, cs_Nc_fracture, kr_nosurf_fracture, kr_surf_fracture, PC_fracture); +f.Dwsi = density_w_sc; +f.Dgsi = density_g_sc; +f.gas_prop = gas_prop; +f.Ds = Ds; +f.Db = Db; +f.chemistry_cof = chemistry_cof; +f.p_grad_threshold = p_grad_threshold; +%% 初值条件 Initial Condition Section +% =================压力、饱和度初值======================================= % +%压力初值要考虑重力,给出油藏下表面压力值 +P = [20 * ones(r.nmc, 1); 20 * ones(r.nfc, 1)]; +% plow=25; % P =plow-1e-6*800*9.8*r.z; +Sw = [0.2 * ones(r.nmc, 1); 0.2 * ones(r.nfc, 1)]; +Cs = [0.0 * ones(r.nmc, 1); 0.0 * ones(r.nfc, 1)];% kg/m3 +Cb = [50.0 * ones(r.nmc, 1); 50.0 * ones(r.nfc, 1)];% kg/m3 +% 油藏地层水矿化度一般为 50 kg/m3,注入水、压裂液的矿化度一般为 1 kg/m3 +number_state_variables = 4; +f.number_state_variables = number_state_variables; +state0 = initialRS(P, Sw, Cs, Cb); +end \ No newline at end of file diff --git a/算例1-组分流-不规则非均质计算域/perm.fig b/算例1-组分流-不规则非均质计算域/perm.fig new file mode 100644 index 0000000000000000000000000000000000000000..d87421e427f3bf81c9c4e64f9dc949cf9ceea06a GIT binary patch literal 665006 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�XFB1T_(F;@=yyL)gs*v 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%0A8;=TZnVtU@V^(J4q-bCuVuv*| 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

t+863`?}`D-yo#KgJ*JLH6ZwAAmbiw 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 WaXIOBR4}?ZU6zWfBKNM}CH#LGa2qTD literal 0 HcmV?d00001 diff --git a/算例1-组分流-不规则非均质计算域/plotWellResponse.m b/算例1-组分流-不规则非均质计算域/plotWellResponse.m new file mode 100644 index 0000000..b3bcc97 --- /dev/null +++ b/算例1-组分流-不规则非均质计算域/plotWellResponse.m @@ -0,0 +1,55 @@ +function [] = plotWellResponse(Times,Wellpara) +% +wellNumber = 1; % +dataType = 'dPWF'; % ͣٶ GPRٶ OPR, ˮٶ WPRѹ BHPѹ dPWF +% +t = Times; +n= size(Times,1); +% para = cell2mat(Wellpara); +nw = wellNumber;%ѡ +% n = length(para); +data = zeros(n,1); +if strcmp(dataType, 'GPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qg; + figureYlegend = 'Gas production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'OPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qo; + figureYlegend = 'Oil production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'WPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qw; + figureYlegend = 'Water production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'BHP') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.pwf; + figureYlegend = 'BHP, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'dPWF') % dpwf/dlnt = t*dpwf/dt + for i = 1 : n + if i == 1 + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i}{1,nw}.pwf)/(log(t(i+1))-log(t(i))); + elseif i == n + data(i) = (Wellpara{i}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i))-log(t(i-1))); + else + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i+1))-log(t(i-1))); + end + figureYlegend = 'Pressure derivative, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); + set(gca, 'XScale', 'log'); + set(gca, 'YScale', 'log'); +end +end \ No newline at end of file diff --git a/算例1-组分流-不规则非均质计算域/plot_2D_layer.m b/算例1-组分流-不规则非均质计算域/plot_2D_layer.m new file mode 100644 index 0000000..0d45394 --- /dev/null +++ b/算例1-组分流-不规则非均质计算域/plot_2D_layer.m @@ -0,0 +1,50 @@ +function plot_2D_layer(i, k, r, OutputRs, type) +coordinate=r.coordinates; +nodes=r.nodes; +nz=r.nz; +nx=r.nx; +ny=r.ny; +nmc = size(nodes,1); +% nel = size(nodes,2); +nel = 4; +if type == 1 +% v = r.kx; + v = OutputRs{i}.p; +else + v = 1-OutputRs{i}.sw;%Ͷ +end +dis = zeros(nel, nx*ny); +x = zeros(nel, nx*ny); +y = zeros(nel, nx*ny); +for i = 1 :nx*ny + for j = 1 :nel + grid_numbering = i+(nz-k)*nx*ny; + x(j, i) = coordinate(nodes(grid_numbering,j), 1); + y(j, i) = coordinate(nodes(grid_numbering,j), 2); + if j == 3 + x(j, i) = coordinate(nodes(grid_numbering,4), 1); + y(j, i) = coordinate(nodes(grid_numbering,4), 2); + end + if j == 4 + x(j, i) = coordinate(nodes(grid_numbering,3), 1); + y(j, i) = coordinate(nodes(grid_numbering,3), 2); + end + dis(j, i) = v(grid_numbering); + end +end +% fill(x,y,dis,'EdgeAlpha',1); +figure('color','w'); +fill(x,y,dis,'EdgeColor','interp'); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +axis equal; +axis tight +% xlim([0,60]); +% ylim([0,60]); +% clim([10,15]); +colorbar +colormap jet +% fill(x,y,dis); +% axis off diff --git a/算例1-组分流-不规则非均质计算域/plot_3D_dis.m b/算例1-组分流-不规则非均质计算域/plot_3D_dis.m new file mode 100644 index 0000000..6674f45 --- /dev/null +++ b/算例1-组分流-不规则非均质计算域/plot_3D_dis.m @@ -0,0 +1,144 @@ +function plot_3D_dis(i, r,OutputRs, type) +%Ϊͼǰ +figure('color','w') +[ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dis( r ); +coordinate=r.coordinates; +nodes=r.nodes; +% nmc = size(nodes,1);% +% % nel = size(nodes,2);%ÿĵ +% order=[1,2,4,3,1,5,6,8,7,3,4,8,6,2,1];%fillͼ +% nel=size(order,2); +if type == 1 + v = OutputRs{i}.p; +elseif type == 2 + v = 1-OutputRs{i}.sw;%ͱͶ +elseif type == 3 + v = OutputRs{i}.sg;%ͱͶ +else + v = OutputRs{i}.sw;%ͱͶ +end +% +order=[1,2,4,3,1]; +nel=size(order,2); +nmc=size(downgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(downgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(downgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(downgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(downgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +hold on + +% +order=[1,5,7,3,1]; +nel=size(order,2); +nmc=size(leftgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(leftgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(leftgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(leftgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(leftgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[2,4,8,6,2]; +nel=size(order,2); +nmc=size(rightgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(rightgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(rightgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(rightgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(rightgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%ǰ +order=[1,2,6,5,1]; +nel=size(order,2); +nmc=size(frontgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(frontgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(frontgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(frontgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(frontgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[3,4,8,7,3]; +nel=size(order,2); +nmc=size(backgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(backgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(backgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(backgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(backgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[5,6,8,7,5]; +nel=size(order,2); +nmc=size(upgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(upgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(upgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(upgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(upgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +xlabel('x, m'); +ylabel('y, m'); +zlabel('z, m'); +view(3); +% Ͳؿ +% plotframe( r ); +alpha(1) +% caxis([0.2,0.8]); +caxis([10,13]); +% caxis([12,22]); +colormap jet +colorbar +% zlim([-2020,-2000]); +% axis equal +axis tight + diff --git a/算例1-组分流-不规则非均质计算域/plot_perm.m b/算例1-组分流-不规则非均质计算域/plot_perm.m new file mode 100644 index 0000000..f730d14 --- /dev/null +++ b/算例1-组分流-不规则非均质计算域/plot_perm.m @@ -0,0 +1,51 @@ +function plot_perm(k, r) +coordinate=r.coordinates; +nodes=r.nodes; +nz=r.nz; +nx=r.nx; +ny=r.ny; +nmc = size(nodes,1); +% nel = size(nodes,2); +nel = 4; +v = r.kx; +% if type == 1 +% % v = r.kx; +% v = OutputRs{i}.p; +% else +% v = 1-OutputRs{i}.sw;%Ͷ +% end +dis = zeros(nel, nx*ny); +x = zeros(nel, nx*ny); +y = zeros(nel, nx*ny); +for i = 1 :nx*ny + for j = 1 :nel + grid_numbering = i+(nz-k)*nx*ny; + x(j, i) = coordinate(nodes(grid_numbering,j), 1); + y(j, i) = coordinate(nodes(grid_numbering,j), 2); + if j == 3 + x(j, i) = coordinate(nodes(grid_numbering,4), 1); + y(j, i) = coordinate(nodes(grid_numbering,4), 2); + end + if j == 4 + x(j, i) = coordinate(nodes(grid_numbering,3), 1); + y(j, i) = coordinate(nodes(grid_numbering,3), 2); + end + dis(j, i) = v(grid_numbering); + end +end +% fill(x,y,dis,'EdgeAlpha',1); +figure('color','w'); +fill(x,y,dis,'EdgeColor','interp'); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +axis equal; +axis tight +% xlim([0,60]); +% ylim([0,60]); +% clim([10,15]); +colorbar +colormap jet +% fill(x,y,dis); +% axis off diff --git a/算例1-组分流-不规则非均质计算域/preprocess_heterogeneous.m b/算例1-组分流-不规则非均质计算域/preprocess_heterogeneous.m new file mode 100644 index 0000000..01b6980 --- /dev/null +++ b/算例1-组分流-不规则非均质计算域/preprocess_heterogeneous.m @@ -0,0 +1,26 @@ +% 数据读取 +nx = r.nx; +ny = r.ny; +nz = r.nz; +% dx = r.dx; +% dy = r.dy; +% dz = r.dz; +cell_mid_coords = r.cell_mid_coords; +% 不规则边界设定 +boundary = [0,100; + 800,50; + 1000,150; + 1000,350; + 800,450; + 0,400; + 0,100]; +% 将不在边界内的网格的valid值赋为0 +valid_in = ones(nx*ny*nz); +in = inpolygon(cell_mid_coords(:,1),cell_mid_coords(:,2),boundary(:,1),boundary(:,2)); +valid_in(~in) = 0; +% 举例,给出渗透率函数形式 k(x,y) = (x/500+y/250+1)*1e-3 D,或者通过已知点插值计算等,都行 +kx = (cell_mid_coords(:,1)/500+cell_mid_coords(:,2)/250+1)*1e-3; +ky = kx; +kz = kx; +% 举例,给出孔隙度函数形式 phi(x,y) = (x/20000+y/10000+0.1),或者通过已知点插值计算等,都行 +pori = (cell_mid_coords(:,1)/20000+cell_mid_coords(:,2)/10000+0.1); \ No newline at end of file diff --git a/算例2-组分流-无效网格/grid_discretization_SP_model.m b/算例2-组分流-无效网格/grid_discretization_SP_model.m new file mode 100644 index 0000000..6141739 --- /dev/null +++ b/算例2-组分流-无效网格/grid_discretization_SP_model.m @@ -0,0 +1,55 @@ +function r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf) +% 数据读取 +nx = r.nx; ny = r.ny; nz = r.nz; NTG = r.NTG; cell_mid_coords = r.cell_mid_coords; +% 基质孔渗 +rock_density = 2700; % 岩石密度,kg/m^3 +kx = 1*1e-3 * ones(nx*ny*nz, 1); % 达西,D +ky = 1*1e-3 * ones(nx*ny*nz, 1);% +kz = 1*1e-3 * ones(nx*ny*nz, 1);% +pori = 0.08 * ones(nx*ny*nz, 1);% +prpor = 20; % 参考压力,MPa +cpor = 1.0e-5;% 基质压缩系数,,MPa +% 有效网格 +valid_grids = ones(nx*ny*nz, 1); +invalid_layer = 2; % 将第二层无效网格 +for i = 1:length(invalid_layer) + grid_numbering_range = ((invalid_layer(i)-1)*nx*ny+1:invalid_layer(i)*nx*ny)'; + valid_grids(grid_numbering_range,1) = 0; +end +% SRV区域定义 +% % % base_x=23:78; nx_SRV=length(base_x); +% % % base_y=15:36; ny_SRV=length(base_y); +% % % base_z=1:1;nz_SRV=length(base_z); +% % % SRV=[]; +% % % for k=1:nz_SRV +% % % for j=1:ny_SRV +% % % for i=1:nx_SRV +% % % SRV=[SRV;(base_z(k)-1)*nx*ny+(base_y(j)-1)*nx+base_x(i)]; +% % % end +% % % end +% % % end +% % % % SRV渗透率赋值 +% % % kx(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % ky(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % kz(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% 裂缝孔渗 +Kf = 10000*1e-3*ones(1,nf);% 裂缝渗透率 +Wf = 1e-2*ones(1,nf);% 裂缝开度 +Porf = 0.30*ones(1,nf);% 裂缝孔隙度 +prporf = 20;% 裂缝系统参考压力 +cporf = 1.0e-5;% 裂缝系统压缩系数 +% 应力敏感系数 +stress_factor_fracture = 0.000; % 1/MPa 0.001 +stress_factor_matrix = 0.000; % 1/MPa +stress_factor_ref_pressure = 20; % 一般取为原始地层压力 +% +Rpt = 2;cf = 1;ca = 1; +%% 结合基质、裂缝的几何及物性信息开展前处理 +% r = GridProp(modelflag, nx, ny, nz, dx, dy, dz, kx, ky, kz, f, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca,co, NTG); +r = GridProp_new(modelflag, r, kx, ky, kz, f, frac_information, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca, valid_grids); +r.rock_density = rock_density; +r.valid_grids = valid_grids; +r.stress_factor_fracture = stress_factor_fracture; +r.stress_factor_matrix = stress_factor_matrix; +r.stress_factor_ref_pressure = stress_factor_ref_pressure; +end \ No newline at end of file diff --git a/算例2-组分流-无效网格/main1.m b/算例2-组分流-无效网格/main1.m new file mode 100644 index 0000000..1759026 --- /dev/null +++ b/算例2-组分流-无效网格/main1.m @@ -0,0 +1,205 @@ +function [ r, Times, OutputRs, Wellpara, trun ] = main1() +%% ==================================PART 1: 模型选取======================================== +% 1-- classical EDFM +modelflag = 1;% 此处固定为1即可 +%% ==================================PART 2: 基质网格定义===================================== +dx=[10*ones(1,100) ];nx=size(dx,2); +dy=[10*ones(1,50) ];ny=size(dy,2); +dz=[10*ones(1,3)];nz=size(dz,2); +NTG= 1*ones(nx*ny*nz,1); +r = GridProp_pre(dx,dy,dz,nx,ny,nz,NTG); +%% ==================================PART 3: 裂缝分布数据输入===================================== +% 四种输入方式: 1表示工程应用输入;2表示向量输入;3表示工程应用输入,包括基准点、倾角、方位角、抬升角;4表示从.fab文件读取 +input_style = 1; +%% 输入方式1:工程应用输入 +%仅能刻画具有双对称性质的矩形缝或椭圆缝 +% 基准点坐标(1),方位角(2),倾角(3),抬升角(4),缝长(椭圆长轴长)(5),缝高(椭圆短轴长)(6),类型1是矩形缝、2是椭圆缝(7) +if input_style==1 +input_content={ + [255,255,5],90,90,0,200,10,1; + [305,255,5],90,90,0,200,10,1; + [355,255,5],90,90,0,200,10,1; + [405,255,5],90,90,0,200,10,1; + [455,255,5],90,90,0,200,10,1; + [505,255,5],90,90,0,200,10,1; + [555,255,25],90,90,0,200,10,1; + [605,255,25],90,90,0,200,10,1; + [655,255,25],90,90,0,200,10,1; + [705,255,25],90,90,0,200,10,1; + [755,255,25],90,90,0,200,10,1; + }; +[f,fellip] = sort_fracture(input_content); +flowBarrierFlags = []; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5; +frac_information = fractureInformation_input_engineering_vector(f,fellip,flowBarrierFlags); +end +%% 输入方式2:向量输入 +%首先对矩形缝进行研究,裂缝参数包括三个向量和两个参数的取值范围,如果是其它类型缝,则是两个参数间的函数关系 +%因此一个5行三列的矩阵可以确定一条裂缝 +%向量分量可为非整数,以此保证参数范围的取值为整数即可, +%故可先随意确定为整数的参数范围,再根据缝长缝高去确定向量分量的取值 +% 矩形缝 +if input_style==2 + f=[ + 0,1200,0;10,-20,0;0,0,10;0,60,0;0,3,0; + 0,1200,0;10,20,0;0,0,10;0,15,0;0,3,0; + 150,1500,0;20,-10,0;0,0,10;0,20,0;0,3,0; + 550,1300,0;10,10,0;0,0,10;0,10,0;0,3,0; + 650,1400,0;10,-20,0;0,0,10;0,55,0;0,3,0; + 605,705,0;10,0,0;0,0,10;-20,20,0;0,3,0; + ]; +% 椭圆缝 +% fellip=[320,210,10;10,2,0;0,0,2;0,0,8;0,0,5; +% 280,300,10;10,2,0;0,0,2;0,0,10;0,0,4;]; +% 300,205,10;10,0,0;0,0,2;0,0,10;0,0,5]; +fellip=[]; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +frac_information = fractureInformation_input_engineering_vector(f,fellip); +end +%% 输入方式3:二维输入 +% load('fractures_generated.mat'); +% fractureLines = fractures_generated; +if input_style==3 +fractureLines = [ + 105,150;105,350; + 205,150;205,350; + 305,150;305,350; + 405,150;405,350; + 505,150;505,350; + 605,150;605,350; + 705,150;705,350; + 805,150;805,350; + 905,150;905,350; + ]; +fellip=[]; % 椭圆缝 +fractureHeights = [ + 10;10;10;10;10;10;10;10;10]; +% 椭圆缝 +fellip=[]; +flowBarrierFlags = [];% flowBarrierFlags = [1;2;3;4]; +[f,frac_information] = input_fracture_2D(fractureLines,fractureHeights,flowBarrierFlags); +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +end +%% 输入方式4:从.fab文件读取 Frac_PT +if input_style==4 + +end + +%% ==================================PART 4: 基质网格及裂缝物性参数输入===================================== +% 1-- 单重介质 +% 2-- 双重介质(双孔双渗) +grid_model = 1; +if grid_model == 1 +r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf); +end +if grid_model == 2 +r = grid_discretization_DP_model(modelflag, r, f, frac_information, fellip, nf); +end + +%% 生成向量化变成所需要的算子 +os = OperatorRS(r.N, r.nex, r.nc); + +%% ==================================PART 5: 模型类型选取及初始状态设定========================================= +% 1-- 气水两相流 +% 2-- 油水两相流 +flow_model = 3; +if flow_model == 1 +[f,state0] = gas_water_flow(r); +end +if flow_model == 2 +[f,state0] = oil_water_flow(r); +end +if flow_model == 3 +[f,state0] = multi_component_flow(r); +end + +%% ==================================PART 6: 井制度schedule设定================================================ +%将直井、水平井与多段压裂水平井分开处理 +%% 直井、常规水平井定义 +% Wellcpara: wellname(1) nperf,射孔点数量(2) index(3) rw(4) skin(5) welltype(6) +% welltype=1 直井,welltype=2 水平井沿x方向,welltype=3 水平井沿y方向 welltype=4 多段压裂水平井 +% 直井、水平井,该种井型的处理是将射孔段安排在基质网格 +% 对于直井、斜井、水平井,采取与eclipse一致的方式,给出其在基质网格中位置 +% 每个射孔点由下px,py,pz确定,分别表示该射孔点在x方向,y方向的网格编号,及层数即z反方向上的网格编号(最初是以垂直向上建立的基质网格) +well1={ + % 'w1', 2, [20 10 1;20 10 2;], 0.178/2, 0, 1; + % 'w2', 2, [80 10 1;80 10 2;], 0.178/2, 0, 1; + % 'w3', 1, [20 40 1;], 0.178/2, 0, 1; + % 'w4', 1, [80 40 1;], 0.178/2, 0, 1; +% 'w2', 3, [67 20 1;67 20 2;67 20 3], 0.178/2, 0, 1; + }; +well1 = handle_well1(well1,r); +%% 压裂水平井定义 +% 多段压裂水平井:射孔段设置在裂缝单元上,可以给出该射孔点所在的坐标,然后去寻找该点所在的裂缝单元编号 +num_fracture_wells = 1; +welloc = cell(num_fracture_wells,1); +perfnum = cell(num_fracture_wells,1); +welloc{1,1}=[ + 255,255,5; + 305,255,5; + 355,255,5; + 405,255,5; + 455,255,5; + 505,255,5; + 555,255,25; + 605,255,25; + 655,255,25; + 705,255,25; + 755,255,25; + ]; +for i = 1:num_fracture_wells +perfnum{i,1} = findWelloc(r, welloc{i,1});%在用以Wellc0之中 +end +% perfnum2 = findWelloc(r, welloc2); +well2={ + 'w1', length(perfnum{1,1}), perfnum{1,1}, 0.178/2, 0,4; + }; +Wellc = handle_well1_well2(well1,well2,welloc,r); %加井和射孔位置 +%% 井制度设置(开关井、定压/定产、便于吞吐等) +number_phases = 3; +well_schedules = cell(number_phases,1); +time = zeros(number_phases,1); +% 不同方式对应的收敛难度、需要不一样,需分阶段调控, +% 例如在注入阶段需要小一些,如果需要做早期试井,dtmax、dtmin都需要小一些 +dtmax = zeros(number_phases,1); +dtmin = zeros(number_phases,1); + +% (1)well state: 'open'表示该井是开的;'close'表明该井一直是关的,如果只是阶段性关井,就用'open'定流量0生产 +% (2)well type: 'pro'表示是生产井;'inj'表示是注入井; +% (3)protype:'const_q'是定流量;'const_pwf'则是定压 +% (4)value:定的流量值或者井底压力值 +% (5)value:此代码该值与(3)值相同 +% (8)value:注入表活剂的浓度 kg/m3 +% (10)value:注入水/压裂液的盐浓度(矿化度),一般是 1kg/m3 +time(1) = 10; dtmax(1) = 0.1; dtmin(1) = 0.001; +well_schedules{1,1} = { + % 'w1','open','inj','const_pwf',30,30; + % 'w2','open','inj','const_pwf',30,30; + % 'w3','open','inj','const_pwf',30,30; + % 'w4','open','inj','const_pwf',30,30; + 'w1','open','inj','const_pwf',40,40,'Cs_inj',0.5,'Cb_inj',1}; +time(2) = 30; dtmax(2) = 0.5; dtmin(2) = 0.001; +well_schedules{2,1} = { + 'w1','open','pro','const_q',0,0; + % 'w1','open','pro','const_pwf',10,10; + % 'w2','open','pro','const_q',0,0; + }; +time(3) = 200; dtmax(3) = 0.5; dtmin(3) = 0.001; +well_schedules{3,1} = { + 'w1','open','pro','const_pwf',10,10; + % 'w2','open','pro','const_pwf',10,10; + }; + +%% ======================================PART 7: Solver设置=========================================== +yitap = 5; % 50-500psi +yitas = 0.04; % 0.05-0.5 +omega = 0.5; % 0-1 +Nmax = 50; +epsave = 1e-6; +epsmax = 1e-6; + +%% ======================================PART 8: 正式计算=========================================== +[Times, OutputRs, Wellpara, trun] = solver_NR(r, flow_model, f, os, state0, yitap,yitas,omega,Nmax,epsave,epsmax,dtmin,dtmax,Wellc,time,well_schedules); +run_time=toc; +trun.run_time=run_time; +end \ No newline at end of file diff --git a/算例2-组分流-无效网格/multi_component_flow.m b/算例2-组分流-无效网格/multi_component_flow.m new file mode 100644 index 0000000..94eb4b0 --- /dev/null +++ b/算例2-组分流-无效网格/multi_component_flow.m @@ -0,0 +1,232 @@ +function [f,state0] = multi_component_flow(r) +%% 流体性质参数 +%% 水相中的表活剂、盐的扩散系数 +Ds = 0.76*1e-9; % m2/s +Db = 2.2*1e-9; % m2/s +%% 表活剂、盐在岩石表面的吸附浓度与水相浓度的关系表,第一列单位是kg/m3, 第二列和第三列单位是g/kg +c_ca_table = [ +0 0 0 +0.05 1 0.075 +0.1 1.75 0.125 +0.2 3 0.2 +0.5 4.35 0.325 +1 4.55 0.365 +]; +cs_data = c_ca_table(:,1); +cb_data = c_ca_table(:,1); +csa_data = c_ca_table(:,2)*1e-3; % 转换为 kg/kg +cba_data = c_ca_table(:,3)*1e-3; % 转换为 kg/kg +%% 化学势(压裂液与地层水的盐度差异给水相带来的额外压差) +R = 0.008314; % kJ/(mol*K) +Vm = 18.02*1e-6; % 水的偏摩尔体积,m^3/mol +Temperature = 293.15; % 温度,K +chemistry_cof = R*Temperature/Vm*1e-3/10; +%% 动态相渗(凸显出表活剂对相渗的影响) +% 原本应先得到表活剂浓度与表面张力的关系,再结合渗流速度计算出个表面张力对应的毛管数, +% 为了简便代码编写,此处忽略渗流速度的影响, +% 并增强代码通用性,此处改为输入表活剂浓度与毛管数的对应表格, +% 第一列为表活剂浓度,第二列为相应的毛管数,,第三列是相应的表面张力 +% dynamic_kr = 1; +cs_Nc = [ +0 1.6*1e-6 30 +0.1 9.5*1e-6 10 +0.2 2.5*1e-5 4 +0.5 5.8*1e-5 1.4 +1 8.2*1e-5 1 +2 8.8*1e-5 0.75 +]; +Nc_nosurf = min(cs_Nc(:,2)); +Nc_surf = max(cs_Nc(:,2)); + +kr_nosurf = [ +0 0 0.64 +0.25 0 0.64 +0.30 0.072 0.6 +0.40 0.14 0.56 +0.50 0.26 0.48 +0.60 0.4 0.38 +0.70 0.56 0.26 +0.85 0.88 0 +1 0.88 0 + ]; + +kr_surf = [ +0 0 0.6 +0.18 0 0.6 +0.25 0.056 0.56 +0.30 0.1 0.52 +0.40 0.19 0.42 +0.50 0.29 0.3 +0.60 0.37 0.19 +0.75 0.46 0 +1 0.46 0 + ]; + +PC = [ +0 3.8916 +0.2 3.8916 +0.316 0.5796 +0.435 0.3724 +0.562 0.2425 +0.614 0.0608 +0.702 0.0372 +0.812 0.0137 +0.875 0.0104 +0.906 0.009 +0.937 0.0075 +0.969 0.0059 +1 0 +]; +cs_Nc_fracture = cs_Nc; +kr_nosurf_fracture = kr_nosurf; +kr_surf_fracture = kr_surf; +PC_fracture = PC; +ifpcgl = 0; % 是否考虑毛管力 +%% 启动压力梯度 +p_grad_threshold = 0.00; % MPa/m +%% ================气相Langmuir等温吸附模型,当 VL=0,亦可用于油相=============== +% VE = VL*P/(PL+P) +gas_prop.VL = 0.0; % Langmuir volume, m^3/kg +gas_prop.PL = 3.5; % Langmuir pressure, MPa +% Psc = 1; +% Zsc = 1; +% density_rock = 2000; % +% ===================== Knudsen 扩散系数,当 Kn=0,亦可用于油相 ==================== +gas_prop.Kn = 0; % Knudsen数 +c1 =1; c2 =8/9; +gas_prop.Kn_modified_factor = 1+8*c1*gas_prop.Kn+16*c2*gas_prop.Kn^2; +% ===================== 高速非达西流 Forchheimer 方程 ==================== +gas_prop.beta_non_Darcy_flow = 0; % 1e-8 +% =======================气相体积系数、粘度=============================== +density_g_sc = 800; +% 第一种模式,直接输入参考压力、体积系数、压缩系数、粘度 +gas_model =1; +if gas_model == 1 +prg = 20; % reference pressure, MPa +Bgi = 1; % gas phase volume factor +cg = 5e-4 ;% gas phase compressibility, 1/MPa +vgi = 6; % gas viscosity, cp +cvg = 0; +[Ppr,BG,MUG] = cal_gas_prop(prg,Bgi,cg,vgi,cvg); +end +if gas_model == 2 +Ppr = [ 0.1013 + 2.0946 + 4.0878 + 6.0811 + 8.0743 + 10.0676 + 12.0608 + 14.0540 + 16.0473 + 18.0405 + 20.0338 + 22.0270 + 24.0203 + 26.0135 + 28.0068 + 30.0000 + ]; +% BG = 0.01*ones(size(Ppr,1),1); +BG = [ 1.18297 + 0.0557041 + 0.0278168 + 0.0182594 + 0.0134665 + 0.0106154 + 0.00874829 + 0.00744907 + 0.00650639 + 0.0058006 + 0.0052587 + 0.0048336 + 0.00449378 + 0.00421751 + 0.0039895 + 0.00379871 + ]; +% MUG = 0.01*ones(size(Ppr,1),1); +MUG = [0.0127683 + 0.0130191 + 0.0133973 + 0.013872 + 0.014437 + 0.015088 + 0.0158182 + 0.0166173 + 0.0174719 + 0.0183671 + 0.0192882 + 0.0202219 + 0.0211575 + 0.0220865 + 0.0230024 + 0.0239008 + ]; +end +% ========================水相体积系数、粘度=============================== +density_w_sc = 1000; +prw = 20; % reference pressure +Bwi = 1.000; % water phase volume factor +cw = 4.0e-4 ;% water phase compressibility +vwi = 1; % viscosity +cvw = 0; +% =============================基质相渗=============================== +% ifpcgl = 0; % 是否考虑毛管力 +% RPGW=[ +% 0.0000 0.0000 1.0000 3.8916 +% 0.2000 0.0000 1.0000 3.8916 +% 0.3160 0.0002 0.6784 0.5796 +% 0.4350 0.0004 0.6215 0.3724 +% 0.5620 0.0010 0.5456 0.2425 +% 0.6140 0.0020 0.3939 0.0608 +% 0.7020 0.0280 0.1399 0.0372 +% 0.8120 0.1721 0.0515 0.0137 +% 0.8750 0.3395 0.0297 0.0104 +% 0.9060 0.4395 0.0226 0.0090 +% 0.9370 0.5500 0.0173 0.0075 +% 0.9690 0.6702 0.0131 0.0059 +% 1.0 1.0000 0.0000 0.0000 +% ]; +% SW=RPGW(:,1);KRW=RPGW(:,2);KRG=RPGW(:,3);PCGL=RPGW(:,4); +% +% % =============================裂缝相渗=============================== +% PRF=[ +% 0.0000 0.0000 1.0000 3.8916 +% 0.2000 0.0000 1.0000 3.8916 +% 0.3160 0.0002 0.6784 0.5796 +% 0.4350 0.0004 0.6215 0.3724 +% 0.5620 0.0010 0.5456 0.2425 +% 0.6140 0.0020 0.3939 0.0608 +% 0.7020 0.0280 0.1399 0.0372 +% 0.8120 0.1721 0.0515 0.0137 +% 0.8750 0.3395 0.0297 0.0104 +% 0.9060 0.4395 0.0226 0.0090 +% 0.9370 0.5500 0.0173 0.0075 +% 1.0 1.0000 0.0000 0.0000 +% ]; +% SWF = PRF(:,1);KRWF = PRF(:,2);KRGF = PRF(:,3);PCGLF=PRF(:,4); + +%% 结合流体性质参数生成相应的数据体 +% f = fluidPVT(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, SW, KRG, KRW, PCGL, SWF, KRGF, KRWF, PCGLF, density_g_sc, ifpcgl, r.rpt, cs_data, csa_data, cb_data, cba_data, cs_Nc, kr_nosurf, kr_surf); +f = fluidPVT_new(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, ifpcgl, r.rpt, cs_data, csa_data, cb_data, cba_data, cs_Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, PC, cs_Nc_fracture, kr_nosurf_fracture, kr_surf_fracture, PC_fracture); +f.Dwsi = density_w_sc; +f.Dgsi = density_g_sc; +f.gas_prop = gas_prop; +f.Ds = Ds; +f.Db = Db; +f.chemistry_cof = chemistry_cof; +f.p_grad_threshold = p_grad_threshold; +%% 初值条件 Initial Condition Section +% =================压力、饱和度初值======================================= % +%压力初值要考虑重力,给出油藏下表面压力值 +P = [20 * ones(r.nmc, 1); 20 * ones(r.nfc, 1)]; +% plow=25; % P =plow-1e-6*800*9.8*r.z; +Sw = [0.2 * ones(r.nmc, 1); 0.2 * ones(r.nfc, 1)]; +Cs = [0.0 * ones(r.nmc, 1); 0.0 * ones(r.nfc, 1)];% kg/m3 +Cb = [50.0 * ones(r.nmc, 1); 50.0 * ones(r.nfc, 1)];% kg/m3 +% 油藏地层水矿化度一般为 50 kg/m3,注入水、压裂液的矿化度一般为 1 kg/m3 +number_state_variables = 4; +f.number_state_variables = number_state_variables; +state0 = initialRS(P, Sw, Cs, Cb); +end \ No newline at end of file diff --git a/算例2-组分流-无效网格/plotWellResponse.m b/算例2-组分流-无效网格/plotWellResponse.m new file mode 100644 index 0000000..b3bcc97 --- /dev/null +++ b/算例2-组分流-无效网格/plotWellResponse.m @@ -0,0 +1,55 @@ +function [] = plotWellResponse(Times,Wellpara) +% +wellNumber = 1; % +dataType = 'dPWF'; % ͣٶ GPRٶ OPR, ˮٶ WPRѹ BHPѹ dPWF +% +t = Times; +n= size(Times,1); +% para = cell2mat(Wellpara); +nw = wellNumber;%ѡ +% n = length(para); +data = zeros(n,1); +if strcmp(dataType, 'GPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qg; + figureYlegend = 'Gas production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'OPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qo; + figureYlegend = 'Oil production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'WPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qw; + figureYlegend = 'Water production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'BHP') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.pwf; + figureYlegend = 'BHP, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'dPWF') % dpwf/dlnt = t*dpwf/dt + for i = 1 : n + if i == 1 + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i}{1,nw}.pwf)/(log(t(i+1))-log(t(i))); + elseif i == n + data(i) = (Wellpara{i}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i))-log(t(i-1))); + else + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i+1))-log(t(i-1))); + end + figureYlegend = 'Pressure derivative, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); + set(gca, 'XScale', 'log'); + set(gca, 'YScale', 'log'); +end +end \ No newline at end of file diff --git a/算例2-组分流-无效网格/plot_2D_layer.m b/算例2-组分流-无效网格/plot_2D_layer.m new file mode 100644 index 0000000..5eb8afc --- /dev/null +++ b/算例2-组分流-无效网格/plot_2D_layer.m @@ -0,0 +1,51 @@ +function plot_2D_layer(i, k, r, OutputRs, type) +coordinate=r.coordinates; +nodes=r.nodes; +nz=r.nz; +nx=r.nx; +ny=r.ny; +nmc = size(nodes,1); +% nel = size(nodes,2); +nel = 4; +if type == 1 +% v = r.kx; + v = OutputRs{i}.p; +else + v = 1-OutputRs{i}.sw;%Ͷ +end +dis = zeros(nel, nx*ny); +x = zeros(nel, nx*ny); +y = zeros(nel, nx*ny); +for i = 1 :nx*ny + for j = 1 :nel + grid_numbering = i+(nz-k)*nx*ny; + x(j, i) = coordinate(nodes(grid_numbering,j), 1); + y(j, i) = coordinate(nodes(grid_numbering,j), 2); + if j == 3 + x(j, i) = coordinate(nodes(grid_numbering,4), 1); + y(j, i) = coordinate(nodes(grid_numbering,4), 2); + end + if j == 4 + x(j, i) = coordinate(nodes(grid_numbering,3), 1); + y(j, i) = coordinate(nodes(grid_numbering,3), 2); + end + dis(j, i) = v(grid_numbering); + end +end +% fill(x,y,dis,'EdgeAlpha',1); +figure('color','w'); +fill(x,y,dis,'EdgeColor','interp'); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +axis equal; +axis tight +% xlim([0,60]); +% ylim([0,60]); +clim([10,20]); +colorbar +colormap jet +saveas(gcf, sprintf('%dѹֲ.fig', k)); +% fill(x,y,dis); +% axis off diff --git a/算例2-组分流-无效网格/plot_3D_dis.m b/算例2-组分流-无效网格/plot_3D_dis.m new file mode 100644 index 0000000..6674f45 --- /dev/null +++ b/算例2-组分流-无效网格/plot_3D_dis.m @@ -0,0 +1,144 @@ +function plot_3D_dis(i, r,OutputRs, type) +%Ϊͼǰ +figure('color','w') +[ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dis( r ); +coordinate=r.coordinates; +nodes=r.nodes; +% nmc = size(nodes,1);% +% % nel = size(nodes,2);%ÿĵ +% order=[1,2,4,3,1,5,6,8,7,3,4,8,6,2,1];%fillͼ +% nel=size(order,2); +if type == 1 + v = OutputRs{i}.p; +elseif type == 2 + v = 1-OutputRs{i}.sw;%ͱͶ +elseif type == 3 + v = OutputRs{i}.sg;%ͱͶ +else + v = OutputRs{i}.sw;%ͱͶ +end +% +order=[1,2,4,3,1]; +nel=size(order,2); +nmc=size(downgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(downgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(downgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(downgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(downgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +hold on + +% +order=[1,5,7,3,1]; +nel=size(order,2); +nmc=size(leftgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(leftgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(leftgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(leftgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(leftgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[2,4,8,6,2]; +nel=size(order,2); +nmc=size(rightgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(rightgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(rightgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(rightgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(rightgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%ǰ +order=[1,2,6,5,1]; +nel=size(order,2); +nmc=size(frontgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(frontgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(frontgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(frontgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(frontgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[3,4,8,7,3]; +nel=size(order,2); +nmc=size(backgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(backgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(backgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(backgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(backgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[5,6,8,7,5]; +nel=size(order,2); +nmc=size(upgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(upgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(upgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(upgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(upgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +xlabel('x, m'); +ylabel('y, m'); +zlabel('z, m'); +view(3); +% Ͳؿ +% plotframe( r ); +alpha(1) +% caxis([0.2,0.8]); +caxis([10,13]); +% caxis([12,22]); +colormap jet +colorbar +% zlim([-2020,-2000]); +% axis equal +axis tight + diff --git a/算例2-组分流-无效网格/第1层压力分布.fig b/算例2-组分流-无效网格/第1层压力分布.fig new file mode 100644 index 0000000000000000000000000000000000000000..59e9d4385006e54cdedc9c6750c600223bb2be52 GIT binary patch literal 679326 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

kxXA& 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

y@EQ{-hG|LR^4%a>#6#0p19WA@q+Db6aRn{!M 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 z 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⪼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

8Z_VZU2@?p> zT-OBQJpc*|WR=%&l7ZswkfJV@>bCvQ^pwRwuqv;NOH@TNgE)uPKp5_s+lt(7|MQ7( zfmKKx-CG&PadfAQ!7%eeR#AwDHAshkg;)WR9ybSfmhQJe&0Fv@-~DA!SF`mBSiNFV zm@EKA3Q)zU6RrmJz9HMEo=Ev?XGlSU?8^uoIQqW=M}#uCY}qZ7y}OwKnUfjN5duo{ z2LC@&6~kg)+UKtZHEp5zLF{RjOh+ib=4f^H;d6&DWp(YV&%O=+eZ+W7(cumsADow# z`D*E3qxgdEs#Lhj)3BDEDu?sMl9C&=lau-rztwE&wOR(EF`6+0e*jmQ0GctBYqF6N z?i+Vs78c;In$ly)o0o|~tQEXL5Bc-LkoZw78PenUB3+7%h~}F-;8%G&TEtL!Ru_xW z*XC8wzNKZw-tg6hYVm|_0L9F0iLA@N)8Jg4e|yTD!GGmh zrb&a7DsC=TbG0)pbRc$AA|3A|J|TC^{9V_(#Tsu)eEoRK z414teo@zOa8)+OTJW0Bq%z)qqXxE+-d$n-eYX~vmSbK0ABW)|^Q!Z}C0+5yOLAWQf z>D9MJ{))F?A?}hziXXtOt%k#0D_sq|93OqSfK~>z{nN!M83ABKFb`U&850v21mkF) zinVP>)j?tCK;@ndM2J#D*r^!I7l>cN1J8XTBqAg&91O5!z-852Y;i+%h#?31u&``P zuZOn(%8rf#u|pL`+21<%uhPu|63tqB@Z*PIy1j#3dx%U=mGQhEQ!4VKhaU_jENpp` z_wPjkiVKDlx*D`Fw(aYVcT5G7l70MQiz%r~DYlO?loq4h;R8HrZ`aKiW!FE}(N@nS-&rwvvvPiHt}tybBn^MEaw% zYPTOQX6G%Q9w%En3i_iissoPNdQp{Tq`b$;pEkGas+(6b;wWB6`mIn`jgQIkAr{MN z&}YEeN1bbzJHu|1+g12iXbmj)UtkL+v;0abSnsf{c_r{y_KW8pVyZJOJ=m&l{Ur`pB^TOFcFKY@$cudsTxk?+{|NG-zQhW;Ciq4I+t0 zH*t!KY%CwJXLnaR@I1QRIX(H2TGvs^qywDTd@i5&J+H*8lYYU?F*6|WW0R2M7ky!U1cb1|zY0o5Wzy+y-<|7fG)xYi zDRuj569fE@d{g;aYZ@=HGDfGJT#aq)Zw8K-FnO7!v@#E|&r3}`>$eCeC3ONwZ21WY z5_@C7y|@AN*?3rUi~jaLY%j`Oh*MJPZ&zZ^0Wg9eZji3R1ZQ1LCr3ZumW0>RlrgM>Q= zBMw`3ml0yA(XcQeu3jpw+IpmQ^5Clu0zrBubYHq z--SSGZ=DaQVO3sN2ASdxU1>?TJ7t}fijLD`vlHF5IuoNpmXSSGGGSe>A6caypM51k zlOXX|PFr3b$zNyEGk3R=cPoLG<(kPGY*w&(d0lso`P}Q0oIAM0&@HJ-<}=^AlK7r$ z7-pPOd@>W+cfMU06ep=J!8;jhHv+;E8?`FMjJm=)o9`x%tEo>Jn{y#gb2msNPfJ{q zouI0S9U*+J{qd^eJX#Q_>x)1@ccv)5X{s0LDw#U>P#vFN<*BYd4v$!zXYH47+tDKA zQ<5CU8$P!#{n7w=G2g9)94@0L7Cnhgq>Gi>y&MME>~OU?7P-l?CxifpYF1_-t6wYL zzCGORvz3O58rN;8Hb40PNg)n|7Lr{*apjQdgG?!k_)u=fDPF^#E%ls1c95 zT@S&?fJVFf+n}y?>%Iwd1~3nwC}UVo&M}d%QSaY}?+;%6^WcQI&qa86NR>V;%`xd{ zKmFaTSgbXCQ98O+4aL{FshFKR*v91KM5COYCp_y*@x;xQmi8Dq8H{}UXq>ckP|4T; zT-ZJfz{J1@U9C-4dvUB$r0)Lf*9kP`s>@O7PrlaX=nFFvYb7t05@x<$gD3EQhXcSsp!X~#QhpiXu4wK^;HF^xh35cm;5c67f$qVW z*iL{Ah0LtGH1X`8m_|SsDcgwkTKTyb;)sdPUZDJ69E3QS1f0h6(&V)(9oT@{COi>v z)ZL~}iD^|yADqb8qhX+3C)Vmo`Z7Q22<&ZJ;FKs80?M(6NA}d`zp``Rc@%CN4=8v& zg^=S&;Q%9(k^O@|X_>TNlv4mjxifWWpGV}}zfWkjKdK8ZO_6e8d zr^|)>M`i0|OR0tqO@CI{c`}6;(r)bJ|L~KF$BWxlWY zAkP=r7CQ=1cuOULO}lXIxLuA3dt1?!6bFML&l8kHCag%`Na0%~<}404$xKiPgZUsB z+8vho=WP5lAXI2hrLi-{Hso+cT?Q?m$L^oR7BB@;B!9q z#oD{z>A^(JL%KKGSfGm~V6s33I6)g@jJ;heTyb!z98M4=u%Bo^jzSd90eX2jk$1{I zV*i$j@R3|jrxRoEVWhglo%_C6S{$(CnV!-(O&D!*f}DuAC<*}veVP=ob7$h0&d3Fy z`N9dGJF3jgV7)@1m6OV{ ztxgxx`}PFaPyEyf_UM-U`HeSgARXpUeNGb=_p^xtu}(eKFhy}WmjL&#)KgH5MZWS! z&i`?HldtHHFcEdZzrhr|OaHT+F1iqR&Cp12^c4QhAeA}AAa_Wh*RRPgg;h5KiP`k3p56>IiRfiZv7=>VG5T(6oTTbr|?3S1k&v)@!dbXdtJ9+)Lq{i{#}b3!=}MJ z;g0BTE;nwxsl8s8E)FEV5O&M^H*}$|GD!Zm0`bkx0FTnzI^Az~Frc&P0Wh`inqYS` zp0h0B@ufA{4YV25kJG+`^=&A8%>@eXhKx{+v6w9WFe5#`?ZmgfVeGV$Fa5=nwr7NkdJ&QmWHHt zmQY?AK^abw^T%@;d0XJ_R~l|o9%Y>uJ~=)+9ar6VcGc>Q95H&S=JCw<$or7X9JKOY z04e|M^sS}fm9zr+?g!=C#vJ1~%gBmUVeckD8iusdw-&@YPocj2jr&&@KcdT?=hUkj zIH!*UvF#n&#hMB?bQRWTB&)ig*I|-hNt>qK!}8r%K^F_q^V;5x!q;!rbgsLb`)pCO^!h-&cvHJEgFjqwLe5ZtW#a+Z!ZwWe>zr3lYi?G_gz65 zhezqYN^gP#FI=eMlb7M}j|YKZ*2#P*>^fg9$N7j06dRP^nCNV-diFd0%6Lg-=S0o} zg*;vj;ZEdwnGq%@?0I{Y<&&|J8%=kFL5Uq-3qBZWAiA1)YEj}+8EZ~hU?#8D<<+ii zTxW2&s?vG|doxU=Vl(c$pFFAjfk8!$a`*4?aXDMyX_~3-bI1H3Zf>gGwa!{TW$?F& zZa^>BZB`gGZSrTT-^<|Y8Fms|MhqpjU%Rn;eZvbY(_0L{%Su7%HNE(ErJm_%n#)K9 zT6?MF)oHm+k_b0(yR*Z1?gq zx9ba@rtwCSv$-KWScojOia+i^`T{v&6qPZ?0c-caeK;PwYlZ7BQvnhhc`3$U2jZ!7 z^Z+gg7*tvXEkf=dkg*EnipDAlpN+8u*$LRgfst2@b{49o|pL1rSFE%7ageTxa7D`&Xhm5{Y`X zA3^D=@hdwPP%|nwr%%cw?zQ7Rmj18XS(|P?UztjV+1@w&NpiQO=EZwfnMvoX7{t}y zuRY=A#gg@C^?Rj`zPXD-Fd6@Vs)g@aua)=!^a(wbVV$Z26|PpSMQ& z>wTZ1I}MQ5Mn%)O^*8rPt{^MOv+qyU&RK{0$!k^wF^r!j0pX zmso*5T9x~>SDN<(adw#2ULc)c{5*$h7m*@=F*sT7H)p}VxZwmm= zeTpMT%4l2_e+A4pOlzG@p1PIVO*4!r|1ER8n8)&5X_U$BT(5(G7?heY?i!@DfZ~__ zjfRZ_*r$BBS)P_u-(FPq^lF6=*o#T-@5P!x_{$_<#@bFTx$=!1?8R2T@V(I1)M{`7 z-{KQcH6Db!n2`ge#qE)aOLGUK#2wZ2V)yE7V!%GZN`p>H<}kl%5C9N|gmLFUxjy>T zT&ELtkj?_~Sj>XJ8fF?a4=Zo1cKyKylc-C_Jx|GSIEa076n7xCD1!h8brL~Rbcz5k z{rUG5qri(4Zdw+f%+w1{qLc}AH7!acvZ_vn?~UZ&)TLRg2B~g%ty}ZQ|N;}6 zXq&i1(d<8larL;-mV(hRMd-dIOQ28EoqUk|SM!^o=$`26 zma^ocu*|%WRHdwY@i=YH%jda9-NzV!cyfWV4HYbZohBJHV3j$(Yr2g;af!Ujc~|l^ zLz` z=3LcAx>f^6u^J5+HExj(YadQ-kt$f~jBXymMBj@x0P3tSu#Agcb=r)Ai&bgFkN3|Y zFWfHY$QSZ*u?I46~31&^=a(zi`22i~ToALEcyz3|c>CTYg;!pG@f zG&SO}5)X>k==JmL3Si~NHR8m0xjs5^u)pnj1>uOd zAPbg1W7^YbV2d0s2RtPpj3eff8BZ6A#{(SjfVD7pRK;#VElUjRCIFSwUjmj807y-O zlnJxZk;e}BVq3XeFm=s_U96WEs}!{z6~06- z!93NxaO)>;{5I%85DAF=`?t<*=uZ8iI7_4%V+$Y#$zLZYx=SblMH;eA3bH1-Iycxs zGOtrZz>~w#jM-cbf`t>O{OiIG23eRDKtC7s=*_Xi{8w==6S)BQ1-&q9VskK}HCfA;Fb%J;8bLRLou5h8c<9ekwHkLh9g zt88NnQ8TeHuUA-5t4+-jwe=Bk@pN;3vUq1@#{IX~$+Q;LK8KEPf+j1o;DM0ZOSgze zrs%qs-Ut=HOX*l%E1j&IW{v}0cHSZ(^@?GG3GM@`(u6;UhTLW#Y#s9qlt@jKfx4z;dKw-r3v9`7Sy@rCoyc~Oot-UvDU&A%;EfTEYr+Tb8$NCq6tNa5i3y{mY zU)v+&IW^^oX3Uz&Ug7^)u$bu|r*eymI^MB!#PNb0fy8Mtb^>m32?B|^PjkZ!{pS3?n5)0jHI~gaTC7A( zO<4!job~H&1_H=;Y^?5S|3}?#pS5_MUVJrIIi2U}tW;xkckydhe^<=g73uD&(A|=O zMs=qRSuy97LG3^%msu9}Wl^T~Gmf@n*QSDMAtf}yrJjGAA>O6JQq&l6M%pESGqOQg z3Y?K->c5iTUnn-*cSeTMs63BE^%+elQgwne5-4?uGt%i>rf#~L_CQ@giHhEYvv+ai zya?$Ddj_KJ-9C+FuT6-9oUqQdIMl)@^=R9vNb}dLl!?tM$+Ybsk;hA+hfhO})N31o zXi8FV4S~?s)J2*A^%cuq&T9NaXREP*8rLM0)^RA6=+24i^dAP=vLooKws$L!7NQe7GBec*? zCGZKQCjw5wR}kEfQU1p&Qldus$}36tzs)@wH|-=`45)PR^}$u>++Tvuz3lSvWA1Xh zjZXA3!5+@6LG}pu>1u;Q4)yy~6!Y||TXFiPiPZ6gUU9?JU7ubgd%B@a$Or=ZrJVoa zs$}|8`AtkxLWH#+OXYk>pzof5e;+;LSI4lM8;ULUu2)ZN8l<*=50*&ce|@7wEup$H zS+!Z;+CortcnLJsbN9}g_UGTqn^n~*5u0fXRo0e5rT><{Ewt$Cq{L|Xna|)}g*l5= zxmFSPId?1lfiPjGfNPjXk#nZZE@#IyyimFAh9w^cp5GyKuA*5vXa9IEI<7WfgF?J_ zL_@khNi{0Md)6-6A$0K`^H}Nb7vAHp%=p zV^ncbe$&8n!L=lpfxZbJp6pBZE?W7_F&ewY8shUsjqwA7(RJnxe1iXIoSaX-n%~xz zbq5}EPn-4%w|D03vd$Vrn}K?*d8%R0E7gb#7wM59FIf{=TsW z*LBe|2UEqQy8r(teuWMOc0DcWlpR-jDa>@Dxjve2tCR343?bLu@LK;-y_Q$#Y+%ku zi}9?-$dEva?1IxFb4ZD@llOy{iP{Zx<*7vz7MS`p;W*`PUEG3u5MXNE;Eghe`+_wR zkHay$iOr;K{k4o?yt%!9y$`%nD%}#N{tTY2rZ;!{n8mvCp0%<@>OK=CYhK0WINQmo zYVo1r#KGSk;<0`~-Xw0H+*GK!jc52eO);{9cVB`1eFk9Dn|Ei7bjFNWXQ}wY-jGZB zqU0UGn(r)S4m(2cXvUEsGqjT=Lweg%HTIF4j!0v9DaHid#e%bY6qTP?% zpJirUuI6ul|CWD|ZiHy@iA^a$$c5)uTjyRhzE#yl@ise&%n!;Gf!R;&HE9;ebllgFvOFbX2YS5>j!{Vpge)e~0o#vHEJN0jx z#LuFB(c;b;_S)uZ zC6-+iy#abJFzx5(ZT>uOI{bMtn$e->tM}$hz>fzmd{5A>ww%Go$aHKhQNsUDMF;71 z=Q_C#i5J)%?UIF&PRWVldhX(iQ@BwG`^%Tjts@kp!Dv%7-3kXxY()cfNb|9t! zF-5jnn1&okJFY~eFxs~w-~#CXrltY3_zvuGEJz~-e(u9$nCP4L5=w_7LaB3|!$AyJY@{iE@p{twdv?n$a~)yrM4o zDpouD___OGxn&E=sD6(?YV(ZZ#6Y93(M6`zCdKGd>QJY_LotmXYP$QfBb?i+p9a=$ z_L+!T(KmXn`mMM;YBCnXC~TFa$@P;ypmr5|f_1Z&aWHA?9L@U0bpuJ|jSwCi4f=d- zCSAZpaQD-~`h?cv3;Htq>=&4AQNOo1$BvS? za~;h_CebPjed?z89BTs5roekR{Cn-s$M;|My@%()dw2@26-0n$$A)RFgYQ{*$GScA zZtK3uvCas~%K(RaxE%36q46I9jeoF8dJ(s}mxofF0=+~G#JmBhI;2ekE@?rKh7@SE ziF`Cj{jN0W+5BDc9stsNA)zTWuzBkCzn&}#ou1G)+W z%J7N!@@l8jzL_$0(h4#_{r+Y;@1bol;>LtPv-ou5sVp(o(P^B`B)x5$khi{sgb4=+ zuuQaQ;%^8E-tZaxJu^r<$SJ82d&`RLMwr9uhsADH4#M%d!vV9S?`8#7XMR+duTeg_ zlw&sWRrAC*w*HGLYSr3YL)}yzQ(LW^EPCxt ztI%Pb?5HEn4r=>o;Svw$vU?MeQq>(k+_cns@%Cus);%#M@w#bTW(XI@x*GziBaYyE z)M1`N;aI}^U8a3|CMWuGP-ppUu1%#G-2fW3z2>+aKSQ`uiNU#@{U4(Z(T;6BEdjx ztD3EkM#i1>PZ^Jq7X1{=L^lL!uTm%sAxa5+hVmvXdJYan({H50e#dU?pY~30wo|4d zgbDYWlv~i#edeQ4Gj>me&vJj82lw|n{YY!*0T1Sl&TxDCZ<8&TTBOteEC1)4v<15V zwtN+UZaWOtJH1)l^(zOTQbeX>!s`3CS&JkR)-$4Xo6KA+vcHr^{p0iQ<86B1^QBB*kF%sQ23%e# zcF(52QTUBX_#BUq#}QMjV9Oi@VxB>-f`U_+DSYRzDkU=o?l@`n$OM)nSK0;A{ zaEj7Fa#^6z_U0pFh7}076b3hyJ?=~}g4ZZ6@DgNt52OpKDYS`2MzcrWOqo6{ROHv<- zFwB?Pz3^9Vv2TUUF3NFNzW>?%mOws{b%X_!p%!l@zI2tAYE{ra6B@s4oBIHeHIsw1 ziQ=&z{oLmPHxh}eTCSD9IqIqtopP!(gfS5B2t+7`XbEW!^ZpFla@a<~?m33(Xbg*r!(~ z7||fSo9T&+aGiiK43z-!h4_xucK?#reEK0Z1G$sHk^7$kvHco`1j?qnqXxrvP5Wwy z2V8^7x0C{)$qI~d8c;(#0yTv5y>zu%8hlCw!D~BcGU7=VFvvMmjunE+?AfZ5wq6Ya z7et!xt!Hj&3{j*b_t3HJt83Oz!ZZ><4Ev3LX<;dva9?y`{T<2xL#W9iaM12in8p~{ zJgcxy$-S93`$-b)%ubR7`~PkjrjhMBd;m6hzt^Sh^gH46kzwt78N@`CGWZ5R9C{z( z=HI>c4{^j&;rKAm(TKjD z_2*!CA2WJQfS&zbbjvoy(;;AC=Y`S^Gf9O+yr@$H@9d$PY7-aknbS=_1=y=1lBWId zec+~9UsQJaDB;4Cf~m8Z{YL+fwwq+RxLth2npX6yI)F20T6zVhsYN!WwKk#{vgFnre*;hCtjvyh zxzqb@S@W$Gy%Yz^ajqDb(GkR7I70lC7@(k`$Wg348e7m(pCT6kD2vk{&==%hf@ks# zoV8q3u|snU6+>Q}Gw6D!ozSjkSz zN_-4Z>asfNG+zcjNt&N^Zs@$hwS{!-BlM^Ztv@MSiHWNvNw*e*7m_NeUr}}4;R-QEB7Lx~V?PRcxT;Rj!fz z#(d3uZnXY7MgiL9(`H7=<@4ZTOt}nZx2&tOF^bA~143=|z%e~ec6j^)_M-9iW2$2S z1D|L8LGYTOCjQ-*n{b?OXTqez0!Z!Q;G^pArxw{?(5Fqw_;hbbTN?+vSim9xAjA`r z@RP3Y?;@^YZLFw*9O_}08DOG-&t-aL`D)IkgO7>Qc^hA~ccZayn1kUOu0GVBBZ8Y5 zeQgLU8!=o<*Tvn&TPl++{BSbrgs0Au_j#4YVzblo|CR0lLaH6jh!eX>*C1mrz&%4;yY+fB;M3;F4 z{&Qiv+_s9BWBT%tw6}5ZIk~9e^85qz=Zs-})ja&Lb)AFvBhX z<9!*{i?=WLc|SJLC~wK=IQoQ!7_*vjjH0z?{a(?2k`G+@B`K-+6UXH$1;Mm(hiTGhHBjy`T$-azDXJ#sV+U~kc6Xb@>Jj)QI^L$D?w(x zp<163qKK_!Wa89NIX4IX%xL1Xh1pHAJ}P-)cd#4#U7Ef05JY+fSAT?qgdleG=Cj49 z3Z=+48BaIPPAwWrRstGZGU;Zi+tT9ywvk@WqmKPE822C>@Rc@K^W|E<$ez&g1X<;3 zi(@oSK2Pua$4{a4yx~gM4IaPx^}<7x&}01d(WEazOY-)AA|4f6m3CfPr+?Rk#>9kZ zNR(foi=8E-3n=;2E$uO->eMl0*{PT%C4NLwd@FbJ^P?r>`a-!Do6R~=&r|c!Wv`;L zdEQt`LI^nR>NCB_dqMRZ(-Tt9dk+WKj`f*{E8XfPbw*`rTwm9LDDPo>lsA@3DEU+B zKdjted}4~NfjV768%->d^FCp8%KFp7a+%Jj5S(uCtiUBRkZ5gL209BC6yKV$S>W^( znT608(%8)W5Ps335`gqz9`fQL{KFn z8r#DG9PG_4?*%J6kP{Z-QAa~i1a*uww_pv~fJ5*wdG0c3 za4%~`%&6cwiDVSHGG!lGAEju-jPoNfdf#qhKBZM4pwB*+_O$roA{l!+<5=@3G>nVw(>u6U!6XT~dSRyIrA^AeMYP#tl;(-~ zTD{^l&R|i5JoX;OC(i70gDO8*_zngr!}Ji{Ob1Pq_TFFU03;m{gaxD0nZTIk#lMje zCuI0dT)TrLcEjm~_+&a7M)@hspaU47Zbu5a~V>C!-xC5=Ob%>(@gC4fl*DQ|xD@r|E#%2SfXu+Y zkb3_l7eVavk=?=n_DNsz*0a4;oP=z0b&03B&Ng4I8a&eVp!>nbVX6@Rq}yM=Ql>7F zgv9w5Hbzc84w8|ye#p`IeIZ8h*KUkl7Z<(9-8{wHKOUv5qnE+)c7l7TLpV89b;3XI zgJW?RPBC9meQ=FE`S53k;O@cEju*dQgsa2blZrJHD`wuQzMH74_eOgnP5Wnuyk^vx zkIAH#D-W8q=Yyrl*MYo+k4=u2vLW(vYe$?>{e>aGE)a9ud}D{!(;Il6(h^wQN9XM5 zu}ab2Sd=t6B>cs>qAzN~hR7AO$Z&fMjmugbwETvqyLw{r$-+YavGtgx+1BSq?S3Zl z1NQ#WgZA6p&OGV}mH?1AIWdURa(C8&Q33B7{yXLt;l{Mk&DYijw}`I-oB*GvP4610 znE01f3|tz7cg5GJ-%#a#1Oh(R;bp6PqpjmWy;DPurw#R)JHwRdV2`p`c6XiYc-Ac$ zux>T4;@XwLDC<en#L z*M*V0K8kFEWi1m>)x9tOKH&FI7eciOhZ{gLA7Lm+DW&HLJZ-D8!u`%jYjMQFTdEi)wKHL~zG8di!QC-PMb1IKfY=y-KYpAMv5Brr~KmnO-`hi%nB` zr&s%n(a(2|dz5JCh0KaQ)^p10l#|u-Wws zV~PYWP0TQ*774Uz&O3Jfbh=f%c*kdTQ>e**E|ZdeCQytClQb$5Gk$T$W_N{Vd6nrw zc25GPD*7vV!O2puTeoM7+*_zN|(~ z$!41*MRAcPYDte7YCO^#LLE{Ub$xAehv_>ib-427R1D%zMVDUy7O773*t^0x;-J$f zPPdFdzYy>2xpI73sav|sDa`+h8Hb)_08>=vqvK62-#lKM)<-0u&#-f`{Pz5e{U>4s zZ6%a^QA0MTiQI{-rdqU@`jfNoO7;Exa}EL$@y};;VzzI4=g}JJq(_D*BsZd8E$`ZL zt~<`z2&QF!2R~#jZ@-{McGK$cuGg4bM8p$Ab!C3njDa*#!t~l*fhRyoWyW^?dA$LW zi}50(GYY@1d3WYPm^0Nvo?>VqGb1kk7cz!4h#`TwzQJ*N_7}^fMc)f_{Dp{L8zy_b8jn zyG+E#iWgLb@GY`}cV)s8*EgDQf>jFQCvN_($`AhI;sF;9@3Z;v1eFGgiqM|Em1cGF zy-)HlvX;%8QMY%&XcM^5VKz1cH8#-M>ERk^z*^@E3JVa+?3V%B20A7(TDPF>3$tM` z+I52>e3j?a2usXS{40JiBcy^UooZnM^S8d=>)3K_lW9r#XGvBokVrkf+FWylnmU$Q zHYF~tyOi-1y?5RkVPc+d#3vQqiVW?j+Y|zQG*L&bxaW~MoO1j{hH_yCr&&()KyP84 zGjG`k3Es?!Ki+2+75*rEjy#KN3UZoCu5zDS%}m{-x`OhvvD^MaAnri8#oIC+%HWfp z;k)Is{6}p0x5taYU&{XmzLqShJlrGD*+j8LF1E~gRJ{D0=Bbn!T(F0TZms*pA9BKP z?e(*YoCSD{S}q5#_E?Gv;WK7BT%4O`L@^Qzo9&FVgl(1G)$FtPud<|9S%U9rlVI#f zan^`qRRN>SqiFTQ<-881b*I*h{uje#_6A$H!~(Ctu?Z3n%ioEm>!9TixWR6y$^m4$>}1&Y z+LhWkkRB$wL^)|^I{2XFkBoxiuYrg^hhj0AiX21Yb*ZX<)(_z)MspEp15ce1?~;N@ zNcf!Y6FwTbL7jTji}c7)U`(!*pKJaEFRk-mU3Cfgped>Y^r*che1y*GUb8qoct;>6 z;**s!6OA{~&`m~itI~!@7l!j1b+8j% zP3JFxIxmirp`4fZS2F{>9974TX9W4$(Cj=~4m&aterBT7a`Qxa7{I4O2Uk}j?1|0~ z3lp3wd}<_IY`1^nD|->SJiIkBQFrGU#JsJ3Tnu~Va7j%3Yu&F;%DayK!?fyv6@EZ% zIm_1gPo4*jzjLSB#!&H`Gm@-|uJoFpL{-{#jkkAOXpFA^Nqg6%(!@7~l}R8TlaV%XOry69LH>HhFFD@e_D|CX87FmerwxjV(BpFuHYrfvJp> zWHy2&gE?vJ6KGFEW1y_HT$Aw>G<5Re)jusKmc_6)V#l}o4WW?_X6iBfb|(XtgGB-) zq22F>kuf}e4JE7rywUPzKVnQsyAGN(~MVDv&4jg4?-+_4Cbm$n!qv z%n_JJ{2=22g=tDw_xskovJJG3}lW^u<$S>Zm z*WLLNOxMdg5Aom9nI@Y`Kc3;-<7OGTv`OE4L~OH&CBcc5-2Nr_T8Q`EkPbkZ-i=7@ zzR;X29yfb)M9|ZtxYI+#K{`9&cu!JZ$3Fi?GnRI3nqA_@=PImznINLD5A$B7xVk># z)Ci887`pZEu>Gd?!^QZ57qqn6ajd~j(6T>CKU1wqJE~~INB16=3K8hdD!GpXu z2FnWCIZqI;H##@Cntet*iWZ#Hqq0ti8R6X;ERMDVr(-B6;Bm%d*ZLHc_cus0Maf3G zjUh`A1-vTn;zaiq)bz252)17g5GIND>sWDSGh_$Ci+(R3R1Geux@o_K^VPji@qC~H zIg!Yjavgr-&$|wE|UVc|vO7ZqJ0RbtK zU7|u9N!%^6(DM~)Q^P%pY7~BPmuYmi|LL&&S*o^la(9X{3Hk369=kT7 zTf3|8dYc$LK4Tp}W$E@>pBP`B5Sf*8w0HZ;R@1}1!(O%7z`uhojWHQfJihbVUi)Zz zlML$qRpa!l%Qk%^`7U4Rz)qS*`?W>HO#M$nN`n?^Q^{3F`mBIKRyq^sYg4D(F0p&W z#i_gl4684jTrn}hT*ppu&aIs#x1O0D8^Zji)-U6l?vEo8!XP>>lsiCq-acRI;! zB~_F?+Rl!N9!${@3pHL3VT}2NFhg(9vWT_xELLmVQQLOcMooUBO)wDGFADFep&*Wn zDcOL5X*A&qV>-@F;1C_R;+g4UBIm|BbugYNzNyHHW$t)Xq_WEIq_#Vd*Vm_b`$c*m z3eeK;oeXMSKBX@1n)iiLw30>;P;Y3V?U0~u=Pg{(`n0w1vj^#IhAO_(Z(&PL%R|5%q(BOvO zDWo|GfN1)+>8fM=lpD-aBskYHy!45P61MR2r$$RRF8fz#HJFWWe&a$8jH~@Pa8&QoDWIjK&X#s+trS(1 z?D8V0o6;t=|1L=eP6h=zMl9h~lX4T@kNX>NdL-DSvOW7||HgidvxFQ#DXW=urF2$`{&3Ki;yk*>+5X33=2BPY1}z=3q0fG0N5hPqn0P$5ZUS#F3ip zYzVRTBrC4Z^44@+*6;WEaUpZ@YOu(s2B%l=jC|Fe^F$|f>hel z*CIo1KsmJ7u)=16&1SVWV)uIr&tnuNymp@^X3edfAH&<71S>wAhfd00bu40>xHQkY z!E3eF95cATglaL907N$j>R7oG_$N85Ao)gjnEW$*it|PNG_0B5hres;PF=^Oiw?K9 zb!bhSh?n-k#1{Tz{6`HQ&-zaYe$ z7$g>*Li9MCW?bo{;-t_DPHQj%+v_u|o!G$Jhtl23r|uAr^|q zv_2L0#L+1((LEG8vgV@a&vcf@2rTsE>&Gq@Z_KZDhdN!#;}YvPnmU$u+uYxEHf64E z4>oP~A|RJh#_CdsiwVm}qEku6!!Z}hvfX3TT+;3K-eM5<@jD;n^L9(+0i$Bh6>Q7c z0#LaXC}NYOUL#2F-gPQ0KF4xB@gYh7<2J2ndD1Z*F z@m)eYq#X}VM|VZ6Nl80ZfS&UHA}TY^bMKJxAjqn&1D&v$36-Wn68a`HXn#RYLAiF| zjnVpD+P{ec`@^^%;qF-FMDLLXf*$(g7EkW0>h!iLs7+m#-Ve8{V59 zo;lyF=sO4)V;GAzjf?O>!m7%%LBD{?O3Nr)?yj zA+$E;vkwj}^eq#SckRqhN={zAu+YA8#iop@_+skp&$$WLg$V>u2Fy{TC1$<5l}QSx z@b%j`r4pi0D`zYJ>r)yd!|;!h@bDy9C99M}heXoMDm)aC(+Oa&V-bK|{OkG@=>P{x z*%+o5UgW9?ub|NLd?5WSDKXK&!O&q@7`+TDm;xN^u-Rf3)CViNvPHOPJXNk)!Wx85 zR)>T}z!PGp>iaJ#UKu+RP`v|TgJYf?eD{m5G+yDeXPiK?0deoAX5ydcNWW7}aP`-S z`HQ2yg@gpH@SEuWKsyq32mw8qRNii4$K1D8g&!PXkw~JS@xRmLDuv1xs&M6iA#y zNooGfQv6-WyI>rXLQ-gfsd-_u>vE|fYdpfdRlo~EV@7&E-4QFQQj?C(Q+X{W}W^mv{zh3`X0nW!8vNmsgEC=!(T-R!1hD&3_Id2<=|& zON~CtGx>HTctI;kYkeCvy`~*iS4`^6`Rh`(+CR$gWOr*)+&Rvqb0~ zqxK%k^yhR?8TW2rYdfzdL~mFRLWe&P%AJi@C;4KsCJs<`)TH4WNKC-^KpWBe#XM;6 z|0am)(9lWNod9Ivw`!G9Y!g~CG4TLZ)IqYrfWcQDe@;8b3F6d0z?;+;L;B;eUE4y^^XMT92* z1~10|R#hfovr@o-F*$>KKGS;)long?7i1q(mTO^09{v$nEseSV8w=N}2#@!#?(TQD z%L3w_P7LCNg^mjyH=(vmyezBbcfCy4r}XM9>3j!?-0B_cS8pE)eK(O18C&~Qj13Gc z$MRm#WK8+9#?PSFI|e+ucd41FPe?e21^CXWPW{MTa}IP-OZ3)J*PX_Z_a8b zi6Eyu2otzowRSy`+miP(%KVOBsAA{UL@2iaO~7A^J%B;uyCp$D2?7;ejss}=Q~D&?%N|{G<@O|8gORB&@LJVXi-}aI_-B`I0wVpL|+wYk|#}{?phN_{j+(BiQ zZoIpLx>Jvh3&pI5oQgSvFsF^VUsT?x6G71`=ADio+O}8{d1ELR5J`>wwDl-y$C+82+hVDLyWWOVzZJ}tkSR)5=hmlESb7ts?V#Vegt zV>Tg~6HS`xA!=K9*vmEQ3I!InX5;5=ws1NhR-3#{;$;R*f{OXdoMq2W?yyOvljR61v8d85yR1v?0!Hb5c&m$2msDxN)gKy2ooDjq%2r+PMN^rCRuHA2P7C zSJOPsy7D)4!W+CZXE4zlm#{j`d;7f17^TtNv#0LO$_`gxYb&8T3|NfVIYS+{H`|j$ zVj&w?+7E_z;Xp$+yN7*2i!DT_z#j)mrm&sKVdsl^KY zU-kp7tDc^ogNk)xRAW@uq^FsioR=m+6hp}g|I7N^(OQ0q=`^;Gog*JTEe;!A=h zX8pYB+K>qO#(iC36L51iT8cM>U_GZEu4By>MN?&b8? zvA&;Kyt%QSps0{b^IWu>V1G%TOX%)B6AwXnSGrAr(Ze)|Oc9q5r z4${7-N>gsmp=i#Ih>6v^d68y|+=4*bjzcn(-i?B$e)(M?FG96y#3ussHnn0;Y)N_q z9;c-nb{X1v9e7TxWBu#8_dGX;OKwFk`K582m4^IL)3CLeB|$U?qv8g;VS04=uaeJG z0dKkhI{i*V_{_$0rlsja{VKP|9i?i59Pf>NU6W}S^l;S?U-5Rq1-tyV^kR{Ga%ho6 zd8TN4G%D`4a{_acDjQ>UZqk}r1CwYA^_aoi0Dmu&$z=I(ndQw(c9$X&$E?OiYYmf7 z7hEthTO%7Sv$s}8UHV=#hp}&?g&2hbK=ZZ95M`nMUQoVL2!<^9K+$v8FtxDD zhkm9GF_wcRTJJUgvxMLprt!#d`>L+x&==`&86?JP(K=Kryh9Zas(k5kytwTpS`B8y z0S&p^NnEw}HU`iK0OI{CZtB<-tM#)~DR%JZ=uH-qI7~!WDG7bKo1kU&)oNDi zJDTfqm}TuyWJS9!MeoJJ!Z3##T~2;A**|s;N9+~f6^_+JTwL`#Evdicdpei#58s{J zrVaBXdDp-55x6g*VnZ9AUMS2=eUpKpk`C!#FEj|D;SruE=ewNTME=8eT zS8JN#lAY9FBTafiAL0Dh({6Ak|B^jct)ESet)xUlU`Jt7x#^PtmR$ZB8;uh(9mON- z{(Xd+27&=j*JAil!y&LYZRyPEWBNFIkE+!N>ECCB>FCZ19j1P9;^#Gt3Ee#FrVx*- z_OqK{a}uY%ZRT#16#w)HqLNZX(SS8l38WG`T{^6s!XLrs6hlnUkC~HsdTDP#6vWEQ zfZjsO>E6lFi$9Tjgn&z9D5#nRapyqy&|(jP;M{a|7Bt}ae<$m~4(ocV^y5uiNcS-G z722-(3d(sOI=w%MQH1En`)v|`{x$Ftt|)EzDI-wL8gKj6jd}U>cyEJ#8nf>X@tdf~ zi?Xqwe#%qR&{T?lhulv<6sp7@O)qym9nBCrCey#UCUv}|CG}S-hpO${*0nRMqB8H zw;#3LPl@qFlHrzElI%p$>z(qmR6NBvsE1m`K#EJm z^FrP%!%)=XJM7$|$7$WTj+ycWvX<;trrY;S5>l-+qf_}cX(n{Znhl!fj*ITFV=gZa z3vn6#&elTHiF%=x1Zz2P*VXj8=g=YGaxx8V=a|fPm|vL-I~uBPLl}`-eFpcU?M8%l z4f|-ji_7G$iQWo?z^kU5oFrj3Zatqi%{K5Giw}`8Gm*2?;HX4%uPQw%PG8wICl#1U zs9dwi<2P|>qK})8u2fqUW8ZpJY|`)l)=R8YsMv<9VOHAEa>J`QoOa{MiKe8=u3WV1 zJPouCt>bZFWs0Sty80+ec!svA#O6M@>n0bDKV_j+>{O@#BnDY*^h+vp@we+!ie5U{ z@%`e-6nJ|y^g8|oW!?~<8GqwI)?|INK4lvuFSO^2E;-1&+}nu#0q{uva*M7&$T!&2 z3o|@-7WEJ7AXQ=PrNY>P|8k22>2U2Z`otjn4WE>cXT=G{QxmWAv62hfRqLU#S* zwb{0Xm4=23XBOzqJE+MP?sc=JQZJ-)F|D1f@w&8BX&i5SDs&*`Qtr3Ggawz}hyaO- zb%*WjvM0rVvRnX3hBrY1E5qqt<}n9y1Cx%wE2dhnF@DV@C>z7ecQzbM->g;nWc$Km# z4`(n#Hlmk)5u~A3i7kLr`g+pjY+EXU%bxOD-bXR<3+$n0xiFy)M4Q9I?aI4P^@n+m z>@P4CMzy}b;W=_3&9;UnuKl6;+HTqOOSDhEE8<1hspWa9L2b=Qo{c<8lo_YSaT(>T zHbycPescfo%F8)P%I~`VRaA)Ig*5LfxaiaOS^f-mEwjrO=6hSddqYIuEurh1*A{2t zW;;i!KqWy)DDljuqd7i~IrtJ~;feT9K@mZNQTd&6t*CbLybGwyPBJeBI zrs%4)yP`>t_nBDPWIdet_)FzU=gyG!RBLFq^SM%L0L;}GISbT#Ssub=eN0ma&#Tu! z-t-l-8P&*?xz%LpN#!Q*`*2HyJ~q4i2qjq4G|jb2p+79@`M^aq=9?3bn_>`>1lcxq z;+v~QfSyj(ol^PH#hDyhf1k~v#q2G0i%&n%dSHNTXN)22sO+hJFZvHBnf8dd9Wp=1 z($*8a=3806X7w{YuQ8;XQeBI6z>@c;rsDmzftTCXszrzc@>L)N(9dlC@uIC@+nt+` z;Ks~AM|8=Gw=Z>kA6J+2)TSmd>n@lWV7RU5i(dXihA|nB3c}@+?DOhW$YbuSAOst6 z^m1yL1|>9J)f;;|1niyxjv|QoY){un`TL5!SUJRhUU|PhC0QDqoZf%&Qp4Ymd5lbC zec=4Qz=T18k_JbHdBXOqbybF@7n$80u5zo`gU^B#pa7)y5E+G8pG+C$-urh+w&$Uw z62lbf#Q&c|2AVb!EPpQNQ7{E?lK2XR%UmR;e?XXYS1A zC63Eb#wR&S*0_s)v8kwlG9H+xr~}k6g#hz~?m1KOGe{wE}}J0-uG_BKgZ#WN3?zX$JjsH8gW79{xJx z^J=P)cD{UQ1_~1$Y|4_fbL}^_&XHVs`|V2fNq432_XO1M-kDg7cbdPQG^)yi|DH-W z=7zo(o_0B^7^ih8*~|?GY*Xh&tPBUbR`2zezaO4#-r$2_!BKMXzEjkq6C2jLA;7WGhj09_+HdIpi z%a=jl#;GxaIq8)`HRnk`uf2Sh2o~>__Wx0Zqu;{(8~6s6bunJ8Q~)A^pclHFtShqr z4FbZ#?ExF9*)*)UFJ-kJhef4Y(hy$OZ;|H$p2h zT9^PT(k#T+U`y<+c|%9>8IX{|GbUwh8tHaGvZ3a8t4q;}_=_Xr#w+FOO3A$460YZk z<((xY9UlDt*^*b`&BVjI?{8BxOt5Aate-gf>5LNr`4vB((i?(d*Z!F3^j^e%a@Jv? zI>j&es`K~gZg=6Tr5>pZiC;#GRZ`fK*XC%lReHKM+MKXzthe`^bc-JWSAXkjL{o0v zN0k8quJtO40dI#_#c#rBgByLB46E+7kxsJFFJE1)tgbG&3$540*6Eb3I%iFA!B49N zC(uY)MNKcWQM{O#Eu^20$U3&^BfF{9cdo?iR1#-=WapFZflgPh@>Xg;f+LeoB{{#n z>N0HhHAXOr)``mQ zTm;`Aqx>zH+eH1|O<07(6z7v@g+;t*VeN4D0ld2^NW-cen|TWwB$F;hEzcwpDpJ0K zPt&GU1z4a6a5}j3#Th3VAWG0fr$uXJWI~w=@;ivY(kSsP=@T9(3PE8q<=78EIGA?F z-C7pH>o|&E=42BoN*q{TC*|i1Yp)?H{N!cyk>z_N_)TKR*z#0W@ZEga`d%h;EVRQ zMcywL?!RmKkTzo)UxgmR2mURZw^KbAV{7!wZzA#}%`UO*-Ykg8n@3@UlAW8#hbKkr zl2-c947nG}_Gja(b{A`|hE*fO(A{`TTxhXonT_v-P5xP~o$Bm29y&>aUjY9X9}Y8b zFc@dvzcHhC{xB5eKy`nhXEWZbj1UPoVz4HRI5o(2XKhl9F76}w7s_$)DNoIWm^k~X z{H@trB4KVw;Bt@jMj zX^4Lp?}n!2!}R~3_B*CTQaFpk_Sw6aLCP6QtdzvXrIOMT6%&_rh1y~{lwEBX^`4!k zpe~i)Jr=wB5+L**3MBL`l{J-q_L%(7GT?Sh))}042Dc-wpK(>@v?LKP?|G&3R%PkO zX(P@LO03zmvOAw5pCq!9|M`Q+W$ok!fp;I5WLZwe>kWzRr<~jM$F~QIJSpf@$hUDS zW&`(1vIeQ2k8`oFF^(r{rGzvTaKtLuv^_f2QTg-_@4~bW<8JgZF1wlBo)^6I>0bV9 z?RVA_`*(|~l4#pPZNPBw+)e-zG2?WCN}Suhrl?(Lmk6>rqUN)VJNvi()s1aa8C&%y z*xWpEV)oQR5YLqOh2@L-QRAIdTd9k~#cz~A3%xD#fwDTa=fXD&yA|xb+_{HEbsQvh5n< zLvGnsvQ?(k{BHM!6`K_)lbh9JULOvjk{t|z9Tgq(Rn;ECdnhp!7>16z!MfzfC_}K< zZ8-`rq77e$vZ6HM0T5*ng3ouHmz|f@FFIMADuYw&U_v?biIZ??A9F|=4ju&ucBCAQ zm)mggaQov0R;F-`Nr;v>&DPjgbZ#)-S0e!NJ}inLBcf%~BT*9~!tRENs>BD}sh8 z9PBW@y`Dq8QBgKwh2<`(m1q5Y$sR8FGOyAZy4-v%!_B^m&MV(|nJLDZ+;GWRTXZ8w zSMSdJvT3n5&Zgs3P3F1B{glcZ(dr8i{f%kKGE|l?l@FxRrrZ)QmldC5kJ2|g&27og zIM8F+$Wq^CL-b8KU)9!0u+qpF2@tw^NAmU5Vtd8Ym_ZpXLNt}*Jh3i9}TY_N9FX#AIJP0x$jxUy8m2OfMaq76PH zv07KU0huws`QC%3Y8Tfoavg(n8g6e`9@(kR!*eVk$d2kwpYn*R=|OIrAz8QvvDiFo zzOZ#phJ_8(U|6VGmj54HZygoY8+Lzx4Wy*Y0z{=tM7pFzKtOVo7)lHfkY-3FloSOK zq*EkEq+tMQX{8&ahK?CvfFa)dfcQMmZ@quIJnKG3=bSsPYwyp_;(;LYC%(9F+1cLj z#)q)bxt@oQ_B1X+%{(9kD>clrih)4m2W&{a4}eERgS5e-ac?t(p;QBq59n@xqt&mG z^Iz~xGw{~|Ph_RcjaWgKlZ)_LA0X=NKc^lB1RH?2vH!?0f+Fd!-6OHPOji@^A8?f@D8}Tz4s}47P=JZ4xrOPB%o^dqz(BBnQDp%A(D3v5 z7f)7J9=9t5G8C7csVftdKrcy7(8vjY^ zddXV9k{%iAx8{L;gOu;VhY$Hm+ZrLc5;yrR$$*tD6->p$(zST?+YfCIstxoOd3V3_ z?%Mm|dY;6&*Z!;%D)ziFquwsyUpBJ1e3jU%kiee5^K(q_={6*4`t`t7I_|6wX; z?JRk`t;GV=SN(kWq@|1~3JnJSDUj;J-%~bf#gx9UpKvzclu+( zNn@;;3d?nw3i&;MU_>tJ41h^P`b!slx#MDQB6Q6haJ4nlU@fm-gBy*vjlCn6fH=|b zNiVn;XFwhFjuUJ(Z6HE7AOOa$y=s7qARhoTJUFG*=5ayo)06tocloyLWsnodFW*42Ydnw=ZDg$a&ii3toKiOz2}pu(V{9UDx~8Xad24?jxzjs z^W{~CZ>WL@_wmunR;foU^&wX{#k%Zo_?3sdF?ClrILc(8=`u9)`u%>kxYev>>~7P% zk-6Sf`eV^tk0I$st`MP(jrEiYG$1>S1m5FHmZ^fS4m4R(d(UKbBhNrLLzczx(O!1|4yt_K0Z7 z&S8Ul?be5n5<+O&16j0k;21XKB8ZUTB4D{oj4dWzDBGWr`aJ$ry(2D5`(U}^uEtu0 z7s``cz5fMK_XL*djR?qr%vJk~?)~c{1ORUcFY4`tcv19%NP89(&@Yf${GV&ISZ5SxUH=+(;sVGmz(m1M?~JzilbIejYb7q1^EhSqpS&i6 z?6bPyHIee}V27%Z?kscY zd%0hCd3kvD{#&tNE^)D=`Tg2z*5vbG^Zubo!DX+DazFnw5H{c}ruLIj&JPRJzu!~v z0`@5HqaY9eGjWNuh)bEO1(D`ftS*l(l-qyhbgQbf-pxO=zqW5?QHj!LJu5eEnYV`c zS+l@A24z4>Tj91RGJAIL^^*nS8+r<^|#O|i%Z77Z2o)Bv&D%(6ndNlPY zg*#=fvTWqe<||_*rG_LiCHe{P)$de?O3IXskI>ve-c=v(AIoF34Eo7E9;IU7ayN~I z@ACps#rMi=PfZOk=H3ogB-B9ny=6^(ZzwVNTnYr@en{P zD)B9EgzT(fN3%-{0;V09JY)UM&@(7w>NemJpfo)T?;B0x-Jw7kc2N zH5~zy!P|EZ{jU-U7w?>LzD7h(?{k(n?(q}nr|geXp`JSs(tchNt0<7zx$hfBnN5^U zp1$q&OK8A)|FT2v?UzgN_5_@URL#Hwm0@b zQ3L~_tlwQLJlAam2%Pz8_|3r~g|S~Jud|G9*1EUaHseus;wyXO0%0q!4!OJgVvAGD z5zj^CcR^w|Yv)e&ZLfFLajKgKntf_TbFntRMSQmtPPbI`V!4q!6t+W~03!_ev4lVX zJC}kf#+ts4qDIDnn-rw9Kj-R)v{aIS`u+}3-=}GiU9FjKM>R+RDSBqwCq9V$AkaHJhDU;ZMeV|4kLlLa zK#VI^W`b^1i0#qIgHHFZ5JHOuq$kOJ|3#*9R@=_P;*tUqvkx_O9;uvb#Yx(>~TG;FK(* zDtpmYCyqI-;JG|e;)Th%$s`WCbhF>NqC|YxNPHs54+scGg`Tcho4ILnzOMKKk|C8> z5iufVkf`?TqCl;|NNmZyQETDL?YFGWJ%gND-Sc$U8|V`8hV0B$3IWeFHAYdUoD>Pa zm#=p?L*Oaz>?TZRhH4hb0=Q4rWqNb-yx}C$eGV~vCb?9LK$UXb~^{SZlL%k?BrUwkRMFO^W%5F#&RWEWK z*uh`Q0OyLc_gf09pxRyit&H%p@+^R@zuiX@c_1?BDfXpGeyt2ap_Q-=-@~mZ;qC1q7NN!Mu?X05ZEwY zkqo;wIgqUQ045tJAyK-c7~GID_cAHss%U8$k&QZB4Gsuqk<_IrwpS&U`8wr+np%;_ z>dm;)z?y)H&!<`OX_v57)m^FDewtcIwww~&aP5I>)IOD|cO!E<4#3B{OMZF^`T+bO zb-0F;hCuR)&wE1Pg1ooQPKOrXt6UH$?}?yWcx}rrCig~YmJvNrxj!2}so;?zYS$NM zHY~yox;PMce9vaLaue>JS@lRK9pmXD0lGNYZ#zK+aGtXG)!wjbm=VVFj!{mf`Z~x9 zosQYbY2E)*HQ@=`mN^xzZ^)EQD^VLp&6uc`)z~2CzU%haS`Hx(BnFaF8ww&jfWYPV z-DQ(P8^{Xh1FUdg>e(OAfS&?nuL=QtAcz7(RW_sBvlKz5AJkHHlX&qASly0@C8>Z% z9|PP~R3N=O7oR&@cyiGvu_#I9R%jtH!DK;(Ina1bzEz?h0R9z6J=GjuY+yDN`bP#j zx5vh*(TkD$OV1Pj`m;QTp2!TeKyd218LBUS{_DmL{?XINA^j`1jMSNZJOH5 zEA#>C8uB3D341zrJHds?C$f~eNdb;8Gj%Iy8QAmHeI_QgUOK&`zOr#f^lKzQ*etMr zOS}X6ac<91I-IW;*T}mLRoxDwaMUXdY<>y@L^Qbk?UBcICaJ+lrNJagwk9Q;hmo{> zIFQtnBYeBjt7*rpLs~NxVf?iE{Wqj$BGu&f>{;V59b|*lgu~dPLtT(8iqJ#7N{NMe zTgU0AQ>^rAFuv(gVb2%aGBsnBBR?d&zsK6UEb?GoE+`#xlV)o^!+4JH!2KKXd~fvX zm^0|5;~rD5C)^JoY)NA@)>_-~^fqJcz=^aqHo7c1dOZut(vh~UcB@s$X^OXfVm}|h zw2HTE8qeb2kxb&pWvZ>eDyRN)35ko`pF({^r2qn{DI})pngjHHc3^M?NP@uZn!O<- zAMjs4Gm{=#NFZ_+*kmBB%#qx(6R;{lrJOL>f3Mc&??vy6f0pS)6b67_(1{HRWfHIg z)n?dOS{@-a_=&ms`TYx(fvHj%l2ZsGHi4hr_SCxNlhtfVPb+Qks-aMYA7GO-91z7+ zJOaiH?g6j|3=J#Tu5vXfJ`$sK&mHkoK2ZDHzwp_NCvaWxZl z`+I>4M{hs?wMX4LJpqz{v7wSI)YP_2i>a!L3m zGZ`*Ee5+l*9jB~}*B`%ra0Q5P67Atiu0I&^E>F(nDyE#Px`|}_tGCDndJ7q{tQkH} zZlhg2GU<$ujgMpo-E8GnlcS{%w7=K+L&E{t)We&zl|Z^P$mo4);GA6b(Hsae6wA(= zWwWEwNHR9+2l#5_FaDwLP$CxYtA+!}(UohKy<)(D<_XZNP>De!#{I{RnzFssQJ2%_1 zanY_qefZmww^jwfnv!C8E}yO@Jtl@O-UT8@9bAiKjz=)hf8Z=$}TWd%?Gz2?&X=neLC&4%U-lc z>3QVM0yX5M$N6>5hn+kYgm-_W6^%3t|l$GB}KqCk8p<7GV9r+uF*sfqe(0apZ@g`NAe`Q@u8_eq}CQq(qtgwqhF zjukwM5xCQB_k4gm0$e@l*e9I3PD}^3o`-M#8Dx%au*iABT(i*PZGWGM2U=8d_3a|! zfi_-A9CH&|zH?d%Y2_8AVhc7k4K>NBqQrdSrDCN-@5G-^&H#vodAf8!9qE-r7v%n- zgNw2k6^las~mHkW%$ zgdK`QTNIxxb#rud zy{kA=y<{|Jsv2=QJMQ!ho2x)Ot+5?S)PSBH}r&24Wh+4sj< z8{IHf3$^@{T1z-6?gO4tZUVmyy!s&}5aEKKrLPCLS^td!H-m42J9P(-w7WlL@;N?> z>#2MPd_l95&?1Xh(Xf56U^Cp6PGF&sJwEs^hx2g9{Ldu;(J)_d2@>zHpB(-6?-SRt zJ{p3qq5JtSH7+0O&^2;jA*_FP({eIR!Qt-AgO_I5&~mY$8~4p_U%JsKYjjpbgt~5_ zdg4j#kHa4?%xWh?VzXU}JGuSkf?Tbx|B(m4N0_5QQTlDrlfv_B3C6e;YUVRXC%g22H3O2^8Z1d=*c0q>0<1T)&9sY&F1>Aqs%u97bb$ z@1KmI9!VkiH|`hOE-)AfBDH|9)?I+n6JA^c5+&fEqhkb`dC#ElKIT4r`Ppo*^Bok| zYz{7h{qo=2oOBG?B48CUh)5uqZ7=9UFPD%(aT8EEjKYHm+y#F9AAR`51kE5tE5|5# zmc(iP+fed@kOjpLjB0|`PMW`^hybCG5%)b2}T##-u;+(YSwG606Uf@ zx#6FNc%WZ`<5$6lO5Qk%guHtEA}DU(TU&o`MD$dhcTH=v3Lg(%1VlZ` zu#C${#~p&vB~|s{!HUrjcOjvqcD}va4ciRE*Fw#`htC2qs+xw?oCkW&Bf6WO*I$o$ zJyt&pu}4nrpKpx{c>;%0yS>oO&peLK+`yVzjNpZ$7?0Yo5Qrk@*-_tw&bIXlZ`82^ z_E)=8X^+lH=Tr#zpf&?x?#T5fJo*L{JJn7QB9$qTUVE&xIdZtj3nG88!`tBrm1y*d z3AR|5h81K^9aRY+zTqH1-~y*CU2tbQsSD@YF-;}*C5Yv|EeomyfTm&}gD6@CfTZQU zRvUH#`0lvtCfRX)w)!X|tZA=~R^qz`iW7YZtG+;!2%eS3- zN^sTF;f-y5x2=x*FZRUP2Y;-HMqW!lT5b6HR=Qdm<*8IIX}gm6GUY{Lm0@BPS*<(C zWpskT!XH5|Plb5(b|L@jeuSA(hv4%#!b5|5r$cD^Vl}cr;od#y)lR~-2SfaH>HK6M zA*O(0Xa7-0j@OffI!=S_Ok7pPCe4`w=AtoPMtX{t>T#IN0UV8iA|gY*Cv^)_YK0RE zi?NVF0W!j<)}!^cCu_J? z1BA30y|%cV!9~lYZhE4>wD6CHeSYOCB%~MZu9$S zH8}-q@sUBE0D*)L{BW?}MuPu? z+tT*CZ`IbCJ_p_n7wXQ8`HdxqijCp2S*9IBew0vDiRBSa6n#1@xBuB^fD=6mY=AyD zv0rW3z~I<2Qj(Cc$^#L?ItiGD%Tm&t*uRV&#Yc1^efe1dR|vczGm{Hli@pSaNwx$2 zaj)$%uX93{3m}~M{shhl4uH;IcOK2@CjpXFBEX|+rUTmSkm?UxFk`rk!vl&+L1;iXLzO{ipR&G}Hbvv+&S4lmT@i?K^ z$Usb!M*dvhjffwuYSC5Q}tW3r$*)~AEV)JB7K9Irbv`eL`CV`be0@pjhZ1N ziIaVg@=I)2MUsIgw&C__U^U>Xp@kChujWUFW3e&FR;&yYH&UoT%?@&P1 zCY9&qbJf~9gC%ZW>la7G%{E6wi*$Il*+&e64^F|}l8{eM zUfm`{ZH`5Zq=iP>Urj1`>DnnZ;~C)|AsN%?O_jV4?5vYH)H#jRIf*V!EVnZVn^&_(r>ORcR;Kv#~z1 zc-a0)24{Sp#;3=7Y3*J@Al}<8L^X28+_TrUK1#&l~RM(4Nj|Z^r#2~`767ZFU z)nVhPD9k2VAEcRH>MBuiRR>G}cF^PkIwr!pvgV=p#Ijj{C2+cN$N<=1#p0+PfUJUB zPKLmk3tUAO2>ZM+YQ0)|a#byxEu%EC(`*nd2W$+8|*4xW6ze`hJeTJAm95o+T-I=7BJxnmD#f=Q28`s1cdljNtf zI;Vr4T{pA7Ga#40{^^sMg-5a(38^`eS+bh=@5T-}O^;-SLhAe;Es1;>&)%tnvo7&v z5)o=_Dy84(T}(w?R#(I%D7I8dShU7~0oL0BW!cs3YHgLyxJl9a$5D8thS9cN0b2G@OGjSMUwoMvZUIP7ygsW4y|~ed4FH>de0A zo$BO|JJZjKL~823`uMS{t+PA`L_mVLce(c!H&lPZxVKund%0#$lO@`U>s2I_u8&6V zI(!8YGCK(Vy9o!z3!SMKy>228D3I?05Kb4UkZgA+2m9n1UbLXPz;_uIoMo7$2mGYb zFhA(`rNl0Xf(+(Jl~s4TlWS%OfW!5)dgecTt(X9^HAj+R+;TLCHP z_RoVCMf^(E!pY-|fX5LBnV^njo*Srg(CUxu@V_d;-g=2|a5v_kYv%apS1JI&X(CHg zRz1CQev032X%oe;eLX8c;>`JC@|utJH_AN%`h(Nl4Gcjk&lof*bIxAZ3%W|pVz&6g z`ACaF%urHxCd%RIcl2YXwT6r4zA4vIQc}#8bA)T{$Jn@T^fE0MT{O1?;s>N}FTS=5 z(Bmp>GI(37zmlyDB1(Xe+7Tas-?F~F4c|ZXn|q?aF{8iHer-(qo*3?1IN|u*78Sh& zq?3Ju4!kX@5e9U!*6hs>8O+9{dEzEs6*)q!;Y_MkLwr%Rn&SqEcWe<*Q6mCtSIlW zVP&nGT^@W8m3@GN1l0$=F!!IRA+YP}n{9O1Y@UXa9m_`A+r@KR*(VrsPC8~+fMoV6 zi03=+1mCQRHq5B!=8uwpVW(9*2(-hXpmUVmX#V(Uk$?SR5f>>E0p&=}*o%lv74jv% zGCq<_AGPp;+Oi|S2CkrZ^O?urkt)ib4?giY?gT>l&mEu>NKc96GVgQCw6q7fER^BO z?7J4><>O8uq`bBd1TPa%UVFu>L{{C;>rO(PZ1Rt@209DLmQ6SpCcelkk-m0(nU%pI z`s4-o+*N|?F1>X^qLp0+N8D2m`fRQI9!2k0288T%8yzF8QC8aN9`DJ=Yi9OW!f}-q zev;4S0_w_}-LyDti3Ji&r1(CT&@N&XipRn^zH%!kUyOOu-}v4z;rX+&o>txfdtGe- zZxofz_jyj^eyu*Wi~Hz6&c#dB*X2rWjn>sH@oGe28|&yNBbeT+UJ=p>{d$-*{uj)< zRa0jYVEvunvP4smw^NYkw-d}-$`~RgckT}W{&B{_g<6><$=O%fHZJrBT%Lp9{WG&h zGb6aI#MQKe#EZgNy;gK9m$!^n!w!tcmu-z=n1#u-_dO|w!jyaVOQ$TCzuFJX9l}$$ zo5ElSP5Rq(Sg_@yOJernS2KZ+D%5As6xpDsyT6!%a=1fgR4knZTwCCT0^D_aw$~bH zFo!C%xsAcNP%>EH*o~6!H3lc6Q2aoZhXufR(YZsz1<#@(L*+t4LOH7xX;vJ2dJ@;3 z9DILS9$tf8po)e;@*0_EpQ>GWE`0%pN&rH3s7X)w0wE21T`^f_+Oji1sNfpLOQ6L1 z_f2RgsnaNaDKSm__=1It(J-T{|GYBC75VN((%d8_fE{Km7uB)tX>O98O9A9o=Xn#t zD7SzWum7Arco8vB!J^1lNG6jW(l$gbOtiA!?7vZYTS!-BT3qt=ns<0BRwH3#l>aVK zU^mnC9K{_`Irjh;BCq;8h-Coy|S z#<|=#dfECRS}esY<+$w8oYv*ZMTCA3f1wBNVYIGJTZBi24THhL^5Q)_TTX{tZC90^ zL;VWN^%*iQbZGb%ZZY?=h3V)uFB(L`c-b^N#u5FXbH5wp$&@@V>@tT}HKBZJ+(}fO zTE~$OQzeu>CIHyd&s9B*5XU}2w%+RrMj6Bx1?F5LpB%*u9VQAh>h^KZj2~DrBJCSK zqkR<#9l_7*DLcTljCt@!$Lgp89|bmNPIahq&=Pq{^VXR2$mBZC;Ab7^Fn{kiHK@S% zCZfs(+p>pWx%Rqh=<>52c~o%(rl3n{X6Z`h={|sZ->=_6%j}lxotWV zIy1V*Gc=0zu5l$~s=Ld=%0D@}IkIy~JJ*%YwN;oR>^?kIMO;@&&}fr|hlB>jHuy}n zDpw^VQrZYnClsz_h2^9JU{ZH04XS0LW%tiq0_m1AOXiaIFwhszw$rjhLKe!CFWYyu7 z7iN14lu$#TzqWtk*M_>^5ZTHhtfcsVn`K9DBF7{rbr0~81$G}(K!>LcSZ*l@qGAA9 z3%ol=iIa(dNce{e$<{{|2Qw6v$k z4;YO>kp)Z$q1*qsCY7K(d!do^3j2lM!J>1G6OBq&Mwcc`3{7aAOiWG0)~}PRld~;M zFq=%8q>z)}h%UVp=>7T(ckD`AeT~F0PQN9dvTOPmN-ZYCdIgbZySl4N)i z=-Juadx$q0o^L)r6%%yt%qy=7pBAKpR27bHjq}KU{`fJYgmam0V_tZHKoqkua!{$) zcXtAJsp-(bXaNDb=}!IIuWl*7Eb>~&q7dWXmIkVdt*vk}045XX#4XOh%UHmv-6dQM zR9+3m#2!hinS46i-J>w|p6laH9Ea(9Uac3cL+81}=7;-S)qx-K%@cS7U{d^9nqSY2 z&H!j=YRHuhf;Uy6>GLthQbiEi_TIIqVsEc(u=O_}PzM?=%y4;NME$`T8`zt_0J``^ zYNSoyaA*Yn3dDSdz_zFfd0eNEVeNKR@0Y}FzrTPK>*=K++t-$9$K!VoN{!IdY zcHp&!*hwHgNUBgUHyg?GcN8m5Ag%ydS|Hih)fYt0f@7l{?qz1*PY8q^2;RS32jN0m z^_pGg|IyavgFNR809v;43`EC71}S!CeT8v|(2L)W0AWF*1L7*2d_@7izID8oCA&l& z*wp(@P_DiW-?30r-b8c@Zu-I}f_!|5@%x_Ny&TBcVD|`*UDYGI-R&l3} z_82=0QeTIlpWG3{l>wOYz^l|%I?`MzcKiO3rF~#Uh#5@JM}63%4n1H{L0P@=l8h)x z(Z3f#zW3~7-#a@J1FEW*fC_V5bw;T(8Eh3Gkw!Uqvy8xJY$*2rC(rqhfMmm1W^|fPuMlpD!}mGn7S`d z$|a{*uSk`V{b_exrJ;ambm;ej;e+=>K@?ZNmJ)3d*Eck$i|(E$uX;6cqf{6CX=E(U zy?a21lQ6H2*pI&%nBwBjdddCVvM0|ADA&@o?2j-qew+6Aaae1@d#SZ$TG5S|l#>Y)8Ao1;3d@oi&t~v0DR0C7C`a{;=$u)* zk?dHi3)_tPTdBVZ+M}Q<+k1Faa&-V!CA50|8$DM&S}b>VY~? z?Q-1<-kHC5Dm$0xp)PQ2omm8YBXDpJuANixY&iwaeh}QYG4s-;I7~mpNfHO81mOTg zBtX`?+a}I<^qq>;!u~^*fs#C}f0Nqx8;XxLNx79xr_TA9m`BNKUT++~Yko)J9?Q@2 zfB_=v>(Z|u;?MeA9SEQtzxr_SS=88AqtR2Og!-+(deYcQ^7H79$DN-OZyLu1ep++u zT08?6IkOo{7lMnQYWdJQkOV^#I5gkU^)|$0pb|`fNn>Pd{BN8oDotE;{<$eg#u_ER zwBpaPO6!l%+s*C8gzYY>t1NyAf$|`oLRUYOzV(?_<;JU>Wm?-A4-LSyo0y(Cii7-- zG5ofC)iri?W|J2=wD23Y@Vg`w5DVu=y0w@*QiqjlhchJ`*IdNIn)N#cx#9`Ero7*cDCL-iPN~}i0kNInU3xNUNOEIiM_c|_}n2r3pZ*bGwO;p_8wnv(SiVvCk)tv zpQspcK-QkeVLCpyI{}{?NdN4!N`aI#N6vpVgKQL3a%}~Z>26pNGkJlmSCrUpE)LR=m@r&y`f3F!9 zW%xga2*_GNO@*Xa*MK*Xe+MVS?3>_ZCEjppfBIVQi;q`m8~P>NF`)hb4})9lsc3(azB;srN&Rdw;G3E zd>8QZR}~;_^>!}6j(@IPBNY&+^|-rz<&WTWmf)m^#p-an02BZE^D;CKD}}>N{ucC& z#F9?jI7OK9ugob4-kmq)J?2Hd*ZbVJH0QsyMF;M|Ju_Eddj|fFb2vjuZ6`FgkiFOG zPCyHi3}5K_(J9&`&I}i6?P;UOavXsreNf{;xyUd5K$qw!jG0QMY2Sfoyu;MBz4JG1 zO%kSX*LF-3^2m!;Y{oUKWI9quULkf)VM)%7b8-MLr1yGA-n*Mf9XQy!_l7ly<3GRO ztr^!73}HRLoBO!FViOyGAG0u-;dN0X?G89(cLG0@CY7n)AKDe@Bz_L7w#NDt1U>@; zQqSH)jVu2ynzheNeijOvqhRkwM~2M;IU{$M`)8&NNPvqG16d(K&@R-11)D!mY=t5{ zNQ3jIGCtpiimkvdCETF^HAf+^@vUfZDi{U{-ZM1FypHSw7m?>sc^FGjND!q;rUt;D2A>oxgGk^)AtGM#SGoOO#0!@8pA`COY!YX?doiKRF&W9UH;gw z+~10eAB+b*IfWmb_@IE7-KDC1g*jhyqH{VLJuR;Y?QNC9iXxM?hE-GoY-&*!pZlk# zEecWJJ}|tTy~)p_v?J%$ywz@5_4N-VvH2eUeat3!YE=R>5hYv-+uc&+jKeOWF$Sua zKMi%-?i(++dN7yrJ5{QSlW_!!#e7|DwZvAf;Z68%+lT48KjG*Ieo^p={*tBFxa&73 z8J6X;n%%GaV!;7@4t=RZDi2B-c9&3uyq){i9#!vF<5c%|hzHyEe?{#l+a|0@`4@UF zq8V1#^_!lec5*@aGaJmJz*v;uU6%1vl>`NvY@j5|$0U|p18Ahsgbo4VfXkr|Xq$DG zCOsark-=MzFv6{GvyQNZe`oz*#kOo85D>^zE;C=P;tOn*P_Z?wF8zD5@+=(|2r?}r zqG6Z8D`dNo@7(?26u-q$5jFixFB=(%jy_pDgawd6K(Xz*miI9B=c~WNEL2(kAHR%J zTeeZ6Yp=DDG{r-Z|2GRoTac1RWxY9#h2mk3b#qb2K*CO8;^idZh-{nFp)tIoKw)@= zKsJZ(nllhbZ)fWl2BmNSodu(K5TuOWC#`Q#q#SYNA@Z3pnH;ss>rVslQHV;&-|taf z>C*3!B+hbUHiX=?6jq!0g>l)wFRxY-+Nno9RF1`O;L6SZ6F~j%g{UUtFve<@r zQ}L++kIx#PcrK-3yzseAS0~*DJlQHf!rO!rVB7~!KpNyJ&-`rhTGEyqjY8|gu$8cV zAM9(en@yMGo_DLPl~nGvvitG{v(tDzbYH;kaTd+?0*Yhj2ZCPEJo?b107QI45iq47P$H&AvW*MkL%YS+E#BgWYnGgw9>j+ZuZATz$I_hMI$H}$IkK3@EOwF)V_w|@+s)^K=4`%zWr z>;5q8APnn+hhB-o`c@4^(}c(3MW{g#tY==c0tqb|63rK66yTw3NIoEquVsfbMo~1L zZl{G#!q9&%b4+1IcN@t-?SL5vV$l?D%e5G+*!h*Yy(=;ok<#jmu`q z^@P_31_Jz(!f(_2l<1J=e_PXhbe7ghP0s7il66k~U2a89+6LHjtLq1+SWGO~2Qrfi zI!2Zrx8I=V%V{vW&=KDpC&-TxlMC>BAuxFDyAbiFQ0uvJ`i3|zcWh+Plv$ouFsX%g zj@9RtPoFY|*#H;duHmTH&y^dDbp@Oj0Fr8jY@yR9}X5uFEK z$h&(*9dsyQi`<1bIi6CX){l@uxAc|qb0bwAL1s6*xWAOD8K6~r3-;{EXp4zuX#&sz zfqJD$WjZ7rf1T=odv_Jum(^FqPA>SCr$Y3Sr0E1p+5s9nm#C3LY+EG5%$(n#2tR-O zyzG`+CGWM}{@uz4#CHR{T|Z7&-%7(593eo1cWE?>Z&Zah4C=Q)?L9-PBixyhEuWL; zRz}TV&s=HB5uEs6Q-&JwR&K!Cd7ivsQ|dP9cKa71b3F4SWvmH>OsHxas*{LL*$F;}nhQvw$4 zD!#HJZKvLk@;Uw;G2)`7VP@W^MIjcqB{!YTTU+ruSS`ydcwcW7Y=*&hM2w8pxcq5k zi2&%3g=n3L8_|z7WEW%ti5mW_kMvu;8mc(9dt>Z+AGtg<5V>qCts!S1av&JqX)1?x zBHW7AV%iYH+JE;5B3+eBjKC$$B!en_jc18l*zWEdBM>pm?KsCxEuG=#Y_oqD>;O!W z-(9l8IQN!2BIw)E7k_p5R>#l!&s}emXl@0i0bH7Q;v1=~Je}5R&;B`Lul}-qn3Z#v z-_7)i_Ufs~uRp1GrtMXrjK-t3YeyjHeo!IZ#uG~#(f1)wWE7whJ=C#iK-xg6#}usg z+6?&ZLIYfdwu`U>x*{z1KSL6^oT96$|4%c`=_0_>Z^5O>h1LEJL~8MW;I#I@@wy1; z2?!LNc~JOxpwco{aE;;rYVR=u{1rI1d)qCqJ?r@&zqCC5i_GzlFDd*+dESz?fd~T7GGC?2UGgN5{Z^R&{_69yzbQ4R zG-y3f@h&@p*w@3!8`OlwYkc=R;#(6U$|_o)-fTSg2y5xLqj4`Un5r?{5WjtCs&#_9 z5f)Y&r8pyf!<}VNW6j9xIz*!4OZ8!Ii$d*~SqUoiDgTJjFl{{w^k7lpZ5i{Nunl%ENn4QYeKdI(4I*<$Pl)0(y zN5HLEf_D3t0QTEH_cN>r0O=$~4=(Y?LeXFmq|Pfr93M1RZ@r8ObFw2c& zPEPe|AYJA{Q&SWj87T_|qlDu-6Myl+J4_$%kobJ(V+@~rui{9)K0>(O)gXQ6?c5jx zs_22D4Xg{~Y4L5X)ZK~mosng0AaY`cDVxYD+AaGv^xv|PEx{+EZm`6T%y1sH5u zO}}*d5~3Oiso90R?_muVFIME@BM)uR#GlW#S$#u^b{agu_?+2d(7~9!(B+`Ve6m$r z_rIOEMr7>Q%ag6r4&xM7TllhzpeRqI)Ld*9N1=Q+&uz*!d91RNt zDKtjb7k|4%l!I+UbNVfjhT)JeW{{_)1_XyfUA$mW&mYd|t4;hjN_Yw9|BR9jT5rWl zsB+6IV>uq5d(=LFHzcx*c#KVm&H?N_NIEELqC`xNNM_iAuwbu`cgk^aOmFZs;Vm{?R&>~1x(@G1FqxQM#BgZ8X8rr8npyKr^H&obc zmH(S^YKnqmUwmwQ{9_v8>!7S-*s(Mf7cWugb*k~Z+XSVD74b$%3)i;*3t&*^u`SxNRS`)VZMgsQz$AB7vTI)BOD0)4L0ViIo`_ zRV~}xRfq9gQ4S=6J8`u+0EWVAtd6-D1jv@b00dHATJetADe8x6?>KVzMqkd$B%aw>0yo^2810X27ufs6vWwpVntQ&3nEj%XI}a}Kei?2*nE4ln4`2u zuW}-hf6o&z<*G^@{Wtev-f=!Dhv_OOUyl_3bWK8%!;Mjp z3rTn2wfRhHfs<(ShwXJXmMIXNqULN{jmS7lHO?u!ptKo-9;Wn&nFd|GE*p^%_zSg2 z;Z|@4+o^JoSGqol7}!hl(wE4u80QYDHva2~Kl>>ClHjdd|M+HXGzH+-E2U)C+WT&Y{DvKZhvCz@Hfj_=Z3x)VHEX9!ttb_P;%mHBgLLBfAkV#hV9& zwioYe6)vVw$`Yanc=?s@!YEijD|p{=3|yjS^sSXiv5M-TI%jl7!-#9Gr$$?%L)s#dkEeW`{dKUK%bRiOGq}c^x|G$JQH1ZUJ$(<`c1dIdZK;5Ih@FREAmRh z^C4q?GA?c)inHRzH_G|qgZ67%s*=Y-1pW+bdD!KS1uULQbhUw#kIT1NP0#>3IfaLp z)11>~`2-kFLo{_%z;i~x(;Y-V>UC5mgW`aflR}&dAR2o2AX4NzB6K>=9P&Q77%ShV zYB5u}j|R32PmOcgjQw1-u*a#@GDYO;`{{9TDU~W~XWo^JT~CT^_Ld&E>AfUpeX-0# zPvfa=rFhk93el(+@jen0TJK$ZZGI-_+L81@OD&{t`SczU37n4IBI~sWz76|FLYaU{ z=dzx@{~_7k0>xKw%}x}uO}%&W$ig62Zy&0W^bbDx9Vlrcfg8iqz0|YB#7+iM?x2|6 zIp2cxp?}ak0Z^U=QW|~SXlD~F0uN>xK)xAvEbIAQs0_Yq(D4J=^A&-2?+^mlDS0Za1Y7@Cmx84@0?ng%$Xy6u$C9)P1F5Fg?NPQ@Q!Qvh?E9= z1!JYd-%8URQCQ>no-#b&syzQ60{!-lx!c? zN@O|tEgxyB;rPJ!9s41~_}5Pzp36;M!anIZ2;eFU&kZuN!pN;h{szX5B4IUj_$d-;O!z(fLeMT)CLqA(__*Up+kNmO24Nq zn;^_pXe=6W>5&HHn05se>i?D6`3Q9DFafaD-uTraSoq0pvTXp4mS74x;{Wwz^nO=D zU9z^hJ-!kFxn&bnS^CTjvs5ivz~C%wtP;rYnp0KdHZZ}uknQOgJ5}8 zUz1QW76o_Ms#MitsFf*0LOtT;c7nsE$G8;ENZLFkUy+H5Nt4NrE#X_v@Zzb9_xotB zS)Yv@r=Pu`YR@?Jhs*1FjPaekWMdy#L#0{OXq4veHGSqS6XTGk+hN&*KUS>83D~Uh z9f#i%iL`Oo7vd*14@`{Pu>A*K4)f^O4uKhwpNNTo1kQ1G=!iD-y&U*^aqOKVFO<);E&~XuxIjtmW)swO242jJ46Fz=HH2zYd;12 zkdmMQG5h(RQK)t)#J_m71niDvttfq5AgrhaJ+N4GG6-FB`j;rxEhu>|cg^{;Sm; zrA5sXE}IZPtohx*8vM>?j6+@BZ2t$4O{?gu5;mozBuz|SlS{S{AFPpmX-7S>M`*c5 z@n9h>wI4n<>t>zvk>T|2xp(MF5lM{|zGnXB3$fJK+3p&i_ig50=#X!DzkjbuGH@bM zb5A}-=F3hjR`XFG+00nWS@XI8MC&#FnOQY1#0MsPFbCpG^dLfFc%z-ODtZ1%{!0xM*kQ42lk=&BXvp$5LI^UM}2va!(MC8r&%y$?zaB^`qj zB6FF3eoyAyXvN02bXoU~+t$vFX*@*a{f^l@>`2MMOQ<$~CqE?8_Gm{vW$nZpyCJ7U z#?yB_v~@_&>~@{mrKjrT%vr+ouW|VvncaA;NNnrtF#{H6;hXl4qZ@y z9P8V*?Dki#Gb4QdRb2GA;~NQ2*=K&?{CB5fa3?xSWQV#EU%dO@J5gF$0+r3b6iP6S z1IwHnCj*5B94uQ$cUr1TfKY0`4x9dAi2o)^cq>VKrBh_QQf{1FGM{$w%2@`Zo^ll` z&OR$pq?yrgXiiSurK8>ZkB@Ki3oyFxpNqfZC?JGTyYH^6Iw6h%#Bn~CP6q_d3d6NM zm2k>OPsQ6>OfB+*3W9>r0(Q(=Bp!p(o|kJ&zHYy{ZG0bFG=3Rf7j^RkOyQY?tzNUQ z%U&OqIk)br+P3?qxzqepm3hL1$Xk9P7u&d>Y(v876a}da4$dWdd+YJgv&)A~s;=8IPlDje(- z8RIqN7?1aWxoQ@#qCOkfM&Yqe>7eux7Sd0I{Py6f z-w1zWBcgr%dwsb;-+V9$#crHa1RT$IP|FA+dM;@J+Y0_=pN8tDU#|*)Kbb+ zY?Q~RNvOw%`r>LN^CZ^)F^OZ=m`ln2!~0`lxJol51FZG`BkRoLq3r(uf44|fM3zb@ zMD`@vLPUj-eII2jgpg&dWr;|-ZDXI1#9(A!#)vH0v+u?__I0vvzjF<`Ki|jiZ|8C5 zGS^(^I_LdGoYi?Rv_snZ+sT!h+7B;&ghl=Kb<46x9!f2~xy*l05;4-9(ulN0 zZDH-e@|hk2bc}1~2$tXrm*`}2y3D|N=$o;&cH_MfR|y6A5fyC|phgem(uTV{ld#yM zK_EFSGU*;z$Wetkg;+IW!n<~L~MLg68R zbF+0|5s?_dI>VSdazH$bdHYAc%`E{_%qkU|9r;;8e*65q zU6!X}>%#d~$<)n%qS%VRKJ(q9vnYgr%pBhW;EFRW1**nBJIkDCXD6zit{30i^^mZ@ zg?GY1QV4ogoV9AbNdfyTW$5JkY2^NZ2m@B1?PcZUq{Jh5Wh&}^rufhV9KL^>k#}{v zVRc&n4p2+C6{mi=3-#7dW@;qFF0G4&3{KqDoxVF-&WiZ-p#pOsQC3*)&avtFbvh#( z_G=qU(zd-<=NRC&+nTOi6v8*9;ei{R`TpL3G8RpHhrm$X3^8xIi&;h@einCtl$C>r zu@}1G)-& z&(kQshoCsb-x&xaNoS%$<6)VZyUz~>UHdg*kj|+9>Fg@TJA`X5jO2s z=z{wIVH5OfnE8pV1A&afCeWwH`|2amgZr|l_ho~$sPuhuP+*b{ZD|pwBb7lFfMED| z2R+RKbPH_|AJaTSQn`K|v91JLSTGT+p~lp@g#22_XIrFL6c={>lwFb zIfl2EYV)i|yFEtd#snhhL-a4C+RB*Jc&(0`VNzLe{Xf2JU%oOp(u!}mCTIb!vy-Rc zI|h*ZHxaF6*8A0Un}U0rJ#)=9sUE9k!nW{CrcRNh*($dS$falLN5ZOi-T}FE*{DCf z#Ni|)m)2NUA-pJPz`R7jMZwCUIipo>WRNWG-=vcMQEA*couj#L_R^D?isuh6)oh*J zVl=M;$x{+(`_E%S$QAu|Z1?j&YP(S~*VR3vhlCRz$E;CSEC4q!N_?Im9kVjfF^jOl zJZ#R|giIPh&;L3}o+BF~{g@+EYXK3Wf?&x8wkZkH;_nFFqiGsYEU&%eLLnVbM1}hW z_cS1|g@fdvxP;tyYler@WTFGI>p0Syi0g;}mJDkE-VbIVKFIK!glFf`hmq8!xZWcs z5F#<@K!xE524oGuc*;s46~^M37p3~t*G`J~9emb~@~Zn`a8MHvQ_}d2b$oP8)S{Wm zvHjerpgokLXm?FZTJ{FZi%h+a;Hi50^XoGVfLaH7a%x_`y@R|%t`@yEsTp@NW-FNT zv$H!fGGL02lfN}W@H=l^;@^buxEJBr;^HKELl)U#(_8z;jkC8jk3X%}GYJ0t7TRd? z+$H$D7A!X5CnoO-trq#_Z(*Aa_XgmDbF5D|ClQ<98~pemzH<)#AVh{9gvhvje^QU8 z?Sy#L76&0RZj7BIH{>mpycSSB2O%=I0sirB9?hgPM|t`$p^m-s_@VV(whxQ0$YlIF z4<{Cv>#5l#K_&FZ5AF9C z0?U@y+FOUjsUeKCD(Hp{l<@KXk0wG$0G(w#+Np2sb=;l^i3W6o$Zn1I{~HiP4tgbE z%o@!47moZ#N+aq9ppBr4H41Jw03#F#9~h)2q+h;(j!Z}mSs^`|Wg#p5mX(7-%TY`1 zF7P=?vcuvR8n3ht^HI@b`0LD8slvE|h{DeG2`2Q>HS@gSE7Kuw zMD71at|~i7el<#D43}XXpsA=xYr9&afs^}P=cGD&gC;E^?_1anCp&`C@6PJ#{m;Yf zU_nq*-KkWj$ns8ewzZePpkIIHt^M0E_@Yt*N3r5ckU))$aUMm}mHQab0P&FZrHCdn&3WXaoMZ9ZUG=fyD@jbVK?-nr z2Xl=N#tn!t_Za9GalKK%@*|4yyLD9m)J{hk4%U(^unFJ5n9k7^qUIM-^!r}3_KT!h zLCi)DN&oQKCDxTYYKqU%V~KECa{j~_wN^B*cmyqvV>wQ?$U}l^8vAT{^7U4;aYpI> zd5=sC182*g5eAtYyQqfsYRk}a`$OycCzEPHy?lA*ZIt#pFtNX!e(Jfv0Ww}(%qG1f ztd`nFBcIGcG-|3X&W)8vji?7;!=_>wa$8+&1Ms2a0sIC>oid{F-Pcvq6c@QEpylBffb0&MdwKR4War^1ou2WOYK}xLBT$A8 zYzDzblps2Uv5rGgE8y^Xh~4OsoPkem@AI@Y(l>z)gF~`$it-Sc6C{+Oy<9D5| zvJ#|u7Qryp6tO=k;^3f$%frvwZ?ffow>VwwqgI1g6lHfjxVbXZOofv;Q?}dCrUbfDbBxtkVXKzER1}Kkr8*k-=sp z7qzzEU*7T@Cn$Id>hs*jX>;s3c@(#t*bYq=OCkS6t=_lYt~~;RWQpOBZ8CM4yy$fkyqErk(R$f-rFKEcughtK6&`6 zMw~38>;RMs%x96M0KeYg_6j~!Iu5t@8U_jAgS^eJ&6JFSMs;ZisU)~v`FL?XmT}Y) z$sJbHBLM;}g;|^AJaf4br0zq`w7Qb%MrRo|Fc@)OO82jhvfb9z?&$q;w)7fbEZ!Gu zUFA^!VjI@AGR)8}_VT-$$A=N-LS_zgsoXx#VMDzu=9dKcH6tLYeNL383Z2zrp?(7T z>tN3zVY16i zwDNj8G$w)v4dk_4Y*na=)yj#^pavx%ZD}LnpsmtG?Ij ze^FkyL-`7Q<{b4Y`ST>Iy|?T~YS{XU-tXNj$YgE{dC^@Ux1XqVmA2!t!$M;`O1qlk zagf6^V1jSn9-@rqsJzJV9eLWppNyclo9^2C^krMtdLrT<#|KyNANkog!`8x{8Dp$v zDh%b{#0=C~|M}&33+Srdip_4U)A;Q*sXo!IR)0PimuJ&9byr10uX`iDcs-kSlRbR5 zrh*leW7};uEpK|A27(Ko2{NP&^9-h*b;BR%Ov3SB2mv_r`Gz=|#@M>z^*g`z*}RZnB~V5ks9mhph-&$)yO>w$wv8Pm zthScgbs=c)?~iGc)#oJrt;EP*199IV$DN~qqM)A+h@I?AN$BEbfd*dHKjs;SYI4+s_+(PKcry;(dEWLfX|6?O6|JYv&?ZNimp_@6+#~$RrHtXFEG;U2yRHsT|)Yy6Z#mtlh%>TuA2eIOR-( z+QNw~>f|uOadx(eG!QehR_oCl$bX{0R-ej=#?K?C7p2{gEtyoC9>^QSsXP|zUdXDF zp!tHK0_VT!UF?F}7>j$M{LQN^t8NiHS5>tA_10~1s*<>o*5*&}();-NOPJKCj=~*K zr7sbq#;C!qS-hS|$+zKJd^;%bHY_z<5u6gfUk&;=;?d)pxl2D1EW@Y4$!+6SHZL$F z@j|8W*744`XRszo`K;+0tO9TInLSE? z0OpO*g>!H=h6OLqOq6Tvm2>98r36Mw%}qMC5_G?8CYXV%knj0HKd$L_cPXuF8R5q1 zDK)RHZ@pE}|A+Q=g8Jj0LKm+Q#!j&eW|#IffQ&U4A_P9DLN&BzY_5$w0bP_zP^K#Y z+*!!vIHL?}vch*7$YT10nz?Iy?nB&J(5%sF(XmiGkXtH1+*vvyg5@<9SVZPnH{y&x zXtmISI^L=XB0bak1HX#idB zP}<%d=J*Y8Yo37y>lP=s;roL`P-1gkSrFaDIvOGDDKxNsTl(l?L=ZEfpr$wj7*>a= zVWrAHZ_>Prhb2YE2G-vbW;;cv=6LM;NZQTF|vYNi}ICKY^kt6Ki$(+n1n##*8xK`@Y5dMWVK|=GyM`a<280Xco|yAuk{SRdW*X*mK2U#MA(n29O9I{}EpKdN4!UEca5~1aak1 zhINAUNs+5CrI%%9TbFzeE+gC8=zG==PG`u3t%d-X@fGBOo~%N>Ud-x-!@k}EYHcjd zOVkHNYiZQTWaklq_&Zd-sX=$Iy{MQ;q@bXf9Dl_a7(_zFY8Y3Q7$ByZtwYr`R^B^o;$e1z>8$3kLw1x8v${{|c zCfCSs8rVhU$?s>E@4m!NXf}{~Zo93HE@~m%nV-;G@jJNRi~3U3hjiSO8lcBej#CHZ z&%V?NrRfSDbv_qauHlKx>xG5_RRE=Jynep_uF3s}|BI5&h}M1x zjF)%zBtPjnzb8KTZ+qT2q;Xoj0kW)B4zw}=UjwD5vJo>Ep`A~4+H0~CtnUBp@6Uyo z9pwIoXmfo#E!NQ_zf??f(vI-aJIE&h$l{-Tp|jKA(F#iXmK%08Ajr!*)`sz<;gyrE z6|HC_9n=SEE$y6`Qrp`4NeT=r zAWp2uq$!0%F$73!p~@V!0J;G9;%0y8n2q!vj?l^e&r=D4UBp4&5fv+xLXmSBE@T>iT?kZrD93t6L~IHD5yP`Q?r~1x1?2- zZGRCa^QkC6>Rz(b9qf{vY;|QNOTMNn!}sh974^5CvT{}#KDTj-Gfnb6bH<)N(qYoP zCA!vJDpnwJX(6Re&#u!fqZ{?mlz)0qfIX||%ENJ6s@}r>4MLz)YYnsd4(DR?&7v8T zoMD+zHS2}R5=Q&o$BGRTO#{5Dcp*Q@SP+hztF$`V#7X#?(FN#Z@XW=3Mf~lmyOT48 z`6Px3NX4L)USlZJdr`XX1k!?WtE9i|p`&L%3SR=S!qePW6CeuN*1q5K$Fl)$+?ur) zK|s5FcGvFN8{2PjYnY#N_Z$10-a7z%p<200KSP9;LNyL+wKRoWZBREUS&ErpuZ9HE znvUv`ms4XPWh*%p_;4R!XMC$r^-bGrOAjMKm?sqHXc%sgZb?oY(+b8wXd1sN)NV!L zmQ4B2!?RZ3W#qlYqZBD9TB7|ExUqI_xQmWOpm8qE=ij5J8xGVoQ%A?KI95VBH8q;4 zy+Io(=YRN7jtxl}7XN*eqAAP}Tux$qX>i(wqcKh4a?}5FIaZ*6{I|~z$}-jK)EB64 zQr}E6qoJxgdHl|u(QrCCx*GnM>OECg*Amu@Pcm3Z3vhYr>+8HoKK5NbV1x3scS=#+ zkW1{j*hdCMG$1snx6EzPY3(Dj`eN=zkCFi0SYHJxzwW1y^UT(d4URpx5w(iUWtzyH zQ@f+SrlbJS6`(;@=?=1*aqdhQkITp7BOM-Ip5xHTXBIGO%rcF1NJ8#!&90^-kgi?N z3K2;C=i0T0$q`ulbIlE@pqN3|Eqlobt!40Bz0*=gZM1 z7@l_G3U>@1hodF&uqp0I+LXJ0rq`Ac`)ZzE;o7-MTlkniO$>KA%Awu+s9=f5$qnU+ zVluBXPw$KZBvTqQrm%%FxBcl*!b6PM9JA-#f&xULvjIZ)`B!P*zA1rLT0T3P95lFw zfy#Zs+y+ZW4VA!w2Q5}@!#4&JUg(8sgRYI^I2BsbxpGba+A(mNDh7+kb^UNozXM?f zF_1m&87$tV3N?CvTMOrW9Mt~pK|mmZ0-+EHMSr2X#ykDM2sf~soNxW5C`NWT&F3XD zTBz&~{+EycCzSci*JS;@&FTjzUR z!%l;b?}w9dw9u@08*ZH;hugWC&+8Sxvz1?(4u#~eJwIQ}i5mud3{L%_Xwn9Ec4LZv z-|}-(UrRvy7s2z?>V7A}ovDYuToNCDyvUa^Sa`dBU4-9VDhk;C{4wqkG~K=SrIFhD zT;;fcu3nXUJ=#{yu3pctb#2C9chRl&@+HGQ7z+9{xyL_<9FxMO6nPC~b#490T%YcL z;-Y*kaZwsBcotIvwp5Bpmk3;)mX#LpLK5+GOw3EvY{1+OiYG+xnlNyt0nDqyr6@7D zGL$GYVDMr>%s?!Xh@1sJS8)*P4a`ZatsVV^(WiiH7P{}fq3Q~8mYL84J+s5Lp{Ci0 zaznZZnIyzFGp0bgSn%_DX@&%~S`8vV97=$mP!&Kkf#|?x4+3G5`yA}x$8pYIkyifP zfvRTpOO&<{(k1_suDlJ0(jk;qe`qY_njJYH*Lo0U!14~g)=MF~`#X-p>&KFh@xBbd z`}QT5dbIlc6u(C_;kS=j8=tSR`d7nS@~t84+SRTKm@4LE_0y`FHZ9p#UD09jk8@Nj zhrf!P@ZX;^-IsEBR(|qK_Vt>coBXkeYVLaO#;Sl{lW)|TA1&GFZsBQ+3^o&^CXT%=MLEnn^P$Z6Zxxs``f>e63m^;7jXbyV z!L`K=JS{Q>0*_xrv!U}lEjM|rd=N8}gVqvs>fNjf-DmVSn~WztR>v0eiQI8x%yZKd zGD&I|q_(;C>|rj@kD`Czg0)4tp1ec#cg?|8b;MvhkphaK7 z0aJP$9L_QJmm}Q&Z)Qze7qQuQ2(ENpd9Q67biXrsn&yyNoM|0I2Wq{<_8KJOxD93k zK+O1#MJ>zXqd`gve4V$I_N36*!*yQjk&N_}TK?6t*EfB=z3JBJkU%WA`yxH<-RU52 zI{$l*+bko#zOb@XFbI6{zOO$f=CUPE#*M%)UTn9WoYo2PsV%Y;2^|t5*mCEg_1WD8 z7iORHqp3eXC;Nn~n6$P2tmmfuj=b8x{l>1Y@S^+Mdav-%b; z={#}=gxNQ|L(#nsE94%OWbmRI3+7XUX&YIUI6#_KmhzAR<#sVDMHb zsKy(&^q=N`^B!q6m5T1*KV**gYHGdfPN$u$)5teZAEgfQyt%^!zO!V|Rl}tW}M=qD^ zZOg({ z65Yol(X48=^)A0tyH;nG?p&*UCmFHWSMM*W&DdH}CN?|2TWWf{{fljZJnqVf#Pv*v z$xQd68qJ3aT9&}u7Tg?`<&fYxdv^ne!Zb2fy7T|s8uBD4CuHO5E>!4cXSkEJZfxhy zKEWAjtr6bV{%p5qHn?22=(_sF&oG1ueJZvgWwd48vIaM0(7OG@VS4Sh`SIUv=6^yk z^_TfHSz^op1bUAHJ@g*FN(XEa=4;Mblm{E^Gf@SYte-D^|4WWsk#9tWM7gX!Dbnc` zUncI<`JeWcCQU^(eOxemKtR?1&z?p z-rh=8&0TugE8IObZOU%DXZw0|T_zU>toeFxJR81;e+ma_khac?_T_fhs&WKFn;(g? z@{LD4Ap~skCT&H=bTg#pk42szJGm#+gq#}-vD(WMR5*?fp@ra}YG(!py51NF3tk4+ z$N4L1Ijxy6uVnrH*o2Z~819=_dDn+g&qE=GZV4My87kpScqiP7I5gzyE){h{jX|OOW9`SRTG$ z!wtp&y8=k)e9HrFYR}R4Tt`i?yu}8i<>TXiK6^068=;Q?J+ra!zmU-J0Jsn%HTr@1 z!*aZ{^-akB3jX~$RL)Q)?8rfxa<35u3c9XdO%jrEJx@XR4aAuA4~0Rn`R$`No}4kP z3GC$wqm!$n5$D(s%(zef?-++uFpoolMFsas)ho5n5rZPX-}$J?$jUYt#BEG`c|sAI z=<7turx+U4fxoIf@nM{0V)*Jq3O?m}`2Ih98Kb(>9+er^I_ht;`(hYHaTLj-8~grFH8Mh{e=q7hBBju*sX&8!}tz@Yd5-qy1;Y&heG=)n|tBkA}#;Gg|;HeTGE<(Kw{{qV1XlBl|qxK-+tk) zMgxMW0-;rjSpbB`eSxlJ4?IMHgO zG?3*n@S}y8O^!O_?OPbmcm_CrpXIGR^AzN} zEuc|CrsY-JRK-_~`~5K)Tb=XF8=8O8(ierzNV_kDEm*BT|JkBDK%S6$mb-M6;X9iV z|01lOfJIcaEXO)<;-r*N3XhD0zAW|(OICkz+$Sc-C<09^FcO(_#jYYA9tZsqc=0g) zl<4^Ek#;Tz2vxa31*S7$Fi48(Hv~W+q3Y)&s7-`sK|oTu1{AH$|2Jx8YTbo3k0 zA%XD$zp@s&WO3Xmu@Unbh_rs(MB9VP+otN&K-qj+T}u!ul_D)d~vC@~X#e&*RCUj1~i1%Up? zd2Ba``h9XyzGgbFE7XsmcYil-!h{bBm6YG|c$qw~qhJzIzddLraf-TotkF5cr_Zx& z8-v-{?!3N8ifXW!=V5&MkVRvx+_95%j$WKOGH7t%EMv2LeFDAs>X*56cWmoDX9?+% z@?)+JuLtkra|sE4cRhh{{^uDfE+&s3P;d-nXaSrU1p~8GY`ad%5AFmo2^*t1n_0_S z?H}A8AZb9is}Thp6pjMh*_|u~YMe`flg4bqHK||zkh_pz+9taz5CBrgwE>!RwezJd zCKpgNF4Yd-8Qkz^m*J^7lN^4^v>POt%X24S)03L=f)KrC=Fh6RGyYc<7YXp#G#WF6 z1M?ii5AI+0bBJ>ca=O1+wD4r1=Wggszq#ri?Co+wh&uU!QcghMm+#+KR>-k$ zPrl4xi&r9NzSsINJICpcIEQ#NsMWn49OXH?A3X>HWCTwb`JSgXVU@vf^uI)W?D30>D4olAGeXvN`1f$eoi%T;O~*X+ zFSl^A|B+xFuejVPdA2~^F6$=_jg$@XRFjcfvgUaBE2;)FALnedUz{pJwaBT=)v3_B z%6kUu3%MRcUw#=JHMQ7HeX1T&KRIY6MaHsF8;jtYtQJh&#-3VUpH-9$aWcxBbo)r( zaUl%VIn%H?h8gyRP^P;d5$o~fi)byeh>QYFEY38qlo_;06ok=hw+UQ83(x0l)Z{M| z3wmgf53$LCuk(5n^yGu@8fy-tJwDp0UEJ%go1I3CcJR|t9KG-j!czK$Y5Rlp$MfgW zw=U#{JXF7<2^NMHfTb*2RZtwI!9dBr5M6LWM-Z(56kIoi?(W~VfYSeVK*Nt>5+q2F zf<_BD2f7|ibNM{_E5FSUQt9YIlobDFk47X%YlDCzO_W(yE>btWE&K1m{h;02Ufv_k zsgphYbX~^HKPZ-p{vipeV}T4JSA$ne4mI_}ap}x!`jezm@)f#MzbQYT{y16;;-NrwrRT<7X960b5($L(`Fj|l`QapUKBH>2 z|JfUh0b35pXvHkbiq5o<*r<$*&Jb9IBh(^2hxyXaq4_9@D_%B9fdNe@4jaV0Wr$BEfXcICd|jwSzliV5lq zGp}d3&i!%}zA$irg&sF2T1vw)ghiVGte?E z70=eVtOMFSiKH-^^Dy)g#JXe3f4aur-zs?b$C|-i`B|FH=C+?uiGysf{KR*%{m-s1 z+w@zCG$;p9rl&6nMQJxLK>!oBeIx|~?Ruae;7Koi+h46T75dj*Nfn@;A@r1}pUP)Z zs2LiC5ff}grK?~RBnNQT9hVTVfe!tXVrenJghKEt+Q+bX5X{>I=tX&wS?pSB5Lg%x zr(Pzrl>Bcfq#^(q1413jKL|;13Y>vnykNaJ!zV;TTrYsG9TZzT!P*Sg3$C(8wZrT9 z2>8Xs2b~>l18Oog{IFmQvqbz&NsEISJopG%$w#S>d;3ch48)>bq|^ad7#xvqJUCUW z-y{(C*rrQ17^M2Wv5C1^bXDL31>45+SI;_M$Ob<+QTmbH^VopSqfaWs53_$`VZ2&r z?}$DgV&_-sA0Qa?TX|Nn_&yF*wmJ#QpB=rouU&ZjP?z_6j*gs8^+qlmPfg_bHRBz_ zAz;E;F1_KeuQ!jVFEkDz$fvhEEj$ic)q#-G zi>8F=vMab2qg| zlmQgM(9`D~+X;U1>k^7fHmr{@r+}?Vss04ghOxXDv9djufmmoSY)!Ro9~Sld;?b~9 zpU|4g+Ni}9qO_s3G*JnhCgA(tYv`CAcocegNAiy#vmku;Wt27o*bXa{zUVpnAO1a) zaXBmV==%nqhhl+7lvVkjQ5kK63GLA!-qQd9&I`o^`GArwxbdK5>$Gaw&nb5Jq%uXpl|!^u0sL3#5o8w1q)7prNLo;g#f+X!r6(pk1O8P3 z8wexI^Tll0Vzv&-@CYfQD!OHlj5p~d*C>m~>jvYvxIaHCq}2T=xK4Z1(4_E=PF?+0 z%KSt6)p`2Nq#J>K-oxK)_&krLj*_0|Zz?OB&Ht_jJN=8n1->wZhliH3NqwunIBSwW z##-4y7176SsS$pi>l%6U`vy2d%TucBX6=%S#U9g7+e@CdlAkj{M7P5w#cTNZl07UO z{!FSi0!-GVGULFqwE z_l3?ZhJTHeOV@dtV{o}zxNAU=sm-h6!JoM}#=n^2>7oDOFbDMBKWnEY-oFa9 zus+5wKEHJJIxNiq7BaZ%KQK)5*M6Aw3GN7(bsxLhxfeeF^a*!K0a8XL1wPGlfBlCI z=We01?vHkwcul|`yyATHUYiSWLTiTq$1b@5W?=xVxh}N^lI3!K;*f5KbCPfW%IhYM zMQg8vS3;~~0|zSwC2-l+Pn_59`}e+&`d=X*q=vjgjZUEWYJ}xrWCC%Y5x|!zZ=Ys* z7<4py{*5>qtz%q|@taYGEP3-OP5o-*M9&cF+-qmrawra$-^^7e^Y zwqPWJy*46G{fU4Cazsjr!w|!TiTj`6tmEln!hk_1Ug9A;7hm6UanE!2qQsWG{O%9i z`Qs+?RhV{fk;3u;^{Bda8uR>4z3Sx%He}+)j}zD^iS{*jW+W`&KDy1xgFS-2F~U%kq)9fUX7Di_`o5_)P!q2*4*W&^xp_a4|&$f}1o1Xj9w?4{=T*@DnV zy14}owq4ubyY|^2wOte*89wR3U$!oAS_W{`uzq_II-sSHO$I#b#%w(MnQ6IBF1)44Kb*NA?*dRccc3299 zwGb`kfLC_rGV%%JQJQ%SlhDC;mZ@MamxwgtnHX>&tdQC z<2%DtFfo^LNC);&$d?XH5()xi4`(UU!E087rJqauxu1_n6vWIpUc+Qob^f;Uh#Ta) zOv0Tq8sZ_O&s;!Dh6KeT@ZF{J9ykp_Ip|C-%{8NjkEokc{0#AHT=0lI{wNW z(7sP4bCDB&NI;~<}Tm@s>P zQM_%`!_n(!7GC@h@9QajSxjoS{Q}u_%Aw_1R!isfW&yySyI^IP@NDAlQol#wcj+oj zX?Rg#`HsrWx%Cy6ea=Gb-|4be;)N6K};eGWG!amLZR$X+9YNle%oIdR}erHG1kyFm2*Tx$+Qh@ zn+VfzhSrZt0yqquh}K>Np6jO>E@g$b2e6YX#>L}mhUyR;!I1;qBf^K41Pr<(Ax-&_ z*D>$gY98b38*wOgbeQ4X2~H7_8#lgP7161f;8FA9bF!n|p%gn!VKbV+$Vfs@U!hb| z?ATGtKAn=5rgoxxgoFu)7$~z{v7fJH5g1)4ouIj9+8b0vPxf{1X763RoUfl$D69vj zVLRB>c%MRJX1kdTD^Mp~nP6uW)U-Zex%pWp;NzC3hn(+F6?STaC+FlhwkW-MELZse z;@al%!c1fvO>;>Ex?8IxBEzWzC(JPyd)syUJ^A+K`AcQ~a)~yN#nAF4<>-CbyRWvV z$WEaNy9p#xuv9UB_XQ+2xu|@?Z1zN#^;w<5wB>{(8Qkb1qC8p5e>z?xZuZ+^w@Tcf zHNoqDej?=vzF&m4F2P*^cU*aNzkQ1X9hs%yj&8d04U$94)FSNC_&5*2o_0-`TlYc7 zJL$D^gxx(LfcrsTG`~is2%;7t^QnSK83mRNL`6`6sE8c?rb^5SAfqF}{;+1Ky*=SR zTHg)%T!UA|Hg2UyYqNsv<$3q#BX-@#z?uBG(Qv^XDAn;WY9!bSugL{e_0}HYZ3qhD zwSaGhv9%*ow3=v_B~FtTt$hJtF;Sl!%@-L#3?qjm~ploN53#47GkULgTV z=iarWczIv&>ZtCFDg@aW``oWceEwSF)so2*UkbkbE-|_i^1b7Rfl@y*gVeobgdK0Z zcCx1s5YZQVyw+)`wLzsVojeuVn)} zZ&s_KuuP&-+?qiVIRnIen1;I``O$rdJpCU|yOcDvM+9jcy(iJs#;xmguG-UMJvFDy zR;b*zau(MTwFX%f|ck$)X304mM)bJH^i9`rS1!n-B}*vKcKTY$Q4wLxPCFN5`slc{9g3tKl2eT z1i-*u&I`)Sk)l1&p}EpIYgFy$6R3S2%#My^Bv^8?!Ibi2c1nI!989t{t`>1BH5*b? z0hr2gL!b$46KvMP+)9ul_@~g>9CTRHiAE_%m{p&MBQeVP2#)}Q_q*G!VQ9N-$VWr+ zVU-r4_ihXFxW8DjYy#;6VB5H1?jQ+oIQ*aj&ufaf@o=!x%Z&YfqaP%GqP;9g6f3xZ zIF?T@<+^m*jX%@l--bUgFlK~m+0Ff~?k)Bi9v&T@y7Ah9Y7Wmv!$A*RkaZm(^0Vy= z?}W4l-z)b;zD?}7VW?4{K*6(*MWWRBi)K3k@8J*c8{f1ue1}kZX3k8N$mu}y-Q#pt%KIJ(xWQ(4BF9@8D?l=)nM(t8u_su<+NAdcJ?a^8{Rhl2yuif5l z*UoS893fiToFWjbtf_jl`pRbgktI0WTLXhCvL&`UJEFVTT0ovW_w)uFUQ-^**?_st6l+VDMxGD~h0KH5; zfH*)7c^F_{45tQaJApJm4Hq&#<&l!3xJG~?&jT@T`_T;pe&rIFDu-6U;{?9eEsOq7igRU%go`|G&Y1Q1~0b6j@)^ljWQmzTtV?`bu11 z>J2(Mi)!g=c|Ao&%YXU!xI{$LMMO7_?VM7sRyyBG`J|#wQ`-5$BFtVsmTN-#9&C7{ z++bmUa)@y=S|%V|!dOO9eqJK6iL%$ElIiP~&1+re_O9o1mSrlq2S}{a1osPU#T))h zOQN$6OnX0`S(Ja_p<)FuVt>gj@0PkH?pLlYWsdNCkng#qFUehX^BIhfyJen#-SqTs z!dX=uO8bhDDk1t9l>Jyx8zq7LFsbF(>3#ED0svM-$>2iV(VejoyAOy;n@;VeyV?Ak zm`TlJYHA9CQXWE{qWl=JQV18aEB35%H!~x4xVj9^4cUqf^@cRRFFHtm6osqkF#+^D z!7?&RTM#r@_IRS{%+6GXgUZVBnu7H7j7{3fBmOM@JzR*M3O!`6%}lCvG=^#MfKuCZ zWKgCFfaine2;b#Y_4x}&qh#bF`H#j0?#y`1V z&>jnzQcba8nE7zg!9%x6xX~M1wDP89*G3~!WrjZf6d=398X*1a;OxiM4cNYyf=0uM zt+-ZeiT=h>mIyRcbCc z98(68K|}u6<=88O*W_h`@fxI3=J4MUp7w$h4rAR93OVR$X1(9k8dXZ9^cB)E6pm@a zud@|ZUp=8u^_G(d)FOon%HN4bKYQiQ?~scXy)O+)^1jM4RgFQ!b;BZ7WbO_9SjMd1 zX>o9tCp6ruAvgX~^(g4yr+X2;@Uxyl(ztiub2T|hFx8zj$vxlEmH>gDmke6q`XQHB&Xt14@gGSjS3m3d|Y-(mCR19>xw-Pp6p6Mm=b+@1QORmw#mgX>KMDR60W$Na6cq{LrWw`XGe8|~ru0`Y-6o6ggn?YhyCK1GWuiy3$lXxsH zT4VcE8Wum)jpbY@=d{7H|1;_vDr4P6DDBk&D z)oh>P(ccxz--5_zPEehc<`U7cn`%o`!+=gdhRz2xNlG0dQIKB3Y z?8je>f;66~4#Gw(@fp3SNi>)p*bZwwrVMl&7(*q*7Z6~MbG`s(VT z`ECG_vTht>?o6`bxmwnX5BEmqerL^S8SaywBns11Elv;A-q*S*WvR4J^; zr8Hjbi4H~nYVS$o=wB217;xy)?|7f2F=5MWz>@ z>&-meaSFX|3UDxXk%RqSLv?Iut%L;?;aCc&VZH7B-0i1K(Yf><4t?o}4PYQl@WU#j1X*I+|ZcDI4AQ6q)d%un{9YLXA#sRqAKv3rlR1pRz zge`b;md4=>E!rbtwVdF1V0jnrXa)+xpaYb>mi}cm$z&Ad3I+uy`KkBG=26j- zNPG8HY35P+(l~JiCe<(-|2daea5_qCoMh!6Cy)o18(r3H8Y*;|^v*$;KtisAGY3+7 zgZ3F~%>%^k4c8)@p@te72GzwqrfO!*odx$d2+jLj^RInBc?QEdc=$&qdevY>@?Ot4 zTTF8s&DrO-%-M`ImVw>T?henLn#rj)oBFSwGx(4BJu2ZK;EfR6sO;K5vb)p0uWmH6 z4Ul82lGC)|ijC^IU5NHkkBW6D3j!~|uTA6Uc*_vo+iMG|^aC&EIM^h*zcuM0b5C2` zeNG0`I>*AdR1Bx(RM|0#SsW9dRP)5vrElKxfT~17*wjxQh3=js3FS-pa?m~(?FK+0 zfa%P80CTu-XBBXwL2#e`-O-e^SL6rBC@`oP^x;8j?rI!ghRwNNh!(~Icw=LBKuzxh zD(sHz=qzxkqd$*c1IZH=l0XyzW`Ix82JGox?9DjrvdZt$z^{WG zI4uge1!tT$@n{H{CIM_5YWS-8?b=UYKN@5%!KX>n1SL>{n$g21jO%GoVH~tgjP+qV zyj&0}dOZJM?UMhhHpD7jyVpaM2DzAsSZ`f!N44D9sn0Qdkdc%=nT3gBjT4PT|=i&qo;#Zv!OBkUpFz1tnM4M>^XA2uJCpRrVN33)*7dD$^Ip0RPFSWmTzj5J5CAL zO?!-obR&_m2!!g2*r0m&w{@E9e(^Fxgb5mC@+K(Go}4wwK(tRs6j#ezs_kOL=WDOc zcy17!p7EFKzbr??b_Qnvn{Z|{Q<$Hz7@oE`+g+ z2Zg*-ppe)2z9``VoXFGCM;YZUXkn;%%Nyr_Tl<*|yGRF7GPU2Tv{N}sA4tJyP%0uW zGR5^3HUx`-oQ@P8C!hu_(+c|l|GhZ#Y{|K^4AP?oBHhwmv+hRWtN$2s})izPZC}G>)o1br!B~-;xC64IMURBufYq>Wt#l{C3<&V_`F zvUfuSjW{#uyXTtMXKHaMzD>!`e5qwhE5{t!>N|I`8umu8!^B|N{6_!n`93|QMR$C0 zWIX_tI(4zyv;5k>Vz_^81%x=w$OxjFB}O}&8jMpU|NRQeFHrdEnK(sF`7;n+PztWu z4qOy~Gn;21F|d&h`HpS=FGaQ+s39h((Dl#d$98)l4lOi;m0R;~K#`q==71=&0~Yws zOhA!!0ZE89`Vd7HB*A7h6>EfbK(C4&5dRC(2i60$74;(qUp602qfU*yr+#o9t6!pt zczUVMUmrMl(;<8`|B(|0dcNP8xbgCKsD1MhaiktU6*4-E7Y_89GM9VxiGndhj-;DH zOZt4El=L6^4f>hU&zdxfDFw}ZA1PSyF<%fhiqN|pC+$-HWgWX2nyeCjo;sOTq36Pg zL(s?bj3(|9%A`v%9U(f=q6^yJl_R(FF@5c9wEl~e3l}I?7iSmfBiGJ3KKCuc%GC*H z{b3kk8ganIJ~iW(#XQ^?z?6h@xR*$FV0n@26T9kpdJJs{hPFbRrG(11;>nb|%OA5s zPR~QcIj}M7n7kX-2CuSp)|F{HMX<@88`>kp^RRev1kpGL!n+GuHh1>C?3ow#`S1Tf zvfewM>i_@$e>Wr)*~(V3Ny;7(6|%=Mk0fM^#4(FxC1r1gV{;H$2gxWqa>zXP%sMA~ zeIHMw_xtnv{q_2z$K~-nFVE-m@pwG%_uK7yyMNVnt#r%YPZhJXzQCb0>HQn6KGeA! z?d^jy-Sz80js%F(dPvi_oqG7#NNdFFx)H$mRuk z4&8$(pGzrE2I-1{{Z|*_6#y(kh$;LwSnXYr!ZD(SvQW34R-TvBlY;p8cVKRy3_w-Z zY2LQd`1s%5ivse1=jkycklfsy1#!e8_2_x*~C^(eH>UUSjn&=8+h2O+-}rR71&T`HBq05|Ka%2vKfIGfHHJpO5P^hrl+ zRfv_AGQyD!9OWi&V`C-@Hk6A$_NQhlER##IV;tTk3Q+eE=dw3#H;8iB>~BAz-A9kB zm9B75``r6$daga;{TZeQ208V6Lz)RjGQYY(m#CM!?&mM6c>oZ#R}Gk7mdN;%P!zu$ zp}t;PV_D}MtL<4mfUui8l~QZZLN}tvYYmcE3nC>~;yOO1RAB&o&b8rbhBDSRrbet` zCQ^MVf8WP6bdKSRD0Fr&t5OTTjkQ#-0NY56c^w5AHv6>k3aZ(aMLMKr1$9I=6zFuL#zP8 zA!pcQ=Hul~nstqLr!h7U(Z#=JNG9$d(rrMSb>S&!`9bch!}v&vo2Ze;<2r~ZY3|SF zPOfBWSO@JD|D-ozr2pTY+{VK$AllcLl$7x-A|h6W|@Rul`PH&eBER}Y0lQw z*>{lIlX{=M|J{(0c(}5%gflo^7y*LX^LxHhdy*XiD-h1#JFmZf-7sq`Opiy~8gy58 z5VL-MsAXF|ULi_PJ{A&;c#tOxk8fAXL_Y2;OG&sYXxZNuY;{>UoB4f;$FqJnuTR{S-w*o@v@KE~shqC8`@aI`T*9uYiA11|^ zE13R!lUzX_7fB#YRivt@a9JIwULbuNJTwOCk3u3iNc}MN>jp|1OoVW?SsESq1Vpw_ zwm`10a&oE;bTk)7m`}CgxFbp4z+yH;8ox!{g(AejQQ&{Fe5rxM>cJhflUZ{}?!#zE z%>nd!b~=bTkV6KY@ebLO<8Khu;KyuLmA;s|rhGh!@YxuHU}2Ef9{PXsKB@dU)F{{m z!ykG2KC+`IRAhCduWNxJb$!z>-Mt{Iz7o~l{f+s(Ze6cZqrv&#dgo628d#ez*jg+v zfs;EcscmqTqnPV;F-unqOBph=HnZqw1hKVN3{z24)RWZXQ>FVHP09Sb%HcApn|{Gq zy0G9c(^1~^iDtY7f(|cd*xS%=BWD~wOV>uyPNaSFX0_bZWj9e@1wwgK_%F0Qwg$Da zWLc+(*|Xn}l)Ww!Mz>5u>V$l}uruFy&{x^B_thn6!KTjk&VwI4dS=Frq&xo0gg}t~ ziFZI*0a)8aY!L05YkP01^A}bXH`avjC4uPn(&W#tpW1AO-e|U*tbTx4-{{^Ks}zgD z?U|tmXS>S!(;Sp1q_==FI!0vgYi^bWTmd+dW-y(@cy;2$NWh*047W}N5|GK63|e4^ zF+Zm5=-`Tm+=R7&#xSFkLB7q%%0sFw;0aK~BdA@2U;#or%ambUj-b{8(don}PuR4F zK$Gxz#O-kk)C;&kG3LpY!%G3oofF89y9)Z}+Yzt{FkqSjg~QKHcye7-RYDho|JO3L zcHOba+fZ$P4!Z;GfX6`sHe}CDTE2_*e+-6r)S2`Wk!Gq!PKZy=t=`AY?Qqe6G&7 ze%dDOqMekwg4p)RMu%B%3c`?K2!+mE)yHrb@UguR(pWw5j12gcx`6>9z@xZLFY%kp z3EsdS3<4JR=Z4!ZS7%-Us(?6X+m!P_iC+aLMcKaqEy-~W&iJG=m5hU_JQ9Hfw@&t1 z_ERn>Jg&4k*Bclsz$Dwh(mEFuLkbX4uscO$7D=iQ1@2@Y&xS=DHgE9`}zB_TPu)3ST^LnN`)pVBYSdixhth2!YH zeZ5ysQePny=X}%koU|W7>|Q9osQG?u*m-8b>oxC%%3RtmxAlu~wTSptFoU#JOD-}m zRx76Wy^DK9Rz8K_y|)e~&;y|HA(D>DT1`H!iM8S)+sNu5ALodg5eG?)L>se~O7nz1 zh7SaVKM6WWvoG1bcO|~LmE@b}WW?29W7kZ(4rO+8GGAwIt{T+iw|S*hy)nEXX?i{7 zep_pl!Cd;l9=v{YXKkt)JPn@Amw`>5{QiWDm(D@CfG5Y! zvJrY^c<)Ez4M->}y?3D{ro;lyx80B%mu6tL{_}Jc`w*_N>f92Cg4Cmiult1 z)y4yKl`+mixSd=A?juL^sAKk`1`Bxg??u3%T#1b!Seze~5m|P`m!{ zgTNL<1$A)1kvO%+-scqB+W<{;T!%d(O!l?1)5#KTzDlyRyGr~1xqgX8kRZ2`H1DnV z->x^s>R#CYj~y@HA3m+$(;TrK_kJ*6%HwM=bmb`1cb5J30~zbzE+J9j`r<{H$M{>p zfV#~Gxq!v09X~2G;?SNT_(6yJ9>`p9Fc?Wx-zqn0puc!o`U){3da-XBuGUzSJ5cj1 z*TB1ZhCAeGPK}qkJtgtA#f_)KQq~G9fsEBazL8uA;!bY^` z%wU37rhcz1t1aL4^m!+eVqlWrUD@i_gI<>1Yls~QGfL5+k8)q!*tyau^T%k~>ubg2 zCa?(`<@_Ag7JwE~2qahxl*bPN2l&CT`I4G3q*klt4=7%&ya43M?@v+!ngN?m4pN8F&!f@^{y32`KJ1&)T4R$T`o>R9a&KMql<$f0pjlX zrq=>T`=ut4uGe~Wq}nBgg~i2}$~1TxNV=4$=&92=^dO?i~NVY`x56DA%jLzHt6KiuZDViNo^m7o^0!1$+uQohbE? ztfi2(7x@n7=1~$hc@mL-Bs*Ug*%#l|>NIU%xp;p)p_}RN)<$R!PKfIpiI?|Cz=r_o zLFv?;rFEwEHAd6`P{jVqbck6IyGS=9d;ntn?3lS6GN(bacR|vs3z1ATA-OsDit6#} z8xAHpkWTuEcgi~v=Un^!vgIpMUCZuc?5=z7-#^lt)`=yN1^JsV4S#SApI8|WAutco z?n#w{9`rFsgXjjcX1neBK6W01J;OPsG0z^NE32D_Ydaql9^q#4V{{-lwDd_*GnXKW z7#LL7o^0cYt^sQrHAs$@Q;dRg1Wz`G$RLDHa1bnNCTbcNeHM7-z8Rf&3dxa|CP?f) zblm}f4sA><%o2#;t$BC$oOnUhC&1qTVZcxGB4fY9Yt0;xnRuVnXCRP)zh#>K!%tvw zFDW8F{f$L$j*pj0zC?>8D4dg~X*0}+?pD+zGt+EjXlT^$2e@-JcX-d%b&LE|v{+iY zX8Ly4UjbU(on1To)ux=IZ!Z;-zn#ICf*pl~7S?~W1tZ;;8Ge5l?Y3TW3|ZU!1`kU{ zO@H~EfT&KX-L4&kO>BJinp-gIq56ode_H$ngv7MiR4_oe#?0pEa4zw(v-TaMvyGh^lMMt>d-j zKfQG)@)&d#bp-|00$sv%J?(dTFYQ~kV`*0;PWd=XH4GX&+*y9F*ZZGG@VKdq!DvCg zPWvJm!&c?bIyLV*Z+qe6JBc>a?{917-P5P$E^~;xFQ;-va#?p{LT`I-Wlh(cqs;gM zB%AhGBL=Sv!)yG?#o?1mK-s1x< zX5+0^8_Dc>D;~l>2IF_{@wWH1d358@%g8ma-I?khREov0Qb3JuK#k5<=Xqf`;~D%s zCmY=S%2NG~&?it%MO0`{Ss-|}(nZ;)K>>yOBeSnS=GVhJf*iZIHti1;L(xXuX2a%P z7JE5|V-mrb888NT9ur*Gmb-aQCgR8G;uN1LwLwa&J2GcYxIvm^U?2=LQr(XuJRa1f zw9hH6=-n&^Dz5}H0i(*)peqABvtCv{^ZOA;SIcp#XTY_e%u?_Q;X+N0BK42Uf8kh2Gj}~O z#FwQ~luJpWNKZSlq2G9g+3}fkt{=7wd}hwevGx-rpWYxv zO7PjkoWH#2m$Gt=@Sz=B4!vFjwLFGESzr8i%BQWwW%nT*SHlw$XBXU?D9P1OtmFlc zjCr9qwf*jG=N9I)dasT!8oYJ6I?brJ1SQ3=J(S8k--?=ae&=AY8W*qT_FBMV<5X2A zf6WpM%e$iGRZHLg{mH!N&+&(_$vPz>UR7wF2@>ZgokZWz;{JCA$M*V3Jgz>a=AONInT4c zmwSCJkVZI_W*}>nev;@GXRy!HzeJv|(07S#p1p8gS`xKLeO;&WjF8{b;`7X(q05`W z>E~G^0m-J0=Q8V3V2BGdDofo`eu$ct3r-S_O7Yxi^oL^G?v9jjNso~Nt@^Si)8_M? z2V6VvN)aaeHSLyL{9d`n+r1Y6X>8s@v&GN#`A#6nd9tD0SKZUI+rAvV{R%s8C3o)P zv~fl?0F6mC270OqY8FH)zZ2lt;yo-9AwqHPdSWdPnbk9Zwtf)EK5^dYwR?!F5}iGS z$?&EGgv9zg725kY_J$gToLw1eUf{5ObK$YG8CL| z;B(4EJb4g{gqW`^FZ;vtzjvafd0e z)4L$S#~~Kx3S^X)^Scv;4^9RF(Ux)7X{f7`fOfwL;(H7CYp-BiX=1p30fpob^GnAK zwI8`7hoxL8;N#d;Fw48Gd@@5*kVq-DY8@2tdRWvM0R|hO#ORuyp4mNXE`BlLUm549 zAv3Y&M^i-gd^WwWb`$_-)BAVtG-wdG%zwPgH=iMA=`x${^Lli0JR^(KJCaht_%#R+ zNJ|qFK+$$*JV1=uyPcVfNZ*h|IN$dcYx1aSNg!;9wF!q?|7;aO$}XDVv;n=xysJ1GXoHG zGm2$mYO-QvyRJHqp{i^#6)-`1a;$kzH|7=Va_!WpZd{Svt{$0}G8p12A4=cev4^R} zXRn>bN3~cWst2~KD_6h2gM9&o+5}Lk3FbiAgSVBD9MvSkKcX6U2<>(jYjF3d``HWn zDkrK2SMZL3EE(p;xrwefheSFssP|foq>2p~q9cjG0Bhr2dGz)WynvZm{77JNH!l}J zDA~cs+Bj&TK7k{^T5j#K;`y|B3>0$xK_M6T(|=Gix_bc0g5*db7cvPPI0H7Vk>Kmgd$mg%0Q1@E;J zjA(5_6`B4MK?keShkXh~Em(2Yu-KZ0`R@b=BW@yROEQ;g(z?NSUukk-2@1ndleHRN0ZOLncB>R?Sag-n>CTnJYPO4>R@K*fd4TpkyGy=+(nveFWeH^;P zK<=)Iuw| zZfQdAS)UF($3R;Z5}}wJLyoIVM_)?ulMHzmJlNJl$^y{5D?lIQsvJWvp7==(WHHV3$lvoyW8E^hH`^YuL`~z+Fj-!?3Zj9i(lw# z#)@2LZ{N$>^_j51dw=`p(cYA`CKf{1KEvBQkYlw;3#@O!?+K+b;`>hgjT?p~hPJ=T zdNKr1s}lbHULiBI$r|}rj%Jt%P}{*Hr7E z8;^w8vYjB+nd%Zs)%~tvj3p@`!?tv?Us`bDk79R${@@*xm|P2ZHE4(7w<>^T;8J)%+F0#`P?yE!DvWc`x2Enk!t1a^!Vuf{ocHiXLbq>Iia zDOkq0`Ce|9kn@Ou#qZZ~-oHJozQBg_U42lpyR{gwDfc!Scm$EXRD6@WqXnz}ju_jh z14ZdxLHcPmaq7P2;MCk#IoLkM7kv@oBMFltnSDOJ%Tn?wDI45VK|2&RVcz@7TYLPB zb{A#`8Ge=_R}=T?QM~PFrN)NbUuB)+yAgyM)^6-Tol2jm%%?#A2KEL9FoWdn=wh>R zol3ON*s#YXrG#)~S!VIX zPT}^#V;q@71Zk-1uf9>UTC<`x(|-GMdkKb*{xXu5PZnZbqkxqQsZp3p=<&3B101aw zm!x9!#?75oE3YssL?PhMMT0n)cViB{Y9D1~H1e4@X_{~JzKZRO`T#|J;Dq*)cX`V` zwCZ{Z#S1)w+>h_+6a}Z33ZzMBxt7wW5h4R>FXwhXEH6~#|FNjquQ6B^Spa^DS!L;E z%A8S6U!{7i*OZT#Kshsr=rA16nHo{cZ&$l4Zmfm(zB{t*{an=zlj66=?2C#A;>bS- z{%(!G4<>W~d_W_{joK$PPueK6{IJ16TEr8q%zoDtYREu<0wiG^Y#4ywo>h3_*CWRd zJ0)TbZ-8O-Uzmupz)chd|Ee|Lda;i!vf_A}sZ?H2-a8BvVcizo><(+ol?F7s5~-bM z(&5v`^Gt^n^U@PTl)*z4q~8zp6~`c07@>c}re?eZaM5*4T}t3>x#__9FD>N4RlM~N zc6g`^HaUqY>6EHSpe_n4<%w0IFSvSj9a?TzBd02^?CUrB0lrrbAOlPByEx{C3`PCLI< zx!jh}3P{17QvPwCYNonk1(A#<8aM@NAfl(8k!tjiu5NW-yfv#WwJf_6bQ2--*jrDG zt1st>S5eu6|5_=(Gvr9fa&6kW*aWr~b{rN|*@}FZ3bn5R%AkdAI%Qcs&f3I>8ECK0@hlWH5MC9}a5d{qGsLvag zgswERN3KO-BYqcZyGx*QUpJ{Uasw3&*rK^x-O_u7cc56-qvZpFU4pCRgMhbSHSp2) z&R{v@GL#bs%#(}oKvobpd1#)52$XpMssLD)!@a~|K?@gVdv2j>j>~i^%5o5Iv{pU! zlJ!`}&KWs&USArfV7a0{W>I!I{vpEGy9$ceyU3n${1ss{`f_2QM3C+2vfAv3#XDCz z#)}e;#)+@Sq=ZH`l0X0q+mnz=sik$UvhR`ZeA!KzYas)OyMg*;BRbB{kQp+mTa@;$ zXTR9XQnRoZ+#-V8n>{FqxqK7+)yD2cr@R?Qb6z%>%PzB5H54JAmr>I*6!|L=zM>UZ4h`Fw7I2 zbwn(T9^hp@#fc5nbe@pQR!g}rs;*6+aKa#`0+7&^eV<$EbEP>Zmkq-HujPS85Xz6` zHgp={nPWI)iJfi|4_3Cj%Ltl%);AHQciVE6z}^k_bgSV3rZGUHr@gVht{MHVj_V&o zydRW?ll}h*<~o(Yoo@Q>Lu*VGPF^bH{)&gLB&g%2;p-4KA?`Gzo^RLAwhON@$UbO& ziq(B;{P(nP{(x@CfN)>McZqlJqAnQGT0YwBcoE|O(^pU=LZ7p5FFt{*2zxmCZd zi9NGJG2zvC@y>%Dj9VrOC$LPd?Rm;>(1jch|I5Af`EBZgvCC2^(!;E7-&?M`x~@YB zU7r&v@~Ma3v>MwdCc^hk_dVhao}reunGFBjCCi0u`yFoY8Pn9gwm~LA0f&_&IZZ6? zfVOjXK5#{8sx)ZVbWbm@Hbp<1dDl*;UGLjR>^%eYph-=HBD|WvmsZ-r4tjs^1SJG9 z%61BnulR}@eCh(;x)lIPjPt9dWcnd|Gzjh<6s3h;utS&HBM|KJhi+O2a3}gjU_oIH z^w3)1`DtOnDf`o5&m735JpkEkff8jv7PdOIMFqX*Tc-zTtnITLb3k|(8$7NR2%*l@ zAL6Ta*JBa4C`^+r|I=D+vAMYFB{M$cQFE$&QcJ?NzUDLm(t zo&7W%{NQcoe*lA{_NpbGjVtmc*I7PIJ>vMRM@ZVDpZCu4dA>Z)YAqk}K4u`Odf>c) zUV3TiyGJ%Ly?0n->Uul++eZEXT}AlYV_k(uN5>ykX+J>=J#)DCv<-b2&R~LilzQ@Z zcct3fGr?Gfu#hiHAG{@!Eo~o~jgWVS=pjC9CaX0I<%zYC;5Eb}RO4$@nrYP`_jw>J z5;mY0Yvlg+RYZJ6h*U4-Bbgg;HAT@1$C8h3?8=U_!9=Z3;y?gg1*^IjdhdH6&HdBcqxJ8~&;uqd!kgFNQl zDWjH7GQ54J8rD9gMk;i+3p-pY=^>V#Tku#BF~}MG z58w+)920G(F>!$MiWs)o38fQ-wpN0-1R=^7kDd`#xH*tBPk=lo2az!%2Zm#HMl?w( zfxnh0baxK}T;M_|C;ruWy!p~Pf}8Yk6aN$iY~gu_&&Zny7(1Ys0m(#uOP!M4?V|yw z%*gP%xsEyi)m21Uz>UG6faRSqYqpa?Sm#uQ!wga=2j-YHSu1eHly~W3 zoUA%g0N`uMw?&PS{qr9oNMXxzte2HPwt_sZW;dQOM&t1TX@Coyz**Z zaM1&sNcOG0Vc34m-ZwmSj<=PKrUjb_ozQc1#`IRkIndn{>WZ7 z^b6DfJ?Lam?qPi1vt*!oVEe1JVh&b+BnW=!9&vr{F>wcY*?d8tUfn3?3Nf@j986+_ zkJ2UfjknyE`d{5JhZ6u5$NPx?v&S$#hDTi;$IKzuoS5ie9*$9OburhUpm9?AXRSN# z2zlvpS8v3fIuE*sz&Pts^igRevv>M{?BC{o)NdDwA&X$U{?R`vTG-c(OLI=|e8vYV z8f!BbCGE$z42Vw!AvwuG6K0P@ci?PY%RSJcEh_!6dwO{&sj8iwp8bN+hl{++f1Zq( zTE=+LnK7Tkdndq zn7>=8(kWUZKk73)h?Si!k=}Y~;`e)`v(cF=uJIhb7Rf-4vAZl<|NB3twP_b>0bNY% zb@MWnX=8ip)Fv)mU>Xm;?ua}>MR)f8^i9MPaj#)rtMCo6o=i0YRIYi8nhPE-6U(<^ z4x}CV_ji&hPB{jVs2p_YY){mzcohmf8f+0KTcB?bMnvQ15_9)AROs^YKwQxfb9ar= z8oqWNr5cFP0V*|*2O!VTt(|%s3(Eu>d&cVeleUD9 zn(aI&fpRYrNqNAOq(DH-X*tkd;}1l*Fab|PD6S#e+*j!~3SINkZXuVA_f~EKG*c=b z%oGgzD`00|z2Sa+biJE3$=bF4+}2 zXUQ4aD0%OG;=kU-JSy|^;F7%NHAT(ef~VDFsSw=a_si^!6I`Yj-zB86lC9&;H7zHU z?RW_}(8!oJ>1nsUk3A(A5X&GaDCYMehE?D>_hf(ZeHbGnd9Bdndp*)cFFh%AZ9Hl} zesTC%{kUzN&#K0>caDUIZ1c}Xlldn3qox0(7%%JR5=#FPL(h=9AWX0_{HXv&I0txy z06YgGyfE{15*f~~8x_}XzX68W5Bz%%pYDDAtQ1}(*x+snbQK3%s;n74nU{E&s7Ssz zsNfYOrB`MTY83@DzfiV!2Q{k9S1;So1l`z^bgDLyu2CIY^ai@UgVn4915K$dY1i>nR<tb1zZa0F-Wd%7Cb2>Mil-r1{B{o{s$ogv$gaDqbM2Yc9GG zm@u6doHFeV-hAZ<(Bg)673kB@DWEO)4dAI&_tuPz@Y#2Jqqj~hQAe4+bA>vF= z+FvEn91H0-DdTf;f3{v7@xV(Vn}mOBFEKD0F^Xq%2B&hKuOv2p{)}9{ZakgV*|j30 z+MtEx6ynSnVtG-jbC|tdpova-RibIPm1e@l6?8i+cv}~^x|Hz}tkdj`qP?$tH1L@Q zo0Rb~^~)O9QDyoXF9obV3AQji8LGaH z`~#mUhF{X*o|%wQc1e<}*E5-QQ4&`+!C-bK5OH7Zpuz>0{CD}+^i|hie0yug%4(Zc zOju+3TxqdKniocPCE!KACQ8y=szDIe;83;9brYq^HmS>1dLP=#rVC~keln* zbO@rLZ7&pXW#{CH>jU+DPaU{HhGdM-(k9<+a=Emu ze(Q5vL`B|qS0h=(wcJk-y>BWSpOcV?l(-n;6~!d7mrmN5>oQu)-Tt>{z+h4~eSUY%Jd`0n0{ z(VwXS+t?40C;`RFKiRw9X7@a#OvftjIp6Cv)mXWxv=jOfWV(;Ue5{XuwcF%n4_Ejx zA&rst#v2EBhDCH)ht-rad5MM2P|?iO)S7sQSu>LtACgV8nJ7#9@RTOpuLS@h*B;cm z`!RD$TSB2a#6Z?-hPzMKb4Bs_jdbQuXZ%!$?wqBakpD_#7Wk|# z*qbCu!1QfMP@a85XsE!~(b`A1=-!G~xFNmf5JNn~&>T|7o_AmvM7f%oGOU|TF?+VsAyo<^IlIFOv^y@XRQd^Z7LQz6(2FG@F zopubTEu6!o&6D8}f^R$vOinS6kVP%|Ph9Q8p3fu45n%>uZ&wzInszV~O6`udC@Y|| zP?jY79pkbl^x`gG&|nVfy7^l%0XLcV0Lu5wqHGN-p4drTDX6`=cb#g(``eInRNd2E zR~q)EWnQaN#?AZZXN2$rM#=cvxA5=RuqMFLnQ)neY;k!4#81*pS?=}u!_PF7{C_8+f?NvOHO9F zZOea~;5Ot~eFUoaH&NTtt2tHrhEI{;FY<$j1K6dmuMlb91pwn6yRb&oKc?v#1}u!pLL2x@|oA~lGrDYe)LOCph-;k zQ#OS9F(3Ku3xQ7UWxy1Y?piHNGZNWq98C0cQ%UPo>F9hkFHi5;r6Bh&7y(M zOi+I*iabr{lV2)>Ms!wW)@x7umL0v9C>Ag0V23;SxcE*lhu`$V6K%B@vh7DA!wHvP z=hsv5=qw9@t+wd&_GOLjSC*Y(O>ZvYlbuFt_NEglfWG1^Pn5DkUs?JlZ#(GQAQeJ` za-@?v?k5P70eOXAubH5W)X3gFtK4$^IcbzPn5lc?%r>rIy@bJ0O;b|{>!suUTR`-% zKs&tg=Aw#ea=W!SR%6fe*Xok@g{i7%TQiUL0!E$jSCosKMateAIv{5}k)LM#B9yZ#JDFX`ay=!aJNiPm? zS0@{`|I{9?`Nd0?ISM@_hO6Qv1$aYo?_cXZN} zDJUi!b$$opd-s$7_1guHtZ{=926<~eG$E;hEd0skR19a&aA$=uGL*1UrGNC(Y0w|a zJ4luJbbdUez+POeBE&aPT$Izz5;yE$lI?W1V4U{6L-@2;g1{J4#3c$>cS6(lQD@ko zn`^?{-&^z}3W34F%!<>;ORM2%kKR8@6$G$&LWSUc8SKoO;th75v~{`6ZlG8 zI7sGJ7WMiu7t$)Ec2#Ra8;SE05eIQG_`)q+L~Ti#;Q?HBw|zc*`ON&|MMOLqXM`wh zp{ih*d5L6%5crCx!}<%kx$+|P6=@}bd7eBQb$?R+wU1b3&D}}x$)y9jU`V-fj7OBM zk>_v7n(u(}%T>EzPJTZ_xE=GKAt55-?CIZZGny*hY)~sL9^C?p2o4X>+eV-7lTF*^fW;+6nYA~3^Q`sp zWxT;G zg=NtHFa9_;9)|OhGRKyzd6?9g$o2PGx1ArWNgZG4npaUG+uU^a0_>^}g|EV92$YyM zQ|Es!d`XZ*Ev1;Jg$jEmfaKi^BU*A|8;RkBo${CuPoi=_pL zs5(gwfu%*6<>u@29>qbm6EWoup(XqKJ>r`iGlex&l15mJ(G}#jmq;#$LXUfc=OC76 zG5Vkeh_LcIkXXV*<&rR826fgqZd1U2<^nCUpof}e3J+}nUAd6VwJEQddr%G{ADyRp60j2Q*Mpmj+R6cbm#oH6iw^w~^ODNjj zpoC4Ax?eqziloNIei=#s`?Ax6f5CN-hD2Zmfd~W7$HRr6eNwX$IrzcUGNDulS9vVc zxJNM0jxO-LHI=+e*UJ`fS|J+*2$N+?&3>{W!{?V1?zA}@A5`y6No3FbqDdPt&EFoZ zI2Yz!5R-we`9pgcpE!+US#Mi*3e{3S(ZlQC12|8R&-%~~+b(m=9=ZD`YEl!X_0KDr z2Q>4y+2FT3QwBwRm5T;4Y809+F`&u00mm5LR4CIjstDEkP8O z!V|cid_%6$%xBS^r6V>8X;HpbKSq?g=j1C+_yZ7D2f||XH(o3ao``TZ*kcU->!w8V zo*d#&P(=yM;ok}$6Sv-a!6PsCwS()dk1vHrkGyQcdEW+>7s7(s^1OVd(DRX z)1F71p>DXYCz{Z|KuUT2gPWAiQ5rZl1Ne^wKS{&4+~1>$7kD^pVy6L7h$6K+)jq7U!?c-JmKHwD`7F_pFn@&6rjw)M`uo-0vh3=n;Z8bCo`GLk!g+0!bdYV1sw(VWiNQ@?xx1R9VJnc{`*nDw)9l4lyQf>&tlV8m8m^@;S?6infjf}W*pT~Hj-d1 zuFY2-Av2=&k#1T9xsSG?x_wbLMJ8_2AmY!4#_h690gSB_+^X$G9w0i&Djd=O3)KtpuEh}A$?=gi%mvSIP#5d=YMS$DuI4d5lc zRCw-1a+D@5jF8Ov|On0$9%s83UJQJbZpD_se=WJ=6TB6@L7}F4gP>@j;b*ELPd`6sn6Z+EBdVMzayK_)wi%^wTYl6J40n!F>KVkmaizS1u1TxW%6c@D2M)-aUtH- z9$uEk3&u$@d)G$rSdeV(b6CPj3%Uz1`Y5p zhz3K@6?=E$Zgct=2ipM}>8Z8Vr5APQfFcKz=I)(3 z`I}kDTmu65gQw)TLTCsyyK=%*=xOa9vhDmPc%?xV^dUCasB}SKGQ*c;mh7xt?u)%w zA1gYfMy#A}O@4KGc8+wpVgilApHg#sfBXI&?FT(CIaAWs>1@3PX{c`taL?w^Kd$vU z_5F;r$8ex6HmUY0=}JGs0ospu3i~*s*7k)LFb82l_NDi+24OWW4IVhInPgquqfjem z5GA}uUyq%WtP`HOtkrR*HYuGh2VJ zbe>SmN5y?~a5M=$WeC{K%^P?iF%S0tF4q8SSNS&(CQzS-d@wQ&w)_h4eMU(N$OhLT zx8?pMh8jrinO3=(DkS#v4(qZaF?auTCEHT|&$l4*EhyfGx#`5)N)F5DLB(4z$o8s$ zAwVDhQ`!sx$ox1tipkQt6iF76Q1ait9Q55r_1$bx0_dw|KMuaq9O5M;cqZr@s9Je` zezF^|#cf<@cIkpao&aCvdD3}x*$wYgbzv;!+_6H4>i5D5EfEVVq}>O~?gu{brSg>4 z$*I5(RAzVHzV04X3K|nEm$uNULtcx@*m}Ro7d)23(D&owO*4=dqgNx)>U!5Sshz&E zr~45$?~4O>uXl3!7l%KtO?sn-J)VB|YTw~r3Y0s@M>~MLmQfO1yaCgutyioUhxia` zIfVuT9*;F9FZ#evu7V^FgH}HeTQAX6Ew6WD%P*M9>Jj%!@n3y7z_&j+{+%b|JTk3e7>BR3HO&n@=*sh5h}-A z-^owwU-XJ5a3xrQ?{g0Z!~Kp;DCOlwOqmmPOwOB|;C%x{G#5}z{|p*$Yg@OrN=Kc+ zg8dEb_z504w?r|A$oIns1kmUdu9KweJvO^NW#anA^FJSOr=B2fJ^#aYlN|dp z-S(&Fe_HMZhdU?XM?9uG5?QNV_(rrcXQV8b@I&|!iH#TdlWN>fxAq z&kY@Gpq{_Z2A0XFaBf&k4)sQ(y8QjqYs-T+LuFzbgKFL74&xrk&0o5cF2yi;crCh5wo{nHYU?!Qpw0!=mP)cW}cY#>HMjP9i2dxqDHpD(@ z-ZxXfq>!e87-1Fxd3w_kZ@5$$7R`a*c|O^~7-Gnf?wn1b z@#rY-^Bw4_(NUt9u=W{!DNe^GND>7dxz}3dkO`7}n`_fat}S;W)~&RtRKh^D^2AM< zdFZCBJ{hD5taerp(O0SrnFU;r2hn*{WGSNz{Ql(%IzNUd0X1iJSZ-1~6BGvs{Tvvr zHe{zfu|dWtgZ3Qwxa{v6_t^Ld#R2+*KjICP5+u_&^i%HN+w(k5^{o{+3kAFuCuqG_ z=A50qMbUiEDGBy|v+KRlt9L^mv>3>{x;cCH|0Dk4=`NvMpvjo3`lxuQs$43ivk3mh zjBXQ=fPUlP6Py?RMJ+a|Kgm;)RX&Mnsx=}_C5rufx$AEp`H&t9v2$zAL}KwJofzlk z00iMpl+Mf=9pd5#wD@p6Iz4e}2H#)o(6fRd2lBT*&ierjNsAs5gI3J81|2FGy)cfp zwJZdGZKSc0I-r~!RCy`X5-uql3wTxjhn*t47^`<^QJLBWEPO zwe3Tngxbj#8ClS_DD8~nsY(8bGbSxwdF>{y1Dd8y|{_~ z`x}DlF4sK^E4Ppn|;pL!R`UrNP6 z7{vTdV04L7w5n2+GuU8NEgK`-pvchBP_^NtNNLzY^2+Je1Y%hwnWI7(_lt;CP&%=` z@cShmn`h%pLLZ#J(;eKNG3f^7JK6(i`&@Rz4z7qUi#YCiiHcTet`(s zzt~D{yLFNgGEgT+F65O6qlvw4F8@;aw7-!M zTvourIxNz0koW={rz*ZfRyQ-5q>NZPpx9+d@&u5RUoT1rkOF;3fv|G5>ZV-7C-7nL zCB4x!wz;3JSPy8??MSw=uS%m4qg2a0aIT|XCy>E{)%VJdM7QM@Wo z&$wQ{sMQFzaJjtFZ>@OD4-4$xcpJ_!0+59*09kl<(__udbNM(8_R+VNdPR| z%r-BjpN@v{SJbdKTG~jDk=KYOnAsLQWQ2#wNc5y{BU}f=RC@N@ItQoxy1kM3n(ft% zd1V>0t{9OV1YBM1u@R*VDAtP!JdTx*7^FP2Wi!d$y;Yi(ei1iUu z$9@9nN)b@4uYQgt1iU(Y4sly<4DhpuifmD!lj2V^q8u}xP-VQtUd2Oc#K2%u2I2I>>fgLlGrz+t>NA&%~GTIUh3U3 zo&yEctIk#r3f$MsfdI6F*;n_~12N%&E5FL5G92zth#_BB#=Mr)OB)DiegT#212AS6 zvn+M92y56wUQgbhW)I#6XSn1GY$Fk})&ZqCGdx7n$~b^Ewd$SG_t7i&z}i)SiammC zAWWfQZxdfV@T^qhz{_L;%*38T*fUkO#LcX3Vp~uFH(nz@v_ReptX>cJn_)60rT^j9 zBrVRmgbaa9fn`|0FO#owJ8vTnx}QT8c2mH%5}wh7bqj+EJGC0TA0UUw0dhQJF?WU} zCg-RS%ctmhnh&b5uTEmpE#T(hWo;YkGuvuIf(pBT#jPJvn^ca(pt}bwcMR?57SMR< z8Nl72XgKc#4(vhOn=#xUfxe`$5k*~Ih&BOVbZt!OVXdV<>>F=C<)r#O~8sd0F zR9GNv2ivh_*N^1hbAaz1zv0J8p9v&Hbowj&aGJZmkH>yDXp5&Ru!JIseO1&G${#SX zJj#~#?|j5_%IhToiELqUx6+?KLoUn2Fy&>REwz6QSP|CF@s@OXsz}+$Ux*V^I+*sZ$Ha!T2c(Rxf-c=@`eX;e&{H1xk z?n3M$QAYEXbAqLz49&KL9`~cx2P2O@jt;W#MQqF2R`*HScW+gK=s*1ClZv(VdntD_ zaNcf%n(`yteQej^MQFrRfjGZshb~f!(*!GSPPpv+(7PKjUdW5u`j~bO;940;CMfr1 zE70{m4H_|uHng{SfzK9{=3Cf%wbqa0pdh%V$w>2PSP0O_yjSNuIW!@&>O*0F1AH*@ zT`k|)L(*B=gJ_r~zoa^ZzKW(9zAQj}5%V^ZeO^D;#0U)>%pCKFBcf%wJY~FRa&H z)6~!AKVjOLFNNb=mkgxVPz2f=_pr;AzM+cLgTR@q*yt$cyCyi6*3Zfe!cDyOgpoYp}^knsp{*>T)FjD3l&i*oCnMScTk9cQaqU=c=FSy=B6Z^y1b2Ob6rdgD&?!3199}INhym zP-pPLQe?p%envN~81IGLc^O#BX6dCX)skqSA-~hR*NgPJ*oh=uL%J)nQaFhldEYl_ zr`n|f7bQ0e;jv*dNC*k%9^~H}4XiFme7?>xR7s`(O7N*8f<7cneZYxTJzu5Ur6rsf_m5&3%FLO`)V0cLev$R1W{tE z7;Ky%&a4yoqV_yk<_Fn40-&lwko#CIbN3!_8XB8Y7N^(o+@l9?)$_o^0ySY@f;0Zy z((Kcrfb`QjaKZE)wRI*KTA}NHe$Hj_F|a*$T?Cok9)^hZKq$NynuQ6-u-a7n)7S#= zRKq2>tleW(Y{#>MX(YIpD6YNQzwTdR5Jj`VcdZjS>pv(3g#@prJuniHd3u+$&hG!1 zga;y=ESnO8}1{_Bp0$-JVaU$PF zfC-LD&4goF2vtP_scy~8TEuSN^x8{ozcq970H5%3L)Y@fj zUF^{ZMC z?43wbZq_12&t*`W0}?85E;fTmZd6bQaxw4-9CR@Pj|a*UW6ckoHK2f_YF->U zAQjf{bxTFP!Z8de&aNLFh$2H~2S))N4H9%g);5TZ>QUa@*hy;nM+DT|tDYApEmAN- zg*))?UeEtm=#*%Uk6Z4MOFkpurVb?6WFWZ;+b;xD$_vCe-KEeGhq0IVU|O zo6~Xs_YI8-1IBP`V9TMEp>m}XR2bUDgKtE-YKbM9-$3@c{z4o5| zy51FvSSv#WX19kW<;^ne7*8xjwp#Ti(Tdgl-W8G zW!7!E`Sx^=h9ZV?A!NjV9zwrPfO=dT!6Ew@fA(P$ay-`1{~BOdC*GBdbv)Zf-#4z;Bd(Qh0KbIq2HYWta-%ZrfUy`s;vhFT|CZ_^1mcn zfKTyz>F#o$KVI4e8M{(Vz|rrY%=d{EKhY`5f@EYa0w*vjTmxq}NH^!Vs z=de>c(d(zZ?BMF(k0n~ME|;eWjWF-Y*Jp1~dsDFjo_~Ul(l26Z7&$((m(E;(u~BAw ze$Bk_S4UDFn|tv`u2fC)5#XYO!eLbFJcGk04D-h})5#J!0CHZAxTRK5wVlw>Vf-jl zb&6nDbkRR>Zv1!8gvX~xdl<c8y>qzz&a`K4V^X>lN6EL+ICBTf!N@^(BD!JqZE$2fT@;+2O-*VQ<|NccC{i z)DW{&3Yg$fXGJ;iLxEQ@3oUx&*4j;x0&eJ4+>u6W4L0;ePzT4tWX~rHIO}on-l%xA zv(cS;&@#h9Eh6+Ele?PoRrI@~6FnREcRXf(91cQVM4k^P@u|TyK&)W}t@M$vv$hh( zwX(bRmZuM{{`EV6OZQ4Ll!_wxB5!n;YQ^P%;|iS$f?d3>a{P4KC&Q1c%%ZyV{gZiL zoiwww=F{)hH=|dv%*u@inP+zWlgTe%P>GQ@%3pWetF9of+i)ngN=s5sZR@K99?3}1 ztt@rA6>vjPoI1;zqo-tWomt#B=dFD927S9U|KfU_7TKL3fufo=As3L^{p}V|kp8qR zf4}!9C<~}CY`=Nt@1Iij9O0WsI)hTTFqOeUMWL#7+&1m z?tS>VV%W1ATM}hdxzSMT)Ai0;h|jsG0f6(#dgC4r?I5(I0;7}gE}V;TS+25=M- zmNf7NHXy^b?)y+dZTu*}%mKcP46qyCzlZV29crgZuhIMn$znFPu&4(Plv{^B8e|=& z9E3Ws(YrNudz|0?0Mextufm>XS!6=hUXKWv9w@B>izRXMdta^h{(z$mpXW2X#&in~ zk#~;jq$&V^=&F!j?x}S?0_1r09*TlUmVZ~01YndC`;Ynlx7-Ql33lyI$QwB|G+di%V!R*^a?d5w9lAZKYCVP;{s%97xx#7 z-YWR5O3cc-!5h(#j+7$}+Q!${oj07<-z@bv)CF!@w~Q8S?;JOsLK37qBsn%N)W5#C zQonJRP*$l@iWq*JtV6uypcv>hi$LYPdW#YCb~;KuxcY zd#Rjny-pnjoBv&~g}*8cY>AA3jA&;YC!T!rUYO%;SGmIV)t4QUjU1ge&<-vbps#4)jV1-<;6fc$k5n z>nDqc8s5MD>Wbl27-!gbH|_w85jfZNaV+7kZ@G-xS^{??Xq)FRlS8Tolf)izgq{Sj zy#To6^0U0sUlB(RW+~IF)|JxhhZLB)^@GYgc)Kgm*7teEiSh~a;EFs}~;wV4e@%#dph{`5g3F%8swQ12`7cC?) zZjzpE)mO}IJ|JrZ>RKA>M4q54QqOF?h;fPTdozjG+kQ16f+kloT2$Gax^;H$XEbsO zvEw=t_JR4y71Mv4Ll*VCE?pGZvfxVm1lim!!nx7g4_&d3+mA|~7QhbA_?+S%4K+YF zM&!4>jLtCGGj+i}xX}WiA54oZ55v)M#LH9C!1A`W-r>n-DqmZ%!Q@RP1bs;&Ok*lc zMx2kL+rN7}eAAp;IG=gQz3` zX$Eq#10YE`=yksibk$Awy^TNb{Pr6!e%;kB1beu@OCdl&4SA^h;|nzdeGeFhz)o>e zQM_+j`81zEvgca)q{&7lMK)0U5$+Cz89-O&8^CGWc4+d+{M29d z`MK1-b2)YIZHUP2KDR(Qd9*O(ek8iAdioh5tWZ|bAECYbXP+U z^}Lw9(0`n-Ex<7WD(R71T~Z@51sr#S0Kn{lP0N%Jcz^6~&cQwO6x<#ulgs@&e=<1zZvS24aoZqzmZ=XD& z34}QVNNs`iw6wdeC}Nm9qjc`)H?6U>slhO~sl%4x4Q0qa`8UB+E(oy-(t^KG^?%$E zKU}Z4P*@uUA0~x?#wYrTnATykU)7;5p)j6h=89pv;&AT+yK_E-8Ga?%G|Z*Npg@)1 z)nF)fPas}VfhAv;PD|y(^E!4v{qTlcoz2YmZ012E*aMyksz5ovw;(Jex5BAJxNolJo0eQJSJcl{y)&r(yq2UX*OyZJx-js>=A%l_l#81--gR59 z=Wp0Aj4~=Y32jartq9SM=rl+XGqq?E^H;}D#6yaC0m1!r`%mjQ@;y%$rsUYXk-5Bb zD8uh|G`@*$s?AYr(?Xem@Az}m$9KmOjp{&Vc(d7@ug2fnaj*SzJ6COLenNkWxMfv8 z`p0-_>#I}N(v8o@?uGx{)PyT&1wba!L+Y;=EdeLX0hcw28%}-a4bg+MsU8mdQNGvY z$Z$S1Hcy2_!xAZgNvSZJRcZ;+Of!Wa^bcfHQ>~u=i?z_cRERlqscA7gTDCm)2Jvtd zE*Q*}8GT4Jein#`Q~_pN|BB)3%yJNkxQ9%Ts)ZkNzaB2fr3SW^;5TV>#KGZPkc_L# zTwAUN#stK5{bg}Tn8By$Cn7x^evP=z`KwnSeDwcUg^w=1%ulE6eUz>w@U2G}!+;>A z!dt%pfEcHkIQHjy;Dg8353L{0UNSJSnj*8gochJNuk6pGh@dmng5U3--Mz}QwRg23 zc8Bs!KBMoW?f0vz^rYV+;6jy9T<)0>qYYe_&q}?8jk-z#iv1?n}SMUnLrC0fg z@fStgla7No9sTbLgj0$2UT2unLTB$9Dxp;UU66$?PWpR@aNv0Ccq9K>y$u=qM^flU z7xR#0O^ann0CI&4L1UP(@^OuBn3zP&MB8um>;_hC238#daWUN_$D?ezcj`_&&gs-% z9^sL}9-?^wF=@X+Y0g!L$*1(S1Mu-p;?u1H3snF5d_`2kjN7m`L0Fg#_!Li&f*#|M z;hMoZ$%pjPhU~<^HNjertc|*>DMXOwe^>1cHWOS8K}1(W1hJ@F(B-> z?gz3SQ>DA2&P#>)vftR7TtEmnvC0bvJPCQ9z%Hxd@zSNP;Zk9aQCHCq<(FMbab<@2XSz6uucdE6qrXTI552#BZ>jo?YdvSQb& zi#SldVctL1$wKCcM)OU@>$=BWX)oYzOXV3vR^8BLC~+<1{8d9OEDFl?yKc1MnaasJCT#oOPgu;Q|bp+YcUa>Gje#qr*LTIqgKM@~N z8lIT+e%P77esg-!*lT|uA;QPjw;Ud264@b{8;a)P#=zKC(?<(lO89hq$+@s>uS5?% zwx}?yw@3tb3F*mKHJa3;@vrHnBzxGnT>VQZFGg!jPXVN&gNwE?goRDVJWqtE(GE^r z;Df6O>MzMnC>PKv4ID{D^(}U*ANK!!EPp3KM>Wo|5fW@%d>Fm>_`q`y!a`QsKRa?C zk%#cqU(I8wk(=QX5UTLWG9?2*RGvY@7tW_;cpvov?kUF?jpxrKmYxTNAiZmdqE7%( z2@Y$WBc2^SC)Yudr-kg|^_eeSVN&&^RRX{&{o1XlwlH^>?OO@gl@BK|q(+_y2Z@p& z4}-g-_AOB6d;Qc=!O5J-tjC`%+0kaR$K)qJVGOY~5gJIlI5GCCzDC|ZcAaATtk03x zv1Fe@DoSS`wNHw3*k;GQm|Hwi8=;0r#7J_;3#*-cc3(3;!9rHST`d@UB#m6C@s?hC zKW$aaA|vBy*tD8e)mWvLoL3NC|AeAHhKq}4L^StOlRgypNX+H|G(n2Ai|e+P|9%gw z$C$mq51O{~DReujhE1y!TwGTT7Dz_UVUwj-c#TJ$_SDCz>ZD=JRf*Pt`{QOW9{r zzUC9tzsg^O&P*>Z%@O3n+{tgDs(09yo8{0FLIkTzobc27?=ZMLHNfQ#2Nts(Yq?fy z$TkY-y~(2|OpC!Ffowb~>-F+d#m$33Mt*8l=|W%#=%p;OCPn`?$F3|iu#q|}fNyHf z3K*-PE519a*Dr=%Y zOLdj<{j}w+vSx|`0og#!#mT84A?b}^4kc_PXX9e=gLlDVnVm~5DEqG9lmEZxw z*lQq+1(3)?GSq>vf}f-PZ}~#@i@GAPiT$u%{y2=xk5-f;;Enlepo`?L?)xYeZ3-G* zpUJ=wp(`o}QIfzaPeFbtq7vcp#NzOG9K~wubU_Ge@H_OxNl4pbxdGD+)G58Ezy9ZY zg3PQ9Kj+9@@6qTw@QsYQ2T&`TbhA^w6ZVrSWBBtx7DpazhB9z*bm3h$m6Gb;`${cC zsi6oC^l|E~mGC#}@6UKh{?Ff7eU{^LjmMk7D2ri^&JoM)BaB^Glsfq@bfZTwdb8Q6 zE0J(ltqD||O#{bclJhjU8RB=fs_ZoeByD#_ka%V!6zKQTVbpJO4u(_Tytuf8eO15M z#HnzMt;1RsF$N_t$3G!pFx73hT1+(9uQG9huI+ z=_sK2J*)=f2p<9o%n&EoMt?w%vDE&(^X~4X%vc57W9I^@!y*d=J_2}j@b}d~M1G+O zucz-QOcG3^jZfjhSjB~W%00;Hh01dMAcQR*oV|MZN2*SN{}kea2N-l23-`uQ~$S%0;D&7dI)EIS%=zKeO)rg0!i|WpqI}!A?Q=e zf7ZzYO%Ph(u3NdxYT7hSHsoZ)>lx{8zp4T1)0FpP%-}r z300f{qDaA)`=7nNKOgoVYy4-n!X(F}Ckk{mHB+yWyKu>9e|8PlB2RLpq0)s5$|zn{ zQJ z{YWHrp14y^{e87Orm5YtY_Z!3kkU26YsXxy`s&lSMEdO|iQUYx#&QfQ|NHeZ6+hH) z4yv1@udOf@6fZVk^r<6#1=?8(!iCpy3$aXV>V~0r@wnr3;3Z;W$fR0c49xX zESHP7oD>F?czeZ*o4VMrj^PE_;H|-&lHN4?N;OmXZ>QjsE+L~LpS9vIHE2MP;Ojl~ zl7@3C6su#EDLD^MS+!no^#B25c$IB=TM2$UCMsW0iGRO0NAwsSS;ia#0Zb4gim^Sd zJe3h@c9%rBB!7f8ax7W7HMHtxT)4MikvViY0i03$H3IJ1Wq6MqkLgu&>P)Dt=Bg_1`p7sdnuZU?K4RZw%1vnZeF6&5Ib%_UvE`^vd{O z#ik5YkWgTnt@j=V=iT;)Y#Rq@%4I;Bti#`Dd!IwcgXW?G9J)d^^C>1KKmBK_HMeZ; z`UM2=+4QnA72nD)KEqiR$g3(iA%9YTAdP|J8$ys9B=V&6HMB_9|Y$={B+Z-HF!Lbj@kU4T#K32!jp^X)1y<7%5c>w^(P3eOCqTr zVMvCn_H6=%ULgHL6zX@?j+zRfKTW;pD1J8@r?#`BqV;%dWomO}imqBmX|Tk{XZ+ltjG0;5=7n#d z)%4OMIO~ZzR9~#s2H$T-Q2B&Bi!H%w;x|7X9@HFzK?^iU=AN0duDFi`-UO0o@jMVZ z|H5m|iJ|$AEa4tzTqMcQ~!Q)&Bv#wq_`COu@?na=s7s@m6q}chX4kVF2gX{b!k0} zeG(^cU?5Of>3?1q;BrWt9Gg<42tWlD0 z{ZtdA(L6oV74j%Kcd5lI=6HjVFjw}*CV+Ilf(*5TA{`%gqP zs;Qw|RcMW>ng+xuMZpXTxcS~i(5W=~=S<{RifP{!t zD^Bg)`75~X7hxKWqmGN7DD31cWlwEmsxg@56Fg2u#=;nKjqiAnRu0BLUi0DaW9$Ez zbtdsroKO~0qGkK4#$`}8*V^|5V;3!{}biqX=^Ic=|p^;k?_OH1QFPPgx6Mo0=yjbDdvogBO#nFw$c ztLE2cGBkneCGhy{+>dCtm~n_6O)0vOpeR`Vp+mZgugQ`ZvbtJn{#?S#X`Jm%T`(Et*o?zuf57^Pye0miln;c>e?vL7VPpU+W;Qf`HfV~$9Xw}k z0fwK)x~h`j0MDY8Cfo$n!~--jF}|~VccZk&(ty*9`HDmZpK5?k5d$_m8Sww(){A%w+H^=urGTXtz{jPR2hPPzV;&?+1-0pbCqOQD z=?u_$=Fa@Z4j$w>V(w6i1M1+$F*Bx@Pf|(>wFHlw$NWmo3sN{PF0p&WI$!J;rG#0c zDpjm*a`d{Q*4A5Y_^Z}xZRP7)%s%~^I`w}L<)Mc5ZMFSkfDo3Cagk5%KKK8m_- zPs;plRXObDG=r%U1R@k2p~rMsaBH-`i+G^DgE7kGsqJ13TypdgDluF~fSUZ^Jm`fV zLO#LkeEEk%D{HBtin2P6c?5b>C~AFhiq(!LyAcDi$Vd)aj4)(aB7N|g zb|lu9%|6090Nx0*CuArh^8iE$B7p`SX3TFL17$ygmJOE{j0ZqfUu|-BEu4I=viG0p z7gE++V;hYM-Tls5F=a{$CJRQhv=X{HMZvd`0Y}W~ZoZ+^pP)LPBM4Idm^*LPkaz0S zcJ*f}G1SXD_r=Gu^7QjA)uxvoYbm?h?=;>1a_26GQnwFfy=s;5ndH9DmQ#jzv#)YG zj+o0o%xVuD)YKl!)ck(bI7mgjrb(!%$wln65c3sR>tUe?7V!MlXQux??Xt$IzxI}; z4NJkdb$;|J@nSlIsp6a@r|gW=$ede?z)kmK-Wnri;jiVYC- zIeKGUHsFI(C?8_|ohch#g^ml*ZQK%`gb+^gVrxbhz9_EHO%GcPdv3MtrTQeM%L;sE zAXIzz&HSjI^KS}?ohmrB4&1M~n?aOCi58#*dejAzom)nV+C1#1SO9^0G=Z@3otker zmlLE`h@%aDliKP!P%8xZbBESpJV38R2=Z!Hd?}evGYKzFJe>m)!AW5w4YvyEmXC)^c2@jpA1*KFe>Ns) z@o>FkVR+lkQe2LS)bT z^CbwGEc!brJQ_xSZmBsjzS52VV9=AnVZEp8S`nm+pT5g_&_@GZ@dim|`ed`fv*Ns} zN zNB^nV_{l9hH~WpW09use<*7SOKX|$$I-SsLKX1+;G$PUOmIfav1RlwHnvBV5ZNXs> zm(T(qn19N)wtT-opQ*p*HTO#79F)L3>^M2Kj;l7R_~=xV4!8T%<`G_N92x_&&Y1dL zKG5L{NYVmc7fVG}y@Y3ven>5}h}p_6krvs8kQAQJlA0UFK_0BZ$=PJ|IDT-xaDm4T z)AzJ}090C^R9fEGtCHb#@5D~YofhZ{kk_Qzi;VhozIlH>mhdoeY3auzFpq9hs>{sH-pi2u8 zfVH&#PY;w%9VX^YAnazvPo4s#Fr>CYv8VU{Pwr_WBd}0w7Hg> zupfY#mGgJcp`Yo0ZLxyNtjC#Q%1=f0`GYU|CC5e>)OQ6lmKQ3M(Xq;`hf19kwxgCg z>2nICKn-`B#BI}K+=+1Er(IFYiuZ&aZs1J_H!6wY+u<+67$r_gOxUc@`PA19b%mW( z8j}3p5_%;c9oTu9MVgCd;RS~F*>wG#ZqdfYlDWpk8OuAfv5J#HeQvF1qQL)t2#u4=X@hO&SxE?Eh~ucGfISs z?7DiFbsXEA=p*{^@vFuS8A`;Zwic)raT38}Bv!)~C)i|P<5ES4z=K}GBp(EDaM{sp; zD8!BztYA|PW)ds;sx}re`N04J3PTYikI#RE^#cqrKcgm->0KN+KDdJ7Uqcixl}03K zIfz)=3L<-%Y0(LGp~Qt4@CRuVxDLE|H$+}&hU=J_fW1BC4{!*Tegtm=>wW*GT(D@T zE#CuT-TCSydX+!AWgG8Z|4(}~sZ@t9VEv%TdSPyYow_#2*(ybMfIo^UI5Q*!lzHjM zD=1{jH^^res>d($PUJ-BuqrW-xrkcI39Ez7nt)>nnpy%}xZ~!?%Pr}bVNxs{wTaPd z7k^CO{uOQUjcznWw)b`6s)~Lt^^6fqXNjhy4kA^Bgy8Ltt(53fxT|GS|Y4% zwgU6xad_HYpB*XL&2v9D-;X-l(DQx8*u2_rgk1rRunih13mg2pI%UzU$-t5zDbP(cz@Q@IlS^$#MpIS_I35zdfxD z6wj#|)r@9@nE4a^EJSsXgPXhzPwhm%PXuH`6g)z(5(PHI_~H14>Wc1kh;NrYgyB_t z)eP1ADcfmkkYXS|1Q;GsJMM)W%sQ;h@~bSZc#DOC1!DKU?k|bWi3( zxQd1p+fdhgRE*EGYy2V{9t8L$+0$L13LZ%2RV70j2B-Lkr06NtghABO(HtE_0UD&e;iW6*~rZM?xj#1zDK|rh2z<^`lwBt2gq5(c)2c z|J(p<@p6~Q3et|=FEN(sW~5p<6tbdMiWva?kE@^>>$@pqgf;FW73R_`yYc1>=pRm=;5T0(u)#KyANa1^|_iZ5G`T zBmkvJK)q1bejsmv6#WOj{(V=_u8I>q#78($C%gTr9@uD%(_6g*hYOr0d>&*W zdu8N+e5_%#Hu%coo zl`~FKvntus#VIK$)PGW@6jF`p4NhL6U;h$hnli@BTdKxPPR=Z^APEzhPMF55Wq;dR{TkdOe2_>!er{N% z%PY-s^ri2RkJux3d8aO)G5A{%vxW!oqO;)K2g>ul+9OVLc2gyL=WpPAE7#W?uHmJD zp%I~38|&MM3Ln$H{R0Y71HROFAbhJRVQ^k@#ilLP2S!FUM!6T-;PK;6z+|&bN3zhN zCE%1jzgb_;?i&o}M^13*Ns;}AgcB&8=h|sPHZZrgyAlW3tPdxdqW~E|t5E$MB&rWx zK^p?MpaGI|A-$kX zq7@}j^LGP(U~xjp8rEpvQ{rKa^OQX4dNn0QLq8s}K4>53Nt+NE;13M3X1y@9O%r## zaf0_G>jmd8=H%o~ZI$qt82x5{CwKDk*i_=qh^NZN<#Xnr&laD3CVDH{%WPL>0^ri|w^ZhA6s58spykV82FM9?xbvHiuz?+;5^u5dt zD@A*~t4BQP9XBoV$BrZ-VX)<|mf1JaTP2>l)rn^c{)APnasYGyzh)?;}P_B)&J~Uf}^mdC*#I)YoD9Hiwko3AlLh4P&b( zlz+!y!5E;zhlED_>^XNh(G(OPhiFQ*W zXv0T7gfY)|nd*MOI-7&h1B8LNv8$IMKy=b2_1p8-#My^GxfO8J79M{ZJL`7xHf|v@ z3g`2DPOJhq%n$dd5datXfKH|S-e`b_+e z(n~CE{yyG`>8DJ`{oqI;li$qiLzwii#yyc?;u6w{Pi{1|M?0}fF|q1#0G^L?MJU0v z6f2K8*Np~Y+rhx)a0b0xwEAbeP~DFKQSTI#D6j&>fhDxCO0wle_ zz=(5a&}cG(2O2;p#0lRKC$oB}cDWyD$lDb#hxj01L{Q5}{4xY@r%b*OC?DH$ocDNVk?0gk4hZF~N`M?L9 ztQI`yRc**2StfJA8qYUDOhl}SHqkIRbh>P9QLd?CO1>|5eIghzKZRat(lHfgqT%pc z&EG8d6PAG*s=sQWj+>3Z)r`Jd=k_=~&1z9shCqD&(Dx_7>~2-Y*%lG3Q-b}i<@>=j zvNLMSc7z1hA$YczOcH2?j-78bTlT5*60HswU^WRrzT@ST4He%&{i4d!I3;nqoi_0@4ecE=fI`UU(OA_k+VjWqhrJ1-@OnHU43B7}v$up&X*# z6h^xdVKQGEBaE4UU%EV}H6@$8?`U*Iu5vu~4(|Yt#;L6pAvII|C9Z3xx`dDIe90^E z`$RddDxFoyH9u0?o$5n4^KL6yP<3%#Z5u}`3miS|Zb zHlEv_TX-Get64rH!)w0{a6WZgR?kp*S~$!;D;%8U&S(l;;<~U0#IUa zkSMX$5ipPlG7Od1ES#Q+{XSf!hgG^qYN`j4(;#XM4x})HV&9-W`P#H!%Uy_UdamyC z9brB30O+28vMJP#eT0PqiAP@2cN;S;7P0FB_dck_9U$dAg@iIM%&==H*JY72UXXb@ zWPJSgJi9Qf^OF#nted$ZW7Cu54*G5il$=seBZJLyyK9DN#vXhw!`8cJX3_ z1hM68LsD4FU*OvU0KPGwL9g)?o4)Jl0$*1Fd6CzJX~CyZ;D7Vr@7{7u42=U1^rJ7O z&j#)|L3at}0)Tjn2|lI#8`iA}uHUI3m^3h1&bmQ61|K-}Q|k&SKIZR4&;{%O6Ky&= zqr~^gv|yqrS>c{*LeTpKB)!7`atQ3om7Q$dZ5tt2@CHIUwGD8s+aMDJ7$ErwUIh02 z?o5+`91>ggEU2 z7A8a-mf2<|IBQ=3x0`Z}x~OG1{BEqF>KOIL(eWLCgO3ONKt#*N-^`s}Q61Ncr2(p#1IHQJft0Q;cS{GuzT2tE>{b1~Vw= zX*ZAI+1PTP&CG*;2U#yvp_?Y5`WgaTru0cV^q37d48M~wA~*_aV|xN*lPl;2@Q23L z-g)XOOa`*CLC%Yr!g$2JfA`xXdA^aZ=k4~5Uy}-yAQqd_QK8P`dJYKXHMXx^j~6rkGI`l_*ExNT*m6(Kou?fblK9$SfpyjMbt$RjM)UA}tNw+HEQ@fUOT z!j{qz<8Vcto~r5dam+q!tz>WFjp?SWa(!~#_y-7|a75eUxvd~Id=cuZ5B0Hdv|c~j zyl2nyDLl$X0Mp4lX`+Id`8ogl`d-@hE(7Y8&kW1XC;Qeh>H0K?NRs$t{@cUrky!3+ z)79UGt23U+g6zR{mW z4zf=|EdfY(l5zs}1IxFL^RV83tO8M5}PtOK@%Yn2CoJ~0-XOnLPOywKK3LwIT zDguIXjSdI6fodQnPg zSc201Ntpc866uOr*N}d7>)lY|O_OybnXlsVT=?j0=+c*Tit5vCSEE2)`V;I&yOB3x z%ufrd0>dnSRc>p@Vb}GKCkk%>Ut{U8*gNdX?`5a2N97}l6~kW6-0iQ4B?Qm1VZ}Mb z>cpP4$ua~5CRB|vedU_Y{$T+7^v!2{G|KXR%G$vFQgU~jQ7?#gtoE*pi^p{^>}u>7*lwQd*{m7WmgaaxL1=JX9x5-( z$n3=P@i&uCCC?3Zdqs`kq}e=UN7HURN;N!u>epDtG@@iMlxt<@J65|)KS$pXk75R2 z>sA8jwOThIx#HD#*Yq~9m_;A($Q8pQxGwDJ88b(`vWT@BvF98b&{WzQ&D(U$1bg{1 zgoq(@H;mpE+5WZgqY;yg?Kv(=s=xQRtvk!x`X`E!6mx#zp3_iBFLccS+)?Mq5^mz* z>a5eZ6Y`Hqx_iZKh!#sy-)6QMygmZi^e$jd3tvVqa{*X1@TnhdkjN&5^vVEbRe2_3 ztmT3zx(gI>=USQ>I&Ai}*R!$O##U!z%z%Qs837~IVVaMFji1f#v-z&Wm3Ur%xqA-u zQ~((-xKp!+ITnDdjx13o*msQLZ4YMI(tl5ST~Yk)p{v|i*wrO22b{U5l&A90oa3cU zost$>>6)v=1kDo;rN!6k3~cQ7>{h7A`1pXz2bPb`DHUjql)a9-#aCAR=BB?{ns?Ie zp_Ci9lg4!WSIfX?hiW;?5Ap9EZgrijRP;%gbSr9PsU4JLZ(+W9oNaRma~o=)5DVo4 zp)WaKFs+W-B9#y8?H?gquDgxl?I z^S_(5ayKf=mrCXYynrWuyUL>SXzFEI^}Q9nEhx?r+z(7vU%XE9eGYjaHtl`7+P?Y8 z!tJS-H9+qyn$6IuVhAKr;y(X`X<8;qcLF;bFscV+3v$%)?F*|r;L>t}sAeUM$5yF{ ztfbKX82P@av<{)k4<#f~6xbTYK)&*9ARtJM8r#qqB^}6XZex*a_Nycr7cxjr2O`Mm zmT=dc?u!+G)=PZ+U)3Cm0CAq26FpmFzf>w8z0mjwDoKF!&_rsOIfNpF)L{$* zf!_BzMXf`CX=bH*3CHqZ#kH@6%RS)C56*bL<3>w@cc;wKk}vbBP9!R-oXQUjIw`@F zb<}W>-|+qvD=67iJx>dWFA7-d9WEQZUZ7C>UA(|y!-9v{*1q5<|5`Na@fEo!-LGkH z_|*x|@FnB2eDC%6Z)vyL;`1?lMkfs$5YlROUtZo~%7_@T{)rEN_bDbWJGYER}2 z<*zopv{xp)Ro+zRr&+J_)DiP4GPv@U2Uq!I^{XZB(m=^D*4ulhkeTuIO604RdCmkK z#X(}SKCn)#zF(2)!Jge!*iu>T*Ss}Ivt1HpZgVDo#7YAywl!I7%J%2@7@|*_zBs+R zyCPRdL^4)7$A*5)Zc#rki}%?{jUEY&>%(Cq3mWiS=NsgonErsWCzdoZIDI_>DpVrW zG6R90`=QVdK!Hs|Pa{Q)?X)NK?jdjX_vV8D#-y;rE=WEgh_TV57r5=NliQLAHr-SA zqF|4p7^WMC`+g=dw1oLY&nm$Zjri>d_Wge4LujKYjzu7iHXqvF{;(6Qu5-gHv7_mO zG$cq(X3HlV;+=r0yiHP|6GRd{BZdwZU9wtRo}H^YnCU`uG4%`t!T0~t2CUZj08ho> z|CP|_5;jn7D-KZ{1TP+n{Dk6|GLSjzwDBxD{~MuE3P7|209TJG7w|A|Dip^S*vE3L zaiZX?_-}-(YAnc|7z1p%`}*7T;h#ZKZ{J2%uWL{KYqALdN=L86A&lbQ#YZ+DfMuTp zz*VGVqshT3k^XlDHvk~o0~geiNSEAV4=^nI24M;3e&Se+{_BDsf25H8x0O6Wh^y|Q zJ$#WVCY`&JI{pf=+b9Yyv*f6XOm|@Z#5kUeIoa1EPf7d5@)bxDDZwqAp5BIeHEm1_Q73@ zt-S6eWB7!V($S!IcjSb5Gy!B&$LN5M9N;K%+>oy3Rmj%4iIGvW>%sHbSwM^G0ubE0 zX@FL`SAibu-p!pbfRuJ)z4z{MJyy@agx!e8Nw3W5cRX%df24A?NzK@@01Q7Za!~99 zF+V*#7VmAIQYT*iJlEd!-i+P!PF}H?q#ccICO=f~O%NRy^>byLyexV3b)wj@L1hVP z*+Y?jOXm>m(^ZQey07&{>Wbn@18!5B0eIiCOR_&Xk^3)%6BmH#>9t)76CnKm=B%fqP&ug0rOTw}>FLaZ3E`bcY;Zt6riSB#R2$YOHG~ zD*c$ZQMcqt^8Hui)XdnBq_d-ZZs_{9TrDOY=-q6LvFn~#>1)nH6(*POFnr3M0N7kw z!_Vg^qE^lSK8z(A&u`H~s37godyqR3HaK%KV-&uNCV>*1Z=iUV=h{0VXLyhQZ}R$I zgb467y8hjAYhd695Kn8foD%iFB( zd-GzgZJEGxHyBn#1QyExBjV#$gUawwq>Ov_q zrU#a;ZYbS}tJHK}vzlB>WGV628#S#PaIeu&sW%=U_<#rnkU#58;c?}lLJ5K{t`Z$}{3$mPb_rLlt3<>`gU9C{J+^7IUt7Qzck)s9qm>5@XOLAUyK@y=T&At&jL< z{~Ggp*}#@bA6heL?=6Q1AhZCYFC(kh$1w&#VOYBuiwR-f;b))tXE!JkALg& z<%$Pu9ur0kr%kV+y}+c^Pb^R1qu5v>ZgD5LP~5O00ZQ{78584llOLAeaYeb?4b1h{ z-(KXnMsQqbnpS)<=n(>}yaA#!&@LZ4u=#!{64L@6e6?J%)8gUN6`Ru^vcR)fTiI+P&S>O1M7?FL6>oHz&d{2;1i=hRGJ33-%@~C z3y@y_O8IR6wgb9k3I~ACwe55h+`tzc%6hZ=9p!I&P?dGO0PN#x5|9mkcC7zV+s@!~ zXailseSrv0{-#w-)^i?$#Z>+bVsU1j#ASh+e66fcHdq>F0jt388TO#FHkiLoqo)Ma z^JRc~KER!WD&$}SMo}STt{>)TuNaOM0hE>K=kHQVD>%)U+->EK{~Hm4cz*=Yp_2Q& zTKL(41;KKnSJkw06pi(*dfRAcr)uTuSmz`lNAfws?^(-xa@JKHxwycF{-&l>yHAP6 zfQ4TQUBma^T*lR)*jGAuJoqGNlw-!^?HEX*O>a+!`xJDTSMURI_WNF%^kw3C9Q>ofR~Wc{Wh0*9Gt>@TV-bpNZvHVL>2 z6*Cx4zGG6Fi&8^^a+`5Xk%0~zGSHQu1Y(LIAZ&wjYO#LD(+JehIUTFGEw~MVmJC|BRhE&&`brcpn+D+fF@kEgJs_7c&~l4vTr9%}ziF9Azyv63{nDmJ z-M7VX15~icvtD}G_+{31(9PhJ=6Q4IWCEp&$b%=?Pfz3s4iJgHj$6}~aRP{gzvZ-P z!481_@(V05o@?;IUc+zVARr0+6VP9N3p^#pbVwthJO-$JX$$H5w$OhElzhuuQv%=K zP8|M3DlzsW{~i88?vAOtO@KeAPGk}-K5*W3Z2)RBg$+dJ9jG`sP(dv)F+2z4Zp_v^ zA5Hq2mSJyno(rB2vF2I$>DI#r6oMZ{%%uNarmVGgL~yHPqv^6~5RWBG9B&?T&V zSd-hgt&T|~w>xVcuvzb}?PP<5QX+1fKCzFj>8gE_R2=5f+ zKR4i%%#wW*Oxqk#QUpk-I_#e~D5z(~bdcx5-Fl5R*WrGqW7xOjk-a0OErh6UKo~Ag z@8Nd6K;KLi=-MEyVCrj=>;vMR27m9ElZTH>84etd#hs8>A1)IUcamF-3<`wg`ozkF zdE=HUvbiItpr4H4gX*Yrg0t^~C*HTi-tmuW-DH3QUPH@+9SIms_X6G4`?szffP?lz z%6TaQ?UIUsw1EQbEnuAaAn?x6&;?pw9l;-|Yy9y&yPY931_m0y*`S@$a|~?o-p{Vh zkwj#mQyL6tzRI)}eae^l>nP{usk$*7$BZ?GqWh#Ce~yBOBbxVHQ7jwc1ugRewjmsR z{_nEf|N49L+ixIz!1K$88d~Y~1f2sNT`yqHR;6b+qZyZlIO^fiN|4TzOPE z$H;;+fmOY1OK8$cOkHUn{WZRlcklwI(6G^#zhKIp$g%-5>87VdYDc}`f@{*P58IW0 zYs&k#0C<8&A&)GK`)ShSQay>Vnw}?k;mvuA6(*DCaD0XRY`d!Q(CK%~J7d+a(A4bs z9__OZd}cp7|F_~}q2OTG$V>ce^?fQy55`LOf!$>#IUs1F9`DroW>#Ch$p>UV50$){ zv2whAt4=)7fwO@`YZL=)TVi$kLy1)#NVG0#jOR*EG*-31Z18`@ceZrUxjm3Zo%_7A z{6Pa1{%nS^|0V!vdP<66Kp|7F44VL^c{zolia`aL*5#k`v`)nV2;2MLFRLZ!JTFc6 zFvRmKguU6tcNGf|i}o>kRyT;m1m!}a!~At7Bj8NHm!$J%N_}hWUuWva)#0THhQ^j+ z&wn-2IiOM_A%L3P>nfr-w7@`IVwK)vx8v6^nDEZAfM-`*5uWq62(jGAmaf5vC*LFW zB;fgEevyaKF8VH>kIiVHRrdKhK~ks=Gj3UX6DVrqALKcrt1uJyV}!F7yAZ)J;|l&2 zUv8g?Eq(xTjAf-z>r8(|dTd-CmiPNEC&ncyCU#9D>4J1BAD;a>b_)@t11OYG3?G9( zg-$9i&tdu0LCb1m5A;`N{x=7wCnkvbTB3)Bw^iZwWL~~6MJkCW+Yjvs9vuP2-vHlH zFGCCL+;~%{1=Oyq;nnXltCMUAkAky^R^)remL)ggc{NE-hs=9{`{o*nM=3y+h=n5N zk*(>HqsIe)&m3EAQ22hAy1BrCBA%0qQgsnkAYKjh9*ZZe(q$`9O5oe9F$O^0ZCc90 z)55bTMb|6>WMKy=z||)#EILsrqW-2QW;vJ9*eo3N9oce&cmM*UjSA#ud%h(*^E*aS z$Zr~C!d1`?p&_ARG%c7DsG{eE>*@|(&juGGtJ`{Z0$r3jcfoU@)b3S^0!9I!o%E>> zlryM6Y@5YcjOZf&9Hg$Tej>Tn1h@_!z^NI)@91EIjalAteR~x|&jVQn@FL^@tNB6n z-)}jTz6LN`)Uc!x)8#vKQ7~aC6d2TvHCad0 zi-Y%FAX%G;Bi*-yjr^csRLYIVrN+E+ zYDK$h21$48yej7K-0d_Lay9TZb}HPRg?x{>=$>gTMaGj=9{-dJJJfoZQeXO<;}q%_ zuOW8jSlc=S=)+65iGFLD*NpAG#4#^w0vrS9Vt3jVNv4e7B*x&7l|L`qv7kaW1n{gS z_d#h8vRm(OwMG?*3zw5hzTcWBfMWaJl>sK=3>GHQ?LqlnKWODXmo4}0Zii~#gQoK$ zE}^*gA>WS2C6#MCo8iYwk1+S-rGoV>2>vRr*<*~Z8Q_A!4W#BZiu(^N$iKz5pT7OK zR^NSZIpQFMh!4n_-EMpYa-RQD>mD={f?6ORB0+;HGq{-N)V2=;EL(|B1b!gLcpXN+IDqWuvCKOhd*TG8@0ME&a^mOQ77z?jL%j@uh2 z(m!JsNq<5o-_{!m;6P~`lMqY8LBiEZx&56L8wT`0m#Z15l&NO)Cp8yRl7eES9A}`G ze5xdFM|}eHh7qfLf=FnF7|skkE)|q|pFfmGmPg9dJ-&~uFAe+dFHRp;K>qN|RasPR zz~)n;IB_%j7+-JiEib+&!J4}VOx_pBgx>ixTcO8u&;FySzSq1I&4nBF!QToezF-+q zbxAH|uG*Q2`P%%FFsiTAbj!i+QyszI6kz~ubL~qld3+l3I)8M9e48kAY*1K===4@( z+{)GhFwQn)HqDyu_CJ=kh0_GLerXJSSb{^2a@QMpK_3P%(u9gqZ&VrZ?BP2{_`p}3 z=>V7tz}{}{SI;*!zB+3yyz!l$Qwu4(#a#Pr46c72(W1-sAiFho_Cc`WYQH53~J6}CM^q0W{5Cs|F4f-lI3e}AS zQc|G5_6>5va@yzGQ63zVb$eik4xm{gpjwVDWyL@<>$h>TSu%)cCrnr5h2s{O=U)TL z;q#FJZkwnMurf<}ZK$HRIav>=`7ffKpIi7smC5>o4*_o5r(!5O_9h3y2nvC=ph;7iVxhY>aS1W}>mY-`m|9?rc3^pe44JZRhHlQEM=k<=%R`2hC=n$D z!h$z&-|-qUBFe+bgwr1va1dc+-~>`jtjd{mXx!npJsL9m#o?F4sjg-*(D)H@I)I5hW8#~WEZ0rl37OOo{ zB*}%K3CF-`;=JnV|oJ5pG&3e9thOOnIWruvo*%OcF(cXAbTA`@Zrzu~?vP#L#sSs{k==&+ zhf_w`!MLbmb`3Mn*uyKc?-LkJln33EIG+LYsZf_e8RgTVBDBS|xE0+?ML)|}# zt^?0d?)VO;|K$19TQoi05l=OB6Nlr+$ivc`uo~4)E0Xj3O^)bgVH*?DySFTM1Zzb1 zE`V>#v zZJ{NSAHC%)fB;cYNBKrV+F_*K3oQV>=KJ)mT8yWyLT3BDIP{$dWaMX`T4%(jy!o3GgF_&Y;C}u|F^PAFRw7JWy$4rsto@+t%;Nt-lh7ms5vv-!^}( zVW+WkI5^uT;RO7~Mi+|8GgfKcPS8i%w2#L6l~@(bibU!+L_B?#-W>Y6rWlAJs*Gbf z2*yom1RV4CYbO&Xze+Y+6cil_y2(1mVf)^A^x9W_oR<1#GS#TlEY_$!OR7cq z#j84P_nWDpX5~_J?=NiK)jcOR4#iiQynxuvQt;E;Uh7rAtC?Crl^aiNxb)sXi|J1E z$UwL`dHz|w`J2JZp-G~n=A+wOHqT}}wl*}zA-Q~*(v`!E@q#S{q~S^Lg0@TM&oYOv z0#e?*nL)e|@M8FAj+b zeQz*|=SY4hm&FO`sh>?Pk3Jx9lT)m)!#GS>6)2ko?dp5pkeYF>N{X}?cA`(`<}}Ap zE5T%|Ogv7heNq(LR}{N)Xo{(_{NQKjdp9rKLfXluUep4kdC1U)6d4TBSpJE`&b+UN#kY$PlSFa6A5Op;5? z7Z;ETgOHuU)&>i!DRD`3UcYpE_Q|j1yvj+;dBekOwV&gh#58N`^3zrCVbP7~!)eRJ zHHU`Tf_1bz5O$mG0Uk>Tjp1k2rG*qGG-;rSc@ub;vBm(R`5GObE+E)Y)RHQUCBlq21FF#qF7W;pb_OX z4>}k2PCnVE>fR=MPHJ24`h9mN2ZH<F({nPy*c%o`7ieB zU*7;eBe_87Kz+UNU@`G}*|GX0S|kaIF!fp`6KtuG_5;5F={revoVTB4lrm<*bBlNZ z-!=q1(_dZp5EWKnCbSdkEjA1e^bfIuFeHafsHu8uQ!2cxiK|!5gJ=AduRqe?4&JC2 ziT*4WEu1Kk=UuWe%Ij~2ok~%^iPtw$-nE-T9hvY@!?ZZy=!}_$$)b`~{p6RieaIa% zZka7%LHaPKLzL(D!Echg3DEo1#3?((ktv$gsG8*~I1|t(J6!QatPbhj`Oak2EZoR1 ze-03-N#V=3@|Kv2zM2-z-xw~Od87mW+M@W;UHnSyN&Mr0DD;NWL1YX1WoP?0aZSfj zuult(EW7T#FZRk5NJ}+nR;+vC5ySHwkp2Ut_ve5c?)(Dmt;UL`v7B_)IX{(QX43{X zHA08Vc(VQ$6dT3@bBcUj_@#>v4~Tf)n66}$Fl;3(YZ)eAJ@bTxRQH!l{eTF50jxVR zigtTF{)}?i9jxX))U5);A0a`fQa1o_HxJh}iVnY#UFeiRg2XrLU2R(TT~qTXCD1fK z0pv;dPIe~P!K%#1wlx|VUbjxpvCn`xfYRsZZ0tzt4tbQy0F$qJRT9{`6)T`kI zFUiYsX$Zn<&yFnS41B#VVu@J<2!1Kuyw2%3@{Z`T5K%x_3SHFY-)VC8UxIy>*T}2x zPV-D)7pt8ou5qNk`c=w{wR|0{GUUN;w6@LiZwz;Pnhvf2nHvD#tosJNrgF|?%6+)o zm67=CVVC-;OxOC?k1$Np&BHM_{&Q-p6c?JJwqkKsTp4iBEKZ!82~}!__8+e^SD%mO zX!?-X_*)*nd=pyQ*kRxvm%hDZq+M)fU&-U9rpOK!y#$fjii8JjpPMgOnWOE9IJLIr zOs`Bl&NaK_$eA0xdTSMVB*R{=gmhW-usHqxksk~>Wn}S5%Pv>zCyg)Y1b~mauo=2F zrvhM0+?R&Y*&|=a_L>*~7bQJIi{Te{R*Mry7W$Q6+r8 zNrq<2W5rv|K+t&=q%WKAY8VoCr!Y84XNBH7Y6`;bFAp3nzrN1YJw>7iYtT6=yrD}u z*)anpi8!*yez({fk%&1V!0#`Atc={ye%P99_ZcdOy^huOo!e^qSY?4`C}(@S=N^S5 z2A0SD6sN3WtH}qc#333D+6;P@hx_@**2u?^T9RMN_>xNnq-TZrzCF2Q_k=yhA?%4J zC{{33gxLCGYXrm6v>d@@%4TpisXrhipz5$rW)p^fy&)u>>WIk-3zFU0R@%BRNpJ0~ z;Du&89WK7aJns;whl!_`RZ!GScG1e^)Gkv+wN(%G;?AXrwvi=bQP@%*S|t{ABE=tx zj;s&r-&QfIq)f0Q=s2J68JzFipYOFk*fcz_dWO!CCI`x-^NcU?OtgA-y2$o6*pRL@x-^5R=p`8XoKU(o!q@n-vH9Z? z_|r7yH?-1Sh$K|EP=31bZjFVX{^|=h7$`Cr!ZqlfL|N9aT!V91#dBCglXb?wbRt7P zB1b<(h~dae8?a+de^3|}G#!ep()Tu2--M3bg6C4jdILoDL+LnU5 z-yRl+;|j_{G2^Eq=q2dl{CKQvj-{E}$8E_TDKKF6G*WK>E4eyqqr#Y`TyIc+swx}R z-W2)uY}dPYUlQKzS)$+ai)V_fl82in7IIrK$iXsdChbh*;<=Z~JtrDVwJaQscNZ%J2Z?pkIZlT}4IvwCVc%@VIMLyK8s6YcqVvkM%b=##up7d>O$>{G&>1 zmH*=wjOseI>L!kcKvHq0Z0xwehq}zc2Deq8Mi&ZvSB4Z|E^#K|6!E^N= z)aN@z=DVK@_xuoUH&eEvtx4{ulN=Im9QVB#9FsR9VdKqnQtC7(-K^H8`ohQIzEo1j{m?X63=%ed>T!%(C3x;O z;%4ci@w~Mq*l&JGINor?QlMDjn5DIv7jq;C3|L_*y=t?as)}Q=x5D=pXf^rh9M6@x zg{9lj_V(a7mQHvJ*YUd5s`)rU3?>K#;R?MCL4lwhJG``mocCB>+%!Hep1Y6^`&F-m z!-;wds`TC0&O-!&T&izTX-IzRs%XFB*PKboy zWCwj5O;GYP0}q zYQ$az8GX*!H2ZaG^lJubb;XzIF3@0GCi8}9B-OIE5Ox2Tw651kh98PK!VkhuJzDlO zn*npQ(^nlDI$zS=?ah(rW;+ehoKnp)*HN|_IQZ21{P}-A;B>q zuIIBoCm3Lt-E)A; z@Fe8YXO&6pYEUdt_9zDLT++=HGv$h!l7T^9MUXQ-cyFDO4VGS+Ls28-L@S?> zr&L9RXe?;6HlKxLTba*mEc5}zl%9%Uke`+__}73bE3)1Ir%rXqxxFcq(9EDHnoH1H z<|;FO{Q!@HOX#ieDg&G6ppfWE@ZsGmn*`;Jnv*1EGJ-TM5l6TbIiiB3i$+{BiaG5I zfnF&;B=tnB#A0IHGD&w^^%OYnVnP-hDR05iB+|2Dvgd^DPO==yh{~2kTxmai@TwAV zD=bM~%(lOKSC#Udc$0um;0K7+IqAjxCMi0o-PQ0o8Qo{|h1j)}IQ1irt?mxP!=oIL&_dL`g{7M(tkCmL<7h^#;U@uORwP}6q*6F9CY zAa)BUr1qg$a>WEQn+TNa^~3SjL}%@ph=ua^A*#B5j5Jsg{8r!pob)s*1+pTNbJd6L zcN&u$cTWeChbSkVkCCOB2=Ed4 zY^?+@I3AsSmM8XspbtTo>tndGiC|4?|1-RrsH6%Lk&Kx>w0AWzABb1@OZfX?SzV(u z=2t{xJo}IhPd~=^tO&JSDaF!1U}wGzqInh`!*CaYBPdi>SE3h zvjb)nN_s<#Q`G^3_GWb6Gs6@gT>{55*C=)Chgc3y-ggVH(Kvbz(>0%bSh}OK=6*!{ z8$xm8-w}#Cj{crdJpOlt;_!{XBNSKtJ)yYk`0ohCtA9%<7XEuealiw1;7AY^rFxhu z^D0)3G&K!unSz{bb!?WwdeM{M>%Yp_|Mx5!1>rxEd4!W;92o^-M|_bc=Nt`FAbzGG zj}@N~QEN`lHQS>=dZHPYpP0+NQ3|ZEH6t6jb2$dB6<+)t53fAS<+~^7!3g1ss8TlO z98c{f-mD2Lsxao+o$0}=tBGtPUS{v+?_6!RK z<}UQ_Nbu6x$(Q|u$hlX-$t>b_}~;GbTY`iVtkoqJ5h*sZX>O!Ka&2= ztq^(Pmy8h{d#Xv4Im%jEhn6LK28h`lvHw-4KJS;bw|nO3w*npNs!r*y2J1-E4V`aD zk5a85>!^p<9lCx;8U8RTt6~%gD*TjK!P^~_tj7w{8XB?bZsyd;v%NBgNH0@?g*?he znY6a;%M35>Lc~EEnb(3NX%1(F==X#jFJ;-&ot4dz#?v|t@V=y4RG6dg&UWa$`;y^H zypGT<(D{nhDa~$v9qkg-p=o%O?%}hJymZ}Z6i9uZvm8Xpj2WiPZHg5tjujuYUP#G8 z*rUwr5+8bplTS}WuOh&x5xg^z&x&fT%%wjTa^aTGB(kj{2FDq+5@pJaojSm6$r*ah zY|6l-Hz>$k9lXD1$_CFrz@h3Aa%!;3$X7ooLV6Ok1zBYwyBgs0I|+Sn{(v178$=-- z7p90}iX8((O-sn2AmzmwmqffyO9smz>8z-pjHFde#8W2aOEj8@S6fU%@=MagYc%C4 ziX{OR;SWz*jwHeXOH$-l?Jhc1$*A_0FN9`)_@Ox`VrOm=<2SUsJ20jnwNy(y93v zZEqs|h?kifiAB$n%4Ah`UgpSh7r}nEk&|m2$uc~%c=Ca;OTLRe zTS3_Zt|qNpGWkoUc7?_BjM*;Li!V7+#2YXr0^Kr|PFb(#H=f3Tx|9}=vekSx;9IWc zMzsFVp_@Tgq3>n3qE->y*D^V&^pQ-R+M?%Kzhu>JMsg%jEMN)-? zL-bvo0lms*w63Ycl*!eBlNDxEuV;o>FI?XLAYP-k;vc4|bonqhzeb_vImEPh5-{wu zM(2+pzb5v#lr%m+{vDxs=8^P(no0QVRf=nGQJy~`TjnC=D6kCVY}rPZBUb07#AdM$>-AW!u#@KuIc;W z?yOAwO)l9O`;!lG;U)wD_N7kb=&Vt}=xZF9n#Q*>}!}mS$hSz8y5pO)7dmpiiwi+g`x%vb<9zVZWvAT;`I>vtpW>JqfeTnQo z`sCO;%95YNYS}(B@^q9aC70!A9#tbbqOPPYqgO89&8mK(83w15NQjgKtE>rkSMC$T zs2?!OvK+-`c$=nA@yr+;+FA61=f2>1tUAm`-X4>acIgO5&>eASx4C*^f|q&rx?X$2 zAFfgP1P&k3G`C$|A;LRhgdWj71Wahh=VOKnmd0p0F{bAW=&v$oemHfaVC^cB7l(I~ z)inq(FI=`gYvl7d zhBhDU?L_{xD z6;Iun&%2XHL6nE6DutYhD5Ssg%pi!j9%X+NF}$8wH}6Gb0p0)iXOUM{_$_2Rn14bx ziXaBp_XSa8=~vIuL!Cme{W3HwKZj3q8=9G{lbRex`6kV!7^kx+r=2GsyZoq6qPNCd z6UnUlrf&w%Q@jgM{OtlPCsWyYJA717PGMiyn)p_0xi`I#Pul%_{`_23-Q~nZgX|?vZ(4QkGt-R?e3K?@>%mL zH50Y21v{0B0n7}Q!0>#*faWl_S_p`gL364=Gsc2+G$&WCK`%;e+U%P7_!8t*%a&+& z;)P_d4KDd=BjWOf${pwQ9e!0y*mD`;O1T!wn}&QbjSgXs1FT&Jj5V{)dbKG0h-2qf zNLS=>xT#M(K@RgtaYW1QxgKl2e>(r;FRy`gijO&E-CrsD@(mwmSFZ$2{V;1bBi3X@ zHm+BFrO((fx+4XxSg;Oj^wwEKUtNj|ak!&jdK6Oc$Ttrr8Vx6cNpi@w?}bc+MYDAg zCkG-c6Y*KTD#?FIoL)3FgpUM~uxz?lr%unB8sbNS!tqWUb-37yH4LNPEnv5Q2ha7y zd5M0a$p{IXF{kCyWmr$+vM&L8_Gb^&P!pb%mz_8CylqcDLcd)M`?=|FWbaDJUa0Wq8o^bsdd=5pb=XuVdCf9UHAq)KJfm3NV0ddSrM`z zOlr{{cTTix*_;zN=qUz!s(R)(Q6;+7Fwe@PajQ2Mf3_CWeQ&mL+GJZag%)&s@5GOF z9akC3tnHf>eQSK2Pc|bqh~SgYxG6AtX-9qV{j-ACAXUxbE8@KS@l}L<-HYUN`U{r+ zY8j(Fqdo@?)(ejQ&Sp&~v2oUm6x(gDT3^WHU!c6yIXi3#oGvR17%6TS`ER1s4h^Vknur?ZP{ z1KTOLuyD=0U~h+QRe(1bu<>onyqT-U%F60pf)oN_C8id$5m^Wf-k<04wG(QgcWE{2Ne*cbkSC|^eoYYIS%9Rkgv)rl zEiCh?fH^m(GBGfK=(9|bTAo&A?#jzA62m;*Yz*bkcraVyw2+x|15_Tuic)aT`=wlq z!Z?U_eTmZA&o^f#ioCOngqFsrudA7_=VeD1{M4;*Zujq>FB`^{7@`dc@=0~KG_TLj zd(i!CT%1hXava%ppPiU}L$<%eHLMGcMH4wZU*!E&ark5EJbug9lc%IILi1b5*^;j3 zQm8@kF7MV0Yhp9(uC}`qYjT58jKV&92IYmwqG)b{;b~>Rw{J3@7_CVPNaDUiau`vg z&Z$cb>c^F_-FpFUaG1I_PX&n*3Z4opTNqf1k=z*hswGNss=RA)m4Cc_)1x|G?z-CUo5K};d#D*JYR%847hBAUzR$;ydv;X;2=)qV&)EK%0-aAR zBoH02Pb3GSl2JP@e<*w*D!}n&+46_=f}`iZMQ)}%d8sns%VOEY_9QoXOwexcx~Se? ztxfyiHkuF~r%WrE5TU#!EyWtw<+) zNAYP2PP1>70Jv zd^6Z0h`!@fdYV53aBz2ge%%`7Jeo9L-h*$%&p+%SPm+C7(`qSgR=+Q}kv~t^VVX4h zG_2K9)~tD7a`W=MU`J^(=aZUt%co}T`|=yT^O_yI$)!)j+AZbH(?(!c-^blkUsd17 z{)x+$hcTnWaf`rra757*HWi?(#`1Ur-S?lB7qnkpX0&D8te1z(}2N^m@WY0Qq8+I+txw}QCq*}UF=JD{q_I&TOAeuWQ8!En1=AGWw zmhb2@>l><0k$<rGy6uLJ`lv+*(6_U zH1o51^q%rsG_tdN&RdIl$uXRL%$H?@#`N?&=|VT9<=Q{N!NH#U(cgg)!o}D1sI0;? z=W+SsuKz(XJ;L#``)vuTPYpl~zvY|s@@_d;dWG(D-fg~M_co(c~{0OqI3A)^N_7vd{cC3PxK3(pCU*iv||Lk2$MuvjSIplq(W|>7w716LPtM_+3+m8 zt-M-hY$MP%2~01IZnS>l$}Nk{Ernbw`MOq4ZYKAIS38>T2pO7FyD>^9LR33Jz3DSr zGot2p=6W+yJX6GEsYu6Tk|`6a=59+*Gog2;=of2r#BIa;0h;`gM$VWI^%3HC0WS^Y zs2x^#S7XD>3n{P#dgL$_kMT*DIkHz^8QBwYO@bIpKccH67njC_SO>)%BZ>y&{#@qL zE8uF(hqoVnaepKLXN(bI%-`IaLJ)bJ8dR40F)j52xavt{6$;Za>Xb1HZ!5N#F;g9| zM(GkI?l2+lbiNDZ;txfxk6Jns3Uo$Yxx(hdjMk%GM$?E3uwT!^psA0%^$aTUtQ1-& zJ30at z==Mh7?^mACp>(~BYNd|~V4^kVEM8$62o%~hp-46ssJ+5lG9lqz^|lY;t23j!Fc$M` z$GnTe<`1s9!o^>SDM#oaL+Esu25^N`XyNj*M4WLSd~ot`{8yfmt`QpMJ`<~FY)8<3 zNkW#7r>stfI*LHHhV6sIRNH3tMb^qq27M-5nW+vK~KkNs8#M%|Cl@l7i6Jg7W2h18#`!SsZB~g`p zD@h^c^VuFL3PmUU%VPw!W60Pp*$r7MMv^)z&k^QMF6n^rQzdR0*IH@2S}AxpNqo0Z zakjHy5n>LEA%c)N0#y8{AJWPJFD#9DH%&$HOc->Gadmz?->pJ4oOwpJ*UGxr`II=2 z?c)ly>JRiSXGC3$_vAt3D46vD^d01+3i1+y)v=M!a0*Z^k1*6;eoSF!U%mVBKcD?~ zzZJdzZ_U6708%&d503619Nqs2uJ{j*?jIc8KRCL7aCHCR=>8j|`5zqJe;U&K5036X z4r%@eNB3Viy8i~o_#Z;*CXi7O{{KVp|AV9Z2S@i0j_w~E-9I?Ge{ghv12ym;9Nm8! z(){2$=uMR+fdq67>!H^t*o?SfwZ&zL2NM4Cq3}oKaBG;tA#_L7*_#U8~xV5WXY4#kTMC9dcJNIVNz;9rixa z*Lp!kdI6Jqk*G6KZ|S=nd?Lw?u>Cs8*gr>=Md(dPvk*s{0eufA%JgNN%#SrryhBpL z`pX)%?HlqPN!Fnk^`u!NgnX-(^C3b`_!^_g4uwBL(9?R_o9fA)A7hYq6?hVZJduW% z1t9NJjyMh5JRu+Xj(LlheSN}WI8bxUXq(#&d_Dy01#ajC^8jt4nFx}Z;HE25u~q!L zk1ZJEKU0CmQ^8C4?p#t;aVl4&%4vr6Wu z9X-S43U6qXdxuGilP6F|+9sEVP^e!g53}VY2siD;gXS`-L3X;Se0A-RDo(NjdfGkx zqg&JsfvnK$%;=)*4<9SJnL6vZlnX~$`|XP0Dze|!F#A{Ud%(}vl_c!<^KW;Wdn6|v zh|S34?0@wMcqmqC-9WAvX|jm!QzO34S2pk(t-IHW?{J0ttIG8F0mP5(; z)Z^Q0a@i@X2Q(Xfc}BTc^I^Ler3d}_9A|~|dI+~sin!(oy$(%I1t|w!3)wF=YSa`b z4>OhDh+Q>(hm-Tm=1RPU6L|aufnDTv?(b4nvR`EJxM{Z3#MVU0Kw&*FNS&eNrVY*J zYa?D1Kmx~f+^f27UlLmNwG12Yn>>CWTbR`ut_D3so&#{Ps^Ys-SUd3k1Lf02?o`y#qG1G8&btiFnHr zU`qkEZ@?Ba;obN6h&9-kRdg$H8G3-fAl8`U=KsrY{J!K?{j%ghccG;*$K8L|Z~7j* zB{3YDjV~hRm3`*(3p9ROvZX#;lC3M!;+1{wvkRK8*rWRSsI+7K7-LB@pt$t-mCV|I z#4qn&>NflWf1mHCe=V7f|CnFVz0z&k1>e5M&&OIaTmK2avU|;NB-CgVtU2Zmgb8NYP8b%%8Z4_?~k(DJQ zRAX16Y1<@Y+2SMrsC;540`FVSOgOBI^wBb(ZVJMXVQ(L*%z0akS%u zfp~j-oNVzNQn8(RCobXq>fZ;=^&hHjZp*&*Gk=>M=FQJB)n!uoZpKCD@8k9C?W`_h z{pI!LJo;)^;5NnG=;!+A~bWT0x;0unnI{d0(B3E5Ha`yO^FqE@H&CFVIvS_g{0ZAW6ki&hP6!hFWZ_|hBfS5bZxC9PNQ+1 z_sM5WsxP(Ol^1hL8o7s%K1O?dQpZckD`P!9x{50mlT5DI8%(Kfz$*pg=CC4Ztb(~EYzjt8VFwKhVk)9@J zM^%nu6FZBVqw4q!@+$VEU5~q6-*6G*=D2R~#!qu~K8yIYHJ_#*5}$5GeA*R0U4KOR z^qfyVFG%&JHsRC!4t!eF@tQR{R`;*?_>Xw>!SU$N0*{7$p6wLJv!GTmnqqeKJQp>mTklQJ3i*jVC;RJf;qQRpkLQ?R>+tua zZoCJD`98Bgczd${^}($_M*e+s@2C5e6Z`L6eQ(bziu&R8f6{j{zVDqu&*v|5HNL;U z?@*kfeU+!AI*GRt4vwUwrXXka0+0^gZGFnAT zSf}@b*Y;{|5j7|Nrfj z;Y!0W5XY0!julkIXYc|1=vVC&hr|tr;5Vr=LZM4amu~74_|Zr45qut>!emLhG%FJe zt_5>&bocN5a=Gic0Qdj`uySDs+)ugpxc9kxN)J@5^I)kv-tms_68~xNdlrAJa-pHW zgYKE=Bimp1Vcxf{k1ovJ@s4-A;~nq#Hu%23ore~Gq~b5`H}MREid~TSA;tF_3ZjcL z^DIs2a!44?6PmAH$eamI@s!CNM2k5dEpUE0B~m#r7^7rBmqbfaxy{NHaE);mQGW6> zLzoo$97I_{H709CG<&Jua2(GWt|$Y3A6Dtlp0{5!FLUmPDjuhl;m3pt{>0!zZ~MGG z{tK$QyW&7YuC89snvXWkg~nXl=AP2^n{sak7h0UizXRs~O~wEYk>;;{*>|8~@kG&RqR$cb4V}T}Y062aQ~&?~ literal 0 HcmV?d00001 diff --git a/算例2-组分流-无效网格/第2层压力分布.fig b/算例2-组分流-无效网格/第2层压力分布.fig new file mode 100644 index 0000000000000000000000000000000000000000..395857b8d84cf34ff0e3129fe53b25b2b88383b1 GIT binary patch literal 668615 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[DY~N%23hrliT%C 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%0Dtrs%nf- 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 IyjU;9(mdmI@nhy3JDv16K%M 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

=$nl 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 literal 0 HcmV?d00001 diff --git a/算例2-组分流-无效网格/第3层压力分布.fig b/算例2-组分流-无效网格/第3层压力分布.fig new file mode 100644 index 0000000000000000000000000000000000000000..a695ef404cfba52c7a0cdaee71227b2141eff615 GIT binary patch literal 679270 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

%lYj$4cEeg%^ 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

VXo*{`g| zj;gfWMCE`|>h|K!^v&mfAjbnN(A5n+MTeB~Zb=);{rdc4x-?gVH&%p#^+n|p2Vuc;DUts+u&TbVb7+8=UORO?|-~l z=!F@cBrLMj^RvI!Uoz~sy@Fx|$rtHNTI-K(1~qqb1~|Hra+B!dADf+0+e*!e_|Lpc z9;TWk_v<)#HUG073d+Z59`Oe9*+hxvuHy&@EhxHO_Kkh@kWoS6lA6ay3$T zPP}1QB6$ZSWmn}!Q1%iCfK@x7kK`-X5+(HptS(pF`Yp86sVBK zYWVpx$7>H_p!wK3D8K`fMNhJtL_B43pf3k9H9N=3|p!Lr2BweSW|(~ zdI3R42eg9~{cQ>8sD1g7qJL7@mzLHQ_N%Q!llNo=NBhs9zI#;6yOi7#Dg)@35#M{6 z`}70(A5C2h3~L%3`rEB>=2CtUc~y~fF6Q6%Ykuz6(I2ZKSa=l^ABHAl&J3x{c&oLb z5vb@0e9)LP3-rXXfCS%O3jXHo9@uU_=XgB60eX02P;P>gthMO8180g9z^ zeE@F%Fv4DmQW7l7c|`vjrOCSb`crQic4Rjr!d7al=S(Z7#lHcdoRG+O5pznJj;q`o z@HSpX$gtFUFBMFnAvbgcTD)Ly@FFW}k;`cKq4n`+4g26P3lk5snnP2g3W)OTj&{eR ze;Ii$R0s2z>47ncTE&OPMyGpC$j)eY z9YWK{vliOlL;(2q;3qDGv^AdSSAziHQ2^T~0jjZ&rYtS2m+Q5W(CyT|2`)*c2}vL7uA^#CW1D^JV5ZEBSc`lU zV1j0z=%zR*#Dcdxur&jg@Y^pZ&CRT7$o=C?ematocb<&6c2Cy#!yPj73l$=HkLFFk za0F>+{L22>QCnFncO(8$s>s@KQHfius)+LCLQC36QPE+~Ma4xcf!fC{?`}#bjTfoM zEZ!IE&Pn!biF5hRI!xc@rO^y(EKQA;ftxHmUCoUg@D+wm@uU{zZmY9C1v~l-YeGr? z6n7V{)#y_R*vr(kHaF)+pw-r?&E}*O^j(q-oe<7JtsPz+EC@%d_u|0CQBrQG+9Iia+eEt$Q$W)PzjAN<5Q_)E1c($cV8lyLufrck>!- zVX%}UGa&`q-N{^f@(iI7?ynoMkN*M2#fzZdONm}QdE7u>$*YpWHHc@ z;penaYp|iv?{$_A@f!=GI8{!WK{lCdQ+1h7(-cRXLd$3tVhresx_DovU30R`V|*=i5W8N#slikcZ)xmNU4!AjA0d)bvMLF(?W zQLUfNdz!k`7FCdJGoTXdiUACIM$giOkro>AOl)^>xt8f10vKQ0qo)CbaEfkk5!p6X zR!s;j9_>=aIo#7IqqvP)%(|UkW^eivii(llg>0{2dtZ;_2H`!xRa~?+ZtYNY64Jv# z|7iJUCdbHOY z-)H;?$B$k_wuF&EPmqSx-!*^t==Qr zq`-Y3lYcXTUwleBbtmAxTD-r})ssSRgC9}?FO(mHam!tK;~^af9>W=CF(u0Qle432 zy1YS2zh>qpZ=7bH{`@VfRt3a)p2uF>=AYg1fjO<_Qpza_K9gq(ZdMgME4bC?5p=f6 zCVc3tg_363`^bJ8jFI@AC$ASS{R*ptZ)9o-XsP-|h{1j{JYPgy}I z;>}sInZ!-kdRCCTph_Q7-U(u^MlngP1TpTL5jV6_;e30c1kDvPB`+ICGItUve+Rfv z=R`ovBbp)MQj2kh=BQ3|F#H)jHi9bEaQ-*s2zEW6nz}(!7>U1C>fXr*8IR-@o+@X$BpXlW3Xc=k1#!Aq4y$+@BO;X25K(d&H?`oe9m&pM|Do z&+c`p*zoByF;$hPZHArLc5F_hm1_Kg*VV2_`4(O*`6u&i{W(DfmZ-bW){G-*?wTb$ z-_wO{w?8sf9}rzw9bx~zFz*!#BD;INI&0w<8%~rx8j9n=UZoXTB7yVrQh4P%M`IXQ z8Sy(N8dG(vG_|YGuS=&!yV~#Uk=s7Q+z$)`LYuvxgc}BXi0M4SZ>T~q7zkg#y*YRf z4k#wGK^kzB@%DVlsnAUmewamiZmM(v=P5`nZD^I#L>K2vWJg1OboM7ODX@ocVMQ|O zAnX8Z7IHIwFYFThbq_qUs%$9nKWGo2ae(EPwD&C+0ZNb=Ux0q==*1t3`+o=im+p{2 zJ<*h~`6+bkb5Nv%Jd^Y}t7p|JphG=Gyi=iw(L;gM;4j`K9_VRj05ydSk(Yv0o`bIj zoDYfVU<@&O_FznIQOU!l!z+oT2L!sKYYnA5dcw1z@@#FVEjGi?=@BU@C3{K3+aF=} zFFpkY7yo!f%3wpOcZpQvk{)S*8Xq4C``0gfuk84E3%T@*PX}o>!{Kh$HrlrwNKCJJ zDJ_;^SDeN$H*2Yq2+d=qGM9UJX8%syG{2HniUzKg4s`14R$AO^{VK_*Rx)~jG`3Mm zT5%b4ONY=D%if+_qj41Pebsgb-`cND{QAcpjiSk4iLLpPP`*{34xO>NpN4P>yu8yP zHxybNG!l1dm#NABrmM{5N?GK%xY2W+KLP2xBX-Ergm0@R^X9a1RiL-0v1XgQ<{5eB zjc~966d#lq9snGV-cI~e*b=W>dnzN9{D|OFt(=_Qyd$PwiUkz0#PWcTPH0vC{N_9U z);NB|DO|$i@$RrvgnKw630TsTKwb3HsOH^vi00iLgZ2RFn^AxzB$z*tAu0(Z&QQ8b zGpCnaGo+S?uSbejp>1kG{tv=(=U?p!;tZ#qX{7y${TA^sJ>4E26xCmMcVX{>7Y3Q` zU@?cXXpDw0-u2fSgM3XEEuiI>Zw5;N*I_)hVUsfX3e*NP!0|U{RMVi{0<>V$h2Rk) zO~|ZhcVP!d8Hu8agAo}(wE@b&JEE}CgTS`~HvI8(kFE*7++$V}y_l-}_ytbH_#NFP zM~7=SXI_Rl3Y#6<;qX2=Q9U!-#{bgMrL8bp>?u(Asf7BGRjBljJztrIqn0E~OJF_% za`&6K*Ofn2w~5u+#74Am)hN?%hlZMKZMc#6=&sCv8e!mH&QCp4-keGKNiRCe3{Jw| zO0_~|4nd>OirBzz(Pv@rEX{rbS-UE^f(ANe+=<SW%?5lBld>$ChErS zSv^du(pE}>9xY_(g$hx*lZmmI)9~GOL2t&+IF;qiQ}gewR&}ga<2eRX3x6)|t+0`y z8#t$RL_k@7#J-2=X$+7;Gysi)t*7yvGO@b~_yJ%OeFX$@a5@*e>2q}gmBS|Jo2tH5 z|H1~jP*hj5MeYk?XzFo)5 zQNH2VP}cx%ym8_ai#7SannITvX9Ls}rDaxzlXiZGSEA%~JP)$wJY7lu2C_!YmeX-w z+GtBJvWG-({aQ-1k;*vrpdyT9WeyzX_V)gT?-%9SO)jyLRebq&S2tQg!`5Y~N5Z4a zx6SU=DavP5vP@r+-pj7fv88Sk6bUQ;GpvQRc;{o=u7g@^lzDj(Oly%D%j zQ|kqoikQ^wDrH&;@4~ye_wOZ!oQh{rLR(7-4sgEeNA>m_?E>4<*5}fKVWLyBhC^IZ#xNOZ0#oGqqXo0H&MKr{{BB!V{l6ctl};dl z#iBxz;V9d4Ki6^Mxu-P=AWgGS$?wd0{Ra!os1HGhK5f+=Z|L+km+ zn@tv$PvO?iHLSEh-X)b5MP*IC;!kS2+fZEM^WZO&UAF1YUf~as;??J_v)s(XTK8uq zkdqaRowu2R3i@i*NETCxg3MjW?)u_W_OWVo+BbB8+AwERmm66wu)9ufkp;E(K+=f^ z?_OW7iwbF7K%Ny%^B&1;F&Dy1I+Ynob1X{wxN=TPzp6YkogNoNO@l#W4tVPuu@D?~ z6BtwDgLrH||91?PAjr@L*yL}K)<7&XNrr9Jv1+tYz+%9EG(2X**(UuHj_sMyS8 za9EH}P*VQxU&)#&9?cgSzD!@jO1w{2@Q-!ze;J%)n;HLCGl}o$qvrew^ito{KMmt1 zRo@e)u9&mFSwP61zjI&B=2&gjh-F`{mkyWxmD_HW31oyo<5tD%?@UaB&GfX4trSbi zhC^2nCKe-J>29WFriOn-@lxjR2$9qy(Yp5cJlg6KW2vh!)WLLH?l3)ofK5AJYM0uI zo7?qw&}QoBz1&e?wVcq=P=pDW^s3cXWXsTwA6TLgSI=*Se-Fov`fyv+vhhswM%4iA zgw*W^2=(*0Rf8jk$j)57U>>7@4BluMj$0?t)ym8m zZy`pD<~a-^fj>_F9^>wkI@?t zSWfR#<{!>zJ)EG8_HLV)KM^viP=2oL77wuoI2cNf&69%8=?b7me65K3>A@r}j{uSe zU=a^!B>SRB6e{13uB}4J*OyalLy(%JqOLhxJnf5)_0lecKr=Mc4Fw zs73Pzmlu?Kv2S|O*|pww{5R4f?BR;m@fzzs9zliL23xrWTa8m<-It-``Rb<2QcVvCZvmc#&oNsbg+KRaxtXs!PK-+~3|NWa$TYVM8fG);*qwz}N)P#KI&|Hphg)5ajS=_eVgZc~i|jZ=D}5bU2{2 zbUft>$b3B1$BYBBvm?-An8KMt*A2cvD+2jtf@3{Y@;ex`H`aJqh^tVR1DH8Q)piBe zuB4FBxt=6{6}NbiajyQ8-RTNca?z1bgTD6Vc)Vi%N%~_g>)$z#W1NQh4VMD%S-p3o zi#bbQcnVWFCL^@IyBA;N2C^9im{661=H$j0_Y}ClyFa{H(2-_*~x{pPN_(l3*8 zC;nC(tp!Z3KDK?u%jrBW$tzr)GmDu!u-5&(nIcUzrXDaPDbNjM;9{+ zv`h!ZOrZN(O?PA#RQ4DP`5h4%^?*!~a*veI5V{H50AUU{Y15Ms-PD-ByKeqX5Al2S z%b|811v>67L21Zrd1yO1sYQZSoq1RRd>SqEI;XryI?X7*+nngQkidrOvAWYL zV+MK@?fA|*vql+yhHeoXakx%i6Ea8%Z}K=y?aG$38WKU!a6e%;1JPrzvJJdM=^vE*}g_)1|}?u7*AeAm!~+RrOjoPS?4mL5Brq{TEo z$}E;HCZ;bNklU4x3{K*pQAi7JQ&1$WXqMA!2URbwQOyKR}{$`WzGZKh$ zl=7Y`l7>4O?pVq8Y$Vpm8`TO`Qkx26W$T?=RB-DX%|2<;G7TlOA_$@9TbAb*JAuDH z%M7;Q4xoUlj-x9L#}6_zt`%vwQwM^_v1PKm3=9B2SxIW{?wA$%AoyKD_l!0tiR3^5 z19e{;Uzx$CKy3OlbDr_W&;8i+E+^I~GUCkv4p=TgHXi^=^a6?M!#;+i->bRV0qECT zC!a3W=E$WQcX_%yTM--UdfTG>8^qxH_O8r}FY3oTPA4 zQ>k-f?|*RxP>5^m?&*aur^Us@#P9*vUOaTbjdiJ3RHTnSk=5wn;tEuu8H@+iDe4-v zH3|+fv2>r8eF_dQ92|v~7g>8jIyd9DD)Or%Q2;wNSi+L{;{vl~2;cKQJ(SKA&qDUS zTDmtL{7DIlMjO-ptIgb|x;Ph4FOASvZiQVWEX8%WFfstUk;!6{2?aV9%+)>Z zXnom3AuXXs)~*=s79LJmOLPu8y%Wb=$rBA95Y5~?8%iNH6KrJuhc47SX5|6v8Sl9v ztmVAG>oP`o`D43j(V!4a_xo}k)8U=ppht82E7=Dst$xCQ-g4+pC9VQIO&!HN0U~oW zm>SJexnT|LX6@aOo!5ETH(mRIjxC-&D}x}=QM`YQ6qoMo?gAPtVK3cX^y5gaf^b5h&sxK5$cXYzpqjgG8iEK zOK(cxKd8RipGBYJ50zwG<mH=gVFyMNDDh10pc}4un%Zks9b8WSFCy@^rC{`^0dqhR zuD4VoGrvP3AxwKL>}87osPyzgq@4c<0W2N}ea?dmIcMpBgxXG{eV-L((T$z7Z z#FfSk{Z(aC7AtJNBDQVCM%arX_u{PWE95ZImeUq&$e?tarqmEnY^Kb!e3v5Me7}rw zdcB5$VxtMWwU9ry?JxY>YFbJOKB~3ALep2!Gwr##*O?TH?I>tVLA`cY7nmKqsLAM+ z+^=Z-PdmXJMC>WrJ15A_N-hn^MrKP_qjxe8_C9d-kb3Ml0rMe_*s`R_&J)s0FZnrb z^t)(1pL>_RbBs8JEgABD!G^6%(0gYH&+XrW5ySf2nH=~$(dxI)6|jyy?HAX>M;&bF zy}Iq@ZN2?n@+b9RuEHB-keCJdKQG7VDFQdDK2tkw$W=Y?LT;S0v#YUtrOuZcceIt) z0$4JjpRK~S52Hd4MqThM8UIC7UJUKTXcCzG_%WcZ0@SZ50rd+__Y#m`sh9$^F#ZAF zr8ECUOY#Bi7$p^I+A=kf#U7poUN%vU*J(FS{O`em9`pi0R{+`H(q@NdqmQoV~|>wKjm3Jv6#rBfXkRgc!N$@kk- z@3P}&G}_G#ErMqpLubq~b7~ZrEZd}0T`D4~f3d;kwsplP8y?hw|Hc~nM`MI#UNi0! z(rHM;e5kO~BjH1K7Ea>vgDuOmrYQSz%7tTzURkCQ*z-8LjVG|GKPM8OGwmV*1|;pX z5~;h5qsqLZ%HY-O)PgNic9RuC`3U)HwPt}g<(=@P=Pg1{<4AW))C770qTM1iu?zeo z_2@(;0WMUON=NT3%&*P|MN#0K*ZA>PLE0XoU_d=QhM+Ogy<%yd+_6W;eRIBi50VJzq%UqttFW9gGG;@^Mx7yP^a!dDNTZ{HH2R!|Oje@Ul?5xMSw-WL)(biR znQ@CUYh92bQU~3-#jS<+wos~QU`43A*a&52Hms*q=I1t6**vs>C^Npu08k$XJ{GXU zx6F%7Fme8&1mR&K%4lfGq?Oc`B|&YDM4zG}%IXnJ%D);J{M>fSrtvEqsNR)nZ$-lO z+qEYlqf?>B=`!?j+#KN4;$=#NLS3Nj%_)NBtkI;If!0UJFEu)MeWQbPy4&bJTAas1 zYl!7=NG!%odW6jbnRK>_ob1&)b=CHY z3smXXpI$KZ?`^xVM(_W|*w^MA51ruKFJIHXY7A7#ZjmPy-QftzUvsbyPP#>w%u$Rf zNyJJPot1DuU+yXINto3rj zLg-rb`fte9$T@Y611>EP02h#Mcs`wz&(E?c7X-b(m!w+=W2@G)cI;=w^PE$QGuW#q z@nRGBL04C9?15N1fpoFaI`4|cOBR4HnJ!x~X@LmRa@?ZV8x+;aOMBC||E`3*V% zWcDR#Rmzr(ds!5juzCYAGy#l-;{iMn#kg!ET$t_VZ4Fh*0pQ}9fkWE&r!kPES{+sj zSR+*|ux5+U4%)UmW;cAJP0p-;fv;W2)kvKZmgXdqNtD=3Vxx2cgw*+?4s6jRz?Kk0h zX0xoZWYU|~jD^1GYALkt8qWk+UE^2S!sS%Yl=O_5Mr}uq zi?VDPeAt?uiaO2tw26f^-`;FEC)`SY)#^Un)j>xlqgQU^4OEPE{~bl~{UToppW-nQ+JzdteJPJg&orWU}IX@=WLeT3}Q22bgx>oI{ zCgn+b3BSEN|9)jJk)Ed2mGg+@(EnTLh_S3y5>YPv$?Wz>ESIQ~j&7xrlaFU~@VIZ2 zjF*s_Uk%)5io`|cOMl4>l}OIxL-_L{<~s^9Hn+|uT5QnGpBfr-e)xm7V-D7~;tjsByAmM%gFx56HGcC?`u8V!TFY2`7m{QjmhB&0#Mv}}tC1X%{_X+( z+tW~-OeRQ?I+rO3L|#5&dLS>L8O%b6%?$}IxP369nOhohe7^%D1*8<0-z1kZ@+QU2 zTvJn!4@&C7m2;db7E==S`OZuW$kC_Ia|NEBo10^9Iq%X|Av-rWY1pRW@GCjC2v!Ek zrCA+Byd_+Csb2h@9_@rUb4>GfO(#wSXi7{ zD$Y`k=RH%Vril%90%^G}rNc|{drAEur>&F>+SuP6E@*#Ly5SQXqHDC8nKxt9>#j!m zb7Ej_{7Nghl{*ZQsUDiVy zM&at<6+3tMGN+WijlC{U6&kq zfdgvYm1gv35c?I-%H601Kg3S+#>4NbOjG+nVUG}%T*VMP_h8eg17DgHGC#bS^A1Xy zq~M_kzE)a*8VBJ(QeO7>a#lc<9y(gt_l2`{s!8;3soE;}IQ_cqQcU=Qs021HUVo~r zbRqU~bqDily2cq>4r#xT5S`E3%-^WFnSNIqxMfMG3BIjF|lQ^@T;Pa2jx~B$E%I6WA*v8&QrDa@e;|#V{%o$sDaC$<}D1B!6TDD z6?IO*ad&yCAZISrV_v+YSP8i&DPV0f?>RYgS9YbDgP?jEVCJyXJ1gCfW$z|N^?qDw zOC1O(#%{dCPT@Pz{Y;&1H@~AEFC{$gD2hsv+y-FalOt)8B4bRh2}(Ua2_&ZO2Rd!QVtaNNgobxKb0lx5ZM2Y>6~sHS2&8|Z+8o@yrjbT^0v@X+T{FC8g?n&iMN zH4i#xF3>CaDKU1L3~I`{z>13;4i)xpvr+FW_YDn@6BR-u#DYOnnJy)Iu7`to3%j&_ zLBKMFFuehA9W>xNI)@q_w;Wstu@4Bn*l)pg1e=g1=l-9D%S4`3|5uMMep-~q#rRVJ zzK>4$o(57>0%?j3cVQRTd+{{C2cw)rj#I&o1o0hc6(MR|inY`E2{x`L6nA z<)U`Rb%7J>ju;8NU%$7Xz*(R2;;!|V#e+Q!@Dq#5gIY)vy@|wi!Eoc@w^EJ)+qZuF z^v=Dat-J8UIg2+w_GaHRA@c7EjSwCK`pc&H}h#*6ib z*r9oe28_{T?aLi{S3C6NyixHlJmsnNI3$q$DKrKDr>z zb>#U6?CW}D@6g~NHon__yD&wEW2R~Tr?;j8 z&QU2J-1GDvSd27^^n$}y>l87x`==WC#UL$Q4hW0@-io|i66P}M1I7Sn0d>uAee_(w z>kR6;#Jq@ePhdK74_TrUy3=CIaXpxd0r+fFCq-*BJctD$y zRr$-o3JA^Jta_ktaKh~*1$SXv&3U~ng-s)>R;M; zhc5nLwPRY0n&8K1dU=0viA8MXZ>>J(_EKjw8yVm9_x#t>9s;D%`{Bnq=a+4!;ag*t z>}m_ta0?K0-p!59RPO(*p2rQ&W5Q5wuM^0|9=(8)9**jzHGSNr_EAq4Eavz93yQzp zgcf2zxgQPAiq<0uaK~@HkZ>%ZOm+=I=Kw={Pb-`pssjK+yYg2slX4JT=S85Na}Ba? z*)Y5xoDmzqe@z6W5&U`wCIZ>(?`d#zf3CwqREOAE$Te)hMvxn5F6729K0OW=bl}B^ z=bG+*dl#J^@9$JI4?h_2&nTwg%v&vRHCv)bhxLOjM{BBnSK-ZLz|t?rJRyfSVDc(Wr-!w@4l>tC}}oRMd+i)fGOJh4S-4Bh&o8xgDA&g z&))5`wfdEe0%l@*4OzO+77FSq>T*EcKG?2vtMSm{Oyo)t^FHU%5Oq5q>tWvo?>pxNu= zmxLU!rIHSf-@l3ZBtF;6AJ*LT3Ny5laU63K-ktif1w<8-U`sK)K3@KQZ=2u3`-#UY z@A?c2j0BgG6sO4TZ;XT9%-a=#`$_3)p z#L^U;e7hg83H|!%e+lb-P`m|0i1$Yepilt%2%}JeWtyez2gnombjpdZo0WKM1C*4n(RvtA zMsyUtT_R?+Kj3#?9s;HuSGjrm|93fR${!~S>ZTq4PWkL)iE)M8g=)47nZD7?{sNTr zdv{KHDkueV+^Zq|N#n0?o%V?JB<{4dFTE8?BIZfb>sRL{`Oab%|HV}eURg7L*S+0@ zNP2(159GnVk*ZuE5Xs)B+-^TPwQ|%T18>Z$% z7x-gaIIpcr@dCqRx3t`vT8$gSuG-G!=UZ1Of#I>vvG$bkG(*j1(GDiT_W?TfT4N?g z@Z3n!sL&0_NRb_29U9ZRf+GZwKnY05rhPxXfjc z-dx735A`=eN6wZx>c&BnR0klTgFrv!i}*)XT4IwF5Jrba#!`SvifDg^c6zrvn~*u6 zBj>3sGib>RwOSzzsXYz?{}G!m_kfz#7<5vL6w%@j!m&X(+8_JJb>FI#;%|4rI|7Jl zxgdHyB`S+K)ZE_;LK;B8Q*I;l;VlO3^%_GgVJ4o{+>xK@5JgO+5o(PPs{0kUULb_-{6j;aPa#Q+bw*riT7Y4{?+nN;g{K zof+4~roYUl*)GS4<9u3**7s!i3pQ)6n4f7kPg0b(f0V}e{-cv&!RK2 z|Asd~!L3WYKG2Iw&)lci~(M2E^$A zWD=`x!hj03hJ>{r8n3&WD@0~ha7G_$>Td%{jP-qVzen_fV{7NZEYBCNK>AB8 z5L~1Hd^B(e4wnq$1`}_UUpD7ikP=|~e4Ri)WmBJaQ{-Pa{C4DW!ne4nPdoY)ySHl+ z7f02(b~Dza&-S~?g7lYr=@mPJ%2CELLW~Vl7mScWpRm8U-j HuS{Kp(Ii=VnYfN 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%0D00F&@dh14>k?u6f@g45K%#P+$F?C`HHg;n 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

nn8m`H)BMC35yQf#+vaS3Ih6l{m*;`!>q$^<{I{ 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∨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 literal 0 HcmV?d00001 diff --git a/算例3-单重双重离散裂缝混合模型/grid_discretization_DP_model.m b/算例3-单重双重离散裂缝混合模型/grid_discretization_DP_model.m new file mode 100644 index 0000000..b5f4ae2 --- /dev/null +++ b/算例3-单重双重离散裂缝混合模型/grid_discretization_DP_model.m @@ -0,0 +1,70 @@ +function r = grid_discretization_DP_model(modelflag, r, f, frac_information, fellip, nf) +% 数据读取 +nx = r.nx; ny = r.ny; nz = r.nz; NTG = r.NTG; cell_mid_coords = r.cell_mid_coords; +% 裂缝层网格渗渗透率 +kx = 5*1e-3 * ones(nx*ny*nz, 1); % 达西,D +% load('kx.mat'); +ky = 5*1e-3 * ones(nx*ny*nz, 1);% +kz = 5*1e-3 * ones(nx*ny*nz, 1);% +pori = 0.01 * ones(nx*ny*nz, 1);% +prpor = 20; % 参考压力,MPa +cpor = 1.0e-5;% 基质压缩系数,MPa +NTG= 1 * ones(nx*ny*nz, 1); +% 基质层网格渗透率 +kx_matrixLayer = 0.01*1e-3 * ones(nx*ny*nz, 1); % 达西,D +ky_matrixLayer = 0.01*1e-3 * ones(nx*ny*nz, 1);% +kz_matrixLayer = 0.01*1e-3 * ones(nx*ny*nz, 1);% +pori_matrixLayer = 0.1 * ones(nx*ny*nz, 1);% +% prpor = 20; % 参考压力,MPa +% cpor = 1.0e-5;% 基质压缩系数,MPa +% 形状因子 +sigma = 0.08*ones(nx*ny*nz, 1); +for k = 1:nz + for j= 1:ny + for i= 1:floor(nx/2) + grid_numbering = (k-1)*(nx*ny)+(j-1)*nx+i; + sigma(grid_numbering,1) = 0.08; + end + end +end +% 有效网格 +valid_grids = ones(nx*ny*nz, 1); +% SRV区域定义 +% % % base_x=23:78; nx_SRV=length(base_x); +% % % base_y=15:36; ny_SRV=length(base_y); +% % % base_z=1:1;nz_SRV=length(base_z); +% % % SRV=[]; +% % % for k=1:nz_SRV +% % % for j=1:ny_SRV +% % % for i=1:nx_SRV +% % % SRV=[SRV;(base_z(k)-1)*nx*ny+(base_y(j)-1)*nx+base_x(i)]; +% % % end +% % % end +% % % end +% % % % SRV渗透率赋值 +% % % kx(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % ky(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % kz(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% 裂缝孔渗 +Kf = 10000*1e-3*ones(1,nf);% 裂缝渗透率 +Wf =1e-2*ones(1,nf);% 裂缝开度 +Porf = 0.30*ones(1,nf);% 裂缝孔隙度 +prporf = 20;% 裂缝系统参考压力 +cporf = 1.0e-5;% 裂缝系统压缩系数 +% 应力敏感系数 +stress_factor_fracture = 0.000; % 1/MPa 0.001 +stress_factor_matrix = 0.000; % 1/MPa +stress_factor_ref_pressure = 20; % 一般取为原始地层压力 +% +Rpt = 2;cf = 1;ca = 1; +%% 结合基质、裂缝的几何及物性信息开展前处理 +% r = GridProp_new(modelflag, nx, ny, nz, dx, dy, dz, kx, ky, kz, f, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca,co, NTG); +r = GridProp_DP(modelflag, r, kx, ky, kz, kx_matrixLayer, ky_matrixLayer, kz_matrixLayer, f, frac_information, fellip, Kf, Wf, pori, pori_matrixLayer, prpor, cpor, Porf, prporf, cporf, cf, ca,NTG,sigma,valid_grids); +rock_density = 2700; % 岩石密度,kg/m^3 +r.sigma = sigma; +r.rock_density = rock_density; +r.valid_grids = valid_grids; +r.stress_factor_fracture = stress_factor_fracture; +r.stress_factor_matrix = stress_factor_matrix; +r.stress_factor_ref_pressure = stress_factor_ref_pressure; +end \ No newline at end of file diff --git a/算例3-单重双重离散裂缝混合模型/main1.m b/算例3-单重双重离散裂缝混合模型/main1.m new file mode 100644 index 0000000..e6d8bc2 --- /dev/null +++ b/算例3-单重双重离散裂缝混合模型/main1.m @@ -0,0 +1,211 @@ +function [ r, Times, OutputRs, Wellpara, trun ] = main1() +%% ==================================PART 1: 模型选取======================================== +% 1-- classical EDFM +modelflag = 1;% 此处固定为1即可 +%% ==================================PART 2: 基质网格定义===================================== +dx=[10*ones(1,100) ];nx=size(dx,2); +dy=[10*ones(1,50) ];ny=size(dy,2); +dz=[10*ones(1,1)];nz=size(dz,2); +NTG= 1*ones(nx*ny*nz,1); +r = GridProp_pre(dx,dy,dz,nx,ny,nz,NTG); +%% ==================================PART 3: 裂缝分布数据输入===================================== +% 四种输入方式: 1表示工程应用输入;2表示向量输入;3表示工程应用输入,包括基准点、倾角、方位角、抬升角;4表示从.fab文件读取 +input_style = 1; +%% 输入方式1:工程应用输入 +%仅能刻画具有双对称性质的矩形缝或椭圆缝 +% 基准点坐标(1),方位角(2),倾角(3),抬升角(4),缝长(椭圆长轴长)(5),缝高(椭圆短轴长)(6),类型1是矩形缝、2是椭圆缝(7) +if input_style==1 +input_content={ + [255,255,5],90,90,0,200,10,1; + [305,255,5],90,90,0,200,10,1; + [355,255,5],90,90,0,200,10,1; + [405,255,5],90,90,0,200,10,1; + [455,255,5],90,90,0,200,10,1; + [505,255,5],90,90,0,200,10,1; + [555,255,5],90,90,0,200,10,1; + [605,255,5],90,90,0,200,10,1; + [655,255,5],90,90,0,200,10,1; + [705,255,5],90,90,0,200,10,1; + [755,255,5],90,90,0,200,10,1; + }; +[f,fellip] = sort_fracture(input_content); +flowBarrierFlags = []; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5; +frac_information = fractureInformation_input_engineering_vector(f,fellip,flowBarrierFlags); +end +%% 输入方式2:向量输入 +%首先对矩形缝进行研究,裂缝参数包括三个向量和两个参数的取值范围,如果是其它类型缝,则是两个参数间的函数关系 +%因此一个5行三列的矩阵可以确定一条裂缝 +%向量分量可为非整数,以此保证参数范围的取值为整数即可, +%故可先随意确定为整数的参数范围,再根据缝长缝高去确定向量分量的取值 +% 矩形缝 +if input_style==2 + f=[ + 0,1200,0;10,-20,0;0,0,10;0,60,0;0,3,0; + 0,1200,0;10,20,0;0,0,10;0,15,0;0,3,0; + 150,1500,0;20,-10,0;0,0,10;0,20,0;0,3,0; + 550,1300,0;10,10,0;0,0,10;0,10,0;0,3,0; + 650,1400,0;10,-20,0;0,0,10;0,55,0;0,3,0; + 605,705,0;10,0,0;0,0,10;-20,20,0;0,3,0; + ]; +% 椭圆缝 +% fellip=[320,210,10;10,2,0;0,0,2;0,0,8;0,0,5; +% 280,300,10;10,2,0;0,0,2;0,0,10;0,0,4;]; +% 300,205,10;10,0,0;0,0,2;0,0,10;0,0,5]; +fellip=[]; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +frac_information = fractureInformation_input_engineering_vector(f,fellip); +end +%% 输入方式3:二维输入 +% load('fractures_generated.mat'); +% fractureLines = fractures_generated; +if input_style==3 +fractureLines = [ + 105,150;105,350; + 205,150;205,350; + 305,150;305,350; + 405,150;405,350; + 505,150;505,350; + 605,150;605,350; + 705,150;705,350; + 805,150;805,350; + 905,150;905,350; + ]; +fellip=[]; % 椭圆缝 +fractureHeights = [ + 10;10;10;10;10;10;10;10;10]; +% 椭圆缝 +fellip=[]; +flowBarrierFlags = [];% flowBarrierFlags = [1;2;3;4]; +[f,frac_information] = input_fracture_2D(fractureLines,fractureHeights,flowBarrierFlags); +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +end +%% 输入方式4:从.fab文件读取 Frac_PT +if input_style==4 + +end + +%% ==================================PART 4: 基质网格及裂缝物性参数输入===================================== +% 1-- 单重介质 +% 2-- 双重介质(双孔双渗) +grid_model = 2; +if grid_model == 1 +r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf); +end +if grid_model == 2 +r = grid_discretization_DP_model(modelflag, r, f, frac_information, fellip, nf); +end + +%% 生成向量化变成所需要的算子 +os = OperatorRS(r.N, r.nex, r.nc); + +%% ==================================PART 5: 模型类型选取及初始状态设定========================================= +% 1-- 气水两相流 +% 2-- 油水两相流 +flow_model = 3; +if flow_model == 1 +[f,state0] = gas_water_flow(r); +end +if flow_model == 2 +[f,state0] = oil_water_flow(r); +end +if flow_model == 3 +[f,state0] = multi_component_flow(r); +end + +%% ==================================PART 6: 井制度schedule设定================================================ +%将直井、水平井与多段压裂水平井分开处理 +%% 直井、常规水平井定义 +% Wellcpara: wellname(1) nperf,射孔点数量(2) index(3) rw(4) skin(5) welltype(6) +% welltype=1 直井,welltype=2 水平井沿x方向,welltype=3 水平井沿y方向 welltype=4 多段压裂水平井 +% 直井、水平井,该种井型的处理是将射孔段安排在基质网格 +% 对于直井、斜井、水平井,采取与eclipse一致的方式,给出其在基质网格中位置 +% 每个射孔点由下px,py,pz确定,分别表示该射孔点在x方向,y方向的网格编号,及层数即z反方向上的网格编号(最初是以垂直向上建立的基质网格) +well1={ + % 'w1', 2, [20 10 1;20 10 2;], 0.178/2, 0, 1; + % 'w2', 2, [80 10 1;80 10 2;], 0.178/2, 0, 1; + % 'w3', 1, [20 40 1;], 0.178/2, 0, 1; + % 'w4', 1, [80 40 1;], 0.178/2, 0, 1; +% 'w2', 3, [67 20 1;67 20 2;67 20 3], 0.178/2, 0, 1; + }; +well1 = handle_well1(well1,r); +%% 压裂水平井定义 +% 多段压裂水平井:射孔段设置在裂缝单元上,可以给出该射孔点所在的坐标,然后去寻找该点所在的裂缝单元编号 +num_fracture_wells = 1; +welloc = cell(num_fracture_wells,1); +perfnum = cell(num_fracture_wells,1); +welloc{1,1}=[ + 255,255,5; + 305,255,5; + 355,255,5; + 405,255,5; + 455,255,5; + 505,255,5; + 555,255,5; + 605,255,5; + 655,255,5; + 705,255,5; + 755,255,5; + ]; +for i = 1:num_fracture_wells +perfnum{i,1} = findWelloc(r, welloc{i,1});%在用以Wellc0之中 +end +% perfnum2 = findWelloc(r, welloc2); +well2={ + 'w1', length(perfnum{1,1}), perfnum{1,1}, 0.178/2, 0,4; + }; +Wellc = handle_well1_well2(well1,well2,welloc,r); %加井和射孔位置 +%% 井制度设置(开关井、定压/定产、便于吞吐等) +number_phases = 3; +well_schedules = cell(number_phases,1); +time = zeros(number_phases,1); +% 不同方式对应的收敛难度、需要不一样,需分阶段调控, +% 例如在注入阶段需要小一些,如果需要做早期试井,dtmax、dtmin都需要小一些 +dtmax = zeros(number_phases,1); +dtmin = zeros(number_phases,1); + +% (1)well state: 'open'表示该井是开的;'close'表明该井一直是关的,如果只是阶段性关井,就用'open'定流量0生产 +% (2)well type: 'pro'表示是生产井;'inj'表示是注入井; +% (3)protype:'const_q'是定流量;'const_pwf'则是定压 +% (4)value:定的流量值或者井底压力值 +% (5)value:此代码该值与(3)值相同 +% (8)value:注入表活剂的浓度 kg/m3 +% (10)value:注入水/压裂液的盐浓度(矿化度),一般是 1kg/m3 +time(1) = 10; dtmax(1) = 0.1; dtmin(1) = 0.001; +well_schedules{1,1} = { + % 'w1','open','inj','const_pwf',30,30; + % 'w2','open','inj','const_pwf',30,30; + % 'w3','open','inj','const_pwf',30,30; + % 'w4','open','inj','const_pwf',30,30; + 'w1','open','inj','const_pwf',40,40,'Cs_inj',0.5,'Cb_inj',1}; +time(2) = 30; dtmax(2) = 0.5; dtmin(2) = 0.001; +well_schedules{2,1} = { + 'w1','open','pro','const_q',0,0; + % 'w1','open','pro','const_pwf',10,10; + % 'w2','open','pro','const_q',0,0; + }; +time(3) = 200; dtmax(3) = 5; dtmin(3) = 0.001; +well_schedules{3,1} = { + 'w1','open','pro','const_pwf',10,10; + % 'w2','open','pro','const_pwf',10,10; + }; + +% time(1) = 200; +% well_schedules{1,1} = { +% 'w1','open','pro','const_pwf',10,10; +% % 'w2','open','pro','const_pwf',10,10; +% }; + +%% ======================================PART 7: Solver设置=========================================== +yitap = 5; % 50-500psi +yitas = 0.04; % 0.05-0.5 +omega = 0.5; % 0-1 +Nmax = 50; +epsave = 1e-6; +epsmax = 1e-6; + +%% ======================================PART 8: 正式计算=========================================== +[Times, OutputRs, Wellpara, trun] = solver_NR(r, flow_model, f, os, state0, yitap,yitas,omega,Nmax,epsave,epsmax,dtmin,dtmax,Wellc,time,well_schedules); +run_time=toc; +trun.run_time=run_time; +end \ No newline at end of file diff --git a/算例3-单重双重离散裂缝混合模型/multi_component_flow.m b/算例3-单重双重离散裂缝混合模型/multi_component_flow.m new file mode 100644 index 0000000..94eb4b0 --- /dev/null +++ b/算例3-单重双重离散裂缝混合模型/multi_component_flow.m @@ -0,0 +1,232 @@ +function [f,state0] = multi_component_flow(r) +%% 流体性质参数 +%% 水相中的表活剂、盐的扩散系数 +Ds = 0.76*1e-9; % m2/s +Db = 2.2*1e-9; % m2/s +%% 表活剂、盐在岩石表面的吸附浓度与水相浓度的关系表,第一列单位是kg/m3, 第二列和第三列单位是g/kg +c_ca_table = [ +0 0 0 +0.05 1 0.075 +0.1 1.75 0.125 +0.2 3 0.2 +0.5 4.35 0.325 +1 4.55 0.365 +]; +cs_data = c_ca_table(:,1); +cb_data = c_ca_table(:,1); +csa_data = c_ca_table(:,2)*1e-3; % 转换为 kg/kg +cba_data = c_ca_table(:,3)*1e-3; % 转换为 kg/kg +%% 化学势(压裂液与地层水的盐度差异给水相带来的额外压差) +R = 0.008314; % kJ/(mol*K) +Vm = 18.02*1e-6; % 水的偏摩尔体积,m^3/mol +Temperature = 293.15; % 温度,K +chemistry_cof = R*Temperature/Vm*1e-3/10; +%% 动态相渗(凸显出表活剂对相渗的影响) +% 原本应先得到表活剂浓度与表面张力的关系,再结合渗流速度计算出个表面张力对应的毛管数, +% 为了简便代码编写,此处忽略渗流速度的影响, +% 并增强代码通用性,此处改为输入表活剂浓度与毛管数的对应表格, +% 第一列为表活剂浓度,第二列为相应的毛管数,,第三列是相应的表面张力 +% dynamic_kr = 1; +cs_Nc = [ +0 1.6*1e-6 30 +0.1 9.5*1e-6 10 +0.2 2.5*1e-5 4 +0.5 5.8*1e-5 1.4 +1 8.2*1e-5 1 +2 8.8*1e-5 0.75 +]; +Nc_nosurf = min(cs_Nc(:,2)); +Nc_surf = max(cs_Nc(:,2)); + +kr_nosurf = [ +0 0 0.64 +0.25 0 0.64 +0.30 0.072 0.6 +0.40 0.14 0.56 +0.50 0.26 0.48 +0.60 0.4 0.38 +0.70 0.56 0.26 +0.85 0.88 0 +1 0.88 0 + ]; + +kr_surf = [ +0 0 0.6 +0.18 0 0.6 +0.25 0.056 0.56 +0.30 0.1 0.52 +0.40 0.19 0.42 +0.50 0.29 0.3 +0.60 0.37 0.19 +0.75 0.46 0 +1 0.46 0 + ]; + +PC = [ +0 3.8916 +0.2 3.8916 +0.316 0.5796 +0.435 0.3724 +0.562 0.2425 +0.614 0.0608 +0.702 0.0372 +0.812 0.0137 +0.875 0.0104 +0.906 0.009 +0.937 0.0075 +0.969 0.0059 +1 0 +]; +cs_Nc_fracture = cs_Nc; +kr_nosurf_fracture = kr_nosurf; +kr_surf_fracture = kr_surf; +PC_fracture = PC; +ifpcgl = 0; % 是否考虑毛管力 +%% 启动压力梯度 +p_grad_threshold = 0.00; % MPa/m +%% ================气相Langmuir等温吸附模型,当 VL=0,亦可用于油相=============== +% VE = VL*P/(PL+P) +gas_prop.VL = 0.0; % Langmuir volume, m^3/kg +gas_prop.PL = 3.5; % Langmuir pressure, MPa +% Psc = 1; +% Zsc = 1; +% density_rock = 2000; % +% ===================== Knudsen 扩散系数,当 Kn=0,亦可用于油相 ==================== +gas_prop.Kn = 0; % Knudsen数 +c1 =1; c2 =8/9; +gas_prop.Kn_modified_factor = 1+8*c1*gas_prop.Kn+16*c2*gas_prop.Kn^2; +% ===================== 高速非达西流 Forchheimer 方程 ==================== +gas_prop.beta_non_Darcy_flow = 0; % 1e-8 +% =======================气相体积系数、粘度=============================== +density_g_sc = 800; +% 第一种模式,直接输入参考压力、体积系数、压缩系数、粘度 +gas_model =1; +if gas_model == 1 +prg = 20; % reference pressure, MPa +Bgi = 1; % gas phase volume factor +cg = 5e-4 ;% gas phase compressibility, 1/MPa +vgi = 6; % gas viscosity, cp +cvg = 0; +[Ppr,BG,MUG] = cal_gas_prop(prg,Bgi,cg,vgi,cvg); +end +if gas_model == 2 +Ppr = [ 0.1013 + 2.0946 + 4.0878 + 6.0811 + 8.0743 + 10.0676 + 12.0608 + 14.0540 + 16.0473 + 18.0405 + 20.0338 + 22.0270 + 24.0203 + 26.0135 + 28.0068 + 30.0000 + ]; +% BG = 0.01*ones(size(Ppr,1),1); +BG = [ 1.18297 + 0.0557041 + 0.0278168 + 0.0182594 + 0.0134665 + 0.0106154 + 0.00874829 + 0.00744907 + 0.00650639 + 0.0058006 + 0.0052587 + 0.0048336 + 0.00449378 + 0.00421751 + 0.0039895 + 0.00379871 + ]; +% MUG = 0.01*ones(size(Ppr,1),1); +MUG = [0.0127683 + 0.0130191 + 0.0133973 + 0.013872 + 0.014437 + 0.015088 + 0.0158182 + 0.0166173 + 0.0174719 + 0.0183671 + 0.0192882 + 0.0202219 + 0.0211575 + 0.0220865 + 0.0230024 + 0.0239008 + ]; +end +% ========================水相体积系数、粘度=============================== +density_w_sc = 1000; +prw = 20; % reference pressure +Bwi = 1.000; % water phase volume factor +cw = 4.0e-4 ;% water phase compressibility +vwi = 1; % viscosity +cvw = 0; +% =============================基质相渗=============================== +% ifpcgl = 0; % 是否考虑毛管力 +% RPGW=[ +% 0.0000 0.0000 1.0000 3.8916 +% 0.2000 0.0000 1.0000 3.8916 +% 0.3160 0.0002 0.6784 0.5796 +% 0.4350 0.0004 0.6215 0.3724 +% 0.5620 0.0010 0.5456 0.2425 +% 0.6140 0.0020 0.3939 0.0608 +% 0.7020 0.0280 0.1399 0.0372 +% 0.8120 0.1721 0.0515 0.0137 +% 0.8750 0.3395 0.0297 0.0104 +% 0.9060 0.4395 0.0226 0.0090 +% 0.9370 0.5500 0.0173 0.0075 +% 0.9690 0.6702 0.0131 0.0059 +% 1.0 1.0000 0.0000 0.0000 +% ]; +% SW=RPGW(:,1);KRW=RPGW(:,2);KRG=RPGW(:,3);PCGL=RPGW(:,4); +% +% % =============================裂缝相渗=============================== +% PRF=[ +% 0.0000 0.0000 1.0000 3.8916 +% 0.2000 0.0000 1.0000 3.8916 +% 0.3160 0.0002 0.6784 0.5796 +% 0.4350 0.0004 0.6215 0.3724 +% 0.5620 0.0010 0.5456 0.2425 +% 0.6140 0.0020 0.3939 0.0608 +% 0.7020 0.0280 0.1399 0.0372 +% 0.8120 0.1721 0.0515 0.0137 +% 0.8750 0.3395 0.0297 0.0104 +% 0.9060 0.4395 0.0226 0.0090 +% 0.9370 0.5500 0.0173 0.0075 +% 1.0 1.0000 0.0000 0.0000 +% ]; +% SWF = PRF(:,1);KRWF = PRF(:,2);KRGF = PRF(:,3);PCGLF=PRF(:,4); + +%% 结合流体性质参数生成相应的数据体 +% f = fluidPVT(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, SW, KRG, KRW, PCGL, SWF, KRGF, KRWF, PCGLF, density_g_sc, ifpcgl, r.rpt, cs_data, csa_data, cb_data, cba_data, cs_Nc, kr_nosurf, kr_surf); +f = fluidPVT_new(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, ifpcgl, r.rpt, cs_data, csa_data, cb_data, cba_data, cs_Nc, Nc_nosurf, Nc_surf, kr_nosurf, kr_surf, PC, cs_Nc_fracture, kr_nosurf_fracture, kr_surf_fracture, PC_fracture); +f.Dwsi = density_w_sc; +f.Dgsi = density_g_sc; +f.gas_prop = gas_prop; +f.Ds = Ds; +f.Db = Db; +f.chemistry_cof = chemistry_cof; +f.p_grad_threshold = p_grad_threshold; +%% 初值条件 Initial Condition Section +% =================压力、饱和度初值======================================= % +%压力初值要考虑重力,给出油藏下表面压力值 +P = [20 * ones(r.nmc, 1); 20 * ones(r.nfc, 1)]; +% plow=25; % P =plow-1e-6*800*9.8*r.z; +Sw = [0.2 * ones(r.nmc, 1); 0.2 * ones(r.nfc, 1)]; +Cs = [0.0 * ones(r.nmc, 1); 0.0 * ones(r.nfc, 1)];% kg/m3 +Cb = [50.0 * ones(r.nmc, 1); 50.0 * ones(r.nfc, 1)];% kg/m3 +% 油藏地层水矿化度一般为 50 kg/m3,注入水、压裂液的矿化度一般为 1 kg/m3 +number_state_variables = 4; +f.number_state_variables = number_state_variables; +state0 = initialRS(P, Sw, Cs, Cb); +end \ No newline at end of file diff --git a/算例3-单重双重离散裂缝混合模型/plotWellResponse.m b/算例3-单重双重离散裂缝混合模型/plotWellResponse.m new file mode 100644 index 0000000..b3bcc97 --- /dev/null +++ b/算例3-单重双重离散裂缝混合模型/plotWellResponse.m @@ -0,0 +1,55 @@ +function [] = plotWellResponse(Times,Wellpara) +% +wellNumber = 1; % +dataType = 'dPWF'; % ͣٶ GPRٶ OPR, ˮٶ WPRѹ BHPѹ dPWF +% +t = Times; +n= size(Times,1); +% para = cell2mat(Wellpara); +nw = wellNumber;%ѡ +% n = length(para); +data = zeros(n,1); +if strcmp(dataType, 'GPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qg; + figureYlegend = 'Gas production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'OPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qo; + figureYlegend = 'Oil production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'WPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qw; + figureYlegend = 'Water production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'BHP') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.pwf; + figureYlegend = 'BHP, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'dPWF') % dpwf/dlnt = t*dpwf/dt + for i = 1 : n + if i == 1 + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i}{1,nw}.pwf)/(log(t(i+1))-log(t(i))); + elseif i == n + data(i) = (Wellpara{i}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i))-log(t(i-1))); + else + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i+1))-log(t(i-1))); + end + figureYlegend = 'Pressure derivative, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); + set(gca, 'XScale', 'log'); + set(gca, 'YScale', 'log'); +end +end \ No newline at end of file diff --git a/算例3-单重双重离散裂缝混合模型/plot_2D_layer.m b/算例3-单重双重离散裂缝混合模型/plot_2D_layer.m new file mode 100644 index 0000000..0d45394 --- /dev/null +++ b/算例3-单重双重离散裂缝混合模型/plot_2D_layer.m @@ -0,0 +1,50 @@ +function plot_2D_layer(i, k, r, OutputRs, type) +coordinate=r.coordinates; +nodes=r.nodes; +nz=r.nz; +nx=r.nx; +ny=r.ny; +nmc = size(nodes,1); +% nel = size(nodes,2); +nel = 4; +if type == 1 +% v = r.kx; + v = OutputRs{i}.p; +else + v = 1-OutputRs{i}.sw;%Ͷ +end +dis = zeros(nel, nx*ny); +x = zeros(nel, nx*ny); +y = zeros(nel, nx*ny); +for i = 1 :nx*ny + for j = 1 :nel + grid_numbering = i+(nz-k)*nx*ny; + x(j, i) = coordinate(nodes(grid_numbering,j), 1); + y(j, i) = coordinate(nodes(grid_numbering,j), 2); + if j == 3 + x(j, i) = coordinate(nodes(grid_numbering,4), 1); + y(j, i) = coordinate(nodes(grid_numbering,4), 2); + end + if j == 4 + x(j, i) = coordinate(nodes(grid_numbering,3), 1); + y(j, i) = coordinate(nodes(grid_numbering,3), 2); + end + dis(j, i) = v(grid_numbering); + end +end +% fill(x,y,dis,'EdgeAlpha',1); +figure('color','w'); +fill(x,y,dis,'EdgeColor','interp'); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +axis equal; +axis tight +% xlim([0,60]); +% ylim([0,60]); +% clim([10,15]); +colorbar +colormap jet +% fill(x,y,dis); +% axis off diff --git a/算例3-单重双重离散裂缝混合模型/plot_3D_dis.m b/算例3-单重双重离散裂缝混合模型/plot_3D_dis.m new file mode 100644 index 0000000..6674f45 --- /dev/null +++ b/算例3-单重双重离散裂缝混合模型/plot_3D_dis.m @@ -0,0 +1,144 @@ +function plot_3D_dis(i, r,OutputRs, type) +%Ϊͼǰ +figure('color','w') +[ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dis( r ); +coordinate=r.coordinates; +nodes=r.nodes; +% nmc = size(nodes,1);% +% % nel = size(nodes,2);%ÿĵ +% order=[1,2,4,3,1,5,6,8,7,3,4,8,6,2,1];%fillͼ +% nel=size(order,2); +if type == 1 + v = OutputRs{i}.p; +elseif type == 2 + v = 1-OutputRs{i}.sw;%ͱͶ +elseif type == 3 + v = OutputRs{i}.sg;%ͱͶ +else + v = OutputRs{i}.sw;%ͱͶ +end +% +order=[1,2,4,3,1]; +nel=size(order,2); +nmc=size(downgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(downgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(downgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(downgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(downgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +hold on + +% +order=[1,5,7,3,1]; +nel=size(order,2); +nmc=size(leftgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(leftgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(leftgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(leftgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(leftgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[2,4,8,6,2]; +nel=size(order,2); +nmc=size(rightgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(rightgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(rightgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(rightgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(rightgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%ǰ +order=[1,2,6,5,1]; +nel=size(order,2); +nmc=size(frontgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(frontgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(frontgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(frontgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(frontgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[3,4,8,7,3]; +nel=size(order,2); +nmc=size(backgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(backgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(backgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(backgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(backgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[5,6,8,7,5]; +nel=size(order,2); +nmc=size(upgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(upgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(upgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(upgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(upgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +xlabel('x, m'); +ylabel('y, m'); +zlabel('z, m'); +view(3); +% Ͳؿ +% plotframe( r ); +alpha(1) +% caxis([0.2,0.8]); +caxis([10,13]); +% caxis([12,22]); +colormap jet +colorbar +% zlim([-2020,-2000]); +% axis equal +axis tight + diff --git a/算例3-单重双重离散裂缝混合模型/plot_SP_DP.m b/算例3-单重双重离散裂缝混合模型/plot_SP_DP.m new file mode 100644 index 0000000..7f63e8e --- /dev/null +++ b/算例3-单重双重离散裂缝混合模型/plot_SP_DP.m @@ -0,0 +1,51 @@ +function plot_SP_DP(k, r) +coordinate=r.coordinates; +nodes=r.nodes; +nz=r.nz; +nx=r.nx; +ny=r.ny; +nmc = size(nodes,1); +% nel = size(nodes,2); +nel = 4; +v = r.sigma; +% if type == 1 +% % v = r.kx; +% v = OutputRs{i}.p; +% else +% v = 1-OutputRs{i}.sw;%Ͷ +% end +dis = zeros(nel, nx*ny); +x = zeros(nel, nx*ny); +y = zeros(nel, nx*ny); +for i = 1 :nx*ny + for j = 1 :nel + grid_numbering = i+(nz-k)*nx*ny; + x(j, i) = coordinate(nodes(grid_numbering,j), 1); + y(j, i) = coordinate(nodes(grid_numbering,j), 2); + if j == 3 + x(j, i) = coordinate(nodes(grid_numbering,4), 1); + y(j, i) = coordinate(nodes(grid_numbering,4), 2); + end + if j == 4 + x(j, i) = coordinate(nodes(grid_numbering,3), 1); + y(j, i) = coordinate(nodes(grid_numbering,3), 2); + end + dis(j, i) = v(grid_numbering); + end +end +% fill(x,y,dis,'EdgeAlpha',1); +figure('color','w'); +fill(x,y,dis,'EdgeColor','interp'); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +axis equal; +axis tight +% xlim([0,60]); +% ylim([0,60]); +% clim([10,15]); +colorbar +colormap jet +% fill(x,y,dis); +% axis off diff --git a/算例4-气水两相流-压力导数曲线/gas_water_flow.m b/算例4-气水两相流-压力导数曲线/gas_water_flow.m new file mode 100644 index 0000000..063f4ac --- /dev/null +++ b/算例4-气水两相流-压力导数曲线/gas_water_flow.m @@ -0,0 +1,141 @@ +function [f,state0] = gas_water_flow(r) +%% 流体性质参数 +% ===================== Langmuir等温吸附模型==================== +% VE = VL*P/(PL+P) +gas_prop.VL = 0.021; % Langmuir volume, m^3/kg +gas_prop.PL = 3.5; % Langmuir pressure, MPa +% Psc = 1; +% Zsc = 1; +% density_rock = 2000; % +% ===================== Knudsen 扩散系数 ==================== +gas_prop.Kn = 1; % Knudsen数 +c1 =1; c2 =8/9; +gas_prop.Kn_modified_factor = 1+8*c1*gas_prop.Kn+16*c2*gas_prop.Kn^2; +% ===================== 高速非达西流 Forchheimer 方程 ==================== +gas_prop.beta_non_Darcy_flow = 0; % 1e-8 +% ===================== 启动压力梯度 ==================== +p_grad_threshold = 0.00; % MPa/m +% =======================气相体积系数、粘度=============================== +density_g_sc = 0.716; +% 第一种模式,直接输入参考压力、体积系数、压缩系数、粘度 +gas_model =1; +if gas_model == 1 +prg = 30; % reference pressure, MPa +Bgi = 0.01; % gas phase volume factor +cg = 1e-2 ;% gas phase compressibility, 1/MPa +vgi = 0.01; % gas viscosity, cp +cvg = 0; +[Ppr,BG,MUG] = cal_gas_prop(prg,Bgi,cg,vgi,cvg); +end +if gas_model == 2 +Ppr = [ 0.1013 + 2.0946 + 4.0878 + 6.0811 + 8.0743 + 10.0676 + 12.0608 + 14.0540 + 16.0473 + 18.0405 + 20.0338 + 22.0270 + 24.0203 + 26.0135 + 28.0068 + 30.0000 + ]; +% BG = 0.01*ones(size(Ppr,1),1); +BG = [ 1.18297 + 0.0557041 + 0.0278168 + 0.0182594 + 0.0134665 + 0.0106154 + 0.00874829 + 0.00744907 + 0.00650639 + 0.0058006 + 0.0052587 + 0.0048336 + 0.00449378 + 0.00421751 + 0.0039895 + 0.00379871 + ]; +% MUG = 0.01*ones(size(Ppr,1),1); +MUG = [0.0127683 + 0.0130191 + 0.0133973 + 0.013872 + 0.014437 + 0.015088 + 0.0158182 + 0.0166173 + 0.0174719 + 0.0183671 + 0.0192882 + 0.0202219 + 0.0211575 + 0.0220865 + 0.0230024 + 0.0239008 + ]; +end +% ========================水相体积系数、粘度=============================== +density_w_sc = 1000; +prw = 30; % reference pressure +Bwi = 1.000; % water phase volume factor +cw = 4.0e-4 ;% water phase compressibility +vwi = 1; % viscosity +cvw = 0; +% =============================基质相渗=============================== +ifpcgl = 0; % 是否考虑毛管力 +RPGW=[ + 0.0000 0.0000 1.0000 3.8916 +0.2000 0.0000 1.0000 3.8916 +0.3160 0.0002 0.6784 0.5796 +0.4350 0.0004 0.6215 0.3724 +0.5620 0.0010 0.5456 0.2425 +0.6140 0.0020 0.3939 0.0608 +0.7020 0.0280 0.1399 0.0372 +0.8120 0.1721 0.0515 0.0137 +0.8750 0.3395 0.0297 0.0104 +0.9060 0.4395 0.0226 0.0090 +0.9370 0.5500 0.0173 0.0075 +0.9690 0.6702 0.0131 0.0059 +1.0 1.0000 0.0000 0.0000 +]; +SW=RPGW(:,1);KRW=RPGW(:,2);KRG=RPGW(:,3);PCGL=RPGW(:,4); + +% =============================裂缝相渗=============================== +PRF=[ +0.0000 0.0000 1.0000 3.8916 +0.2000 0.0000 1.0000 3.8916 +0.3160 0.0002 0.6784 0.5796 +0.4350 0.0004 0.6215 0.3724 +0.5620 0.0010 0.5456 0.2425 +0.6140 0.0020 0.3939 0.0608 +0.7020 0.0280 0.1399 0.0372 +0.8120 0.1721 0.0515 0.0137 +0.8750 0.3395 0.0297 0.0104 +0.9060 0.4395 0.0226 0.0090 +0.9370 0.5500 0.0173 0.0075 +1.0 1.0000 0.0000 0.0000 +]; +SWF = PRF(:,1);KRWF = PRF(:,2);KRGF = PRF(:,3);PCGLF=PRF(:,4); + +%% 结合流体性质参数生成相应的数据体 +f = fluidPVT_gas_water_flow(Ppr, BG, MUG, Bwi, prw, cw, vwi, cvw, SW, KRG, KRW, PCGL, SWF, KRGF, KRWF, PCGLF, density_g_sc, ifpcgl, r.rpt); +f.Dwsi = density_w_sc; +f.Dgsi = density_g_sc; +f.gas_prop = gas_prop; +f.p_grad_threshold = p_grad_threshold; +%% 初值条件 Initial Condition Section +% =================压力、饱和度初值======================================= % +%压力初值要考虑重力,给出油藏下表面压力值 +P = [20 * ones(r.nmc, 1); 20 * ones(r.nfc, 1)]; +% plow=25; % P =plow-1e-6*800*9.8*r.z; +Sw = [0.2 * ones(r.nmc, 1); 0.2 * ones(r.nfc, 1)]; +state0 = initialRS_gas_water_flow(P, Sw); +end \ No newline at end of file diff --git a/算例4-气水两相流-压力导数曲线/grid_discretization_SP_model.m b/算例4-气水两相流-压力导数曲线/grid_discretization_SP_model.m new file mode 100644 index 0000000..76c4f50 --- /dev/null +++ b/算例4-气水两相流-压力导数曲线/grid_discretization_SP_model.m @@ -0,0 +1,55 @@ +function r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf) +% 数据读取 +nx = r.nx; ny = r.ny; nz = r.nz; NTG = r.NTG; cell_mid_coords = r.cell_mid_coords; +% 基质孔渗 +density_rock = 2700; % 岩石密度,kg/m^3 +kx = 1*1e-3 * ones(nx*ny*nz, 1); % 达西,D +ky = 1*1e-3 * ones(nx*ny*nz, 1);% +kz = 1*1e-3 * ones(nx*ny*nz, 1);% +pori = 0.08 * ones(nx*ny*nz, 1);% +prpor = 20; % 参考压力,MPa +cpor = 1.0e-5;% 基质压缩系数,,MPa +% 有效网格 +valid_grids = ones(nx*ny*nz, 1); +invalid_layer = []; % 将第二层无效网格 +for i = 1:length(invalid_layer) + grid_numbering_range = ((invalid_layer(i)-1)*nx*ny+1:invalid_layer(i)*nx*ny)'; + valid_grids(grid_numbering_range,1) = 0; +end +% SRV区域定义 +% % % base_x=23:78; nx_SRV=length(base_x); +% % % base_y=15:36; ny_SRV=length(base_y); +% % % base_z=1:1;nz_SRV=length(base_z); +% % % SRV=[]; +% % % for k=1:nz_SRV +% % % for j=1:ny_SRV +% % % for i=1:nx_SRV +% % % SRV=[SRV;(base_z(k)-1)*nx*ny+(base_y(j)-1)*nx+base_x(i)]; +% % % end +% % % end +% % % end +% % % % SRV渗透率赋值 +% % % kx(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % ky(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % kz(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% 裂缝孔渗 +Kf = 10000*1e-3*ones(1,nf);% 裂缝渗透率 +Wf = 1e-2*ones(1,nf);% 裂缝开度 +Porf = 0.30*ones(1,nf);% 裂缝孔隙度 +prporf = 20;% 裂缝系统参考压力 +cporf = 1.0e-5;% 裂缝系统压缩系数 +% 应力敏感系数 +stress_factor_fracture = 0.000; % 1/MPa 0.001 +stress_factor_matrix = 0.000; % 1/MPa +stress_factor_ref_pressure = 20; % 一般取为原始地层压力 +% +Rpt = 2;cf = 1;ca = 1; +%% 结合基质、裂缝的几何及物性信息开展前处理 +% r = GridProp(modelflag, nx, ny, nz, dx, dy, dz, kx, ky, kz, f, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca,co, NTG); +r = GridProp_new(modelflag, r, kx, ky, kz, f, frac_information, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca, valid_grids); +r.density_rock = density_rock; +r.valid_grids = valid_grids; +r.stress_factor_fracture = stress_factor_fracture; +r.stress_factor_matrix = stress_factor_matrix; +r.stress_factor_ref_pressure = stress_factor_ref_pressure; +end \ No newline at end of file diff --git a/算例4-气水两相流-压力导数曲线/main1.asv b/算例4-气水两相流-压力导数曲线/main1.asv new file mode 100644 index 0000000..5b10be2 --- /dev/null +++ b/算例4-气水两相流-压力导数曲线/main1.asv @@ -0,0 +1,195 @@ +function [ r, Times, OutputRs, Wellpara, trun ] = main1() +%% ==================================PART 1: 模型选取======================================== +% 1-- classical EDFM +modelflag = 1;% 此处固定为1即可 +%% ==================================PART 2: 基质网格定义===================================== +dx=[10*ones(1,100) ];nx=size(dx,2); +dy=[10*ones(1,50) ];ny=size(dy,2); +dz=[10*ones(1,1)];nz=size(dz,2); +NTG= 1*ones(nx*ny*nz,1); +r = GridProp_pre(dx, dy,dz,nx,ny,nz,NTG); +%% ==================================PART 3: 裂缝分布数据输入===================================== +% 四种输入方式: 1表示工程应用输入;2表示向量输入;3表示工程应用输入,包括基准点、倾角、方位角、抬升角;4表示从.fab文件读取 +input_style = 1; +%% 输入方式1:工程应用输入 +%仅能刻画具有双对称性质的矩形缝或椭圆缝 +% 基准点坐标(1),方位角(2),倾角(3),抬升角(4),缝长(椭圆长轴长)(5),缝高(椭圆短轴长)(6),类型1是矩形缝、2是椭圆缝(7) +if input_style==1 +input_content={ + [255,255,5],90,90,0,200,10,1; + [305,255,5],90,90,0,200,10,1; + [355,255,5],90,90,0,200,10,1; + [405,255,5],90,90,0,200,10,1; + [455,255,5],90,90,0,200,10,1; + [505,255,5],90,90,0,200,10,1; + [555,255,5],90,90,0,200,10,1; + [605,255,5],90,90,0,200,10,1; + [655,255,5],90,90,0,200,10,1; + [705,255,5],90,90,0,200,10,1; + [755,255,5],90,90,0,200,10,1; + }; +[f,fellip] = sort_fracture(input_content); +flowBarrierFlags = []; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5; +frac_information = fractureInformation_input_engineering_vector(f,fellip,flowBarrierFlags); +end +%% 输入方式2:向量输入 +%首先对矩形缝进行研究,裂缝参数包括三个向量和两个参数的取值范围,如果是其它类型缝,则是两个参数间的函数关系 +%因此一个5行三列的矩阵可以确定一条裂缝 +%向量分量可为非整数,以此保证参数范围的取值为整数即可, +%故可先随意确定为整数的参数范围,再根据缝长缝高去确定向量分量的取值 +% 矩形缝 +if input_style==2 + f=[ + 0,1200,0;10,-20,0;0,0,10;0,60,0;0,3,0; + 0,1200,0;10,20,0;0,0,10;0,15,0;0,3,0; + 150,1500,0;20,-10,0;0,0,10;0,20,0;0,3,0; + 550,1300,0;10,10,0;0,0,10;0,10,0;0,3,0; + 650,1400,0;10,-20,0;0,0,10;0,55,0;0,3,0; + 605,705,0;10,0,0;0,0,10;-20,20,0;0,3,0; + ]; +% 椭圆缝 +% fellip=[320,210,10;10,2,0;0,0,2;0,0,8;0,0,5; +% 280,300,10;10,2,0;0,0,2;0,0,10;0,0,4;]; +% 300,205,10;10,0,0;0,0,2;0,0,10;0,0,5]; +fellip=[]; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +frac_information = fractureInformation_input_engineering_vector(f,fellip); +end +%% 输入方式3:二维输入 +% load('fractures_generated.mat'); +% fractureLines = fractures_generated; +if input_style==3 +fractureLines = [ + 105,150;105,350; + 205,150;205,350; + 305,150;305,350; + 405,150;405,350; + 505,150;505,350; + 605,150;605,350; + 705,150;705,350; + 805,150;805,350; + 905,150;905,350; + ]; +fellip=[]; % 椭圆缝 +fractureHeights = [ + 10;10;10;10;10;10;10;10;10]; +% 椭圆缝 +fellip=[]; +flowBarrierFlags = [];% flowBarrierFlags = [1;2;3;4]; +[f,frac_information] = input_fracture_2D(fractureLines,fractureHeights,flowBarrierFlags); +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +end +%% 输入方式4:从.fab文件读取 Frac_PT +if input_style==4 + +end + +%% ==================================PART 4: 基质网格及裂缝物性参数输入===================================== +% 1-- 单重介质 +% 2-- 双重介质(双孔双渗) +grid_model = 1; +if grid_model == 1 +r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf); +end +if grid_model == 2 +r = grid_discretization_DP_model(modelflag, r, f, frac_information, fellip, nf); +end +%% 生成向量化变成所需要的算子 +os = OperatorRS(r.N, r.nex, r.nc); + +%% ==================================PART 5: 模型类型选取及初始状态设定========================================= +% 1-- 气水两相流 +% 2-- 油水两相流 +flow_model = 1; +if flow_model == 1 +[f,state0] = gas_water_flow(r); +end +if flow_model == 2 +[f,state0] = oil_water_flow(r); +end +if flow_model == 3 +[f,state0] = multi_component_flow(r); +end + +%% ==================================PART 6: 井制度schedule设定================================================ +%将直井、水平井与多段压裂水平井分开处理 +%% 直井、常规水平井定义 +% Wellcpara: wellname(1) nperf,射孔点数量(2) index(3) rw(4) skin(5) welltype(6) +% welltype=1 直井,welltype=2 水平井沿x方向,welltype=3 水平井沿y方向 welltype=4 多段压裂水平井 +% 直井、水平井,该种井型的处理是将射孔段安排在基质网格 +% 对于直井、斜井、水平井,采取与eclipse一致的方式,给出其在基质网格中位置 +% 每个射孔点由下px,py,pz确定,分别表示该射孔点在x方向,y方向的网格编号,及层数即z反方向上的网格编号(最初是以垂直向上建立的基质网格) +well1={ + % 'w1', 2, [20 10 1;20 10 2;], 0.178/2, 0, 1; + % 'w2', 2, [80 10 1;80 10 2;], 0.178/2, 0, 1; + % 'w3', 1, [20 40 1;], 0.178/2, 0, 1; + % 'w4', 1, [80 40 1;], 0.178/2, 0, 1; + }; +well1 = handle_well1(well1,r); +%% 压裂水平井定义 +% 多段压裂水平井:射孔段设置在裂缝单元上,可以给出该射孔点所在的坐标,然后去寻找该点所在的裂缝单元编号 +num_fracture_wells = 1; +welloc = cell(num_fracture_wells,1); +perfnum = cell(num_fracture_wells,1); +welloc{1,1}=[ + 255,255,5; + 305,255,5; + 355,255,5; + 405,255,5; + 455,255,5; + 505,255,5; + 555,255,5; + 605,255,5; + 655,255,5; + 705,255,5; + 755,255,5; + ]; +for i = 1:num_fracture_wells +perfnum{i,1} = findWelloc(r, welloc{i,1});%在用以Wellc0之中 +end +% perfnum2 = findWelloc(r, welloc2); +well2={ + 'w1', length(perfnum{1,1}), perfnum{1,1}, 0.178/2, 0,4; + }; +Wellc = handle_well1_well2(well1,well2,welloc,r); %加井和射孔位置 +%% 井制度设置(开关井、定压/定产、便于吞吐等) +number_phases = 1; +well_schedules = cell(number_phases,1); +time = zeros(number_phases,1); +% 不同方式对应的收敛难度、需要不一样,需分阶段调控, +% 例如在注入阶段需要小一些,如果需要做早期试井,dtmax、dtmin都需要小一些 +dtmax = zeros(number_phases,1); +dtmin = zeros(number_phases,1); + +% (1)well state: 'open'表示该井是开的;'close'表明该井一直是关的,如果只是阶段性关井,就用'open'定流量0生产 +% (2)well type: 'pro'表示是生产井;'inj'表示是注入井; +% (3)protype:'const_q'是定流量;'const_pwf'则是定压 +% (4)value:定的流量值或者井底压力值 +% (5)value:此代码该值与(3)值相同 +time(1) = 1e-3; dtmax(1) = 0.00002; dtmin(1) = 0.00001; +well_schedules{1,1} = { + 'w1','open','pro','const_q',10000,10000}; +time(2) = 99e-3; dtmax(2) = 0.0002; dtmin(2) = 0.0001; +well_schedules{1,1} = { + 'w1','open','pro','const_q',10000,10000}; +time(3) = 99e-3; dtmax(3) = 0.0002; dtmin(3) = 0.0001; +well_schedules{1,1} = { + 'w1','open','pro','const_q',10000,10000}; + +%% ======================================PART 7: Solver设置=========================================== +yitap = 5; % 50-500psi +yitas = 0.04; % 0.05-0.5 +omega = 0.5; % 0-1 +Nmax = 50; +epsave = 1e-6; +epsmax = 1e-6; +% dtmin = 0.001; +% dtmax = 10; +% dtmin = 0.000001; +% dtmax = 0.0001; +%% ======================================PART 8: 正式计算=========================================== +[Times, OutputRs, Wellpara, trun] = solver_NR(r, flow_model, f, os, state0, yitap,yitas,omega,Nmax,epsave,epsmax,dtmin,dtmax,Wellc,time,well_schedules); +run_time=toc; +trun.run_time=run_time; +end \ No newline at end of file diff --git a/算例4-气水两相流-压力导数曲线/main1.m b/算例4-气水两相流-压力导数曲线/main1.m new file mode 100644 index 0000000..ca69cef --- /dev/null +++ b/算例4-气水两相流-压力导数曲线/main1.m @@ -0,0 +1,200 @@ +function [ r, Times, OutputRs, Wellpara, trun ] = main1() +%% ==================================PART 1: 模型选取======================================== +% 1-- classical EDFM +modelflag = 1;% 此处固定为1即可 +%% ==================================PART 2: 基质网格定义===================================== +dx=[10*ones(1,100) ];nx=size(dx,2); +dy=[10*ones(1,50) ];ny=size(dy,2); +dz=[10*ones(1,1)];nz=size(dz,2); +NTG= 1*ones(nx*ny*nz,1); +r = GridProp_pre(dx, dy,dz,nx,ny,nz,NTG); +%% ==================================PART 3: 裂缝分布数据输入===================================== +% 四种输入方式: 1表示工程应用输入;2表示向量输入;3表示工程应用输入,包括基准点、倾角、方位角、抬升角;4表示从.fab文件读取 +input_style = 1; +%% 输入方式1:工程应用输入 +%仅能刻画具有双对称性质的矩形缝或椭圆缝 +% 基准点坐标(1),方位角(2),倾角(3),抬升角(4),缝长(椭圆长轴长)(5),缝高(椭圆短轴长)(6),类型1是矩形缝、2是椭圆缝(7) +if input_style==1 +input_content={ + [255,255,5],90,90,0,200,10,1; + [305,255,5],90,90,0,200,10,1; + [355,255,5],90,90,0,200,10,1; + [405,255,5],90,90,0,200,10,1; + [455,255,5],90,90,0,200,10,1; + [505,255,5],90,90,0,200,10,1; + [555,255,5],90,90,0,200,10,1; + [605,255,5],90,90,0,200,10,1; + [655,255,5],90,90,0,200,10,1; + [705,255,5],90,90,0,200,10,1; + [755,255,5],90,90,0,200,10,1; + }; +[f,fellip] = sort_fracture(input_content); +flowBarrierFlags = []; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5; +frac_information = fractureInformation_input_engineering_vector(f,fellip,flowBarrierFlags); +end +%% 输入方式2:向量输入 +%首先对矩形缝进行研究,裂缝参数包括三个向量和两个参数的取值范围,如果是其它类型缝,则是两个参数间的函数关系 +%因此一个5行三列的矩阵可以确定一条裂缝 +%向量分量可为非整数,以此保证参数范围的取值为整数即可, +%故可先随意确定为整数的参数范围,再根据缝长缝高去确定向量分量的取值 +% 矩形缝 +if input_style==2 + f=[ + 0,1200,0;10,-20,0;0,0,10;0,60,0;0,3,0; + 0,1200,0;10,20,0;0,0,10;0,15,0;0,3,0; + 150,1500,0;20,-10,0;0,0,10;0,20,0;0,3,0; + 550,1300,0;10,10,0;0,0,10;0,10,0;0,3,0; + 650,1400,0;10,-20,0;0,0,10;0,55,0;0,3,0; + 605,705,0;10,0,0;0,0,10;-20,20,0;0,3,0; + ]; +% 椭圆缝 +% fellip=[320,210,10;10,2,0;0,0,2;0,0,8;0,0,5; +% 280,300,10;10,2,0;0,0,2;0,0,10;0,0,4;]; +% 300,205,10;10,0,0;0,0,2;0,0,10;0,0,5]; +fellip=[]; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +frac_information = fractureInformation_input_engineering_vector(f,fellip); +end +%% 输入方式3:二维输入 +% load('fractures_generated.mat'); +% fractureLines = fractures_generated; +if input_style==3 +fractureLines = [ + 105,150;105,350; + 205,150;205,350; + 305,150;305,350; + 405,150;405,350; + 505,150;505,350; + 605,150;605,350; + 705,150;705,350; + 805,150;805,350; + 905,150;905,350; + ]; +fellip=[]; % 椭圆缝 +fractureHeights = [ + 10;10;10;10;10;10;10;10;10]; +% 椭圆缝 +fellip=[]; +flowBarrierFlags = [];% flowBarrierFlags = [1;2;3;4]; +[f,frac_information] = input_fracture_2D(fractureLines,fractureHeights,flowBarrierFlags); +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +end +%% 输入方式4:从.fab文件读取 Frac_PT +if input_style==4 + +end + +%% ==================================PART 4: 基质网格及裂缝物性参数输入===================================== +% 1-- 单重介质 +% 2-- 双重介质(双孔双渗) +grid_model = 1; +if grid_model == 1 +r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf); +end +if grid_model == 2 +r = grid_discretization_DP_model(modelflag, r, f, frac_information, fellip, nf); +end +%% 生成向量化变成所需要的算子 +os = OperatorRS(r.N, r.nex, r.nc); + +%% ==================================PART 5: 模型类型选取及初始状态设定========================================= +% 1-- 气水两相流 +% 2-- 油水两相流 +flow_model = 1; +if flow_model == 1 +[f,state0] = gas_water_flow(r); +end +if flow_model == 2 +[f,state0] = oil_water_flow(r); +end +if flow_model == 3 +[f,state0] = multi_component_flow(r); +end + +%% ==================================PART 6: 井制度schedule设定================================================ +%将直井、水平井与多段压裂水平井分开处理 +%% 直井、常规水平井定义 +% Wellcpara: wellname(1) nperf,射孔点数量(2) index(3) rw(4) skin(5) welltype(6) +% welltype=1 直井,welltype=2 水平井沿x方向,welltype=3 水平井沿y方向 welltype=4 多段压裂水平井 +% 直井、水平井,该种井型的处理是将射孔段安排在基质网格 +% 对于直井、斜井、水平井,采取与eclipse一致的方式,给出其在基质网格中位置 +% 每个射孔点由下px,py,pz确定,分别表示该射孔点在x方向,y方向的网格编号,及层数即z反方向上的网格编号(最初是以垂直向上建立的基质网格) +well1={ + % 'w1', 2, [20 10 1;20 10 2;], 0.178/2, 0, 1; + % 'w2', 2, [80 10 1;80 10 2;], 0.178/2, 0, 1; + % 'w3', 1, [20 40 1;], 0.178/2, 0, 1; + % 'w4', 1, [80 40 1;], 0.178/2, 0, 1; + }; +well1 = handle_well1(well1,r); +%% 压裂水平井定义 +% 多段压裂水平井:射孔段设置在裂缝单元上,可以给出该射孔点所在的坐标,然后去寻找该点所在的裂缝单元编号 +num_fracture_wells = 1; +welloc = cell(num_fracture_wells,1); +perfnum = cell(num_fracture_wells,1); +welloc{1,1}=[ + 255,255,5; + 305,255,5; + 355,255,5; + 405,255,5; + 455,255,5; + 505,255,5; + 555,255,5; + 605,255,5; + 655,255,5; + 705,255,5; + 755,255,5; + ]; +for i = 1:num_fracture_wells +perfnum{i,1} = findWelloc(r, welloc{i,1});%在用以Wellc0之中 +end +% perfnum2 = findWelloc(r, welloc2); +well2={ + 'w1', length(perfnum{1,1}), perfnum{1,1}, 0.178/2, 0,4; + }; +Wellc = handle_well1_well2(well1,well2,welloc,r); %加井和射孔位置 +%% 井制度设置(开关井、定压/定产、便于吞吐等) +number_phases = 5; +well_schedules = cell(number_phases,1); +time = zeros(number_phases,1); +% 不同方式对应的收敛难度、需要不一样,需分阶段调控, +% 例如在注入阶段需要小一些,如果需要做早期试井,dtmax、dtmin都需要小一些 +dtmax = zeros(number_phases,1); +dtmin = zeros(number_phases,1); + +% (1)well state: 'open'表示该井是开的;'close'表明该井一直是关的,如果只是阶段性关井,就用'open'定流量0生产 +% (2)well type: 'pro'表示是生产井;'inj'表示是注入井; +% (3)protype:'const_q'是定流量;'const_pwf'则是定压 +% (4)value:定的流量值或者井底压力值 +% (5)value:此代码该值与(3)值相同 +time(1) = 1e-3; dtmax(1) = 0.00002; dtmin(1) = 0.00001; +well_schedules{1,1} = { + 'w1','open','pro','const_q',10000,10000}; +time(2) = 99e-3; dtmax(2) = 0.0002; dtmin(2) = 0.0001; +well_schedules{2,1} = { + 'w1','open','pro','const_q',10000,10000}; +time(3) = 0.9; dtmax(3) = 0.002; dtmin(3) = 0.001; +well_schedules{3,1} = { + 'w1','open','pro','const_q',10000,10000}; +time(4) = 100; dtmax(4) = 2; dtmin(4) = 0.01; +well_schedules{4,1} = { + 'w1','open','pro','const_q',10000,10000}; +time(5) = 900; dtmax(5) = 10; dtmin(5) = 0.01; +well_schedules{5,1} = { + 'w1','open','pro','const_q',10000,10000}; +%% ======================================PART 7: Solver设置=========================================== +yitap = 5; % 50-500psi +yitas = 0.04; % 0.05-0.5 +omega = 0.5; % 0-1 +Nmax = 50; +epsave = 1e-6; +epsmax = 1e-6; +% dtmin = 0.001; +% dtmax = 10; +% dtmin = 0.000001; +% dtmax = 0.0001; +%% ======================================PART 8: 正式计算=========================================== +[Times, OutputRs, Wellpara, trun] = solver_NR(r, flow_model, f, os, state0, yitap,yitas,omega,Nmax,epsave,epsmax,dtmin,dtmax,Wellc,time,well_schedules); +run_time=toc; +trun.run_time=run_time; +end \ No newline at end of file diff --git a/算例4-气水两相流-压力导数曲线/plotWellResponse.m b/算例4-气水两相流-压力导数曲线/plotWellResponse.m new file mode 100644 index 0000000..b3bcc97 --- /dev/null +++ b/算例4-气水两相流-压力导数曲线/plotWellResponse.m @@ -0,0 +1,55 @@ +function [] = plotWellResponse(Times,Wellpara) +% +wellNumber = 1; % +dataType = 'dPWF'; % ͣٶ GPRٶ OPR, ˮٶ WPRѹ BHPѹ dPWF +% +t = Times; +n= size(Times,1); +% para = cell2mat(Wellpara); +nw = wellNumber;%ѡ +% n = length(para); +data = zeros(n,1); +if strcmp(dataType, 'GPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qg; + figureYlegend = 'Gas production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'OPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qo; + figureYlegend = 'Oil production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'WPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qw; + figureYlegend = 'Water production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'BHP') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.pwf; + figureYlegend = 'BHP, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'dPWF') % dpwf/dlnt = t*dpwf/dt + for i = 1 : n + if i == 1 + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i}{1,nw}.pwf)/(log(t(i+1))-log(t(i))); + elseif i == n + data(i) = (Wellpara{i}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i))-log(t(i-1))); + else + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i+1))-log(t(i-1))); + end + figureYlegend = 'Pressure derivative, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); + set(gca, 'XScale', 'log'); + set(gca, 'YScale', 'log'); +end +end \ No newline at end of file diff --git a/算例5-油水两相流-注焖采/grid_discretization_SP_model.m b/算例5-油水两相流-注焖采/grid_discretization_SP_model.m new file mode 100644 index 0000000..fe08427 --- /dev/null +++ b/算例5-油水两相流-注焖采/grid_discretization_SP_model.m @@ -0,0 +1,55 @@ +function r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf) +% 数据读取 +nx = r.nx; ny = r.ny; nz = r.nz; NTG = r.NTG; cell_mid_coords = r.cell_mid_coords; +% 基质孔渗 +rock_density = 2700; % 岩石密度,kg/m^3 +kx = 5*1e-3 * ones(nx*ny*nz, 1); % 达西,D +ky = 5*1e-3 * ones(nx*ny*nz, 1);% +kz = 5*1e-3 * ones(nx*ny*nz, 1);% +pori = 0.01 * ones(nx*ny*nz, 1);% +prpor = 20; % 参考压力,MPa +cpor = 1.0e-5;% 基质压缩系数,,MPa +% 有效网格 +valid_grids = ones(nx*ny*nz, 1); +invalid_layer = []; % 将第二层无效网格 +for i = 1:length(invalid_layer) + grid_numbering_range = ((invalid_layer(i)-1)*nx*ny+1:invalid_layer(i)*nx*ny)'; + valid_grids(grid_numbering_range,1) = 0; +end +% SRV区域定义 +% % % base_x=23:78; nx_SRV=length(base_x); +% % % base_y=15:36; ny_SRV=length(base_y); +% % % base_z=1:1;nz_SRV=length(base_z); +% % % SRV=[]; +% % % for k=1:nz_SRV +% % % for j=1:ny_SRV +% % % for i=1:nx_SRV +% % % SRV=[SRV;(base_z(k)-1)*nx*ny+(base_y(j)-1)*nx+base_x(i)]; +% % % end +% % % end +% % % end +% % % % SRV渗透率赋值 +% % % kx(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % ky(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % kz(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% 裂缝孔渗 +Kf = 10000*1e-3*ones(1,nf);% 裂缝渗透率 +Wf = 1e-2*ones(1,nf);% 裂缝开度 +Porf = 0.30*ones(1,nf);% 裂缝孔隙度 +prporf = 20;% 裂缝系统参考压力 +cporf = 1.0e-5;% 裂缝系统压缩系数 +% 应力敏感 +stress_factor_fracture = 0.000; % 1/MPa 0.001 +stress_factor_matrix = 0.000; % 1/MPa +stress_factor_ref_pressure = 20; % 一般取为原始地层压力MPa +% +Rpt = 2;cf = 1;ca = 1; +%% 结合基质、裂缝的几何及物性信息开展前处理 +% r = GridProp(modelflag, nx, ny, nz, dx, dy, dz, kx, ky, kz, f, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca,co, NTG); +r = GridProp_new(modelflag, r, kx, ky, kz, f, frac_information, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca, valid_grids); +r.rock_density = rock_density; +r.valid_grids = valid_grids; +r.stress_factor_fracture = stress_factor_fracture; +r.stress_factor_matrix = stress_factor_matrix; +r.stress_factor_ref_pressure = stress_factor_ref_pressure; +end \ No newline at end of file diff --git a/算例5-油水两相流-注焖采/main1.m b/算例5-油水两相流-注焖采/main1.m new file mode 100644 index 0000000..472478f --- /dev/null +++ b/算例5-油水两相流-注焖采/main1.m @@ -0,0 +1,200 @@ +function [ r, Times, OutputRs, Wellpara, trun ] = main1() +%% ==================================PART 1: 模型选取======================================== +% 1-- classical EDFM +modelflag = 1;% 此处固定为1即可 +%% ==================================PART 2: 基质网格定义===================================== +dx=[10*ones(1,100) ];nx=size(dx,2); +dy=[10*ones(1,50) ];ny=size(dy,2); +dz=[10*ones(1,1)];nz=size(dz,2); +NTG= 1*ones(nx*ny*nz,1); +r = GridProp_pre(dx,dy,dz,nx,ny,nz,NTG); +%% ==================================PART 3: 裂缝分布数据输入===================================== +% 四种输入方式: 1表示工程应用输入;2表示向量输入;3表示工程应用输入,包括基准点、倾角、方位角、抬升角;4表示从.fab文件读取 +input_style = 1; +%% 输入方式1:工程应用输入 +%仅能刻画具有双对称性质的矩形缝或椭圆缝 +% 基准点坐标(1),方位角(2),倾角(3),抬升角(4),缝长(椭圆长轴长)(5),缝高(椭圆短轴长)(6),类型1是矩形缝、2是椭圆缝(7) +if input_style==1 +input_content={ + [255,255,5],90,90,0,200,10,1; + [305,255,5],90,90,0,200,10,1; + [355,255,5],90,90,0,200,10,1; + [405,255,5],90,90,0,200,10,1; + [455,255,5],90,90,0,200,10,1; + [505,255,5],90,90,0,200,10,1; + [555,255,5],90,90,0,200,10,1; + [605,255,5],90,90,0,200,10,1; + [655,255,5],90,90,0,200,10,1; + [705,255,5],90,90,0,200,10,1; + [755,255,5],90,90,0,200,10,1; + }; +[f,fellip] = sort_fracture(input_content); +flowBarrierFlags = []; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5; +frac_information = fractureInformation_input_engineering_vector(f,fellip,flowBarrierFlags); +end +%% 输入方式2:向量输入 +%首先对矩形缝进行研究,裂缝参数包括三个向量和两个参数的取值范围,如果是其它类型缝,则是两个参数间的函数关系 +%因此一个5行三列的矩阵可以确定一条裂缝 +%向量分量可为非整数,以此保证参数范围的取值为整数即可, +%故可先随意确定为整数的参数范围,再根据缝长缝高去确定向量分量的取值 +% 矩形缝 +if input_style==2 + f=[ + 0,1200,0;10,-20,0;0,0,10;0,60,0;0,3,0; + 0,1200,0;10,20,0;0,0,10;0,15,0;0,3,0; + 150,1500,0;20,-10,0;0,0,10;0,20,0;0,3,0; + 550,1300,0;10,10,0;0,0,10;0,10,0;0,3,0; + 650,1400,0;10,-20,0;0,0,10;0,55,0;0,3,0; + 605,705,0;10,0,0;0,0,10;-20,20,0;0,3,0; + ]; +% 椭圆缝 +% fellip=[320,210,10;10,2,0;0,0,2;0,0,8;0,0,5; +% 280,300,10;10,2,0;0,0,2;0,0,10;0,0,4;]; +% 300,205,10;10,0,0;0,0,2;0,0,10;0,0,5]; +fellip=[]; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +frac_information = fractureInformation_input_engineering_vector(f,fellip); +end +%% 输入方式3:二维输入 +% load('fractures_generated.mat'); +% fractureLines = fractures_generated; +if input_style==3 +fractureLines = [ + 105,150;105,350; + 205,150;205,350; + 305,150;305,350; + 405,150;405,350; + 505,150;505,350; + 605,150;605,350; + 705,150;705,350; + 805,150;805,350; + 905,150;905,350; + ]; +fellip=[]; % 椭圆缝 +fractureHeights = [ + 10;10;10;10;10;10;10;10;10]; +% 椭圆缝 +fellip=[]; +flowBarrierFlags = [];% flowBarrierFlags = [1;2;3;4]; +[f,frac_information] = input_fracture_2D(fractureLines,fractureHeights,flowBarrierFlags); +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +end +%% 输入方式4:从.fab文件读取 Frac_PT +if input_style==4 + +end + +%% ==================================PART 4: 基质网格及裂缝物性参数输入===================================== +% 1-- 单重介质 +% 2-- 双重介质(双孔双渗) +grid_model = 1; +if grid_model == 1 +r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf); +end +if grid_model == 2 +r = grid_discretization_DP_model(modelflag, r, f, frac_information, fellip, nf); +end + +%% 生成向量化变成所需要的算子 +os = OperatorRS(r.N, r.nex, r.nc); + +%% ==================================PART 5: 模型类型选取及初始状态设定========================================= +% 1-- 气水两相流 +% 2-- 油水两相流 +flow_model = 2; +if flow_model == 1 +[f,state0] = gas_water_flow(r); +end +if flow_model == 2 +[f,state0] = oil_water_flow(r); +end +if flow_model == 3 +[f,state0] = multi_component_flow(r); +end + +%% ==================================PART 6: 井制度schedule设定================================================ +%将直井、水平井与多段压裂水平井分开处理 +%% 直井、常规水平井定义 +% Wellcpara: wellname(1) nperf,射孔点数量(2) index(3) rw(4) skin(5) welltype(6) +% welltype=1 直井,welltype=2 水平井沿x方向,welltype=3 水平井沿y方向 welltype=4 多段压裂水平井 +% 直井、水平井,该种井型的处理是将射孔段安排在基质网格 +% 对于直井、斜井、水平井,采取与eclipse一致的方式,给出其在基质网格中位置 +% 每个射孔点由下px,py,pz确定,分别表示该射孔点在x方向,y方向的网格编号,及层数即z反方向上的网格编号(最初是以垂直向上建立的基质网格) +well1={ + % 'w1', 2, [20 10 1;20 10 2;], 0.178/2, 0, 1; + % 'w2', 2, [80 10 1;80 10 2;], 0.178/2, 0, 1; + % 'w3', 1, [20 40 1;], 0.178/2, 0, 1; + % 'w4', 1, [80 40 1;], 0.178/2, 0, 1; +% 'w2', 3, [67 20 1;67 20 2;67 20 3], 0.178/2, 0, 1; + }; +well1 = handle_well1(well1,r); +%% 压裂水平井定义 +% 多段压裂水平井:射孔段设置在裂缝单元上,可以给出该射孔点所在的坐标,然后去寻找该点所在的裂缝单元编号 +num_fracture_wells = 1; +welloc = cell(num_fracture_wells,1); +perfnum = cell(num_fracture_wells,1); +welloc{1,1}=[ + 255,255,5; + 305,255,5; + 355,255,5; + 405,255,5; + 455,255,5; + 505,255,5; + 555,255,5; + 605,255,5; + 655,255,5; + 705,255,5; + 755,255,5; + ]; +for i = 1:num_fracture_wells +perfnum{i,1} = findWelloc(r, welloc{i,1});%在用以Wellc0之中 +end +% perfnum2 = findWelloc(r, welloc2); +well2={ + 'w1', length(perfnum{1,1}), perfnum{1,1}, 0.178/2, 0,4; + }; +Wellc = handle_well1_well2(well1,well2,welloc,r); %加井和射孔位置 +%% 井制度设置(开关井、定压/定产、便于吞吐等) +number_phases = 3; +well_schedules = cell(number_phases,1); +time = zeros(number_phases,1); +% 不同方式对应的收敛难度、需要不一样,需分阶段调控, +% 例如在注入阶段需要小一些,如果需要做早期试井,dtmax、dtmin都需要小一些 +dtmax = zeros(number_phases,1); +dtmin = zeros(number_phases,1); + +% (1)well state: 'open'表示该井是开的;'close'表明该井一直是关的,如果只是阶段性关井,就用'open'定流量0生产 +% (2)well type: 'pro'表示是生产井;'inj'表示是注入井; +% (3)protype:'const_q'是定流量;'const_pwf'则是定压 +% (4)value:定的流量值或者井底压力值 +% (5)value:此代码该值与(3)值相同 +time(1) = 10; dtmax(1) = 0.5; dtmin(1) = 0.001; +well_schedules{1,1} = { + % 'w1','open','inj','const_pwf',30,30; + % 'w2','open','inj','const_pwf',30,30; + % 'w3','open','inj','const_pwf',30,30; + % 'w4','open','inj','const_pwf',30,30; + 'w1','open','inj','const_pwf',40,40}; +time(2) = 30; dtmax(2) = 1; dtmin(2) = 0.001; +well_schedules{2,1} = { + 'w1','open','pro','const_q',0,0; + }; +time(3) = 200; dtmax(3) = 5; dtmin(3) = 0.001; +well_schedules{3,1} = { + 'w1','open','pro','const_pwf',10,10; + % 'w2','open','pro','const_pwf',10,10; + }; + +%% ======================================PART 7: Solver设置=========================================== +yitap = 5; % 50-500psi +yitas = 0.04; % 0.05-0.5 +omega = 0.5; % 0-1 +Nmax = 50; +epsave = 1e-6; +epsmax = 1e-6; +%% ======================================PART 8: 正式计算=========================================== +[Times, OutputRs, Wellpara, trun] = solver_NR(r, flow_model, f, os, state0, yitap,yitas,omega,Nmax,epsave,epsmax,dtmin,dtmax,Wellc,time,well_schedules); +run_time=toc; +trun.run_time=run_time; +end \ No newline at end of file diff --git a/算例5-油水两相流-注焖采/oil_water_flow.m b/算例5-油水两相流-注焖采/oil_water_flow.m new file mode 100644 index 0000000..2b37ab7 --- /dev/null +++ b/算例5-油水两相流-注焖采/oil_water_flow.m @@ -0,0 +1,126 @@ +function [f,state0] = oil_water_flow(r) +% =======================油相体积密度、体积系数、粘度等=============================== +density_o_sc = 800; % kg/m3 +% 第一种模式,直接输入参考压力、体积系数、压缩系数、粘度 +oil_model =1; +if oil_model == 1 +pro = 30; % reference pressure, MPa +Boi = 1.1; % gas phase volume factor +co = 1e-3 ;% gas phase compressibility, 1/MPa +voi = 10; % gas viscosity, cp +cvo = 0; % 气相粘度随压力变化的线性系数,cp/MPa +[Ppr,BO,MUO] = cal_oil_prop(pro,Boi,co,voi,cvo); +end +if oil_model == 2 +Ppr = [ 0.1013 + 2.0946 + 4.0878 + 6.0811 + 8.0743 + 10.0676 + 12.0608 + 14.0540 + 16.0473 + 18.0405 + 20.0338 + 22.0270 + 24.0203 + 26.0135 + 28.0068 + 30.0000 + ]; +% BO = 0.01*ones(size(Ppr,1),1); +BO = [ 1.18297 + 0.0557041 + 0.0278168 + 0.0182594 + 0.0134665 + 0.0106154 + 0.00874829 + 0.00744907 + 0.00650639 + 0.0058006 + 0.0052587 + 0.0048336 + 0.00449378 + 0.00421751 + 0.0039895 + 0.00379871 + ]; +% MUG = 0.01*ones(size(Ppr,1),1); +MUO = [0.0127683 + 0.0130191 + 0.0133973 + 0.013872 + 0.014437 + 0.015088 + 0.0158182 + 0.0166173 + 0.0174719 + 0.0183671 + 0.0192882 + 0.0202219 + 0.0211575 + 0.0220865 + 0.0230024 + 0.0239008 + ]; +end +% ========================水相体积系数、粘度=============================== +density_w_sc = 1000; % kg/m3 +prw = 30; % reference pressure, MPa +Bwi = 1.000; % water phase volume factor, 无因次 +cw = 4.0e-4 ;% water phase compressibility, 1/MPa +vwi = 1; % water viscosity, cp +cvw = 0; % 水相粘度随压力变化的线性系数,cp/MPa +% =============================基质相渗=============================== +ifpcow = 0; % 是否考虑毛管力 +PRM=[ + 0.0000 0.0000 1.0000 3.8916 +0.2000 0.0000 1.0000 3.8916 +0.3160 0.0002 0.6784 0.5796 +0.4350 0.0004 0.6215 0.3724 +0.5620 0.0010 0.5456 0.2425 +0.6140 0.0020 0.3939 0.0608 +0.7020 0.0280 0.1399 0.0372 +0.8120 0.1721 0.0515 0.0137 +0.8750 0.3395 0.0297 0.0104 +0.9060 0.4395 0.0 0.0090 +1.0 0.4395 0.0 0.0090 +]; +SW=PRM(:,1);KRW=PRM(:,2);KRO=PRM(:,3);PCOW=PRM(:,4); + +% =============================裂缝相渗=============================== +PRF=[ +0.0000 0.0000 1.0000 3.8916 +0.2000 0.0000 1.0000 3.8916 +0.3160 0.0002 0.6784 0.5796 +0.4350 0.0004 0.6215 0.3724 +0.5620 0.0010 0.5456 0.2425 +0.6140 0.0020 0.3939 0.0608 +0.7020 0.0280 0.1399 0.0372 +0.8120 0.1721 0.0515 0.0137 +0.8750 0.3395 0.0297 0.0104 +0.9060 0.4395 0.0 0.0090 +1.0 0.4395 0.0 0.0090 +]; +SWF = PRF(:,1);KRWF = PRF(:,2);KROF = PRF(:,3);PCOWF=PRF(:,4); +%% +% ===================== 高速非达西流 Forchheimer 方程 ==================== +beta_non_Darcy_flow = 0; % 1e-8 +% ===================== 启动压力梯度 ==================== +p_grad_threshold = 0.00; % MPa/m +%% 结合流体性质参数生成相应的数据体 +f = fluidPVT_oil_water_flow(Ppr, BO, MUO, Bwi, prw, cw, vwi, cvw, SW, KRO, KRW, PCOW, SWF, KROF, KRWF, PCOWF, density_o_sc, ifpcow, r.rpt); +f.beta_non_Darcy_flow = beta_non_Darcy_flow; +f.Dwsi = density_w_sc; +f.Dosi = density_o_sc; +f.p_grad_threshold = p_grad_threshold; +%% 初值条件 Initial Condition Section +% =================压力、饱和度初值======================================= % +%压力初值要考虑重力,给出油藏下表面压力值 +P = [20 * ones(r.nmc, 1); 20 * ones(r.nfc, 1)]; +% plow=25; % P =plow-1e-6*800*9.8*r.z; +Sw = [0.2 * ones(r.nmc, 1); 0.2 * ones(r.nfc, 1)]; +state0 = initialRS_oil_water_flow(P, Sw); +end \ No newline at end of file diff --git a/算例5-油水两相流-注焖采/plotWellResponse.m b/算例5-油水两相流-注焖采/plotWellResponse.m new file mode 100644 index 0000000..fcd76ee --- /dev/null +++ b/算例5-油水两相流-注焖采/plotWellResponse.m @@ -0,0 +1,55 @@ +function [] = plotWellResponse(Times,Wellpara) +% +wellNumber = 1; % +dataType = 'OPR'; % ͣٶ GPRٶ OPR, ˮٶ WPRѹ BHPѹ dPWF +% +t = Times; +n= size(Times,1); +% para = cell2mat(Wellpara); +nw = wellNumber;%ѡ +% n = length(para); +data = zeros(n,1); +if strcmp(dataType, 'GPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qg; + figureYlegend = 'Gas production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'OPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qo; + figureYlegend = 'Oil production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'WPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qw; + figureYlegend = 'Water production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'BHP') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.pwf; + figureYlegend = 'BHP, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'dPWF') % dpwf/dlnt = t*dpwf/dt + for i = 1 : n + if i == 1 + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i}{1,nw}.pwf)/(log(t(i+1))-log(t(i))); + elseif i == n + data(i) = (Wellpara{i}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i))-log(t(i-1))); + else + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i+1))-log(t(i-1))); + end + figureYlegend = 'Pressure derivative, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); + set(gca, 'XScale', 'log'); + set(gca, 'YScale', 'log'); +end +end \ No newline at end of file diff --git a/算例6-油水两相流-直井注压裂水平井采/grid_discretization_SP_model.m b/算例6-油水两相流-直井注压裂水平井采/grid_discretization_SP_model.m new file mode 100644 index 0000000..5469bbc --- /dev/null +++ b/算例6-油水两相流-直井注压裂水平井采/grid_discretization_SP_model.m @@ -0,0 +1,55 @@ +function r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf) +% 数据读取 +nx = r.nx; ny = r.ny; nz = r.nz; NTG = r.NTG; cell_mid_coords = r.cell_mid_coords; +% 基质孔渗 +density_rock = 2700; % 岩石密度,kg/m^3 +kx = 1*1e-3 * ones(nx*ny*nz, 1); % 达西,D +ky = 1*1e-3 * ones(nx*ny*nz, 1);% +kz = 1*1e-3 * ones(nx*ny*nz, 1);% +pori = 0.08 * ones(nx*ny*nz, 1);% +prpor = 20; % 参考压力,MPa +cpor = 1.0e-5;% 基质压缩系数,,MPa +% 有效网格 +valid_grids = ones(nx*ny*nz, 1); +invalid_layer = []; % 将第二层无效网格 +for i = 1:length(invalid_layer) + grid_numbering_range = ((invalid_layer(i)-1)*nx*ny+1:invalid_layer(i)*nx*ny)'; + valid_grids(grid_numbering_range,1) = 0; +end +% SRV区域定义 +% % % base_x=23:78; nx_SRV=length(base_x); +% % % base_y=15:36; ny_SRV=length(base_y); +% % % base_z=1:1;nz_SRV=length(base_z); +% % % SRV=[]; +% % % for k=1:nz_SRV +% % % for j=1:ny_SRV +% % % for i=1:nx_SRV +% % % SRV=[SRV;(base_z(k)-1)*nx*ny+(base_y(j)-1)*nx+base_x(i)]; +% % % end +% % % end +% % % end +% % % % SRV渗透率赋值 +% % % kx(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % ky(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % kz(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% 裂缝孔渗 +Kf = 10000*1e-3*ones(1,nf);% 裂缝渗透率 +Wf = 1e-2*ones(1,nf);% 裂缝开度 +Porf = 0.30*ones(1,nf);% 裂缝孔隙度 +prporf = 20;% 裂缝系统参考压力 +cporf = 1.0e-5;% 裂缝系统压缩系数 +% 应力敏感 +stress_factor_fracture = 0.000; % 1/MPa 0.001 +stress_factor_matrix = 0.000; % 1/MPa +stress_factor_ref_pressure = 20; % 一般取为原始地层压力MPa +% +Rpt = 2;cf = 1;ca = 1; +%% 结合基质、裂缝的几何及物性信息开展前处理 +% r = GridProp(modelflag, nx, ny, nz, dx, dy, dz, kx, ky, kz, f, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca,co, NTG); +r = GridProp_new(modelflag, r, kx, ky, kz, f, frac_information, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca, valid_grids); +r.density_rock = density_rock; +r.valid_grids = valid_grids; +r.stress_factor_fracture = stress_factor_fracture; +r.stress_factor_matrix = stress_factor_matrix; +r.stress_factor_ref_pressure = stress_factor_ref_pressure; +end \ No newline at end of file diff --git a/算例6-油水两相流-直井注压裂水平井采/main1.m b/算例6-油水两相流-直井注压裂水平井采/main1.m new file mode 100644 index 0000000..99df1fa --- /dev/null +++ b/算例6-油水两相流-直井注压裂水平井采/main1.m @@ -0,0 +1,196 @@ +function [ r, Times, OutputRs, Wellpara, trun ] = main1() +%% ==================================PART 1: 模型选取======================================== +% 1-- classical EDFM +modelflag = 1;% 此处固定为1即可 +%% ==================================PART 2: 基质网格定义===================================== +dx=[10*ones(1,100) ];nx=size(dx,2); +dy=[10*ones(1,50) ];ny=size(dy,2); +dz=[10*ones(1,2)];nz=size(dz,2); +NTG= 1*ones(nx*ny*nz,1); +r = GridProp_pre(dx, dy,dz,nx,ny,nz,NTG); +%% ==================================PART 3: 裂缝分布数据输入===================================== +% 四种输入方式: 1表示工程应用输入;2表示向量输入;3表示工程应用输入,包括基准点、倾角、方位角、抬升角;4表示从.fab文件读取 +input_style = 1; +%% 输入方式1:工程应用输入 +%仅能刻画具有双对称性质的矩形缝或椭圆缝 +% 基准点坐标(1),方位角(2),倾角(3),抬升角(4),缝长(椭圆长轴长)(5),缝高(椭圆短轴长)(6),类型1是矩形缝、2是椭圆缝(7) +if input_style==1 +input_content={ + [255,255,5],90,90,0,200,10,1; + [305,255,5],90,90,0,200,10,1; + [355,255,5],90,90,0,200,10,1; + [405,255,5],90,90,0,200,10,1; + [455,255,5],90,90,0,200,10,1; + [505,255,5],90,90,0,200,10,1; + [555,255,15],90,90,0,200,10,1; + [605,255,15],90,90,0,200,10,1; + [655,255,15],90,90,0,200,10,1; + [705,255,15],90,90,0,200,10,1; + [755,255,15],90,90,0,200,10,1; + }; +[f,fellip] = sort_fracture(input_content); +flowBarrierFlags = []; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5; +frac_information = fractureInformation_input_engineering_vector(f,fellip,flowBarrierFlags); +end +%% 输入方式2:向量输入 +%首先对矩形缝进行研究,裂缝参数包括三个向量和两个参数的取值范围,如果是其它类型缝,则是两个参数间的函数关系 +%因此一个5行三列的矩阵可以确定一条裂缝 +%向量分量可为非整数,以此保证参数范围的取值为整数即可, +%故可先随意确定为整数的参数范围,再根据缝长缝高去确定向量分量的取值 +% 矩形缝 +if input_style==2 + f=[ + 0,1200,0;10,-20,0;0,0,10;0,60,0;0,3,0; + 0,1200,0;10,20,0;0,0,10;0,15,0;0,3,0; + 150,1500,0;20,-10,0;0,0,10;0,20,0;0,3,0; + 550,1300,0;10,10,0;0,0,10;0,10,0;0,3,0; + 650,1400,0;10,-20,0;0,0,10;0,55,0;0,3,0; + 605,705,0;10,0,0;0,0,10;-20,20,0;0,3,0; + ]; +% 椭圆缝 +% fellip=[320,210,10;10,2,0;0,0,2;0,0,8;0,0,5; +% 280,300,10;10,2,0;0,0,2;0,0,10;0,0,4;]; +% 300,205,10;10,0,0;0,0,2;0,0,10;0,0,5]; +fellip=[]; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +frac_information = fractureInformation_input_engineering_vector(f,fellip); +end +%% 输入方式3:二维输入 +% load('fractures_generated.mat'); +% fractureLines = fractures_generated; +if input_style==3 +fractureLines = [ + 105,150;105,350; + 205,150;205,350; + 305,150;305,350; + 405,150;405,350; + 505,150;505,350; + 605,150;605,350; + 705,150;705,350; + 805,150;805,350; + 905,150;905,350; + ]; +fellip=[]; % 椭圆缝 +fractureHeights = [ + 10;10;10;10;10;10;10;10;10]; +% 椭圆缝 +fellip=[]; +flowBarrierFlags = [];% flowBarrierFlags = [1;2;3;4]; +[f,frac_information] = input_fracture_2D(fractureLines,fractureHeights,flowBarrierFlags); +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +end +%% 输入方式4:从.fab文件读取 Frac_PT +if input_style==4 + +end + +%% ==================================PART 4: 基质网格及裂缝物性参数输入===================================== +% 1-- 单重介质 +% 2-- 双重介质(双孔双渗) +grid_model = 1; +if grid_model == 1 +r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf); +end +if grid_model == 2 +r = grid_discretization_DP_model(modelflag, r, f, frac_information, fellip, nf); +end + +%% 生成向量化变成所需要的算子 +os = OperatorRS(r.N, r.nex, r.nc); + +%% ==================================PART 5: 模型类型选取及初始状态设定========================================= +% 1-- 气水两相流 +% 2-- 油水两相流 +flow_model = 2; +if flow_model == 1 +[f,state0] = gas_water_flow(r); +end +if flow_model == 2 +[f,state0] = oil_water_flow(r); +end +if flow_model == 3 +[f,state0] = multi_component_flow(r); +end + +%% ==================================PART 6: 井制度schedule设定================================================ +%将直井、水平井与多段压裂水平井分开处理 +%% 直井、常规水平井定义 +% Wellcpara: wellname(1) nperf,射孔点数量(2) index(3) rw(4) skin(5) welltype(6) +% welltype=1 直井,welltype=2 水平井沿x方向,welltype=3 水平井沿y方向 welltype=4 多段压裂水平井 +% 直井、水平井,该种井型的处理是将射孔段安排在基质网格 +% 对于直井、斜井、水平井,采取与eclipse一致的方式,给出其在基质网格中位置 +% 每个射孔点由下px,py,pz确定,分别表示该射孔点在x方向,y方向的网格编号,及层数即z反方向上的网格编号(最初是以垂直向上建立的基质网格) +well1={ + 'w1', 2, [20 10 1;20 10 2;], 0.178/2, 0, 1; + 'w2', 2, [80 10 1;80 10 2;], 0.178/2, 0, 1; + 'w3', 1, [20 40 1;], 0.178/2, 0, 1; + 'w4', 1, [80 40 1;], 0.178/2, 0, 1; + }; +well1 = handle_well1(well1,r); +%% 压裂水平井定义 +% 多段压裂水平井:射孔段设置在裂缝单元上,可以给出该射孔点所在的坐标,然后去寻找该点所在的裂缝单元编号 +num_fracture_wells = 1; +welloc = cell(num_fracture_wells,1); +perfnum = cell(num_fracture_wells,1); +welloc{1,1}=[ + 255,255,5; + 305,255,5; + 355,255,5; + 405,255,5; + 455,255,5; + 505,255,5; + 555,255,15; + 605,255,15; + 655,255,15; + 705,255,15; + 755,255,15; + ]; +for i = 1:num_fracture_wells +perfnum{i,1} = findWelloc(r, welloc{i,1});%在用以Wellc0之中 +end +% perfnum2 = findWelloc(r, welloc2); +well2={ + 'w1', length(perfnum{1,1}), perfnum{1,1}, 0.178/2, 0,4; + }; +Wellc = handle_well1_well2(well1,well2,welloc,r); %加井和射孔位置 +%% 井制度设置(开关井、定压/定产、便于吞吐等) +number_phases = 1; +well_schedules = cell(number_phases,1); +time = zeros(number_phases,1); +% 不同方式对应的收敛难度、需要不一样,需分阶段调控, +% 例如在注入阶段需要小一些,如果需要做早期试井,dtmax、dtmin都需要小一些 +dtmax = zeros(number_phases,1); +dtmin = zeros(number_phases,1); + +% (1)well state: 'open'表示该井是开的;'close'表明该井一直是关的,如果只是阶段性关井,就用'open'定流量0生产 +% (2)well type: 'pro'表示是生产井;'inj'表示是注入井; +% (3)protype:'const_q'是定流量;'const_pwf'则是定压 +% (4)value:定的流量值或者井底压力值 +% (5)value:此代码该值与(3)值相同 +time(1) = 200; dtmax(1) = 2; dtmin(1) = 0.001; +well_schedules{1,1} = { + 'w1','open','inj','const_pwf',35,35; + 'w2','open','inj','const_pwf',35,35; + 'w3','open','inj','const_pwf',35,35; + 'w4','open','inj','const_pwf',35,35; + 'w5','open','pro','const_pwf',10,10; + % 'w2','open','pro','const_pwf',10,10; + }; + +%% ======================================PART 7: Solver设置=========================================== +yitap = 5; % 50-500psi +yitas = 0.04; % 0.05-0.5 +omega = 0.5; % 0-1 +Nmax = 50; +epsave = 1e-6; +epsmax = 1e-6; +% dtmin = 0.001; +% dtmax = 10; +% dtmin = 0.000001; +% dtmax = 0.0001; +%% ======================================PART 8: 正式计算=========================================== +[Times, OutputRs, Wellpara, trun] = solver_NR(r, flow_model, f, os, state0, yitap,yitas,omega,Nmax,epsave,epsmax,dtmin,dtmax,Wellc,time,well_schedules); +run_time=toc; +trun.run_time=run_time; +end \ No newline at end of file diff --git a/算例6-油水两相流-直井注压裂水平井采/oil_water_flow.m b/算例6-油水两相流-直井注压裂水平井采/oil_water_flow.m new file mode 100644 index 0000000..2b37ab7 --- /dev/null +++ b/算例6-油水两相流-直井注压裂水平井采/oil_water_flow.m @@ -0,0 +1,126 @@ +function [f,state0] = oil_water_flow(r) +% =======================油相体积密度、体积系数、粘度等=============================== +density_o_sc = 800; % kg/m3 +% 第一种模式,直接输入参考压力、体积系数、压缩系数、粘度 +oil_model =1; +if oil_model == 1 +pro = 30; % reference pressure, MPa +Boi = 1.1; % gas phase volume factor +co = 1e-3 ;% gas phase compressibility, 1/MPa +voi = 10; % gas viscosity, cp +cvo = 0; % 气相粘度随压力变化的线性系数,cp/MPa +[Ppr,BO,MUO] = cal_oil_prop(pro,Boi,co,voi,cvo); +end +if oil_model == 2 +Ppr = [ 0.1013 + 2.0946 + 4.0878 + 6.0811 + 8.0743 + 10.0676 + 12.0608 + 14.0540 + 16.0473 + 18.0405 + 20.0338 + 22.0270 + 24.0203 + 26.0135 + 28.0068 + 30.0000 + ]; +% BO = 0.01*ones(size(Ppr,1),1); +BO = [ 1.18297 + 0.0557041 + 0.0278168 + 0.0182594 + 0.0134665 + 0.0106154 + 0.00874829 + 0.00744907 + 0.00650639 + 0.0058006 + 0.0052587 + 0.0048336 + 0.00449378 + 0.00421751 + 0.0039895 + 0.00379871 + ]; +% MUG = 0.01*ones(size(Ppr,1),1); +MUO = [0.0127683 + 0.0130191 + 0.0133973 + 0.013872 + 0.014437 + 0.015088 + 0.0158182 + 0.0166173 + 0.0174719 + 0.0183671 + 0.0192882 + 0.0202219 + 0.0211575 + 0.0220865 + 0.0230024 + 0.0239008 + ]; +end +% ========================水相体积系数、粘度=============================== +density_w_sc = 1000; % kg/m3 +prw = 30; % reference pressure, MPa +Bwi = 1.000; % water phase volume factor, 无因次 +cw = 4.0e-4 ;% water phase compressibility, 1/MPa +vwi = 1; % water viscosity, cp +cvw = 0; % 水相粘度随压力变化的线性系数,cp/MPa +% =============================基质相渗=============================== +ifpcow = 0; % 是否考虑毛管力 +PRM=[ + 0.0000 0.0000 1.0000 3.8916 +0.2000 0.0000 1.0000 3.8916 +0.3160 0.0002 0.6784 0.5796 +0.4350 0.0004 0.6215 0.3724 +0.5620 0.0010 0.5456 0.2425 +0.6140 0.0020 0.3939 0.0608 +0.7020 0.0280 0.1399 0.0372 +0.8120 0.1721 0.0515 0.0137 +0.8750 0.3395 0.0297 0.0104 +0.9060 0.4395 0.0 0.0090 +1.0 0.4395 0.0 0.0090 +]; +SW=PRM(:,1);KRW=PRM(:,2);KRO=PRM(:,3);PCOW=PRM(:,4); + +% =============================裂缝相渗=============================== +PRF=[ +0.0000 0.0000 1.0000 3.8916 +0.2000 0.0000 1.0000 3.8916 +0.3160 0.0002 0.6784 0.5796 +0.4350 0.0004 0.6215 0.3724 +0.5620 0.0010 0.5456 0.2425 +0.6140 0.0020 0.3939 0.0608 +0.7020 0.0280 0.1399 0.0372 +0.8120 0.1721 0.0515 0.0137 +0.8750 0.3395 0.0297 0.0104 +0.9060 0.4395 0.0 0.0090 +1.0 0.4395 0.0 0.0090 +]; +SWF = PRF(:,1);KRWF = PRF(:,2);KROF = PRF(:,3);PCOWF=PRF(:,4); +%% +% ===================== 高速非达西流 Forchheimer 方程 ==================== +beta_non_Darcy_flow = 0; % 1e-8 +% ===================== 启动压力梯度 ==================== +p_grad_threshold = 0.00; % MPa/m +%% 结合流体性质参数生成相应的数据体 +f = fluidPVT_oil_water_flow(Ppr, BO, MUO, Bwi, prw, cw, vwi, cvw, SW, KRO, KRW, PCOW, SWF, KROF, KRWF, PCOWF, density_o_sc, ifpcow, r.rpt); +f.beta_non_Darcy_flow = beta_non_Darcy_flow; +f.Dwsi = density_w_sc; +f.Dosi = density_o_sc; +f.p_grad_threshold = p_grad_threshold; +%% 初值条件 Initial Condition Section +% =================压力、饱和度初值======================================= % +%压力初值要考虑重力,给出油藏下表面压力值 +P = [20 * ones(r.nmc, 1); 20 * ones(r.nfc, 1)]; +% plow=25; % P =plow-1e-6*800*9.8*r.z; +Sw = [0.2 * ones(r.nmc, 1); 0.2 * ones(r.nfc, 1)]; +state0 = initialRS_oil_water_flow(P, Sw); +end \ No newline at end of file diff --git a/算例6-油水两相流-直井注压裂水平井采/plotWellResponse.m b/算例6-油水两相流-直井注压裂水平井采/plotWellResponse.m new file mode 100644 index 0000000..b3bcc97 --- /dev/null +++ b/算例6-油水两相流-直井注压裂水平井采/plotWellResponse.m @@ -0,0 +1,55 @@ +function [] = plotWellResponse(Times,Wellpara) +% +wellNumber = 1; % +dataType = 'dPWF'; % ͣٶ GPRٶ OPR, ˮٶ WPRѹ BHPѹ dPWF +% +t = Times; +n= size(Times,1); +% para = cell2mat(Wellpara); +nw = wellNumber;%ѡ +% n = length(para); +data = zeros(n,1); +if strcmp(dataType, 'GPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qg; + figureYlegend = 'Gas production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'OPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qo; + figureYlegend = 'Oil production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'WPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qw; + figureYlegend = 'Water production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'BHP') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.pwf; + figureYlegend = 'BHP, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'dPWF') % dpwf/dlnt = t*dpwf/dt + for i = 1 : n + if i == 1 + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i}{1,nw}.pwf)/(log(t(i+1))-log(t(i))); + elseif i == n + data(i) = (Wellpara{i}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i))-log(t(i-1))); + else + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i+1))-log(t(i-1))); + end + figureYlegend = 'Pressure derivative, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); + set(gca, 'XScale', 'log'); + set(gca, 'YScale', 'log'); +end +end \ No newline at end of file diff --git a/算例6-油水两相流-直井注压裂水平井采/plot_2D_layer.m b/算例6-油水两相流-直井注压裂水平井采/plot_2D_layer.m new file mode 100644 index 0000000..0d45394 --- /dev/null +++ b/算例6-油水两相流-直井注压裂水平井采/plot_2D_layer.m @@ -0,0 +1,50 @@ +function plot_2D_layer(i, k, r, OutputRs, type) +coordinate=r.coordinates; +nodes=r.nodes; +nz=r.nz; +nx=r.nx; +ny=r.ny; +nmc = size(nodes,1); +% nel = size(nodes,2); +nel = 4; +if type == 1 +% v = r.kx; + v = OutputRs{i}.p; +else + v = 1-OutputRs{i}.sw;%Ͷ +end +dis = zeros(nel, nx*ny); +x = zeros(nel, nx*ny); +y = zeros(nel, nx*ny); +for i = 1 :nx*ny + for j = 1 :nel + grid_numbering = i+(nz-k)*nx*ny; + x(j, i) = coordinate(nodes(grid_numbering,j), 1); + y(j, i) = coordinate(nodes(grid_numbering,j), 2); + if j == 3 + x(j, i) = coordinate(nodes(grid_numbering,4), 1); + y(j, i) = coordinate(nodes(grid_numbering,4), 2); + end + if j == 4 + x(j, i) = coordinate(nodes(grid_numbering,3), 1); + y(j, i) = coordinate(nodes(grid_numbering,3), 2); + end + dis(j, i) = v(grid_numbering); + end +end +% fill(x,y,dis,'EdgeAlpha',1); +figure('color','w'); +fill(x,y,dis,'EdgeColor','interp'); +xlabel('x, m','FontSize',14); +ylabel('y, m','FontSize',14); +ax = gca; +ax.FontSize = 14; +axis equal; +axis tight +% xlim([0,60]); +% ylim([0,60]); +% clim([10,15]); +colorbar +colormap jet +% fill(x,y,dis); +% axis off diff --git a/算例6-油水两相流-直井注压裂水平井采/plot_3D_dis.m b/算例6-油水两相流-直井注压裂水平井采/plot_3D_dis.m new file mode 100644 index 0000000..6674f45 --- /dev/null +++ b/算例6-油水两相流-直井注压裂水平井采/plot_3D_dis.m @@ -0,0 +1,144 @@ +function plot_3D_dis(i, r,OutputRs, type) +%Ϊͼǰ +figure('color','w') +[ downgrid, frontgrid ,leftgrid, rightgrid, backgrid, upgrid ] = preplot_dis( r ); +coordinate=r.coordinates; +nodes=r.nodes; +% nmc = size(nodes,1);% +% % nel = size(nodes,2);%ÿĵ +% order=[1,2,4,3,1,5,6,8,7,3,4,8,6,2,1];%fillͼ +% nel=size(order,2); +if type == 1 + v = OutputRs{i}.p; +elseif type == 2 + v = 1-OutputRs{i}.sw;%ͱͶ +elseif type == 3 + v = OutputRs{i}.sg;%ͱͶ +else + v = OutputRs{i}.sw;%ͱͶ +end +% +order=[1,2,4,3,1]; +nel=size(order,2); +nmc=size(downgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(downgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(downgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(downgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(downgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +hold on + +% +order=[1,5,7,3,1]; +nel=size(order,2); +nmc=size(leftgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(leftgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(leftgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(leftgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(leftgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[2,4,8,6,2]; +nel=size(order,2); +nmc=size(rightgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(rightgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(rightgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(rightgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(rightgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +%ǰ +order=[1,2,6,5,1]; +nel=size(order,2); +nmc=size(frontgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(frontgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(frontgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(frontgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(frontgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[3,4,8,7,3]; +nel=size(order,2); +nmc=size(backgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(backgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(backgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(backgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(backgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); + +% +order=[5,6,8,7,5]; +nel=size(order,2); +nmc=size(upgrid,2); +dis = zeros(nel, nmc); +x = zeros(nel, nmc); +y = zeros(nel, nmc); +z = zeros(nel, nmc); +for i = 1 : nmc + for j = 1 : nel + x(j, i) = coordinate(nodes(upgrid(i),order(j)), 1); + y(j, i) = coordinate(nodes(upgrid(i),order(j)), 2); + z(j, i) = coordinate(nodes(upgrid(i),order(j)), 3)-max(coordinate(:,3))-2000; + dis(j, i) = v(upgrid(i)); + end +end +fill3(x,y,z,dis,'edgeColor','interp'); +set(gca,'FontName','Times New Roman','FontSize',10,'FontWeight','bold'); +xlabel('x, m'); +ylabel('y, m'); +zlabel('z, m'); +view(3); +% Ͳؿ +% plotframe( r ); +alpha(1) +% caxis([0.2,0.8]); +caxis([10,13]); +% caxis([12,22]); +colormap jet +colorbar +% zlim([-2020,-2000]); +% axis equal +axis tight + diff --git a/算例7-油水两相流-不同裂缝制度不同/grid_discretization_SP_model.m b/算例7-油水两相流-不同裂缝制度不同/grid_discretization_SP_model.m new file mode 100644 index 0000000..fe08427 --- /dev/null +++ b/算例7-油水两相流-不同裂缝制度不同/grid_discretization_SP_model.m @@ -0,0 +1,55 @@ +function r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf) +% 数据读取 +nx = r.nx; ny = r.ny; nz = r.nz; NTG = r.NTG; cell_mid_coords = r.cell_mid_coords; +% 基质孔渗 +rock_density = 2700; % 岩石密度,kg/m^3 +kx = 5*1e-3 * ones(nx*ny*nz, 1); % 达西,D +ky = 5*1e-3 * ones(nx*ny*nz, 1);% +kz = 5*1e-3 * ones(nx*ny*nz, 1);% +pori = 0.01 * ones(nx*ny*nz, 1);% +prpor = 20; % 参考压力,MPa +cpor = 1.0e-5;% 基质压缩系数,,MPa +% 有效网格 +valid_grids = ones(nx*ny*nz, 1); +invalid_layer = []; % 将第二层无效网格 +for i = 1:length(invalid_layer) + grid_numbering_range = ((invalid_layer(i)-1)*nx*ny+1:invalid_layer(i)*nx*ny)'; + valid_grids(grid_numbering_range,1) = 0; +end +% SRV区域定义 +% % % base_x=23:78; nx_SRV=length(base_x); +% % % base_y=15:36; ny_SRV=length(base_y); +% % % base_z=1:1;nz_SRV=length(base_z); +% % % SRV=[]; +% % % for k=1:nz_SRV +% % % for j=1:ny_SRV +% % % for i=1:nx_SRV +% % % SRV=[SRV;(base_z(k)-1)*nx*ny+(base_y(j)-1)*nx+base_x(i)]; +% % % end +% % % end +% % % end +% % % % SRV渗透率赋值 +% % % kx(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % ky(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% % % kz(SRV)=0.001*1e-3 * ones(length(SRV), 1); +% 裂缝孔渗 +Kf = 10000*1e-3*ones(1,nf);% 裂缝渗透率 +Wf = 1e-2*ones(1,nf);% 裂缝开度 +Porf = 0.30*ones(1,nf);% 裂缝孔隙度 +prporf = 20;% 裂缝系统参考压力 +cporf = 1.0e-5;% 裂缝系统压缩系数 +% 应力敏感 +stress_factor_fracture = 0.000; % 1/MPa 0.001 +stress_factor_matrix = 0.000; % 1/MPa +stress_factor_ref_pressure = 20; % 一般取为原始地层压力MPa +% +Rpt = 2;cf = 1;ca = 1; +%% 结合基质、裂缝的几何及物性信息开展前处理 +% r = GridProp(modelflag, nx, ny, nz, dx, dy, dz, kx, ky, kz, f, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca,co, NTG); +r = GridProp_new(modelflag, r, kx, ky, kz, f, frac_information, fellip, Kf, Wf, pori, prpor, cpor, Porf, prporf, cporf, cf, ca, valid_grids); +r.rock_density = rock_density; +r.valid_grids = valid_grids; +r.stress_factor_fracture = stress_factor_fracture; +r.stress_factor_matrix = stress_factor_matrix; +r.stress_factor_ref_pressure = stress_factor_ref_pressure; +end \ No newline at end of file diff --git a/算例7-油水两相流-不同裂缝制度不同/main1.m b/算例7-油水两相流-不同裂缝制度不同/main1.m new file mode 100644 index 0000000..e13eafe --- /dev/null +++ b/算例7-油水两相流-不同裂缝制度不同/main1.m @@ -0,0 +1,219 @@ +function [ r, Times, OutputRs, Wellpara, trun ] = main1() +%% ==================================PART 1: 模型选取======================================== +% 1-- classical EDFM +modelflag = 1;% 此处固定为1即可 +%% ==================================PART 2: 基质网格定义===================================== +dx=[10*ones(1,100) ];nx=size(dx,2); +dy=[10*ones(1,50) ];ny=size(dy,2); +dz=[10*ones(1,1)];nz=size(dz,2); +NTG= 1*ones(nx*ny*nz,1); +r = GridProp_pre(dx,dy,dz,nx,ny,nz,NTG); +%% ==================================PART 3: 裂缝分布数据输入===================================== +% 四种输入方式: 1表示工程应用输入;2表示向量输入;3表示工程应用输入,包括基准点、倾角、方位角、抬升角;4表示从.fab文件读取 +input_style = 1; +%% 输入方式1:工程应用输入 +%仅能刻画具有双对称性质的矩形缝或椭圆缝 +% 基准点坐标(1),方位角(2),倾角(3),抬升角(4),缝长(椭圆长轴长)(5),缝高(椭圆短轴长)(6),类型1是矩形缝、2是椭圆缝(7) +if input_style==1 +input_content={ + [255,255,5],90,90,0,200,10,1; + [355,255,5],90,90,0,200,10,1; + [455,255,5],90,90,0,200,10,1; + [555,255,5],90,90,0,200,10,1; + [655,255,5],90,90,0,200,10,1; + [755,255,5],90,90,0,200,10,1; + }; +[f,fellip] = sort_fracture(input_content); +flowBarrierFlags = []; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5; +frac_information = fractureInformation_input_engineering_vector(f,fellip,flowBarrierFlags); +end +%% 输入方式2:向量输入 +%首先对矩形缝进行研究,裂缝参数包括三个向量和两个参数的取值范围,如果是其它类型缝,则是两个参数间的函数关系 +%因此一个5行三列的矩阵可以确定一条裂缝 +%向量分量可为非整数,以此保证参数范围的取值为整数即可, +%故可先随意确定为整数的参数范围,再根据缝长缝高去确定向量分量的取值 +% 矩形缝 +if input_style==2 + f=[ + 0,1200,0;10,-20,0;0,0,10;0,60,0;0,3,0; + 0,1200,0;10,20,0;0,0,10;0,15,0;0,3,0; + 150,1500,0;20,-10,0;0,0,10;0,20,0;0,3,0; + 550,1300,0;10,10,0;0,0,10;0,10,0;0,3,0; + 650,1400,0;10,-20,0;0,0,10;0,55,0;0,3,0; + 605,705,0;10,0,0;0,0,10;-20,20,0;0,3,0; + ]; +% 椭圆缝 +% fellip=[320,210,10;10,2,0;0,0,2;0,0,8;0,0,5; +% 280,300,10;10,2,0;0,0,2;0,0,10;0,0,4;]; +% 300,205,10;10,0,0;0,0,2;0,0,10;0,0,5]; +fellip=[]; +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +frac_information = fractureInformation_input_engineering_vector(f,fellip); +end +%% 输入方式3:二维输入 +% load('fractures_generated.mat'); +% fractureLines = fractures_generated; +if input_style==3 +fractureLines = [ + 105,150;105,350; + 205,150;205,350; + 305,150;305,350; + 405,150;405,350; + 505,150;505,350; + 605,150;605,350; + 705,150;705,350; + 805,150;805,350; + 905,150;905,350; + ]; +fellip=[]; % 椭圆缝 +fractureHeights = [ + 10;10;10;10;10;10;10;10;10]; +% 椭圆缝 +fellip=[]; +flowBarrierFlags = [];% flowBarrierFlags = [1;2;3;4]; +[f,frac_information] = input_fracture_2D(fractureLines,fractureHeights,flowBarrierFlags); +m=size(f,1);n=size(fellip,1);nf=(m+n)/5;%裂缝条数 +end +%% 输入方式4:从.fab文件读取 Frac_PT +if input_style==4 + +end + +%% ==================================PART 4: 基质网格及裂缝物性参数输入===================================== +% 1-- 单重介质 +% 2-- 双重介质(双孔双渗) +grid_model = 1; +if grid_model == 1 +r = grid_discretization_SP_model(modelflag, r, f, frac_information, fellip, nf); +end +if grid_model == 2 +r = grid_discretization_DP_model(modelflag, r, f, frac_information, fellip, nf); +end + +%% 生成向量化变成所需要的算子 +os = OperatorRS(r.N, r.nex, r.nc); + +%% ==================================PART 5: 模型类型选取及初始状态设定========================================= +% 1-- 气水两相流 +% 2-- 油水两相流 +flow_model = 2; +if flow_model == 1 +[f,state0] = gas_water_flow(r); +end +if flow_model == 2 +[f,state0] = oil_water_flow(r); +end +if flow_model == 3 +[f,state0] = multi_component_flow(r); +end + +%% ==================================PART 6: 井制度schedule设定================================================ +%将直井、水平井与多段压裂水平井分开处理 +%% 直井、常规水平井定义 +% Wellcpara: wellname(1) nperf,射孔点数量(2) index(3) rw(4) skin(5) welltype(6) +% welltype=1 直井,welltype=2 水平井沿x方向,welltype=3 水平井沿y方向 welltype=4 多段压裂水平井 +% 直井、水平井,该种井型的处理是将射孔段安排在基质网格 +% 对于直井、斜井、水平井,采取与eclipse一致的方式,给出其在基质网格中位置 +% 每个射孔点由下px,py,pz确定,分别表示该射孔点在x方向,y方向的网格编号,及层数即z反方向上的网格编号(最初是以垂直向上建立的基质网格) +well1={ + % 'w1', 2, [20 10 1;20 10 2;], 0.178/2, 0, 1; + % 'w2', 2, [80 10 1;80 10 2;], 0.178/2, 0, 1; + % 'w3', 1, [20 40 1;], 0.178/2, 0, 1; + % 'w4', 1, [80 40 1;], 0.178/2, 0, 1; +% 'w2', 3, [67 20 1;67 20 2;67 20 3], 0.178/2, 0, 1; + }; +well1 = handle_well1(well1,r); +%% 压裂水平井定义 +% 多段压裂水平井:射孔段设置在裂缝单元上,可以给出该射孔点所在的坐标,然后去寻找该点所在的裂缝单元编号 +num_fracture_wells = 6; +welloc = cell(num_fracture_wells,1); +perfnum = cell(num_fracture_wells,1); +welloc{1,1}=[ + 255,255,5;]; +welloc{2,1}=[ + 355,255,5;]; +welloc{3,1}=[ + 455,255,5;]; +welloc{4,1}=[ + 555,255,5;]; +welloc{5,1}=[ + 655,255,5;]; +welloc{6,1}=[ + 755,255,5;]; +for i = 1:num_fracture_wells +perfnum{i,1} = findWelloc(r, welloc{i,1});%在用以Wellc0之中 +end +% perfnum2 = findWelloc(r, welloc2); +well2={ + 'w1_f1', length(perfnum{1,1}), perfnum{1,1}, 0.178/2, 0,4; + 'w1_f2', length(perfnum{2,1}), perfnum{2,1}, 0.178/2, 0,4; + 'w1_f3', length(perfnum{3,1}), perfnum{3,1}, 0.178/2, 0,4; + 'w1_f4', length(perfnum{4,1}), perfnum{4,1}, 0.178/2, 0,4; + 'w1_f5', length(perfnum{5,1}), perfnum{5,1}, 0.178/2, 0,4; + 'w1_f6', length(perfnum{6,1}), perfnum{6,1}, 0.178/2, 0,4; + }; +Wellc = handle_well1_well2(well1,well2,welloc,r); %加井和射孔位置 +%% 井制度设置(开关井、定压/定产、便于吞吐等) +number_phases = 4; +well_schedules = cell(number_phases,1); +time = zeros(number_phases,1); +% 不同方式对应的收敛难度、需要不一样,需分阶段调控, +% 例如在注入阶段需要小一些,如果需要做早期试井,dtmax、dtmin都需要小一些 +dtmax = zeros(number_phases,1); +dtmin = zeros(number_phases,1); + +% (1)well state: 'open'表示该井是开的;'close'表明该井一直是关的,如果只是阶段性关井,就用'open'定流量0生产 +% (2)well type: 'pro'表示是生产井;'inj'表示是注入井; +% (3)protype:'const_q'是定流量;'const_pwf'则是定压 +% (4)value:定的流量值或者井底压力值 +% (5)value:此代码该值与(3)值相同 +time(1) = 10; dtmax(1) = 0.5; dtmin(1) = 0.001; +well_schedules{1,1} = { + 'w1_f1','open','inj','const_pwf',40,40; + 'w1_f2','open','inj','const_pwf',40,40; + 'w1_f3','open','inj','const_pwf',40,40; + 'w1_f4','open','inj','const_pwf',40,40; + 'w1_f5','open','inj','const_pwf',40,40; + 'w1_f6','open','inj','const_pwf',40,40; + }; +time(2) = 10; dtmax(2) = 0.5; dtmin(2) = 0.001; +well_schedules{2,1} = { + 'w1_f1','open','pro','const_q',0,0; + 'w1_f2','open','inj','const_pwf',40,40; + 'w1_f3','open','pro','const_q',0,0; + 'w1_f4','open','inj','const_pwf',40,40; + 'w1_f5','open','pro','const_q',0,0; + 'w1_f6','open','inj','const_pwf',40,40; + }; +time(3) = 10; dtmax(3) = 0.5; dtmin(3) = 0.001; +well_schedules{3,1} = { + 'w1_f1','open','pro','const_pwf',10,10; + 'w1_f2','open','pro','const_q',0,0; + 'w1_f3','open','pro','const_pwf',10,10; + 'w1_f4','open','pro','const_q',0,0; + 'w1_f5','open','pro','const_pwf',10,10; + 'w1_f6','open','pro','const_q',0,0; + }; +time(4) = 200; dtmax(4) = 1; dtmin(4) = 0.001; +well_schedules{4,1} = { + 'w1_f1','open','pro','const_pwf',10,10; + 'w1_f2','open','pro','const_pwf',10,10; + 'w1_f3','open','pro','const_pwf',10,10; + 'w1_f4','open','pro','const_pwf',10,10; + 'w1_f5','open','pro','const_pwf',10,10; + 'w1_f6','open','pro','const_pwf',10,10; + }; + +%% ======================================PART 7: Solver设置=========================================== +yitap = 5; % 50-500psi +yitas = 0.04; % 0.05-0.5 +omega = 0.5; % 0-1 +Nmax = 50; +epsave = 1e-6; +epsmax = 1e-6; +%% ======================================PART 8: 正式计算=========================================== +[Times, OutputRs, Wellpara, trun] = solver_NR(r, flow_model, f, os, state0, yitap,yitas,omega,Nmax,epsave,epsmax,dtmin,dtmax,Wellc,time,well_schedules); +run_time=toc; +trun.run_time=run_time; +end \ No newline at end of file diff --git a/算例7-油水两相流-不同裂缝制度不同/oil_water_flow.m b/算例7-油水两相流-不同裂缝制度不同/oil_water_flow.m new file mode 100644 index 0000000..2b37ab7 --- /dev/null +++ b/算例7-油水两相流-不同裂缝制度不同/oil_water_flow.m @@ -0,0 +1,126 @@ +function [f,state0] = oil_water_flow(r) +% =======================油相体积密度、体积系数、粘度等=============================== +density_o_sc = 800; % kg/m3 +% 第一种模式,直接输入参考压力、体积系数、压缩系数、粘度 +oil_model =1; +if oil_model == 1 +pro = 30; % reference pressure, MPa +Boi = 1.1; % gas phase volume factor +co = 1e-3 ;% gas phase compressibility, 1/MPa +voi = 10; % gas viscosity, cp +cvo = 0; % 气相粘度随压力变化的线性系数,cp/MPa +[Ppr,BO,MUO] = cal_oil_prop(pro,Boi,co,voi,cvo); +end +if oil_model == 2 +Ppr = [ 0.1013 + 2.0946 + 4.0878 + 6.0811 + 8.0743 + 10.0676 + 12.0608 + 14.0540 + 16.0473 + 18.0405 + 20.0338 + 22.0270 + 24.0203 + 26.0135 + 28.0068 + 30.0000 + ]; +% BO = 0.01*ones(size(Ppr,1),1); +BO = [ 1.18297 + 0.0557041 + 0.0278168 + 0.0182594 + 0.0134665 + 0.0106154 + 0.00874829 + 0.00744907 + 0.00650639 + 0.0058006 + 0.0052587 + 0.0048336 + 0.00449378 + 0.00421751 + 0.0039895 + 0.00379871 + ]; +% MUG = 0.01*ones(size(Ppr,1),1); +MUO = [0.0127683 + 0.0130191 + 0.0133973 + 0.013872 + 0.014437 + 0.015088 + 0.0158182 + 0.0166173 + 0.0174719 + 0.0183671 + 0.0192882 + 0.0202219 + 0.0211575 + 0.0220865 + 0.0230024 + 0.0239008 + ]; +end +% ========================水相体积系数、粘度=============================== +density_w_sc = 1000; % kg/m3 +prw = 30; % reference pressure, MPa +Bwi = 1.000; % water phase volume factor, 无因次 +cw = 4.0e-4 ;% water phase compressibility, 1/MPa +vwi = 1; % water viscosity, cp +cvw = 0; % 水相粘度随压力变化的线性系数,cp/MPa +% =============================基质相渗=============================== +ifpcow = 0; % 是否考虑毛管力 +PRM=[ + 0.0000 0.0000 1.0000 3.8916 +0.2000 0.0000 1.0000 3.8916 +0.3160 0.0002 0.6784 0.5796 +0.4350 0.0004 0.6215 0.3724 +0.5620 0.0010 0.5456 0.2425 +0.6140 0.0020 0.3939 0.0608 +0.7020 0.0280 0.1399 0.0372 +0.8120 0.1721 0.0515 0.0137 +0.8750 0.3395 0.0297 0.0104 +0.9060 0.4395 0.0 0.0090 +1.0 0.4395 0.0 0.0090 +]; +SW=PRM(:,1);KRW=PRM(:,2);KRO=PRM(:,3);PCOW=PRM(:,4); + +% =============================裂缝相渗=============================== +PRF=[ +0.0000 0.0000 1.0000 3.8916 +0.2000 0.0000 1.0000 3.8916 +0.3160 0.0002 0.6784 0.5796 +0.4350 0.0004 0.6215 0.3724 +0.5620 0.0010 0.5456 0.2425 +0.6140 0.0020 0.3939 0.0608 +0.7020 0.0280 0.1399 0.0372 +0.8120 0.1721 0.0515 0.0137 +0.8750 0.3395 0.0297 0.0104 +0.9060 0.4395 0.0 0.0090 +1.0 0.4395 0.0 0.0090 +]; +SWF = PRF(:,1);KRWF = PRF(:,2);KROF = PRF(:,3);PCOWF=PRF(:,4); +%% +% ===================== 高速非达西流 Forchheimer 方程 ==================== +beta_non_Darcy_flow = 0; % 1e-8 +% ===================== 启动压力梯度 ==================== +p_grad_threshold = 0.00; % MPa/m +%% 结合流体性质参数生成相应的数据体 +f = fluidPVT_oil_water_flow(Ppr, BO, MUO, Bwi, prw, cw, vwi, cvw, SW, KRO, KRW, PCOW, SWF, KROF, KRWF, PCOWF, density_o_sc, ifpcow, r.rpt); +f.beta_non_Darcy_flow = beta_non_Darcy_flow; +f.Dwsi = density_w_sc; +f.Dosi = density_o_sc; +f.p_grad_threshold = p_grad_threshold; +%% 初值条件 Initial Condition Section +% =================压力、饱和度初值======================================= % +%压力初值要考虑重力,给出油藏下表面压力值 +P = [20 * ones(r.nmc, 1); 20 * ones(r.nfc, 1)]; +% plow=25; % P =plow-1e-6*800*9.8*r.z; +Sw = [0.2 * ones(r.nmc, 1); 0.2 * ones(r.nfc, 1)]; +state0 = initialRS_oil_water_flow(P, Sw); +end \ No newline at end of file diff --git a/算例7-油水两相流-不同裂缝制度不同/plotWellResponse.m b/算例7-油水两相流-不同裂缝制度不同/plotWellResponse.m new file mode 100644 index 0000000..fcd76ee --- /dev/null +++ b/算例7-油水两相流-不同裂缝制度不同/plotWellResponse.m @@ -0,0 +1,55 @@ +function [] = plotWellResponse(Times,Wellpara) +% +wellNumber = 1; % +dataType = 'OPR'; % ͣٶ GPRٶ OPR, ˮٶ WPRѹ BHPѹ dPWF +% +t = Times; +n= size(Times,1); +% para = cell2mat(Wellpara); +nw = wellNumber;%ѡ +% n = length(para); +data = zeros(n,1); +if strcmp(dataType, 'GPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qg; + figureYlegend = 'Gas production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'OPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qo; + figureYlegend = 'Oil production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'WPR') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.qw; + figureYlegend = 'Water production rate, m^3/d'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'BHP') + for i = 1 : n + data(i) = Wellpara{i}{1,nw}.pwf; + figureYlegend = 'BHP, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); +end +if strcmp(dataType, 'dPWF') % dpwf/dlnt = t*dpwf/dt + for i = 1 : n + if i == 1 + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i}{1,nw}.pwf)/(log(t(i+1))-log(t(i))); + elseif i == n + data(i) = (Wellpara{i}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i))-log(t(i-1))); + else + data(i) = (Wellpara{i+1}{1,nw}.pwf-Wellpara{i-1}{1,nw}.pwf)/(log(t(i+1))-log(t(i-1))); + end + figureYlegend = 'Pressure derivative, MPa'; + end + plot(t,data,'k^-');hold off; xlabel('Time, day');ylabel(figureYlegend); + set(gca, 'XScale', 'log'); + set(gca, 'YScale', 'log'); +end +end \ No newline at end of file