|
Opm::GpuFlowProblem< ScalarT, MaterialLawManagerT, Storage, ThermalLawManagerT > Class Template Reference Minimal, GPU-compatible problem class. More...
Detailed Descriptiontemplate<class ScalarT, class MaterialLawManagerT, template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager> class Opm::GpuFlowProblem< ScalarT, MaterialLawManagerT, Storage, ThermalLawManagerT > Minimal, GPU-compatible problem class. Provides exactly the interface required by BlackOilIntensiveQuantities to compute a primary-variable update on the device. All cell-wise rock / fluid bookkeeping data is kept in templated Storage so the same class can be used as a CPU object (default The material law manager is held by value (so it is trivially copyable into a CUDA kernel together with the rest of the problem state).
Member Typedef Documentation◆ EclMaterialLawManager
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ EclThermalLawManager
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ MaterialLawParams
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ Scalar
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ SolidEnergyLawParams
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ ThermalConductionLawParams
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
Constructor & Destructor Documentation◆ GpuFlowProblem() [1/4]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ GpuFlowProblem() [2/4]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ GpuFlowProblem() [3/4]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
template<class CpuProblem , class StS = Storage<Scalar>, std::enable_if_t< std::is_same_v< StS, ::Opm::VectorWithDefaultAllocator< Scalar > >, int > = 0>
Construct from any CPU Iterates over all grid degrees of freedom and copies the rock / mixing-control fields used by Only enabled when this problem itself uses CPU vector storage. References Opm::GpuFlowProblem< ScalarT, MaterialLawManagerT, Storage, ThermalLawManagerT >::hasThermal. ◆ GpuFlowProblem() [4/4]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
template<class CpuProblem , class StS = Storage<Scalar>, std::enable_if_t< std::is_same_v< StS, ::Opm::gpuistl::GpuBuffer< Scalar > >, int > = 0>
Construct directly into device-resident Internally builds the per-cell rock/mixing data on the host as Only enabled when this problem itself uses Member Function Documentation◆ materialLawManager() [1/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ materialLawManager() [2/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ materialLawParams()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ maxGasDissolutionFactor()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ maxGasDissolutionFactorStorage() [1/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ maxGasDissolutionFactorStorage() [2/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ maxOilSaturation()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ maxOilSaturationStorage() [1/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ maxOilSaturationStorage() [2/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ maxOilVaporizationFactor()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ maxOilVaporizationFactorStorage() [1/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ maxOilVaporizationFactorStorage() [2/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ model()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ porosity()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ porosityStorage() [1/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ porosityStorage() [2/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ pvtRegionIndex()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
Per-cell PVT region index. Returns 0 when the GpuFlowProblem instantiation has no thermal support. ◆ pvtRegionIndexStorage() [1/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ pvtRegionIndexStorage() [2/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ rockCompPoroMultiplier()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
template<class Evaluation >
Default rock-pore-volume multiplier (1 if no compressibility). ◆ rockCompressibility()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ rockCompressibilityStorage() [1/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ rockCompressibilityStorage() [2/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ rockCompTransMultiplier()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
template<class Evaluation >
Default rock-trans multiplier (1 if no compressibility). ◆ rockFraction()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
Per-cell rock fraction (1 - effective porosity). Returns 0 when the GpuFlowProblem instantiation has no thermal support. ◆ rockFractionStorage() [1/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ rockFractionStorage() [2/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ rockReferencePressure()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ rockReferencePressureStorage() [1/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ rockReferencePressureStorage() [2/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ satnumRegionIndex()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ solidEnergyLawParams()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
Solid-energy law parameters for a single cell. Forwards to the embedded thermal-law manager. ◆ thermalConductionLawParams()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
Thermal-conduction law parameters for a single cell. Forwards to the embedded thermal-law manager. ◆ thermalLawManager() [1/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ thermalLawManager() [2/2]
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
◆ updateRelperms()
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
template<class FluidState , class... Args>
Update the relative permeabilities of all phases for a single cell, in the same way as the CPU Calls Directional relative permeabilities are not supported by the GPU problem, so the References Opm::GpuFlowProblem< ScalarT, MaterialLawManagerT, Storage, ThermalLawManagerT >::materialLawParams(). Member Data Documentation◆ hasThermal
template<class ScalarT , class MaterialLawManagerT , template< class > class Storage = ::Opm::VectorWithDefaultAllocator, class ThermalLawManagerT = ::Opm::NoThermalLawManager>
True iff the thermal-law manager carries a real fluid-system tag (anything other than Referenced by Opm::GpuFlowProblem< ScalarT, MaterialLawManagerT, Storage, ThermalLawManagerT >::GpuFlowProblem(). The documentation for this class was generated from the following file: |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||