Public Types |
Public Member Functions |
Static Public Member Functions |
Protected Member Functions |
Protected Attributes |
List of all members
Opm::WellContributions< Scalar > Class Template Reference
Inheritance diagram for Opm::WellContributions< Scalar >:
Detailed Descriptiontemplate<class Scalar> class Opm::WellContributions< Scalar > This class serves to eliminate the need to include the WellContributions into the matrix (with –matrix-add-well-contributions=true) for the cusparseSolver or openclSolver. If the –matrix-add-well-contributions commandline parameter is true, this class should still be used, but be empty. StandardWell and MultisegmentWell are supported for both cusparseSolver and openclSolver. A single instance (or pointer) of this class is passed to the BdaSolver. For StandardWell, this class contains all the data and handles the computation. For MultisegmentWell, the vector 'multisegments' contains all the data. For more information, check the MultisegmentWellContribution class. A StandardWell uses C, D and B and performs y -= (C^T * (D^-1 * (B*x))) B and C are vectors, disguised as matrices and contain blocks of StandardWell::numEq by StandardWell::numStaticWellEq D is a block, disguised as matrix, the square block has size StandardWell::numStaticWellEq. D is actually stored as D^-1 B*x and D*B*x are a vector with numStaticWellEq doubles C*D*B*x is a blocked matrix with a symmetric sparsity pattern, contains square blocks with size numEq. For every columnindex i, j in StandardWell::duneB_, there is a block on (i, j) in C*D*B*x. This class is used in 3 phases:
Member Typedef Documentation◆ UMFPackIndex
template<class Scalar >
Member Enumeration Documentation◆ MatrixType
template<class Scalar >
StandardWell has C, D and B matrices that need to be copied.
Constructor & Destructor Documentation◆ ~WellContributions()
template<class Scalar >
Empty destructor. Member Function Documentation◆ addMatrix()
template<class Scalar >
Store a matrix in this object, in blocked csr format, can only be called after alloc() is called
◆ addMultisegmentWellContribution()
template<class Scalar >
Add a MultisegmentWellContribution, actually creates an object on heap that is destroyed in the destructor Matrices C and B are passed in Blocked CSR, matrix D in CSC
◆ addNumBlocks()
template<class Scalar >
Indicate how large the next StandardWell is, this function cannot be called after alloc() is called
◆ alloc()
template<class Scalar >
Allocate memory for the StandardWells. ◆ APIaddMatrix()
template<class Scalar >
Api specific upload of matrix. Reimplemented in Opm::WellContributionsCuda< Scalar >, Opm::WellContributionsOCL< Scalar >, and Opm::WellContributionsRocsparse< Scalar >. ◆ APIalloc()
template<class Scalar >
API specific allocation. Reimplemented in Opm::WellContributionsCuda< Scalar >, Opm::WellContributionsOCL< Scalar >, and Opm::WellContributionsRocsparse< Scalar >. ◆ create()
template<class Scalar >
◆ getNumWells()
template<class Scalar >
◆ setBlockSize()
template<class Scalar >
Indicate how large the blocks of the StandardWell (C and B) are
◆ setVectorSize()
template<class Scalar >
Set size of vector that the wells are applied to
Member Data Documentation◆ allocated
template<class Scalar >
◆ dim
template<class Scalar >
◆ dim_wells
template<class Scalar >
◆ multisegments
template<class Scalar >
◆ N
template<class Scalar >
◆ num_blocks
template<class Scalar >
◆ num_blocks_so_far
template<class Scalar >
◆ num_ms_wells
template<class Scalar >
Referenced by Opm::WellContributions< Scalar >::getNumWells(). ◆ num_std_wells
template<class Scalar >
Referenced by Opm::WellContributions< Scalar >::getNumWells(). ◆ num_std_wells_so_far
template<class Scalar >
◆ val_pointers
template<class Scalar >
The documentation for this class was generated from the following files: |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||