# Build the fluid and rock model # See to this later! f = Fluid(refRho=62.428, refPres=14.7, compress=3.5 * 1e-6, mu=10) r = Rock(refPoro=0.18, refPres=14.7, compress=0, perm=0.015) # rho is in lbm/ft^3 # refPres is in psi # compress is in psi^-1 # mu is in cP # perm is in D (Darcy) # We contain all these informations in a Reservoir object res = Reservoir(grid=g, fluid=f, rock=r, resDim=resDimension) # By default, the moment we declare a Node object, a no-flow Neumann # condition has already been imposed if the Node is a boundary Node. # But we can specify another condition with another value as follows bc = BoundaryCondition() #res.addBoundaryCondition(bc, x='before') # Set the initial pressure array res.setInitPressure(6000) # Set a source/sink in coordinate (0, 0, 3) res.grid.nodes[np.ravel_multi_index((0, 85, 85), res.grid.dims)].setSrc(-150) # Finally, run the simulation! runSimulation(res, dt=0.1, nTime=10 * 3 + 2) #runSimulation2(res, dt=15, nTime=30)
# Build the fluid and rock model # See to this later! f = Fluid(refRho=62.428, refPres=14.7, compress=3.5 * 1e-6, mu=10) r = Rock(refPoro=0.18, refPres=14.7, compress=0, perm=0.015) # rho is in lbm/ft^3 # refPres is in psi # compress is in psi^-1 # mu is in cP # perm is in D (Darcy) # We contain all these informations in a Reservoir object res = Reservoir(grid=g, fluid=f, rock=r, resDim=resDimension) # By default, the moment we declare a Node object, a no-flow Neumann # condition has already been imposed if the Node is a boundary Node. # But we can specify another condition with another value as follows bc = BoundaryCondition() #res.addBoundaryCondition(bc, x='before') # Set the initial pressure array res.setInitPressure(6000) # Set a source/sink in coordinate (0, 0, 3) res.grid.nodes[np.ravel_multi_index((0, 24, 24), res.grid.dims)].setSrc(-150) # Finally, run the simulation! runSimulation(res, dt=15, nTime=24) #runSimulation2(res, dt=15, nTime=30)
# mu is in cP # perm is in D (Darcy) # We contain all these informations in a Reservoir object res = Reservoir(grid=g, fluid=f, rock=r, resDim=resDimension) # By default, the moment we declare a Node object, a no-flow Neumann # condition has already been imposed if the Node is a boundary Node. # But we can specify another condition with another value as follows bc = BoundaryCondition() #res.addBoundaryCondition(bc, x='before') # Set the initial pressure array res.setInitPressure(6000) # Set a source/sink in coordinate (0, 0, 3) res.grid.nodes[np.ravel_multi_index((0, 85, 85), res.grid.dims)].setSrc(-150) # Finally, run the simulation! runSimulation(res, dt=0.1, nTime=10*3+2) #runSimulation2(res, dt=15, nTime=30)
# mu is in cP # perm is in D (Darcy) # We contain all these informations in a Reservoir object res = Reservoir(grid=g, fluid=f, rock=r, resDim=resDimension) # By default, the moment we declare a Node object, a no-flow Neumann # condition has already been imposed if the Node is a boundary Node. # But we can specify another condition with another value as follows bc = BoundaryCondition() #res.addBoundaryCondition(bc, x='before') # Set the initial pressure array res.setInitPressure(6000) # Set a source/sink in coordinate (0, 0, 3) res.grid.nodes[np.ravel_multi_index((0, 4, 13), res.grid.dims)].setSrc(-150) # Finally, run the simulation! runSimulation(res, dt=15, nTime=24) #runSimulation2(res, dt=15, nTime=30)
# We contain all these informations in a Reservoir object res = Reservoir(grid=g, fluid=f, rock=r, resDim=resDimension) # By default, the moment we declare a Node object, a no-flow Neumann # condition has already been imposed if the Node is a boundary Node. # But we can specify another condition with another value as follows #bc = BoundaryCondition("d", 6000) #res.addBoundaryCondition(bc, x='before') #res.addBoundaryCondition(bc, x='after') #res.addBoundaryCondition(bc, y='before') #res.addBoundaryCondition(bc, y='after') # Set the initial pressure array res.setInitPressure(6000) # Set a source/sink in coordinate (0, 0, 3) res.grid.nodes[np.ravel_multi_index((0, 25, 25), res.grid.dims)].setSrc(-150) # Finally, run the simulation! runSimulation(res, dt=0.25, nTime=5) # Temporarily use MRST's plotCellData #generateMFile('example-4', res.grid.dims, res.resDim, 23)
# rho is in lbm/ft^3 # refPres is in psi # compress is in psi^-1 # mu is in cP # perm is in D (Darcy) # We contain all these informations in a Reservoir object res = Reservoir(grid=g, fluid=f, rock=r, resDim=resDimension) # By default, the moment we declare a Node object, a no-flow Neumann # condition has already been imposed if the Node is a boundary Node. # But we can specify another condition with another value as follows #bc = BoundaryCondition("d", 6000) #res.addBoundaryCondition(bc, x='before') #res.addBoundaryCondition(bc, x='after') #res.addBoundaryCondition(bc, y='before') #res.addBoundaryCondition(bc, y='after') # Set the initial pressure array res.setInitPressure(6000) # Set a source/sink in coordinate (0, 0, 3) res.grid.nodes[np.ravel_multi_index((0, 25, 25), res.grid.dims)].setSrc(-150) # Finally, run the simulation! runSimulation(res, dt=0.25, nTime=4 * 3 + 2) # Temporarily use MRST's plotCellData #generateMFile('example-4', res.grid.dims, res.resDim, 13)
# rho is in lbm/ft^3 # refPres is in psi # compress is in psi^-1 # mu is in cP # perm is in D (Darcy) # We contain all these informations in a Reservoir object res = Reservoir(grid=g, fluid=f, rock=r, resDim=resDimension) # By default, the moment we declare a Node object, a no-flow Neumann # condition has already been imposed if the Node is a boundary Node. # But we can specify another condition with another value as follows #bc = BoundaryCondition("d", 6000) #res.addBoundaryCondition(bc, x='before') #res.addBoundaryCondition(bc, x='after') #res.addBoundaryCondition(bc, y='before') #res.addBoundaryCondition(bc, y='after') # Set the initial pressure array res.setInitPressure(6000) # Set a source/sink in coordinate (0, 0, 3) res.grid.nodes[np.ravel_multi_index((0, 25, 25), res.grid.dims)].setSrc(-150) # Finally, run the simulation! runSimulation(res, dt=0.25, nTime=5) # Temporarily use MRST's plotCellData #generateMFile('example-4', res.grid.dims, res.resDim, 23)
# We contain all these informations in a Reservoir object res = Reservoir(grid=g, fluid=f, rock=r, resDim=resDimension) # By default, the moment we declare a Node object, a no-flow Neumann # condition has already been imposed if the Node is a boundary Node. # But we can specify another condition with another value as follows #bc = BoundaryCondition("d", 6000) #res.addBoundaryCondition(bc, x='before') #res.addBoundaryCondition(bc, x='after') #res.addBoundaryCondition(bc, y='before') #res.addBoundaryCondition(bc, y='after') # Set the initial pressure array res.setInitPressure(6000) # Set a source/sink in coordinate (0, 0, 3) res.grid.nodes[np.ravel_multi_index((0, 25, 25), res.grid.dims)].setSrc(-150) # Finally, run the simulation! runSimulation(res, dt=0.25, nTime=4*3+2) # Temporarily use MRST's plotCellData #generateMFile('example-4', res.grid.dims, res.resDim, 13)