All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Ewoms::BlackOilPolymerModule< TypeTag, enablePolymerV > Class Template Reference

Contains the high level supplements required to extend the black oil model by polymer. More...

#include <blackoilpolymermodules.hh>

Public Types

enum  AdsorptionBehaviour { Desorption = 1, NoDesorption = 2 }
 

Static Public Member Functions

static void setNumSatRegions (unsigned numRegions)
 Specify the number of satuation regions. More...
 
static void setPlyrock (unsigned satRegionIdx, const Scalar &plyrockDeadPoreVolume, const Scalar &plyrockResidualResistanceFactor, const Scalar &plyrockRockDensityFactor, const Scalar &plyrockAdsorbtionIndex, const Scalar &plyrockMaxAdsorbtion)
 Specify the polymer rock properties a single region. More...
 
static void setAdsrock (unsigned satRegionIdx, const TabulatedFunction &plyadsAdsorbedPolymer)
 Specify the polymer rock properties a single region. More...
 
static void setNumPvtRegions (unsigned numRegions)
 Specify the number of pvt regions. More...
 
static void setPlyvisc (unsigned satRegionIdx, const TabulatedFunction &plyviscViscosityMultiplierTable)
 Specify the polymer viscosity a single region. More...
 
static void setNumMixRegions (unsigned numRegions)
 Specify the number of mix regions. More...
 
static void setPlymax (unsigned mixRegionIdx, const Scalar &plymaxMaxConcentration)
 Specify the maximum polymer concentration a single region. More...
 
static void setPlmixpar (unsigned mixRegionIdx, const Scalar &plymixparToddLongstaff)
 Specify the maximum polymer concentration a single region. More...
 
static void registerParameters ()
 Register all run-time parameters for the black-oil polymer module.
 
static void registerOutputModules (Model &model, Simulator &simulator)
 Register all polymer specific VTK and ECL output modules.
 
static bool primaryVarApplies (unsigned pvIdx)
 
static std::string primaryVarName (unsigned pvIdx OPM_OPTIM_UNUSED)
 
static Scalar primaryVarWeight (unsigned pvIdx OPM_OPTIM_UNUSED)
 
static bool eqApplies (unsigned eqIdx)
 
static std::string eqName (unsigned eqIdx OPM_OPTIM_UNUSED)
 
static Scalar eqWeight (unsigned eqIdx OPM_OPTIM_UNUSED)
 
template<class LhsEval >
static void addStorage (Dune::FieldVector< LhsEval, numEq > &storage, const IntensiveQuantities &intQuants)
 
static void computeFlux (RateVector &flux, const ElementContext &elemCtx, unsigned scvfIdx, unsigned timeIdx)
 
static void assignPrimaryVars (PrimaryVariables &priVars, Scalar polymerConcentration)
 Assign the polymer specific primary variables to a PrimaryVariables object.
 
static void updatePrimaryVars (PrimaryVariables &newPv, const PrimaryVariables &oldPv, const EqVector &delta)
 Do a Newton-Raphson update the primary variables of the polymers.
 
static Scalar computeUpdateError (const PrimaryVariables &oldPv OPM_UNUSED, const EqVector &delta OPM_UNUSED)
 Return how much a Newton-Raphson update is considered an error.
 
static Scalar computeResidualError (const EqVector &resid)
 Return how much a residual is considered an error.
 
template<class DofEntity >
static void serializeEntity (const Model &model, std::ostream &outstream, const DofEntity &dof)
 
template<class DofEntity >
static void deserializeEntity (Model &model, std::istream &instream, const DofEntity &dof)
 
static const Scalar plyrockDeadPoreVolume (const ElementContext &elemCtx, unsigned scvIdx, unsigned timeIdx)
 
static const Scalar plyrockResidualResistanceFactor (const ElementContext &elemCtx, unsigned scvIdx, unsigned timeIdx)
 
static const Scalar plyrockRockDensityFactor (const ElementContext &elemCtx, unsigned scvIdx, unsigned timeIdx)
 
static const Scalar plyrockAdsorbtionIndex (const ElementContext &elemCtx, unsigned scvIdx, unsigned timeIdx)
 
static const Scalar plyrockMaxAdsorbtion (const ElementContext &elemCtx, unsigned scvIdx, unsigned timeIdx)
 
static const TabulatedFunction & plyadsAdsorbedPolymer (const ElementContext &elemCtx, unsigned scvIdx, unsigned timeIdx)
 
static const TabulatedFunction & plyviscViscosityMultiplierTable (const ElementContext &elemCtx, unsigned scvIdx, unsigned timeIdx)
 
static const TabulatedFunction & plyviscViscosityMultiplierTable (unsigned pvtnumRegionIdx)
 
static const Scalar plymaxMaxConcentration (const ElementContext &elemCtx, unsigned scvIdx, unsigned timeIdx)
 
static const Scalar plymixparToddLongstaff (const ElementContext &elemCtx, unsigned scvIdx, unsigned timeIdx)
 
static bool hasPlyshlog ()
 
static bool hasShrate ()
 
static const Scalar shrate (unsigned pvtnumRegionIdx)
 
template<class Evaluation >
static Evaluation computeShearFactor (const Evaluation &polymerConcentration, unsigned pvtnumRegionIdx, const Evaluation &v0)
 Computes the shear factor. More...
 

Detailed Description

template<class TypeTag, bool enablePolymerV = GET_PROP_VALUE(TypeTag, EnablePolymer)>
class Ewoms::BlackOilPolymerModule< TypeTag, enablePolymerV >

Contains the high level supplements required to extend the black oil model by polymer.

Member Function Documentation

template<class TypeTag , bool enablePolymerV = GET_PROP_VALUE(TypeTag, EnablePolymer)>
template<class Evaluation >
static Evaluation Ewoms::BlackOilPolymerModule< TypeTag, enablePolymerV >::computeShearFactor ( const Evaluation &  polymerConcentration,
unsigned  pvtnumRegionIdx,
const Evaluation &  v0 
)
inlinestatic

Computes the shear factor.

Input is polymer concentration and either the water velocity or the shrate if has_shrate_ is true. The pvtnumRegionIdx is needed to make sure the right table is used.

template<class TypeTag , bool enablePolymerV = GET_PROP_VALUE(TypeTag, EnablePolymer)>
static void Ewoms::BlackOilPolymerModule< TypeTag, enablePolymerV >::setAdsrock ( unsigned  satRegionIdx,
const TabulatedFunction &  plyadsAdsorbedPolymer 
)
inlinestatic

Specify the polymer rock properties a single region.

The index of specified here must be in range [0, numSatRegions)

template<class TypeTag , bool enablePolymerV = GET_PROP_VALUE(TypeTag, EnablePolymer)>
static void Ewoms::BlackOilPolymerModule< TypeTag, enablePolymerV >::setNumMixRegions ( unsigned  numRegions)
inlinestatic

Specify the number of mix regions.

This must be called before setting the PLYMAC and PLMIXPAR of any region.

template<class TypeTag , bool enablePolymerV = GET_PROP_VALUE(TypeTag, EnablePolymer)>
static void Ewoms::BlackOilPolymerModule< TypeTag, enablePolymerV >::setNumPvtRegions ( unsigned  numRegions)
inlinestatic

Specify the number of pvt regions.

This must be called before setting the PLYVISC of any region.

template<class TypeTag , bool enablePolymerV = GET_PROP_VALUE(TypeTag, EnablePolymer)>
static void Ewoms::BlackOilPolymerModule< TypeTag, enablePolymerV >::setNumSatRegions ( unsigned  numRegions)
inlinestatic

Specify the number of satuation regions.

This must be called before setting the PLYROCK and PLYADS of any region.

template<class TypeTag , bool enablePolymerV = GET_PROP_VALUE(TypeTag, EnablePolymer)>
static void Ewoms::BlackOilPolymerModule< TypeTag, enablePolymerV >::setPlmixpar ( unsigned  mixRegionIdx,
const Scalar &  plymixparToddLongstaff 
)
inlinestatic

Specify the maximum polymer concentration a single region.

The index of specified here must be in range [0, numMixRegionIdx)

template<class TypeTag , bool enablePolymerV = GET_PROP_VALUE(TypeTag, EnablePolymer)>
static void Ewoms::BlackOilPolymerModule< TypeTag, enablePolymerV >::setPlymax ( unsigned  mixRegionIdx,
const Scalar &  plymaxMaxConcentration 
)
inlinestatic

Specify the maximum polymer concentration a single region.

The index of specified here must be in range [0, numMixRegionIdx)

template<class TypeTag , bool enablePolymerV = GET_PROP_VALUE(TypeTag, EnablePolymer)>
static void Ewoms::BlackOilPolymerModule< TypeTag, enablePolymerV >::setPlyrock ( unsigned  satRegionIdx,
const Scalar &  plyrockDeadPoreVolume,
const Scalar &  plyrockResidualResistanceFactor,
const Scalar &  plyrockRockDensityFactor,
const Scalar &  plyrockAdsorbtionIndex,
const Scalar &  plyrockMaxAdsorbtion 
)
inlinestatic

Specify the polymer rock properties a single region.

The index of specified here must be in range [0, numSatRegions)

template<class TypeTag , bool enablePolymerV = GET_PROP_VALUE(TypeTag, EnablePolymer)>
static void Ewoms::BlackOilPolymerModule< TypeTag, enablePolymerV >::setPlyvisc ( unsigned  satRegionIdx,
const TabulatedFunction &  plyviscViscosityMultiplierTable 
)
inlinestatic

Specify the polymer viscosity a single region.

The index of specified here must be in range [0, numSatRegions)


The documentation for this class was generated from the following file: