hybsys_global.h File Reference #include <opm/core/grid.h> #include <opm/core/pressure/legacy_well.h> #include <opm/core/linalg/sparse_sys.h>
Include dependency graph for hybsys_global.h:
Go to the source code of this file.
Detailed DescriptionRoutines to assist in the formation and assembly of a global system of simultaneous linear equations derived from a Schur complement reduction of an original hybrid block system. We assume that the original block system of linear equations is given by
in which the block matrices and are assumed to have a particularly simple structure and the matrix is block diagonal. The Schur complement reduction process (a block Gaussian elimination) then produces the following block system of simultaneous linear equations
in which
The component matrices and are given by
The primary degrees of freedom, , may then be recovered by solving the Schur complement system
from which the derived quantities and may be computed through a back-substitution process. The functions in this module assist in the creation of the sparsity pattern of matrix and in the global assembling of values into the matrix and the right-hand side vector . Specifically, function hybsys_define_globconn() builds the sparsity pattern of while functions hybsys_global_assemble_cell() and hybsys_global_assemble_well_sym() perform the task of adding matrix and right-hand side values from local contributions. Function Documentation
Construct sparse matrix capable of managing a (reduced) hybrid system of simultaneous linear equations with one degree of freedom for each grid interface and each well. The return value is suitable for use in pressure solvers based on Schur-complement reductions such as the mimetic finite-difference or multiscale mixed finite-element classes of discretisations. In typical applications, the matrix will be cleared using function csrmatrix_zero() and then filled using an assembly process similar to the traditional finite-element algorithm. Functions hybsys_global_assemble_cell() and hybsys_global_assemble_well_sys() may be used to assist such an assembly process.
Assemble local contributions into global system of simultaneous linear equations. The contributions will typically have been computed using function hybsys_schur_comp_symm() and function hybsys_cellcontrib_symm() or some of the related functions.
Assemble local contributions from single cell's well connections (perforations) into global system of simultaneous linear equations. This function assumes that the connection strength from cell to well equals the connection strength from well to cell. In other words, that the numerical values of the well contributions are symmetric. The contributions are typically computed using functions hybsys_well_schur_comp_symm() and hybsys_well_cellcontrib_symm().
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||