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,
Esempio n. 2
0
# 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],