diff --git a/MaterialLib/FractureModels/CohesiveZoneModeI.cpp b/MaterialLib/FractureModels/CohesiveZoneModeI.cpp index c61cd207939160bc843b5380c272a1e8a7b0d22e..57eb517d9d2e86c6b3ad817d91d14ae8e023ddef 100644 --- a/MaterialLib/FractureModels/CohesiveZoneModeI.cpp +++ b/MaterialLib/FractureModels/CohesiveZoneModeI.cpp @@ -41,7 +41,7 @@ void CohesiveZoneModeI<DisplacementDim>::computeConstitutiveRelation( ParameterLib::SpatialPosition const& x, double const aperture0, Eigen::Ref<Eigen::VectorXd const> - /*sigma0*/, + sigma0, Eigen::Ref<Eigen::VectorXd const> /*w_prev*/, Eigen::Ref<Eigen::VectorXd const> @@ -87,10 +87,10 @@ void CohesiveZoneModeI<DisplacementDim>::computeConstitutiveRelation( mp.Kn * logPenaltyDerivative(aperture0, aperture, _penalty_aperture_cutoff); + sigma.noalias() += sigma0; + // Exit if fracture is closing - // TODO (nagel) to be based on the stress state when initial stress effects - // are included. - if (w_n < 0) + if (sigma[index_ns] < 0) { return; /// Undamaged stiffness used in compression. } @@ -98,22 +98,29 @@ void CohesiveZoneModeI<DisplacementDim>::computeConstitutiveRelation( // // Continue with fracture opening. // + // effective opening calculated by shift to state corresponding to sigma0=0 + const double w_n_effective = w_n + sigma0[index_ns] / mp.Kn; double degradation = 0.0; - if (mp.w_nf == 0.0) + if (mp.w_nf == 0.0) // can be used to model tension-cutoff { state.damage_prev = 1.0; state.damage = 1.0; } else { - state.damage = computeDamage(state.damage_prev, w_n, mp.w_np, mp.w_nf); + state.damage = + computeDamage(state.damage_prev, w_n_effective, mp.w_np, mp.w_nf); degradation = ((1 - state.damage) * mp.w_np) / (mp.w_np + state.damage * (mp.w_nf - mp.w_np)); } // Degrade stiffness tensor in tension. C = C * degradation; - sigma = C * w; + // Create effective relative displacement vector + Eigen::VectorXd w_eff = w; + // Only origin of normal entry is shifted, shear unaffected + w_eff[index_ns] = w_n_effective; + sigma = C * w_eff; if (state.damage > state.damage_prev) { @@ -126,7 +133,7 @@ void CohesiveZoneModeI<DisplacementDim>::computeConstitutiveRelation( dd_dw[index_ns] = (mp.w_np * mp.w_nf) / ((mp.w_nf - mp.w_np) * (tmp * tmp)); - C -= C * w * (dd_dw).transpose(); + C -= C * w_eff * (dd_dw).transpose(); } // TODO (nagel) Initial stress not considered, yet. diff --git a/ProcessLib/LIE/HydroMechanics/Tests.cmake b/ProcessLib/LIE/HydroMechanics/Tests.cmake index be148f0e964f331403c59fe60c920d56fab8c3d3..7f6a01a720d12afe9e600c78b83ee8fc92d27ff2 100644 --- a/ProcessLib/LIE/HydroMechanics/Tests.cmake +++ b/ProcessLib/LIE/HydroMechanics/Tests.cmake @@ -174,3 +174,49 @@ AddTest( expected_single_fracture_3compartments_flow_linear_aperture0_e_pcs_0_ts_1108_t_10000.000000.vtu single_fracture_3compartments_flow_linear_aperture0_e_pcs_0_ts_1108_t_10000.000000.vtu stress_yy stress_yy 1e-12 1e-15 expected_single_fracture_3compartments_flow_linear_aperture0_e_pcs_0_ts_1108_t_10000.000000.vtu single_fracture_3compartments_flow_linear_aperture0_e_pcs_0_ts_1108_t_10000.000000.vtu velocity velocity 1e-15 1e-15 ) + +AddTest( + NAME LIE_HM_single_fracture_3compartments_flow_CHZ + PATH LIE/HydroMechanics + EXECUTABLE ogs + EXECUTABLE_ARGS single_fracture_3compartments_flow_CHZ.prj + WRAPPER time + TESTER vtkdiff + REQUIREMENTS NOT (OGS_USE_LIS OR OGS_USE_MPI) + DIFF_DATA + expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu pressure pressure 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu pressure_interpolated pressure_interpolated 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu displacement displacement 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu displacement_jump1 displacement_jump1 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu nodal_w nodal_w 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu nodal_aperture nodal_aperture 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu strain_xx strain_xx 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu strain_yy strain_yy 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu strain_xy strain_xy 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu stress_xx stress_xx 1e-10 1e-15 + expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu stress_yy stress_yy 2e-10 1e-15 + expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu velocity velocity 1e-15 1e-15 +) + +AddTest( + NAME LIE_HM_single_fracture_3compartments_flow_CHZ_sigma0 + PATH LIE/HydroMechanics + EXECUTABLE ogs + EXECUTABLE_ARGS single_fracture_3compartments_flow_CHZ_sigma0.prj + WRAPPER time + TESTER vtkdiff + REQUIREMENTS NOT (OGS_USE_LIS OR OGS_USE_MPI) + DIFF_DATA + expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu pressure pressure 1e-10 1e-15 + expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu pressure_interpolated pressure_interpolated 1e-10 1e-15 + expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu displacement displacement 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu displacement_jump1 displacement_jump1 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu nodal_w nodal_w 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu nodal_aperture nodal_aperture 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu strain_xx strain_xx 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu strain_yy strain_yy 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu strain_xy strain_xy 1e-15 1e-15 + expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu stress_xx stress_xx 3e-10 1e-15 + expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu stress_yy stress_yy 1e-12 1e-15 + expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu velocity velocity 1e-15 1e-15 +) diff --git a/Tests/Data/LIE/HydroMechanics/expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu b/Tests/Data/LIE/HydroMechanics/expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu new file mode 100644 index 0000000000000000000000000000000000000000..e505feb3200edec1e12bf1df93d91a0475968356 --- /dev/null +++ b/Tests/Data/LIE/HydroMechanics/expected_single_fracture_3compartments_flow_CHZ_pcs_0_ts_356_t_500.000000.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1a9fde7817d0014ccc63f17891d73de482267f1d40d65c0fd770635b194c5328 +size 19706 diff --git a/Tests/Data/LIE/HydroMechanics/expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu b/Tests/Data/LIE/HydroMechanics/expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu new file mode 100644 index 0000000000000000000000000000000000000000..3e77d0cc3a5b2d717fa35303583a3787989f9b19 --- /dev/null +++ b/Tests/Data/LIE/HydroMechanics/expected_single_fracture_3compartments_flow_CHZ_sigma0_pcs_0_ts_356_t_500.000000.vtu @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:88d67797d2e7619998c2b19fc11bf078326380671f5320005ebb2c62b2c10b7d +size 19586 diff --git a/Tests/Data/LIE/HydroMechanics/single_fracture_3compartments_flow_CHZ.prj b/Tests/Data/LIE/HydroMechanics/single_fracture_3compartments_flow_CHZ.prj new file mode 100644 index 0000000000000000000000000000000000000000..563a05168ea9a8754bb247d19230709cb231a99f --- /dev/null +++ b/Tests/Data/LIE/HydroMechanics/single_fracture_3compartments_flow_CHZ.prj @@ -0,0 +1,347 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <mesh>single_fracture_2x2.vtu</mesh> + <geometry>single_fracture_2x2.gml</geometry> + <processes> + <process> + <name>HM</name> + <type>HYDRO_MECHANICS_WITH_LIE</type> + <integration_order>3</integration_order> + <dimension>2</dimension> + <process_variables> + <process_variable>pressure</process_variable> + <process_variable>displacement</process_variable> + <process_variable>displacement_jump1</process_variable> + </process_variables> + <constitutive_relation> + <type>LinearElasticIsotropic</type> + <youngs_modulus>E</youngs_modulus> + <poissons_ratio>nu</poissons_ratio> + </constitutive_relation> + <intrinsic_permeability>k</intrinsic_permeability> + <specific_storage>S</specific_storage> + <fluid_viscosity>mu</fluid_viscosity> + <biot_coefficient>biot_m</biot_coefficient> + <porosity>phi</porosity> + <solid_density>rho_sr</solid_density> + <fluid_density>rho_fr</fluid_density> + <specific_body_force>0 0</specific_body_force> + <initial_effective_stress>effective_stress0</initial_effective_stress> + <!--fracture_model> + <type>LinearElasticIsotropic</type> + <normal_stiffness>Kn</normal_stiffness> + <shear_stiffness>Ks</shear_stiffness> + <penalty_aperture_cutoff>0</penalty_aperture_cutoff> + <tension_cutoff>1</tension_cutoff> + </fracture_model--> + <fracture_model> + <type>CohesiveZoneModeI</type> + <normal_stiffness>Kn</normal_stiffness> + <shear_stiffness>Ks</shear_stiffness> + <fracture_toughness>Gc</fracture_toughness> + <peak_normal_traction>t_np</peak_normal_traction> + <penalty_aperture_cutoff>1e-8</penalty_aperture_cutoff> + <tension_cutoff>1</tension_cutoff> + </fracture_model> + <fracture_properties> + <material_id>0</material_id> + <initial_aperture>aperture0</initial_aperture> + <specific_storage>S_f</specific_storage> + <biot_coefficient>biot_f</biot_coefficient> + <permeability_model> + <type>CubicLaw</type> + </permeability_model> + </fracture_properties> + <initial_fracture_effective_stress>fracture_effective_stress0</initial_fracture_effective_stress> + <deactivate_matrix_in_flow>true</deactivate_matrix_in_flow> + <secondary_variables> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="HM"> + <nonlinear_solver>basic_newton</nonlinear_solver> + <convergence_criterion> + <type>PerComponentResidual</type> + <norm_type>NORM2</norm_type> + <abstols>1e-10 1e-7 1e-5 1e-6 1e-6</abstols> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0</t_initial> + <t_end>500</t_end> + <timesteps> + <pair> + <repeat>300</repeat> + <delta_t>0.1</delta_t> + </pair> + <pair> + <repeat>10</repeat> + <delta_t>1</delta_t> + </pair> + <pair> + <repeat>1</repeat> + <delta_t>10</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>single_fracture_3compartments_flow_CHZ</prefix> + <timesteps> + <pair> + <repeat>1</repeat> + <each_steps>1000</each_steps> + </pair> + </timesteps> + <variables> + <variable>pressure</variable> + <variable>displacement</variable> + <variable>displacement_jump1</variable> + </variables> + </output> + </time_loop> + <parameters> + <!-- Fluid phase properties --> + <parameter> + <name>rho_fr</name> + <type>Constant</type> + <value>1e3</value> + </parameter> + <parameter> + <name>mu</name> + <type>Constant</type> + <value>1e-3</value> + </parameter> + <!-- Solid phase properties --> + <parameter> + <name>rho_sr</name> + <type>Constant</type> + <value>0.0</value> + </parameter> + <!-- Porous medium properties --> + <parameter> + <name>phi</name> + <type>Constant</type> + <value>1e-3</value> + </parameter> + <parameter> + <name>k</name> + <type>Constant</type> + <value>1e-17</value> + </parameter> + <parameter> + <name>S</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>biot_m</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>E</name> + <type>Constant</type> + <value>1e9</value> + </parameter> + <parameter> + <name>nu</name> + <type>Constant</type> + <value>0.3</value> + </parameter> + <!-- Fracture properties --> + <parameter> + <name>aperture0</name> + <type>Constant</type> + <value>1e-5</value> + </parameter> + <parameter> + <name>S_f</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>biot_f</name> + <type>Constant</type> + <value>1</value> + </parameter> + <!--fracture model--> + <parameter> + <name>Kn</name> + <type>Constant</type> + <value>1e9</value> + </parameter> + <parameter> + <name>Ks</name> + <type>Constant</type> + <value>1e8</value> + </parameter> + <parameter> + <name>Gc</name> + <type>Constant</type> + <value>4</value> + </parameter> + <parameter> + <name>t_np</name> + <type>Constant</type> + <value>0.5e5</value> + </parameter> + <!-- Flow properties --> + <parameter> + <name>p0</name> + <type>Constant</type> + <values>0</values> + </parameter> + <parameter> + <name>p_in</name> + <type>Constant</type> + <values>1E5</values> + </parameter> + <parameter> + <name>p_out</name> + <type>Constant</type> + <values>0</values> + </parameter> + <!-- Mechanics properties --> + <parameter> + <name>displacement0</name> + <type>Constant</type> + <values>0 0</values> + </parameter> + <parameter> + <name>effective_stress0</name> + <type>Constant</type> + <values>-0e5 -0e5 -0e5 0</values> + </parameter> + <parameter> + <name>fracture_effective_stress0</name> + <type>Constant</type> + <values>0 -0e5</values> + </parameter> + <parameter> + <name>zero_u</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>load_top</name> + <type>Constant</type> + <value>0.0</value> + </parameter> + <parameter> + <name>load_bottom</name> + <type>Constant</type> + <value>1e5</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>pressure</name> + <components>1</components> + <order>1</order> + <initial_condition>p0</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>InjectionPoint</geometry> + <type>Dirichlet</type> + <parameter>p_in</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>OutletPoint</geometry> + <type>Dirichlet</type> + <parameter>p_out</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>displacement</name> + <components>2</components> + <order>2</order> + <initial_condition>displacement0</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>PLY_SOUTH</geometry> + <type>Dirichlet</type> + <component>1</component> + <parameter>zero_u</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>PLY_WEST</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>zero_u</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>PLY_EAST</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>zero_u</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>PLY_NORTH</geometry> + <type>Dirichlet</type> + <component>1</component> + <parameter>zero_u</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>displacement_jump1</name> + <components>2</components> + <order>2</order> + <initial_condition>displacement0</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>InjectionPoint</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>zero_u</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>OutletPoint</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>zero_u</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_newton</name> + <type>Newton</type> + <max_iter>100</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <!--This is working but extremely slow + <lis>-i bicgstab -p ssor -ssor_w 1.5 -tol 1e-12 -maxiter 100000</lis> + --> + <eigen> + <!-- + <solver_type>PardisoLU</solver_type> + --> + <solver_type>SparseLU</solver_type> + <scaling>1</scaling> + </eigen> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject> diff --git a/Tests/Data/LIE/HydroMechanics/single_fracture_3compartments_flow_CHZ_sigma0.prj b/Tests/Data/LIE/HydroMechanics/single_fracture_3compartments_flow_CHZ_sigma0.prj new file mode 100644 index 0000000000000000000000000000000000000000..66bd2d9f97244d5eecb2071175131efd0e78376a --- /dev/null +++ b/Tests/Data/LIE/HydroMechanics/single_fracture_3compartments_flow_CHZ_sigma0.prj @@ -0,0 +1,347 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<OpenGeoSysProject> + <mesh>single_fracture_2x2.vtu</mesh> + <geometry>single_fracture_2x2.gml</geometry> + <processes> + <process> + <name>HM</name> + <type>HYDRO_MECHANICS_WITH_LIE</type> + <integration_order>3</integration_order> + <dimension>2</dimension> + <process_variables> + <process_variable>pressure</process_variable> + <process_variable>displacement</process_variable> + <process_variable>displacement_jump1</process_variable> + </process_variables> + <constitutive_relation> + <type>LinearElasticIsotropic</type> + <youngs_modulus>E</youngs_modulus> + <poissons_ratio>nu</poissons_ratio> + </constitutive_relation> + <intrinsic_permeability>k</intrinsic_permeability> + <specific_storage>S</specific_storage> + <fluid_viscosity>mu</fluid_viscosity> + <biot_coefficient>biot_m</biot_coefficient> + <porosity>phi</porosity> + <solid_density>rho_sr</solid_density> + <fluid_density>rho_fr</fluid_density> + <specific_body_force>0 0</specific_body_force> + <initial_effective_stress>effective_stress0</initial_effective_stress> + <!--fracture_model> + <type>LinearElasticIsotropic</type> + <normal_stiffness>Kn</normal_stiffness> + <shear_stiffness>Ks</shear_stiffness> + <penalty_aperture_cutoff>0</penalty_aperture_cutoff> + <tension_cutoff>1</tension_cutoff> + </fracture_model--> + <fracture_model> + <type>CohesiveZoneModeI</type> + <normal_stiffness>Kn</normal_stiffness> + <shear_stiffness>Ks</shear_stiffness> + <fracture_toughness>Gc</fracture_toughness> + <peak_normal_traction>t_np</peak_normal_traction> + <penalty_aperture_cutoff>1e-8</penalty_aperture_cutoff> + <tension_cutoff>1</tension_cutoff> + </fracture_model> + <fracture_properties> + <material_id>0</material_id> + <initial_aperture>aperture0</initial_aperture> + <specific_storage>S_f</specific_storage> + <biot_coefficient>biot_f</biot_coefficient> + <permeability_model> + <type>CubicLaw</type> + </permeability_model> + </fracture_properties> + <initial_fracture_effective_stress>fracture_effective_stress0</initial_fracture_effective_stress> + <deactivate_matrix_in_flow>true</deactivate_matrix_in_flow> + <secondary_variables> + </secondary_variables> + </process> + </processes> + <time_loop> + <processes> + <process ref="HM"> + <nonlinear_solver>basic_newton</nonlinear_solver> + <convergence_criterion> + <type>PerComponentResidual</type> + <norm_type>NORM2</norm_type> + <abstols>1e-10 1e-7 1e-5 1e-6 1e-6</abstols> + </convergence_criterion> + <time_discretization> + <type>BackwardEuler</type> + </time_discretization> + <time_stepping> + <type>FixedTimeStepping</type> + <t_initial>0</t_initial> + <t_end>500</t_end> + <timesteps> + <pair> + <repeat>300</repeat> + <delta_t>0.1</delta_t> + </pair> + <pair> + <repeat>10</repeat> + <delta_t>1</delta_t> + </pair> + <pair> + <repeat>1</repeat> + <delta_t>10</delta_t> + </pair> + </timesteps> + </time_stepping> + </process> + </processes> + <output> + <type>VTK</type> + <prefix>single_fracture_3compartments_flow_CHZ_sigma0</prefix> + <timesteps> + <pair> + <repeat>1</repeat> + <each_steps>1000</each_steps> + </pair> + </timesteps> + <variables> + <variable>pressure</variable> + <variable>displacement</variable> + <variable>displacement_jump1</variable> + </variables> + </output> + </time_loop> + <parameters> + <!-- Fluid phase properties --> + <parameter> + <name>rho_fr</name> + <type>Constant</type> + <value>1e3</value> + </parameter> + <parameter> + <name>mu</name> + <type>Constant</type> + <value>1e-3</value> + </parameter> + <!-- Solid phase properties --> + <parameter> + <name>rho_sr</name> + <type>Constant</type> + <value>0.0</value> + </parameter> + <!-- Porous medium properties --> + <parameter> + <name>phi</name> + <type>Constant</type> + <value>1e-3</value> + </parameter> + <parameter> + <name>k</name> + <type>Constant</type> + <value>1e-17</value> + </parameter> + <parameter> + <name>S</name> + <type>Constant</type> + <value>1</value> + </parameter> + <parameter> + <name>biot_m</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>E</name> + <type>Constant</type> + <value>1e9</value> + </parameter> + <parameter> + <name>nu</name> + <type>Constant</type> + <value>0.3</value> + </parameter> + <!-- Fracture properties --> + <parameter> + <name>aperture0</name> + <type>Constant</type> + <value>1e-5</value> + </parameter> + <parameter> + <name>S_f</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>biot_f</name> + <type>Constant</type> + <value>1</value> + </parameter> + <!--fracture model--> + <parameter> + <name>Kn</name> + <type>Constant</type> + <value>1e9</value> + </parameter> + <parameter> + <name>Ks</name> + <type>Constant</type> + <value>1e8</value> + </parameter> + <parameter> + <name>Gc</name> + <type>Constant</type> + <value>4</value> + </parameter> + <parameter> + <name>t_np</name> + <type>Constant</type> + <value>0.5e5</value> + </parameter> + <!-- Flow properties --> + <parameter> + <name>p0</name> + <type>Constant</type> + <values>0</values> + </parameter> + <parameter> + <name>p_in</name> + <type>Constant</type> + <values>1E5</values> + </parameter> + <parameter> + <name>p_out</name> + <type>Constant</type> + <values>0</values> + </parameter> + <!-- Mechanics properties --> + <parameter> + <name>displacement0</name> + <type>Constant</type> + <values>0 0</values> + </parameter> + <parameter> + <name>effective_stress0</name> + <type>Constant</type> + <values>-2e5 -2e5 -2e5 0</values> + </parameter> + <parameter> + <name>fracture_effective_stress0</name> + <type>Constant</type> + <values>0 -2e5</values> + </parameter> + <parameter> + <name>zero_u</name> + <type>Constant</type> + <value>0</value> + </parameter> + <parameter> + <name>load_top</name> + <type>Constant</type> + <value>0.0</value> + </parameter> + <parameter> + <name>load_bottom</name> + <type>Constant</type> + <value>1e5</value> + </parameter> + </parameters> + <process_variables> + <process_variable> + <name>pressure</name> + <components>1</components> + <order>1</order> + <initial_condition>p0</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>InjectionPoint</geometry> + <type>Dirichlet</type> + <parameter>p_in</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>OutletPoint</geometry> + <type>Dirichlet</type> + <parameter>p_out</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>displacement</name> + <components>2</components> + <order>2</order> + <initial_condition>displacement0</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>PLY_SOUTH</geometry> + <type>Dirichlet</type> + <component>1</component> + <parameter>zero_u</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>PLY_WEST</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>zero_u</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>PLY_EAST</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>zero_u</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>PLY_NORTH</geometry> + <type>Dirichlet</type> + <component>1</component> + <parameter>zero_u</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + <process_variable> + <name>displacement_jump1</name> + <components>2</components> + <order>2</order> + <initial_condition>displacement0</initial_condition> + <boundary_conditions> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>InjectionPoint</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>zero_u</parameter> + </boundary_condition> + <boundary_condition> + <geometrical_set>single_fracture</geometrical_set> + <geometry>OutletPoint</geometry> + <type>Dirichlet</type> + <component>0</component> + <parameter>zero_u</parameter> + </boundary_condition> + </boundary_conditions> + </process_variable> + </process_variables> + <nonlinear_solvers> + <nonlinear_solver> + <name>basic_newton</name> + <type>Newton</type> + <max_iter>100</max_iter> + <linear_solver>general_linear_solver</linear_solver> + </nonlinear_solver> + </nonlinear_solvers> + <linear_solvers> + <linear_solver> + <name>general_linear_solver</name> + <!--This is working but extremely slow + <lis>-i bicgstab -p ssor -ssor_w 1.5 -tol 1e-12 -maxiter 100000</lis> + --> + <eigen> + <!-- + <solver_type>PardisoLU</solver_type> + --> + <solver_type>SparseLU</solver_type> + <scaling>1</scaling> + </eigen> + </linear_solver> + </linear_solvers> +</OpenGeoSysProject>