k=0.22, T0=2.3) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 86 # the time at which the simulation stops simulProp.set_outputFolder( "./Data/HB") # the disk address where the files are saved simulProp.set_simulation_name( 'HB_injection_line_sink') # setting simulation name simulProp.saveG = True # enable saving the coefficient G simulProp.plotVar = ['ir', 'w'] # plot width of fracture simulProp.saveEffVisc = True # enable saving of the effective viscosity simulProp.relaxation_factor = 0.3 # relax Anderson iteration simulProp.maxSolverItrs = 200 # set maximum number of Anderson iterations to 200 simulProp.Anderson_parameter = 10 # save last 10 iterations in Anderson iteration simulProp.collectPerfData = True # enable collect performance data simulProp.fixedTmStp = np.asarray( [[0, 0.5], [0.01, None]]) # set auto time step size after propagation start simulProp.tolFractFront = 0.003 # relaxing tolerance for front iteration simulProp.set_tipAsymptote( 'HBF') # setting tip asymptote to Herschel-Bulkley fluid # starting simulation with a static radial fracture with radius 20cm and net pressure of 1MPa Fr_geometry = Geometry('radial', radius=0.2) from elasticity import load_isotropic_elasticity_matrix C = load_isotropic_elasticity_matrix(Mesh, Eprime) init_param = InitializationParameters(Fr_geometry, regime='static', net_pressure=1e6,
# simulation properties simulProp = SimulationProperties() simulProp.finalTime = 38000 # the time at which the simulation stops simulProp.set_outputFolder("./Data/HB") # the disk address where the files are saved simulProp.set_simulation_name('HB_Gauss_Chebyshev_comparison') # setting simulation name simulProp.saveG = True # enable saving the coefficient G simulProp.plotVar = ['w', 'G'] # plot width of fracture simulProp.saveEffVisc = True # enable saving of the effective viscosity simulProp.relaxation_factor = 0.3 # relax Anderson iteration simulProp.maxSolverItrs = 200 # set maximum number of Anderson iterations to 200 simulProp.collectPerfData = True # enable collect performance data simulProp.tolFractFront = 3e-3 # increasing fracture front iteration tolerance simulProp.plotTSJump = 5 # plotting after every five time steps simulProp.tmStpPrefactor = 0.6 # reducing time steps for better convergence simulProp.Anderson_parameter = 10 # saving last 10 solutions for better performance # initializing the fracture width with the solution provided by Madyarova & Detournay 2004 for power-law fluids. w = np.zeros(Mesh.NumberOfElts) xw = np.genfromtxt('width_n_05.csv', delimiter=',') # loading dimensionless width profile for n = 0.5 t = 2e-2 n = Fluid.n gamma = 0.699 Mprime = 2**(n + 1) * (2 * n + 1)**n / n**n * Fluid.k Vel = 2 * (n + 1) / (n + 2) / 3 * gamma * (Eprime * Q0 ** (n + 2) / Mprime ) ** (1 / (3 * n + 6)) / t ** ((n + 4) / (3 * n + 6)) eps = (Mprime / Eprime / t**n) ** (1 / (n + 2)) L = (Eprime * Q0**(n + 2) * t**(2 * n + 2) / Mprime) ** (1 / (3 * n + 6)) # interpolating width on cell centers f = interpolate.interp1d(gamma * L * xw[:, 0],