Q: How do Sensor run times scale with problem
size?
A: We illustrate using spe1 as an example.
This case takes about 0.2 cpu seconds on our 2.8 GHz desktop.
If the numbers of blocks and wells are increased by a factor of n, while keeping the grid
block sizes (dx, dy, dz) the same (i.e., the reservoir is replicated by a factor of n), average timestep size will remain about the
same, and the larger case should take approximately n x (0.2 cpu seconds). If spe1 is increased from 10 x 10 x 3 (300
blocks) to 800 x 800 x 3 (almost 2 million blocks), then n=6400 and the
larger case should take about 21 minutes on our machine.
However, if the total reservoir size is fixed, and the
grid block sizes (dx, dy, dz) are decreased such that the total number of
blocks are increased by a factor of n, average timestep size will be reduced
by a factor of n, and the larger case should be expected to take
approximately n x n x (0.2 cpu seconds). Here, we are assuming that
the number of wells and their boundary conditions and spatial locations
remain fixed. We would expect this 800 x 800 x 3 run (n=6400) to take
about 93 days on our machine.
This illustrates the importance of not using block sizes
that are significantly smaller than those required to control numerical dispersion
while adequately describing geology. The model can and
should be used to determine those requirements by examining the sensitivity
of results to the level of spatial discretization, using upscaling methods
of the user's choice.
While most of the provided example cases are small,
Sensor's performance advantage is not a function of the number of gridblocks.
Q: What tuning is needed or recommended for high
efficiency and stability in Sensor?
A: Selections of formulation (default Impes,
or IMPLICIT card for fully implicit) and linear solution option (default ILU,
or NF card for Nested Factorization) can significantly affect performance.
While in some cases a particular formulation is called for (like Implicit
for radial coning problems), in general we recommend test runs to determine
the optimum selections. Very rare cases require modification of
timestep/run control or other solver control defaults. Some options
may improve performance. We recommend that 2D and 3D Impes runs should
be tried first with an entry of CFL 2 for stable step control.
Reduction of the stable step size may be needed in some cases to eliminate
oscillations. The PERC card specifying percolation control in Impes
runs sometimes gives good speedup for gassy oil problems. See Section
7.1 in the Sensor Manual for further discussion of recommended run control.
Q: Can unstructured grids be
used with Sensor?
A:
Yes. They are specified using the structured Cartesian format, in the
form of transmissibilities and cell pore volumes and depths. This is
essentially an accounting problem and must be performed by an unstructured
gridding program. The number of blocks in the x, y, and z directions
are set to include a sufficient number of cells. Any extra cells are
deactivated and cause no penalty. The unstructured cells are ordered
in some way, and the corresponding specified structured transmissibilities
either represent a true unstructured connection, or are zero where no
unstructured connection exists. All other unstructured connections are
specified as non-neighbor connections (transmissibilities). The
connections are assumed k-orthogonal, i.e. Sensor does not employ a multipoint
flux approximation. Since
Sensor's linear solvers are already coded in an unstructured manner, the
unstructured nature of the grid does not cause performance penalties, unlike
some other models with structured matrix representations. Well
intersections and perforation well indices are also computed by the
unstructured gridding program. Map visualization requires an
unstructured viewer linked to the Sensor output and to the unstructured grid
representation.
Sensor can also model dual porosity/dual permeability
systems in unstructured grids, through entry of approximately equivalent
rectilinear gridblock dimensions, along with rectilinear matrix block
dimensions.
Q: What about hybrid
(mixed-type) grids?
A:
Sensor can handle any combination of grid systems that the gridding program
is able to describe.
Q: Can Sensor handle local
grid refinement?
A:
Yes. But the refinements must be set up by a gridding program or
pre-processing step in the
context of structured and non-neighbor connections in Sensor's single xyz
grid. This is similar to the setup for unstructured grids described above.
|