From 62e73a8a677f8bd626a871b583e1514cbf1db255 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A5rd=20Skaflestad?= Date: Tue, 18 Oct 2011 23:19:53 +0200 Subject: [PATCH] Grab copy of 'compr_quant' module. --- src/compr_quant_general.h | 70 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 src/compr_quant_general.h diff --git a/src/compr_quant_general.h b/src/compr_quant_general.h new file mode 100644 index 000000000..b35311768 --- /dev/null +++ b/src/compr_quant_general.h @@ -0,0 +1,70 @@ +/* + Copyright 2010 SINTEF ICT, Applied Mathematics. + + This file is part of the Open Porous Media project (OPM). + + OPM is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OPM is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with OPM. If not, see . +*/ + +#ifndef OPM_COMPR_QUANT_HEADER_INCLUDED +#define OPM_COMPR_QUANT_HEADER_INCLUDED + +#include + +#include "grid.h" + +#ifdef __cplusplus +extern "C" { +#endif + +struct compr_quantities { + int nphases; /* Number of phases/components */ + + double *Ac; /* RB^{-1} per cell */ + double *dAc; /* d/dp (RB^{-1}) per cell */ + double *Af; /* RB^{-1} per face */ + double *phasemobf; /* Phase mobility per face */ + double *voldiscr; /* Volume discrepancy per cell */ +}; + +struct compr_quantities * +compr_quantities_allocate(size_t nc, size_t nf, int np); + +void +compr_quantities_deallocate(struct compr_quantities *cq); + +void +compr_flux_term(grid_t *G, + const double *fflux, + const double *zeta, + double *Biv); + +void +compr_accum_term(size_t nc, + double dt, + const double *porevol, + const double *totcompr, + double *P); + +void +compr_src_add_press_accum(size_t nc, + const double *p0, + const double *P, + double *src); + +#ifdef __cplusplus +} +#endif + +#endif /* OPM_COMPR_QUANT_HEADER_INCLUDED */