# material properties Solid = MaterialProperties(Mesh, Eprime, 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
nu = 0.4 # Poisson's ratio youngs_mod = 3.3e10 # Young's modulus Eprime = youngs_mod / (1 - nu**2) # plain strain modulus K_Ic = 1e6 # fracture toughness Solid = MaterialProperties(Mesh, Eprime, K_Ic) # injection parameters Q0 = 0.001 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(viscosity=0) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 1e2 # the time at which the simulation stops simulProp.set_tipAsymptote( 'K' ) # the tip asymptote is evaluated with the toughness dominated assumption simulProp.set_volumeControl( True ) # use the inviscid fluid solver(toughness dominated), imposing volume balance simulProp.set_outputFolder( "./Data/K_radial_symmetric") # the disk address where the files are saved simulProp.symmetric = True # assume fracture geometry to be symmetric (only available for volume control) # initializing fracture Fr_geometry = Geometry('radial', radius=0.15) init_param = InitializationParameters(Fr_geometry, regime='K')
# material properties Solid = MaterialProperties(Mesh, 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
Solid = MaterialProperties(Mesh, Eprime, K_Ic) 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.
Solid = MaterialProperties(Mesh, Eprime, anisotropic_K1c=True, K1c_func=K1c_func) # injection parameters 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')
point. """ tolerance = 2. # the condition return abs(x) < 75 and (y >= -75. - tolerance and y <= -75. + tolerance) # injection parameters Q0 = 0.001 # injection rate Injection = InjectionProperties(Q0, Mesh, source_loc_func=source_location) # fluid properties Fluid = FluidProperties(viscosity=1.1e-3, density=1000) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 1.1e4 # the time at which the simulation stops simulProp.set_outputFolder( "./Data/buoyant_line_source") # the disk address where the files are saved simulProp.gravity = True # take the effect of gravity into account simulProp.set_mesh_extension_direction(['top']) simulProp.plotVar = ['w', 'regime'] simulProp.toleranceEHL = 1e-3 # initializing fracture surv_cells, _, inner_cells = get_eliptical_survey_cells(Mesh, 80, 20, center=[0.0, -75.0]) surv_cells_dist = surv_cells * 0 + (Mesh.hx**2 + Mesh.hy**2)**(1 / 2) Fr_geometry = Geometry(shape='level set',
def source_location(x, y): """ This function is used to evaluate if a point is included in source, i.e. the fluid is injected at the given point. """ # the condition return abs(x) < 75. and (y > -80. and y < -74) # injection parameters Q0 = 0.001 # injection rate Injection = InjectionProperties(Q0, Mesh, source_loc_func=source_location) # fluid properties Fluid = FluidProperties(viscosity=1.1e-3, density=1000) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 6000 # the time at which the simulation stops simulProp.set_outputFolder("./Data/M_radial_explicit") # the disk address where the files are saved simulProp.gravity = True # take the effect of gravity into account # initialization parameters Fr_geometry = Geometry(shape='height contained', fracture_length=80, fracture_height=35) init_param = InitializationParameters(Fr_geometry, regime='PKN') # creating fracture object Fr = Fracture(Mesh, init_param, Solid, Fluid,
Solid = MaterialProperties(Mesh, Eprime, anisotropic_K1c=True, K1c_func=K1c_func) # 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
# material properties Solid = MaterialProperties(Mesh, Eprime, toughness=6.5e6, confining_stress_func=sigmaO_func, minimum_width=1e-5) # injection parameters Q0 = np.asarray([[0.0, 500], [2000, 0]]) # injection rate Injection = InjectionProperties(Q0, Mesh, source_coordinates=[0, -1400]) # fluid properties Fluid = FluidProperties(viscosity=30, density=2400) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 560000 # the time at which the simulation stops simulProp.set_outputFolder( "./Data/neutral_buoyancy") # the disk address where the files are saved simulProp.gravity = True # set up the gravity flag simulProp.tolFractFront = 3e-3 # increase the tolerance for fracture front iteration simulProp.plotTSJump = 4 # plot every fourth time step simulProp.saveTSJump = 2 # save every second time step simulProp.maxSolverItrs = 200 # increase the Picard iteration limit for the elastohydrodynamic solver simulProp.tmStpPrefactor = np.asarray([[0, 80000], [0.3, 0.1] ]) # set up the time step prefactor simulProp.timeStepLimit = 5000 # time step limit simulProp.plotVar = ['w', 'v'] # plot fracture width and fracture front velocity # initializing a static fracture
# injection parameters Q0 = 0.001 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(viscosity=1.1e-4) # aspect ratio of the elliptical fracture 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
# material properties Solid = MaterialProperties(Mesh, Eprime, toughness=2.5e6, confining_stress_func=sigmaO_func, minimum_width=1e-5) # injection parameters Q0 = np.asarray([[0.0, 50], [50, 0]]) # injection rate Injection = InjectionProperties(Q0, Mesh, source_coordinates=[0, -1000]) # fluid properties Fluid = FluidProperties(viscosity=50, density=2650) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 56000000000 #simulProp.frontAdvancing = 'implicit' # the time at which the simulation stops simulProp.set_outputFolder( "./Data/neutral_buoyancy") # the disk address where the files are saved simulProp.gravity = True # set up the gravity flag simulProp.tolFractFront = 3e-3 # increase the tolerance for fracture front iteration simulProp.plotTSJump = 5 # plot every fourth time step simulProp.saveTSJump = 2 # save every second time step simulProp.maxSolverItrs = 500 # increase the Picard iteration limit for the elastohydrodynamic solver #simulProp.tmStpPrefactor = np.asarray([[0, 80000], [0.3, 0.1]]) # set up the time step prefactor #simulProp.timeStepLimit = 500 # time step limit simulProp.plotVar = ['w'] # plot fracture width and fracture front velocity #simulProp.blockFigure = True #simulProp.saveToDisk = False
K1c = 0 # Zero toughness case # material properties Solid = MaterialProperties(Mesh, Eprime, K1c) # injection parameters Q0 = np.asarray([[0.0, 50], [0.01, 0]]) # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties viscosity = 0.001 Fluid = FluidProperties(viscosity=viscosity) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 5e6 # the time at which the simulation stops simulProp.saveTSJump, simulProp.plotTSJump = 3, 3 # save and plot after every 5 time steps simulProp.set_outputFolder( "./Data/Pulse") # the disk address where the files are saved # initializing fracture Fr_geometry = Geometry('radial') init_param = InitializationParameters(Fr_geometry, regime='M', time=0.05) # creating fracture object Fr = Fracture(Mesh, init_param, Solid, Fluid, Injection, simulProp) # create a Controller controller = Controller(Fr, Solid, Fluid, Injection, simulProp)
Solid = MaterialProperties(Mesh, Eprime, K_Ic, confining_stress_func=sigmaO_func) # injection parameters Q0 = 0.001 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(viscosity=1.1e-3) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 145. # the time at which the simulation stops simulProp.bckColor = 'sigma0' # setting the parameter according to which the mesh is colored simulProp.set_outputFolder( "./Data/height_contained") # set the directory to save the simulation simulProp.tmStpPrefactor = 1.0 # decreasing the size of time step simulProp.plotVar = ['footprint'] # plotting footprint simulProp.set_mesh_extension_direction( ['horizontal']) # allow the mesh to extend horizontally simulProp.set_mesh_extension_factor(1.35) # setting the mesh extension factor simulProp.useBlockToeplizCompression = True # use the Toepliz elasticity to save memory # initializing fracture Fr_geometry = Geometry(shape='radial', radius=1.) init_param = InitializationParameters(Fr_geometry, regime='M')
youngs_mod = 3.3e10 # Young's modulus Eprime = youngs_mod / (1 - nu**2) # plain strain modulus K_Ic = 0.5 # fracture toughness # material properties Solid = MaterialProperties(Mesh, Eprime, K_Ic) # injection parameters Q0 = 0.001 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(viscosity=1.1e-3) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 1e5 # the time at which the simulation stops simulProp.frontAdvancing = 'explicit' # to set explicit front tracking simulProp.saveTSJump, simulProp.plotTSJump = 5, 5 # save and plot after every five time steps simulProp.set_outputFolder( "./Data/M_radial_explicit") # the disk address where the files are saved # initialization parameters Fr_geometry = Geometry('radial', radius=0.1) init_param = InitializationParameters(Fr_geometry, regime='M') # creating fracture object Fr = Fracture(Mesh, init_param, Solid, Fluid, Injection, simulProp) # create a Controller controller = Controller(Fr, Solid, Fluid, Injection, simulProp)
Solid = MaterialProperties(Mesh, Eprime, K1c_func=My_KIc_func, confining_stress_func=sigmaO_func, minimum_width=1e-8) # injection parameters Q0 = 0.001 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(viscosity=1.1e-3) # simulation properties simulProp = SimulationProperties() simulProp.bckColor = 'sigma0' simulProp.finalTime = 0.28 # the time at which the simulation stops simulProp.outputTimePeriod = 1e-4 # to save after every time step simulProp.tmStpPrefactor = 0.5 # decrease the pre-factor due to explicit front tracking simulProp.set_outputFolder("./Data/stress_heterogeneities") # the disk address where the files are saved simulProp.saveFluidFluxAsVector = True simulProp.plotVar = ['ffvf'] simulProp.projMethod = 'LS_continousfront' # <--- mandatory use simulProp.saveToDisk = True simulProp.set_mesh_extension_factor(1.1) simulProp.set_mesh_extension_direction(['all']) simulProp.useBlockToeplizCompression = True # initialization parameters Fr_geometry = Geometry('radial', radius=0.12)
Solid = MaterialProperties(Mesh, Eprime, K1c, Carters_coef=Cl, minimum_width=1e-12) # injection parameters Q0 = 0.01 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties viscosity = 0.001 / 12 # mu' =0.001 Fluid = FluidProperties(viscosity=viscosity) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 3e7 # the time at which the simulation stops simulProp.saveTSJump, simulProp.plotTSJump = 3, 5 # save and plot after every 5 time steps simulProp.set_outputFolder( "./Data/MtoMt_FO") # the disk address where the files are saved simulProp.plotVar = ['w', 'regime'] # initializing fracture Fr_geometry = Geometry('radial') init_param = InitializationParameters(Fr_geometry, regime='M', time=50) # creating fracture object Fr = Fracture(Mesh, init_param, Solid, Fluid, Injection, simulProp) # create a Controller controller = Controller(Fr, Solid, Fluid, Injection, simulProp)
# material properties Solid = MaterialProperties(Mesh, Eprime, toughness=K_Ic, confining_stress_func=sigmaO_func, Carters_coef=1e-6) # injection parameters Q0 = np.asarray([[0, 6000], [0.001, 0]]) Injection = InjectionProperties(Q0, Mesh, source_coordinates=[0, -20]) # fluid properties Fluid = FluidProperties(viscosity=1e-3) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 1.6e4 # the time at which the simulation stops simulProp.set_outputFolder( "./Data/fracture_closure") # the disk address where the files are saved simulProp.bckColor = 'confining stress' # setting the parameter for the mesh color coding simulProp.plotTSJump = 4 # set to plot every four time steps simulProp.plotVar = ['w', 'lk', 'footprint' ] # setting the parameters that will be plotted simulProp.tmStpPrefactor = np.asarray( [[0, 6000], [0.8, 0.4]]) # decreasing the time step pre-factor after 6000s simulProp.maxSolverItrs = 120 # increase maximum iterations for the elastohydrodynamic solver # initialization parameters Fr_geometry = Geometry('radial', radius=20) init_param = InitializationParameters(Fr_geometry, regime='M')
return 1e6 Solid = MaterialProperties(Mesh, Eprime, K_Ic, confining_stress_func=sigmaO_func) # injection parameters Q0 = 0.001 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(viscosity=1.1e-3) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 145. # the time at which the simulation stops simulProp.bckColor = 'sigma0' # setting the parameter according to which the mesh is color coded simulProp.set_outputFolder("./Data/height_contained") simulProp.tmStpPrefactor = 1.0 # decreasing the size of time step simulProp.plotVar = ['footprint'] # plotting footprint # initializing fracture Fr_geometry = Geometry(shape='radial', radius=1.) init_param = InitializationParameters(Fr_geometry, regime='M') # creating fracture object Fr = Fracture(Mesh, init_param, Solid, Fluid,
K1c = 5e5 / (32 / np.pi)**0.5 # K' = 5e5 Cl = 0.5e-6 # Carter's leak off coefficient # material properties Solid = MaterialProperties(Mesh, Eprime, K1c, Carters_coef=Cl) # injection parameters Q0 = 0.01 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties viscosity = 0.001 / 12 # mu' =0.001 Fluid = FluidProperties(viscosity=viscosity) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 1e7 # 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 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=0.5) # creating fracture object Fr = Fracture(Mesh, init_param, Solid, Fluid, Injection, simulProp) # create a Controller
def run_radial_simul(self, my_front_reconstruction, my_front_advancement, my_vertex_or_path, my_param): # setting up the verbosity level of the log at console # setup_logging_to_console(verbosity_level='error') outputfolder = "./Temp_Data/" + my_vertex_or_path + "_radial_" + my_front_advancement + "_" + my_front_reconstruction self.remove(outputfolder) # creating mesh Mesh = CartesianMesh(my_param['Lx'], my_param['Ly'], my_param['Nx'], my_param['Ny']) # solid properties nu = my_param['nu'] # Poisson's ratio youngs_mod = my_param['youngs_mod'] # Young's modulus Eprime = youngs_mod / (1 - nu**2) # plain strain modulus K_Ic = my_param['K_Ic'] # fracture toughness Cl = my_param['Cl'] # Carter's leak off coefficient # material properties Solid = MaterialProperties(Mesh, Eprime, K_Ic, Carters_coef=Cl) # injection parameters Q0 = my_param['Q0'] # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(viscosity=my_param['viscosity']) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = my_param[ 'finalTime'] # the time at which the simulation stops simulProp.set_tipAsymptote( my_vertex_or_path ) # tip asymptote is evaluated with the viscosity dominated assumption simulProp.frontAdvancing = my_front_advancement # to set explicit front tracking simulProp.plotFigure = False simulProp.set_solTimeSeries(np.asarray([2, 200, 5000, 30000, 100000])) simulProp.saveTSJump, simulProp.plotTSJump = 5, 5 # save and plot after every five time steps simulProp.set_outputFolder(outputfolder) simulProp.projMethod = my_front_reconstruction simulProp.log2file = False # initialization parameters Fr_geometry = Geometry('radial', radius=my_param['initialR']) init_param = InitializationParameters(Fr_geometry, regime=my_vertex_or_path) # 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 exitcode = controller.run() return exitcode, outputfolder
# material properties Solid = MaterialProperties(Mesh, Eprime, toughness=6.5e6, confining_stress_func=sigmaO_func, minimum_width=1e-5) # injection parameters Q0 = np.asarray([[0.0, 500], [2000, 0]]) # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(viscosity=30, density=2400) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 560000 # the time at which the simulation stops simulProp.set_outputFolder( "./Data/neutral_buoyancy") # the disk address where the files are saved simulProp.gravity = True # set up the gravity flag simulProp.tolFractFront = 3e-3 # increase the tolerance for fracture # front iteration simulProp.plotTSJump = 4 # plot every fourth time step simulProp.saveTSJump = 2 # save every second time step simulProp.maxSolverItrs = 200 # increase the Anderson iteration limit for the # elastohydrodynamic solver simulProp.tmStpPrefactor = np.asarray([[0, 80000], [0.5, 0.1] ]) # set up the time step prefactor simulProp.timeStepLimit = 5000 # time step limit simulProp.plotVar = ['w', 'v'] # plot fracture width and fracture front velocity
il_volume=1e-3, perforation_friction=0, initial_pressure=np.nan ) # the initial pressure in injection line is set below # 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
Solid = MaterialProperties(Mesh, Eprime, K1c_func=My_KIc_func, minimum_width=1e-8) # injection parameters Q0 = 0.05 # injection rate Injection = InjectionProperties(Q0, Mesh, source_coordinates=[0.1, 0.]) # fluid properties Fluid = FluidProperties(viscosity=1.1e-3) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 0.0003 # the time at which the simulation stops myfolder = "./Data/toughness_jump_3p6" simulProp.set_outputFolder( myfolder) # the disk address where the files are saved simulProp.projMethod = 'LS_continousfront' simulProp.frontAdvancing = 'implicit' simulProp.useBlockToeplizCompression = True simulProp.saveToDisk = False simulProp.bckColor = 'K1c' simulProp.saveFluidVelAsVector = True # To decide what you will see when you print: #simulProp.plotVar = ['ffvf','regime'] #simulProp.plotVar = ['footprint','regime'] #simulProp.plotVar = ['footprint']
youngs_mod = 3.3e10 # Young's modulus Eprime = youngs_mod / (1 - nu**2) # plain strain modulus K_Ic = 1e7 # fracture toughness Solid = MaterialProperties(Mesh, Eprime, K_Ic, minimum_width=1e-9) # injection parameters Q0 = 0.001 # injection rate Injection = InjectionProperties(Q0, Mesh) # fluid properties viscosity = 1.1e-3 Fluid = FluidProperties(viscosity=viscosity) # simulation properties simulProp = SimulationProperties() simulProp.finalTime = 50 # the time at which the simulation stops simulProp.set_outputFolder("./Data/star") # the address of the output folder simulProp.plotTSJump = 4 # initializing fracture from fracture_initialization import get_radial_survey_cells initRad = np.pi surv_cells, _, inner_cells = get_radial_survey_cells(Mesh, initRad) surv_cells_dist = np.cos(Mesh.CenterCoor[surv_cells, 0]) + 2.5 - abs( Mesh.CenterCoor[surv_cells, 1]) Fr_geometry = Geometry(shape='level set', survey_cells=surv_cells, tip_distances=surv_cells_dist, inner_cells=inner_cells)
Solid = MaterialProperties(Mesh, Eprime, confining_stress_func=sigmaO_func, minimum_width=1e-8) # injection parameters Q0 = np.asarray([[0, 31, 151], [0.0009e-6, 0.0065e-6, 0.0023e-6]]) Injection = InjectionProperties(Q0, Mesh) # fluid properties Fluid = FluidProperties(viscosity=30) # simulation properties simulProp = SimulationProperties() simulProp.bckColor = 'confining stress' # the parameter according to which the background is color coded simulProp.frontAdvancing = 'explicit' simulProp.set_outputFolder('./Data/Wu_et_al') simulProp.set_solTimeSeries(np.asarray([22., 60., 144., 376., 665.])) simulProp.plotVar = ['footprint'] # initializing fracture Fr_geometry = Geometry('radial', radius=0.019) init_param = InitializationParameters(Fr_geometry, regime='M') # creating fracture object Fr = Fracture(Mesh, init_param, Solid, Fluid, Injection, simulProp) # create a Controller controller = Controller(Fr, Solid, Fluid, Injection, simulProp)