A class for doing steady state upscaling. More...
#include <SteadyStateUpscaler.hpp>
Public Types | |
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. | |
Public Member Functions | |
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. More... | |
const std::vector< double > & | lastSaturationState () const |
Accessor for the steady state saturation field. More... | |
double | lastSaturationUpscaled () const |
Computes the upscaled saturation corresponding to the saturation field returned by lastSaturationState(). More... | |
![]() | |
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. More... | |
void | setPermeability (const int cell_index, const permtensor_t &k) |
Set the permeability of a cell directly. More... | |
permtensor_t | upscaleSinglePhase () |
Does a single-phase upscaling. More... | |
double | upscalePorosity () const |
Compute upscaled porosity. More... | |
double | upscaleNetPorosity () const |
Compute upscaled net porosity. More... | |
double | upscaleNTG () const |
Compute upscaled NTG. More... | |
double | upscaleSWCR (const bool NTG) const |
Compute upscaled SWCR. More... | |
double | upscaleSOWCR (const bool NTG) const |
Compute upscaled SOWCR. More... | |
template<class FluidInterface > | |
UpscalerBase< Traits > ::permtensor_t | upscaleEffectivePerm (const FluidInterface &fluid) |
Protected Types | |
typedef Traits::template TransportSolver< GridInterface, typename Super::BCs >::Type | TransportSolver |
![]() | |
typedef GridInterface::CellIterator | CellIter |
typedef CellIter::FaceIterator | FaceIter |
typedef BasicBoundaryConditions< true, true > | BCs |
typedef Traits::template FlowSolver< GridInterface, BCs > ::Type | FlowSolver |
Protected Member Functions | |
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) |
Protected Attributes | |
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_ |
A class for doing steady state upscaling.
|
inline |
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.
double Opm::SteadyStateUpscaler< Traits >::lastSaturationUpscaled | ( | ) | const |
Computes the upscaled saturation corresponding to the saturation field returned by lastSaturationState().
Does this by computing total saturated volume divided by total pore volume.
|
inline |
Does a steady-state upscaling.
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(). |