# 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')

# 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()

####################
# plotting results #
####################
Beispiel #2
0
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],
                         L * eps * xw[:, 1],
                         bounds_error=False,
                         fill_value='extrapolate')
w = f(Mesh.distCenter)
w[w < 0] = 0.
    
# initialization parameters
Fr_geometry = Geometry('radial', radius=gamma * L)
from elasticity import load_isotropic_elasticity_matrix
C = load_isotropic_elasticity_matrix(Mesh, Eprime)
init_param = InitializationParameters(Fr_geometry,
                                      regime='static',
                                      width=w,
                                      elasticity_matrix=C,
                                      tip_velocity=Vel)


# creating fracture object
Fr = Fracture(Mesh,
              init_param,
              Solid,
              Fluid,
              Injection,
# 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)
simulProp.plotTSJump = 10  # plotting every 10 time steps

# initializing fracture
Fr_geometry = Geometry('radial', radius=0.15)
init_param = InitializationParameters(Fr_geometry, regime='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()

####################
# plotting results #
####################
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

# 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()

####################
# plotting results #
####################
Beispiel #5
0
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)

# create a controller
controller = Controller(Fr,
                        Solid,
Beispiel #6
0
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
simulProp.projMethod = 'ILSA_orig'
simulProp.set_tipAsymptote('U')

# 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,