1. A fluid flow modeling method comprising:
generating, by operation of one or more computers, flow model data associated with a one-dimensional flow model for well system fluid in a fracture network in a subterranean region, the flow model representing flow paths that intersect at a flow path intersection in the fracture network, the flow model data including:
a band matrix representing fluid flow within the respective flow paths; and
an intersection table representing fluid flow between the flow paths at the flow path intersection; and
simulating fluid flow in the fracture network using the band matrix and the intersection table.
2. The method of claim 1, wherein simulating fluid flow includes solving for values of a fluid flow variable for multiple locations along one or more of the flow paths.
3. The method of claim 2, wherein the fluid flow variable includes at least one of fluid velocity or fluid pressure.
4. The method of claim 2, wherein solving for values of the fluid flow variable includes:
converting the band matrix to an upper triangular representation by a forward elimination algorithm; and
converting the upper triangular representation to a diagonal representation by a backward substitution algorithm.
5. The method of claim 4, wherein the forward elimination algorithm includes a sequence of forward elimination operations, and at least one of the forward elimination operations is based on the intersection table.
6. The method of claim 4, wherein the backward substitution algorithm includes a sequence of backward substitution operations, and at least one of the backward substitution operations is based on the intersection table.
7. The method of claim 1, wherein the band matrix comprises a full matrix representation.
8. The method of claim 1, wherein the band matrix comprises a vector representation.
9. The method of claim 8, wherein the vector representation includes a number of vectors, and the number of vectors corresponds to a bandwidth of the band matrix.
10. The method of claim 1, wherein the intersection table includes:
indices corresponding to off-band matrix positions of a flow model matrix; and
values representing fluid flow between the flow paths according to discretized governing flow equations of the flow model.
11. The method of claim 10, wherein the band matrix includes other values representing fluid flow within the flow paths according to the discretized governing flow equations of the flow model.
12. The method of claim 11, comprising generating the values included in the band matrix and the intersection table according to a finite difference discretization of the governing flow equations.
13. The method of claim 11, wherein the band matrix has a bandwidth that is determined by the discretization of the governing flow equations.
14. The method of claim 1, wherein the flow model represents multiple flow paths that each intersect a common flow path at respective flow path intersections, the intersection table includes multiple entries, and each entry corresponds to one of the flow path intersections.
15. The method of claim 1, wherein the flow model represents a flow loop that intersects another flow path at multiple flow path intersections, the intersection table includes multiple entries, and each entry corresponds to one of the flow path intersections.
16. A non-transitory computer-readable medium storing instructions that, when executed by data processing apparatus, perform operations comprising:
accessing a one-dimensional flow model representing multiple flow paths for well system fluid, the flow paths intersecting at a flow path intersection;
generating, based on the flow model:
a band matrix representing fluid flow within the respective flow paths; and
an intersection table representing fluid flow between the flow paths at the flow path intersection; and
operating the flow model based on the band matrix and the intersection table.
17. The computer-readable medium of claim 16, wherein the flow model includes a plurality of nodes for each of the flow paths, and the nodes represent locations of fluid flow through a fracture in a subterranean region.
18. The computer-readable medium of claim 16, wherein the flow model includes a plurality of nodes for each of the flow paths, and the nodes represent locations of fluid flow through a conduit installed in a wellbore.
19. The computer-readable medium of claim 16, wherein the flow model includes a plurality of nodes representing respective flow locations along each of the flow paths, and the plurality of nodes include an intersection node representing the location of the flow path intersection.
20. The computer-readable medium of claim 19, wherein the band matrix includes a plurality of matrix rows, and each matrix row includes values from a plurality of governing flow equations discretized for one of the plurality of nodes.
21. The computer-readable medium of claim 20, wherein the intersection table includes one or more values from the plurality of governing flow equations discretized for the intersection node.
22. The computer-readable medium of claim 19, wherein operating the flow model includes solving for values of a fluid flow variable for each of the nodes.
23. A fluid flow modeling system comprising one or more computers that include:
flow model data associated with a flow model for well system fluid, the flow model representing flow paths that intersect at a flow path intersection, the flow model data including:
a band matrix representing fluid flow within the respective flow paths; and
an intersection table representing fluid flow between the flow paths at the flow path intersection; and
a solver module operable to compute, based on the band matrix and the intersection table, values of a fluid flow variable for a location on at least one of the flow paths.
24. The fluid flow modeling system of claim 23, wherein the band matrix comprises a vector representation of in-band elements of a flow model matrix, and the intersection table comprises a table representation of off-band elements of the flow model matrix.
25. The fluid flow modeling system of claim 24, wherein the intersection table includes:
indices to off-band positions in the flow model matrix; and
one or more values from a discretized governing flow equation representing fluid flow at the flow path intersection.
26. The fluid flow modeling system of claim 25, wherein the band matrix includes other values from the discretized governing flow equation.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A method of providing on-demand storage capacity on a remote storage server to a customer, comprising:
receiving a virtual array site code;
virtually connecting the remote storage server to a local storage server of the customer in response to receiving the virtual array site code, and
creating a virtual array site object on the local storage server corresponding to an array site object on the remote storage server.
2. The method of claim 1, further including preregistering a customer for the on-demand storage capacity.
3. The method of claim 2, wherein preregistering a customer includes allocating a portion of the remote storage server to the customer.
4. The method of claim 2, wherein preregistering a customer includes notifying the local storage server to set aside space for logical configuration objects needed during setup.
5. The method of claim 2, wherein preregistering a customer includes registering an attribute of a storage device specified by the customer.
6. The method of claim 1, further including receiving an activation request from the customer to activate the storage capacity.
7. The method of claim 6, further including, subsequent to receiving the activation request from the customer, executing a command on the remote storage server to provide the virtual array site code to the customer.
8. The method of claim 7, further including, previous to providing the virtual array site code to the customer, validating a payment from the customer.
9. The method of claim 7, further including, previous to providing the virtual array site code to the customer, validating a contract acceptance from the customer.
10. A system for providing on-demand storage capacity to a customer, comprising:
a remote storage server in communication with a local storage server of the customer, the remote storage server configured to, in response to the receipt of a virtual array site code:
virtually connect to the local storage server, and
create a virtual array site object on the local storage server corresponding to an array site object on the remote storage server.
11. The system of claim 10, wherein the remote storage server is further configured to preregister a customer for the on-demand storage capacity.
12. The system of claim 10, wherein the remote storage server is further configured to:
allocate a portion of the remote storage server to the customer,
notify the local storage server to set aside space for logical configuration objects needed during setup, and
register an attribute of a storage device specified by the customer.
13. The system of claim 10, wherein the remote storage server is further configured to receive an activation request from the customer to activate the storage capacity.
14. The system of claim 13, wherein the remote storage server is further configured to, subsequent to receiving the activation request from the customer, execute a command on the remote storage server to provide the virtual array site code to the customer.
15. The system of claim 13, wherein the remote storage server is further configured to, previous to providing the virtual array site code to the customer, validate a payment from the customer.
16. The system of claim 13, wherein the remote storage server is further configured to, previous to providing the virtual array site code to the customer, validate a contract acceptance from the customer.
17. A computer program product for providing on-demand storage capacity on a remote storage server to a customer, the computer program product comprising a computer-readable storage medium having computer-readable program code portions stored therein, the computer-readable program code portions comprising:
a first executable portion for receiving a virtual array site code;
a second executable portion for virtually connecting the remote storage server to a local storage server of the customer in response to receiving the virtual array site code; and
a third executable portion for creating a virtual array site object on the local storage server corresponding to an array site object on the remote storage server.
18. The computer program product of claim 17, further including:
a fourth executable portion for allocating a portion of the remote storage server to the customer,
a fifth executable portion for notifying the local storage server to set aside space for logical configuration objects needed during setup,
a sixth executable portion for registering an attribute of a storage device specified by the customer, and
a seventh executable portion for receiving an activation request from the customer to activate the storage capacity.
19. The computer program product of claim 18, further including an eighth executable portion for executing a command on the remote storage server to provide the virtual array site code to the customer.
20. The computer program product of claim 19, further including a ninth executable portion for, previous to providing the virtual array site code to the customer, validating a payment or contract acceptance from the customer.