Opm::ForchheimerExtensiveQuantities< TypeTag > Class Template Reference Provides the Forchheimer flux module. More...
Inheritance diagram for Opm::ForchheimerExtensiveQuantities< TypeTag >:
Detailed Descriptiontemplate<class TypeTag> class Opm::ForchheimerExtensiveQuantities< TypeTag > Provides the Forchheimer flux module. The commonly used Darcy relation looses its validity for Reynolds numbers . If one encounters flow velocities in porous media above this threshold, the Forchheimer approach can be used. Like the Darcy approach, it is a relation of with the fluid velocity in terms of the gradient of pressure potential. However, this relation is not linear (as in the Darcy case) any more. Therefore, the Newton scheme is used to solve the Forchheimer equation. This velocity is then used like the Darcy velocity e.g. by the local residual. Note that for Reynolds numbers above the standard Forchheimer relation also looses it's validity. The Forchheimer equation is given by the following relation:
Where is the modified Ergun parameter and is the passability which is given by a closure relation (usually it is assumed to be identical to the relative permeability). To avoid numerical problems, the relation implemented by this class multiplies both sides with , so we get
Member Function Documentation◆ calculateBoundaryFluxes_()
template<class TypeTag >
Calculate the volumetric flux rates of all phases at the domain boundary. References Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateForchheimerFlux_(), Opm::DarcyExtensiveQuantities< TypeTag >::filterVelocity_, and Opm::DarcyExtensiveQuantities< TypeTag >::volumeFlux_. ◆ calculateBoundaryGradients_()
template<class TypeTag >
template<class FluidState >
References Opm::DarcyExtensiveQuantities< TypeTag >::calculateBoundaryGradients_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::density_, Opm::ForchheimerExtensiveQuantities< TypeTag >::ergunCoefficient_, Opm::DarcyExtensiveQuantities< TypeTag >::interiorDofIdx_, Opm::ForchheimerExtensiveQuantities< TypeTag >::isDiagonal_(), Opm::DarcyExtensiveQuantities< TypeTag >::K_, Opm::ForchheimerExtensiveQuantities< TypeTag >::mobilityPassabilityRatio_, and Opm::ForchheimerExtensiveQuantities< TypeTag >::sqrtK_. ◆ calculateFilterVelocity_()
template<class TypeTag >
◆ calculateFluxes_()
template<class TypeTag >
Calculate the volumetric fluxes of all phases. The pressure potentials and upwind directions must already be determined before calling this method! References Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateForchheimerFlux_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::ergunCoefficient_, Opm::DarcyExtensiveQuantities< TypeTag >::filterVelocity_, and Opm::DarcyExtensiveQuantities< TypeTag >::volumeFlux_. ◆ calculateForchheimerFlux_()
template<class TypeTag >
References Opm::DarcyExtensiveQuantities< TypeTag >::filterVelocity_, and Opm::ForchheimerExtensiveQuantities< TypeTag >::gradForchheimerResid_(). Referenced by Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateBoundaryFluxes_(), and Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateFluxes_(). ◆ calculateGradients_()
template<class TypeTag >
References Opm::DarcyExtensiveQuantities< TypeTag >::calculateGradients_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::density_, Opm::ForchheimerExtensiveQuantities< TypeTag >::ergunCoefficient_, Opm::DarcyExtensiveQuantities< TypeTag >::exteriorDofIdx_, Opm::DarcyExtensiveQuantities< TypeTag >::interiorDofIdx_, Opm::ForchheimerExtensiveQuantities< TypeTag >::isDiagonal_(), Opm::DarcyExtensiveQuantities< TypeTag >::K_, Opm::ForchheimerExtensiveQuantities< TypeTag >::mobilityPassabilityRatio_, Opm::ForchheimerExtensiveQuantities< TypeTag >::sqrtK_, and Opm::DarcyExtensiveQuantities< TypeTag >::upstreamIndex_(). ◆ downstreamIndex_()
template<class TypeTag >
◆ ergunCoefficient()
template<class TypeTag >
Return the Ergun coefficent at the face's integration point. References Opm::ForchheimerExtensiveQuantities< TypeTag >::ergunCoefficient_. ◆ filterVelocity()
template<class TypeTag >
Return the filter velocity of a fluid phase at the face's integration point [m/s].
References Opm::DarcyExtensiveQuantities< TypeTag >::filterVelocity_. ◆ forchheimerResid_()
template<class TypeTag >
References Opm::ForchheimerExtensiveQuantities< TypeTag >::density_, Opm::ForchheimerExtensiveQuantities< TypeTag >::ergunCoefficient_, Opm::DarcyExtensiveQuantities< TypeTag >::filterVelocity_, Opm::ForchheimerExtensiveQuantities< TypeTag >::isDiagonal_(), Opm::DarcyExtensiveQuantities< TypeTag >::K_, Opm::DarcyExtensiveQuantities< TypeTag >::mobility_, Opm::ForchheimerExtensiveQuantities< TypeTag >::mobilityPassabilityRatio(), Opm::ForchheimerExtensiveQuantities< TypeTag >::mobilityPassabilityRatio_, Opm::DarcyExtensiveQuantities< TypeTag >::potentialGrad_, and Opm::ForchheimerExtensiveQuantities< TypeTag >::sqrtK_. Referenced by Opm::ForchheimerExtensiveQuantities< TypeTag >::gradForchheimerResid_(). ◆ gradForchheimerResid_()
template<class TypeTag >
◆ intrinsicPermability()
template<class TypeTag >
Returns the intrinsic permeability tensor for a given sub-control volume face. References Opm::DarcyExtensiveQuantities< TypeTag >::K_. ◆ isDiagonal_()
template<class TypeTag >
Check whether all off-diagonal entries of a tensor are zero.
Referenced by Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateBoundaryGradients_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateGradients_(), and Opm::ForchheimerExtensiveQuantities< TypeTag >::forchheimerResid_(). ◆ mobilityPassabilityRatio()
template<class TypeTag >
Return the ratio of the mobility divided by the passability at the face's integration point for a given fluid phase. Usually, that's the inverse of the viscosity. References Opm::ForchheimerExtensiveQuantities< TypeTag >::mobilityPassabilityRatio_. Referenced by Opm::ForchheimerExtensiveQuantities< TypeTag >::forchheimerResid_(). ◆ potentialGrad()
template<class TypeTag >
Return the pressure potential gradient of a fluid phase at the face's integration point [Pa/m].
References Opm::DarcyExtensiveQuantities< TypeTag >::potentialGrad_. ◆ upstreamIndex_()
template<class TypeTag >
◆ volumeFlux()
template<class TypeTag >
Return the volume flux of a fluid phase at the face's integration point . This is the fluid volume of a phase per second and per square meter of face area.
References Opm::DarcyExtensiveQuantities< TypeTag >::volumeFlux_. Member Data Documentation◆ density_
template<class TypeTag >
◆ downstreamDofIdx_
template<class TypeTag >
◆ ergunCoefficient_
template<class TypeTag >
Referenced by Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateBoundaryGradients_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateFluxes_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateGradients_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::ergunCoefficient(), and Opm::ForchheimerExtensiveQuantities< TypeTag >::forchheimerResid_(). ◆ exteriorDofIdx_
template<class TypeTag >
◆ filterVelocity_
template<class TypeTag >
Referenced by Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateBoundaryFluxes_(), Opm::DarcyExtensiveQuantities< TypeTag >::calculateBoundaryFluxes_(), Opm::DarcyExtensiveQuantities< TypeTag >::calculateFilterVelocity_(), Opm::DarcyExtensiveQuantities< TypeTag >::calculateFluxes_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateFluxes_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateForchheimerFlux_(), Opm::DarcyExtensiveQuantities< TypeTag >::filterVelocity(), Opm::ForchheimerExtensiveQuantities< TypeTag >::forchheimerResid_(), and Opm::ForchheimerExtensiveQuantities< TypeTag >::gradForchheimerResid_(). ◆ interiorDofIdx_
template<class TypeTag >
Referenced by Opm::DarcyExtensiveQuantities< TypeTag >::calculateBoundaryGradients_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateBoundaryGradients_(), Opm::DarcyExtensiveQuantities< TypeTag >::calculateGradients_(), and Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateGradients_(). ◆ K_
template<class TypeTag >
Referenced by Opm::DarcyExtensiveQuantities< TypeTag >::calculateBoundaryGradients_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateBoundaryGradients_(), Opm::DarcyExtensiveQuantities< TypeTag >::calculateFilterVelocity_(), Opm::DarcyExtensiveQuantities< TypeTag >::calculateGradients_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateGradients_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::forchheimerResid_(), and Opm::DarcyExtensiveQuantities< TypeTag >::intrinsicPermability(). ◆ mobility_
template<class TypeTag >
◆ mobilityPassabilityRatio_
template<class TypeTag >
Referenced by Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateBoundaryGradients_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateGradients_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::forchheimerResid_(), and Opm::ForchheimerExtensiveQuantities< TypeTag >::mobilityPassabilityRatio(). ◆ potentialGrad_
template<class TypeTag >
Referenced by Opm::DarcyExtensiveQuantities< TypeTag >::calculateBoundaryGradients_(), Opm::DarcyExtensiveQuantities< TypeTag >::calculateFilterVelocity_(), Opm::DarcyExtensiveQuantities< TypeTag >::calculateGradients_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::forchheimerResid_(), and Opm::DarcyExtensiveQuantities< TypeTag >::potentialGrad(). ◆ sqrtK_
template<class TypeTag >
◆ upstreamDofIdx_
template<class TypeTag >
◆ volumeFlux_
template<class TypeTag >
Referenced by Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateBoundaryFluxes_(), Opm::DarcyExtensiveQuantities< TypeTag >::calculateBoundaryFluxes_(), Opm::DarcyExtensiveQuantities< TypeTag >::calculateFluxes_(), Opm::ForchheimerExtensiveQuantities< TypeTag >::calculateFluxes_(), and Opm::DarcyExtensiveQuantities< TypeTag >::volumeFlux(). The documentation for this class was generated from the following file: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||