mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Add partial Doxygen markup to public interfaces.
More work needed.
This commit is contained in:
parent
527f2aef52
commit
81f4ab5dd9
@ -20,6 +20,16 @@
|
|||||||
#ifndef OPM_IFS_TPFA_HEADER_INCLUDED
|
#ifndef OPM_IFS_TPFA_HEADER_INCLUDED
|
||||||
#define OPM_IFS_TPFA_HEADER_INCLUDED
|
#define OPM_IFS_TPFA_HEADER_INCLUDED
|
||||||
|
|
||||||
|
/**
|
||||||
|
* \file
|
||||||
|
* Interfaces and data structures to assemble a system of simultaneous linear
|
||||||
|
* equations discretising a flow problem that is either incompressible or
|
||||||
|
* features rock compressibility using the two-point flux approximation method.
|
||||||
|
*
|
||||||
|
* Includes support for reconstructing the Darcy flux field as well as well
|
||||||
|
* connection fluxes.
|
||||||
|
*/
|
||||||
|
|
||||||
#include <opm/core/grid.h>
|
#include <opm/core/grid.h>
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
@ -31,37 +41,66 @@ struct CSRMatrix;
|
|||||||
struct FlowBoundaryConditions;
|
struct FlowBoundaryConditions;
|
||||||
struct Wells;
|
struct Wells;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Main data structure presenting a view of an assembled system of simultaneous
|
||||||
|
* linear equations which may be solved using external software.
|
||||||
|
*/
|
||||||
struct ifs_tpfa_data {
|
struct ifs_tpfa_data {
|
||||||
struct CSRMatrix *A;
|
struct CSRMatrix *A; /**< Coefficient matrix */
|
||||||
double *b;
|
double *b; /**< Right-hand side */
|
||||||
double *x;
|
double *x; /**< Solution */
|
||||||
|
|
||||||
struct ifs_tpfa_impl *pimpl;
|
struct ifs_tpfa_impl *pimpl; /**< Internal management structure */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Solution variables.
|
||||||
|
*/
|
||||||
struct ifs_tpfa_solution {
|
struct ifs_tpfa_solution {
|
||||||
double *cell_press;
|
double *cell_press; /**< Cell pressures */
|
||||||
double *face_flux ;
|
double *face_flux ; /**< Interface fluxes */
|
||||||
|
|
||||||
double *well_press; /* BHP */
|
double *well_press; /**< Bottom-hole pressures for each well */
|
||||||
double *well_flux ; /* Perforation (total) fluxes */
|
double *well_flux ; /**< Well connection total fluxes */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Driving forces pertaining to a particular model setup.
|
||||||
|
*/
|
||||||
struct ifs_tpfa_forces {
|
struct ifs_tpfa_forces {
|
||||||
const double *src;
|
const double *src; /**< Explicit source terms */
|
||||||
const struct FlowBoundaryConditions *bc ;
|
const struct FlowBoundaryConditions *bc ; /**< Boundary conditions */
|
||||||
|
|
||||||
const struct Wells *W ;
|
const struct Wells *W ; /**< Well topology */
|
||||||
const double *totmob;
|
const double *totmob; /**< Total mobility in each cell */
|
||||||
const double *wdp ;
|
const double *wdp ; /**< Gravity adjustment at each perforation */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Allocate TPFA management structure capable of assembling a system of
|
||||||
|
* simultaneous linear equations corresponding to a particular grid and well
|
||||||
|
* configuration.
|
||||||
|
*
|
||||||
|
* @param[in] G Grid.
|
||||||
|
* @param[in] W Well topology.
|
||||||
|
* @return Fully formed TPFA management structure if successful, @c NULL in case
|
||||||
|
* of allocation failure.
|
||||||
|
*/
|
||||||
struct ifs_tpfa_data *
|
struct ifs_tpfa_data *
|
||||||
ifs_tpfa_construct(struct UnstructuredGrid *G,
|
ifs_tpfa_construct(struct UnstructuredGrid *G,
|
||||||
struct Wells *W);
|
struct Wells *W);
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param[in] G
|
||||||
|
* @param[in] F
|
||||||
|
* @param[in] trans
|
||||||
|
* @param[in] gpress
|
||||||
|
* @param[in,out] h
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
int
|
int
|
||||||
ifs_tpfa_assemble(struct UnstructuredGrid *G ,
|
ifs_tpfa_assemble(struct UnstructuredGrid *G ,
|
||||||
const struct ifs_tpfa_forces *F ,
|
const struct ifs_tpfa_forces *F ,
|
||||||
|
Loading…
Reference in New Issue
Block a user