Changing boundary conditions
You may notice that the actual upscaled permeability is diagonal. This is due to the boundary conditions used in solving the flow problems during the upscaling. The upscaling approach solves for the flow three times, one for each cardinal direction (X, Y, Z). There are three different options for the boundary conditions used:
- Fixed boundary conditions. Pressure is set to 1 on the inflow and 0 on the outflow sides (X- and X+ for the X direction), and no-flow Neumann conditions are used on the other sides. This corresponds to boundary_condition_type=0, and produces diagonal tensors.
- Linear boundary conditions. Pressure is set to 1 on the inflow and 0 on the outflow sides, and linear (from 1 down to 0) Dirichlet conditions are used on the other sides. This corresponds to boundary_condition_type=1, and produces a full tensor, which may not be symmetric however.
- Periodic boundary conditions. Modified periodic Dirichlet conditions are set on all sides. On the inflow side the pressure is set to (1 + the outflow side pressure), and on the other sides pressure is set to be everywhere equal to its periodic neighbour (on the opposite side). This corresponds to boundary_condition_type=2, and produces a full, symmetric tensor.
We try this by running the same model again. Edit upscale.param
to use boundary_condition_type=2
, and you should get something like the following result (rounded to fit below):
Upscaled K in millidarcy: 133.75528 -0.096041582 -2.381589 -0.096040623 140.54103 -0.5536349 -2.3816639 -0.55359244 10.1717546
You will notice that the result is now a full tensor, which is symmetric (within numerical precision). The results are not very far away from the fixed condition results, but for our next model that is not so.