A class for doing steady state upscaling.
More...
#include <SteadyStateUpscaler.hpp>
|
| enum | { Dimension = UpscalerBase<Traits>::Dimension
} |
|
typedef UpscalerBase< Traits > | Super |
|
typedef Super::permtensor_t | permtensor_t |
|
typedef UpscalerBase< Traits >::GridInterface | GridInterface |
| enum | { Dimension = GridType::dimension
} |
| enum | BoundaryConditionType { Fixed = 0
, Linear = 1
, Periodic = 2
} |
|
typedef Dune::CpGrid | GridType |
|
typedef GridInterfaceEuler< GridType > | GridInterface |
|
typedef Traits::template ResProp< Dimension >::Type | ResProp |
|
typedef ResProp::MutablePermTensor | permtensor_t |
| | A type for the upscaled permeability.
|
|
|
| SteadyStateUpscaler () |
| | Default constructor.
|
| std::pair< permtensor_t, permtensor_t > | upscaleSteadyState (const int flow_direction, const std::vector< double > &initial_saturation, const double boundary_saturation, const double pressure_drop, const permtensor_t &upscaled_perm) |
| | Does a steady-state upscaling.
|
| const std::vector< double > & | lastSaturationState () const |
| | Accessor for the steady state saturation field.
|
| double | lastSaturationUpscaled () const |
| | Computes the upscaled saturation corresponding to the saturation field returned by lastSaturationState().
|
|
| UpscalerBase () |
| | Default constructor.
|
|
void | init (const Opm::ParameterGroup ¶m) |
| | Initializes the upscaler from parameters.
|
|
void | init (const Opm::Deck &deck, BoundaryConditionType bctype, double perm_threshold, double residual_tolerance=1e-8, int linsolver_verbosity=0, int linsolver_type=3, bool twodim_hack=false, int linsolver_maxit=0, double linsolver_prolongate_factor=1.0, int linsolver_smooth_steps=1, const double gravity=0.0) |
| | Initializes the upscaler from given arguments.
|
|
const GridType & | grid () const |
| | Access the grid.
|
| void | setBoundaryConditionType (BoundaryConditionType type) |
| | Set boundary condition type.
|
| void | setPermeability (const int cell_index, const permtensor_t &k) |
| | Set the permeability of a cell directly.
|
| permtensor_t | upscaleSinglePhase () |
| | Does a single-phase upscaling.
|
| double | upscalePorosity () const |
| | Compute upscaled porosity.
|
| double | upscaleNetPorosity () const |
| | Compute upscaled net porosity.
|
| double | upscaleNTG () const |
| | Compute upscaled NTG.
|
| double | upscaleSWCR (const bool NTG) const |
| | Compute upscaled SWCR.
|
| double | upscaleSOWCR (const bool NTG) const |
| | Compute upscaled SOWCR.
|
|
|
typedef Traits::template TransportSolver< GridInterface, typenameSuper::BCs >::Type | TransportSolver |
|
typedef GridInterface::CellIterator | CellIter |
|
typedef CellIter::FaceIterator | FaceIter |
|
typedef BasicBoundaryConditions< true, true > | BCs |
|
typedef Traits::template FlowSolver< GridInterface, BCs >::Type | FlowSolver |
|
|
template<class FlowSol> |
| void | computeInOutFlows (std::pair< double, double > &water_inout, std::pair< double, double > &oil_inout, const FlowSol &flow_solution, const std::vector< double > &saturations) const |
|
virtual void | initImpl (const Opm::parameter::ParameterGroup ¶m) |
| | Override from superclass.
|
|
template<class FlowSol> |
| double | computeAverageVelocity (const FlowSol &flow_solution, const int flow_dir, const int pdrop_dir) const |
|
double | computeDelta (const int flow_dir) const |
|
template<class FluidInterface> |
| permtensor_t | upscaleEffectivePerm (const FluidInterface &fluid) |
| virtual void | initImpl (const Opm::ParameterGroup ¶m) |
|
virtual void | initFinal (const Opm::ParameterGroup ¶m) |
|
|
std::vector< double > | last_saturation_state_ |
|
bool | use_gravity_ |
|
bool | output_vtk_ |
|
bool | print_inoutflows_ |
|
int | simulation_steps_ |
|
double | stepsize_ |
|
double | relperm_threshold_ |
|
double | maximum_mobility_contrast_ |
|
double | sat_change_threshold_ |
|
TransportSolver | transport_solver_ |
|
BoundaryConditionType | bctype_ |
|
bool | twodim_hack_ |
|
double | residual_tolerance_ |
|
int | linsolver_maxit_ |
|
double | linsolver_prolongate_factor_ |
|
int | linsolver_verbosity_ |
|
int | linsolver_type_ |
|
int | linsolver_smooth_steps_ |
|
double | gravity_ |
|
GridType | grid_ |
|
GridInterface | ginterf_ |
|
ResProp | res_prop_ |
|
BCs | bcond_ |
|
FlowSolver | flow_solver_ |
template<class Traits>
class Opm::SteadyStateUpscaler< Traits >
A class for doing steady state upscaling.
- Author
- Atgeirr F. Rasmussen atgei.nosp@m.rr@s.nosp@m.intef.nosp@m..no
◆ lastSaturationState()
Accessor for the steady state saturation field.
This is empty until upscaleSteadyState() is called, at which point it will contain the last computed (steady) saturation state.
◆ lastSaturationUpscaled()
Computes the upscaled saturation corresponding to the saturation field returned by lastSaturationState().
Does this by computing total saturated volume divided by total pore volume.
◆ upscaleSteadyState()
template<class Traits>
| std::pair< typename SteadyStateUpscaler< Traits >::permtensor_t, typename SteadyStateUpscaler< Traits >::permtensor_t > Opm::SteadyStateUpscaler< Traits >::upscaleSteadyState |
( |
const int | flow_direction, |
|
|
const std::vector< double > & | initial_saturation, |
|
|
const double | boundary_saturation, |
|
|
const double | pressure_drop, |
|
|
const permtensor_t & | upscaled_perm ) |
|
inline |
Does a steady-state upscaling.
- Parameters
-
| flow_direction | The cardinal direction in which to impose a pressure gradient for the purpose of converging to steady state. |
| initial_saturation | the initial saturation profile for the steady-state computation. The vector must have size equal to the number of cells in the grid. |
| boundary_saturation | the saturation of fluid flowing in across the boundary, only needed for nonperiodic upscaling. |
| pressure_drop | the pressure drop in Pascal over the domain. |
| upscaled_perm | typically the output of upscaleSinglePhase(). |
- Returns
- the upscaled relative permeability matrices of both phases. The relative permeability matrix, call it k, is such that if K_w is the phase permeability and K the absolute permeability, K_w = k*K.
The documentation for this class was generated from the following files: