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
C = load_isotropic_elasticity_matrix(Mesh, Eprime)
init_param = InitializationParameters(Fr_geometry,
                                      regime='static',
# 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
controller.run()

####################
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
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,
示例#4
0
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
C = load_isotropic_elasticity_matrix(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)