Eprime, K1c, Carters_coef=Cl) # injection parameters Q0 = 0.01 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(rheology='PLF', n=0.6, k=0.001 / 12) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 1e7 # the time at which the simulation stops simulProp.set_outputFolder("./Data/MtoK_leakoff") # the disk address where the files are saved simulProp.set_simulation_name('PLF_MtoKtilde_n0.6') simulProp.tolFractFront = 0.003 # increase the tolerance for faster run simulProp.projMethod = 'LS_continousfront' # using the continuous front algorithm simulProp.set_tipAsymptote('PLF') # setting the tip asymptote to power-law fluid # 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=',') t = 0.00005 n = Fluid.n gamma = 0.7155 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))
Q0 = 0.001 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(viscosity=1.1e-5) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 500 # the time at which the simulation stops simulProp.set_volumeControl( True) # to set up the solver in volume control mode (inviscid fluid) simulProp.tolFractFront = 4e-3 # increase tolerance for the anisotropic case simulProp.remeshFactor = 1.5 # the factor by which the mesh will be compressed. simulProp.set_outputFolder( "./Data/ellipse") # the disk address where the files are saved simulProp.set_simulation_name('anisotropic_toughness_benchmark') simulProp.symmetric = True # solving with faster solver that assumes fracture is symmetric # initializing fracture gamma = (K1c_func(np.pi / 2) / K1c_func(0))**2 # gamma = (Kc1/Kc3)**2 Fr_geometry = Geometry('elliptical', minor_axis=2., gamma=gamma) init_param = InitializationParameters(Fr_geometry, regime='E_K') # creating fracture object Fr = Fracture(Mesh, init_param, Solid, Fluid, Injection, simulProp) # create a Controller controller = Controller(Fr, Solid, Fluid, Injection, simulProp) # run the simulation controller.run()
# fluid properties Fluid = FluidProperties( viscosity=0.617, rheology='HBF', # set fluid rheology to Herschel-Bulkley compressibility=1e-11, n=0.617, 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
# injection parameters Q0 = 0.01 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(viscosity=1.1e-3) # toughness dominated solution # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 4000 # the time at which the simulation stops simulProp.set_volumeControl( True) # to set up the solver in volume control mode (inviscid fluid) simulProp.tolFractFront = 4e-3 # increase tolerance for the anisotropic case simulProp.set_outputFolder( "./Data/toughness_jump") # the disk address where the files are saved simulProp.set_simulation_name('anisotropic_toughness_jump') simulProp.symmetric = True # set the fracture to symmetric # initializing fracture gamma = (K1c_func(np.pi / 2) / K1c_func(0))**2 # gamma = (Kc1/Kc3)**2 Fr_geometry = Geometry('elliptical', minor_axis=15., gamma=gamma) init_param = InitializationParameters(Fr_geometry, regime='E_K') # creating fracture object Fr = Fracture(Mesh, init_param, Solid, Fluid, Injection, simulProp) # create a Controller controller = Controller(Fr, Solid, Fluid, Injection, simulProp) # run the simulation controller.run()
K_Ic) # injection parameters Q0 = 0.01 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(rheology='PLF', n=0.6, k=0.001 / 12) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 1e7 # the time at which the simulation stops simulProp.set_outputFolder("./Data/radial_PL") # the disk address where the files are saved simulProp.set_simulation_name('PLF_n0.6') # setting simulation name simulProp.tolFractFront = 0.003 # increase the tolerance for faster run simulProp.plotTSJump = 5 # plot after every five time steps simulProp.set_tipAsymptote('PLF') # setting the tip asymptote to power-law fluid # 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 = 0.00005 n = Fluid.n gamma = 0.7155 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))
gamma = ( K1c_func(np.pi / 2) / K1c_func(0) * TI_plain_strain_modulus( # gamma = (Kc3/Kc1*E1/E3)**2 0, Cij) / TI_plain_strain_modulus(np.pi / 2, Cij))**2 # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 1000 # the time at which the simulation stops simulProp.set_volumeControl( True) # to set up the solver in volume control mode (inviscid fluid) simulProp.tolFractFront = 4e-3 # increase tolerance for the anisotropic case simulProp.frontAdvancing = "implicit" # set the front advancing scheme to implicit simulProp.set_tipAsymptote('K') # set the tip asymptote to toughness dominated simulProp.set_outputFolder( "./data/TI_elasticity_ellipse") # setting the output folder simulProp.set_simulation_name( 'TI_ellasticy_benchmark') # setting the simulation name simulProp.TI_KernelExecPath = '../TI_Kernel/build/' # path to the executable that calculates TI kernel simulProp.symmetric = True # solving with faster solver that assumes fracture is symmetric simulProp.remeshFactor = 1.5 # the factor by which the domain is expanded # initialization parameters Fr_geometry = Geometry('elliptical', minor_axis=1, gamma=gamma) init_param = InitializationParameters(Fr_geometry, regime='E_E') # # creating fracture object Fr = Fracture(Mesh, init_param, Solid, Fluid, Injection, simulProp) # create a Controller controller = Controller(Fr, Solid, Fluid, Injection, simulProp) #run the simulation
# fluid properties viscosity = 1e-3 Fluid = FluidProperties(viscosity=viscosity) # value of the trajectory parameter phi phi = (2 * Cl)**4 * Eprime**11 * (12 * viscosity)**3 * Q0 / ( (32 / np.pi)**(1 / 2) * K1c)**14 # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 1e5 # the time at which the simulation stops simulProp.saveTSJump, simulProp.plotTSJump = 5, 5 # save and plot after every 5 time steps simulProp.set_outputFolder( "./Data/MtoK_leakoff") # the disk address where the files are saved simname = 'phi_001' simulProp.set_simulation_name(simname) # set the nime of the simulation simulProp.frontAdvancing = 'explicit' # setting up explicit front advancing simulProp.plotVar = ['regime', 'w'] # initializing fracture Fr_geometry = Geometry('radial') init_param = InitializationParameters(Fr_geometry, regime='M', time=1e-3) # creating fracture object Fr = Fracture(Mesh, init_param, Solid, Fluid, Injection, simulProp) # create a Controller controller = Controller(Fr, Solid, Fluid, Injection, simulProp) # run the simulation controller.run()
Q0 = 0.005 Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(viscosity=0.75, rheology='HBF', compressibility=0, n=0.6, k=0.75, T0=10.) # 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