# 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', survey_cells=surv_cells, tip_distances=surv_cells_dist, inner_cells=inner_cells) C = load_isotropic_elasticity_matrix(Mesh, Eprime) init_param = InitializationParameters(Fr_geometry,
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 Fr_geometry = Geometry('radial', radius=0.2) from elasticity import load_isotropic_elasticity_matrix
# 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 simulProp.set_mesh_extension_direction( ['top', 'horizontal']) # allow the fracture to extend in positive y and x simulProp.set_mesh_extension_factor(1.2) # set the extension factor to 1.4 simulProp.useBlockToeplizCompression = True # use the Toepliz elasticity matrix to save memory # initializing a static fracture C = load_isotropic_elasticity_matrix_toepliz(Mesh, Solid.Eprime) Fr_geometry = Geometry('radial', radius=300) init_param = InitializationParameters(Fr_geometry, regime='static', net_pressure=0.5e6, elasticity_matrix=C) Fr = Fracture(Mesh, init_param, Solid, Fluid, Injection, simulProp)
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, Injection, simulProp) # create a Controller controller = Controller(Fr,
# 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 controller = Controller(Fr, Solid, Fluid, Injection, simulProp) # run the simulation controller.run() ####################
# 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') # 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
# 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) init_param = InitializationParameters(Fr_geometry, regime='M') # creating fracture object Fr = Fracture(Mesh, init_param, Solid,
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 n = Fluid.n gamma = 0.699
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) # run the simulation controller.run() # loading the experiment data file