ifs_tpfa.h
Go to the documentation of this file.
1/*
2 Copyright 2010 SINTEF ICT, Applied Mathematics.
3
4 This file is part of the Open Porous Media project (OPM).
5
6 OPM is free software: you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation, either version 3 of the License, or
9 (at your option) any later version.
10
11 OPM is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with OPM. If not, see <http://www.gnu.org/licenses/>.
18*/
19
20#ifndef OPM_IFS_TPFA_HEADER_INCLUDED
21#define OPM_IFS_TPFA_HEADER_INCLUDED
22
33#include <opm/core/grid.h>
34
35#ifdef __cplusplus
36extern "C" {
37#endif
38
39struct ifs_tpfa_impl;
40struct CSRMatrix;
42struct Wells;
43
49 struct CSRMatrix *A;
50 double *b;
51 double *x;
53 struct ifs_tpfa_impl *pimpl;
54};
55
60 double *cell_press;
61 double *face_flux ;
63 double *well_press;
64 double *well_flux ;
65};
66
71 const double *src;
72 const struct FlowBoundaryConditions *bc ;
74 const struct Wells *W ;
75 const double *totmob;
76 const double *wdp ;
77};
78
79
90struct ifs_tpfa_data *
91ifs_tpfa_construct(struct UnstructuredGrid *G,
92 struct Wells *W);
93
94
104int
105ifs_tpfa_assemble(struct UnstructuredGrid *G ,
106 const struct ifs_tpfa_forces *F ,
107 const double *trans ,
108 const double *gpress,
109 struct ifs_tpfa_data *h );
110
111int
112ifs_tpfa_assemble_comprock(struct UnstructuredGrid *G ,
113 const struct ifs_tpfa_forces *F ,
114 const double *trans ,
115 const double *gpress ,
116 const double *porevol ,
117 const double *rock_comp,
118 const double dt ,
119 const double *pressure ,
120 struct ifs_tpfa_data *h );
121int
122ifs_tpfa_assemble_comprock_increment(struct UnstructuredGrid *G ,
123 const struct ifs_tpfa_forces *F ,
124 const double *trans ,
125 const double *gpress ,
126 const double *porevol ,
127 const double *rock_comp,
128 const double dt ,
129 const double *prev_pressure ,
130 const double *initial_porevolume,
131 struct ifs_tpfa_data *h );
132
133
134void
135ifs_tpfa_press_flux(struct UnstructuredGrid *G ,
136 const struct ifs_tpfa_forces *F ,
137 const double *trans,
138 struct ifs_tpfa_data *h ,
139 struct ifs_tpfa_solution *soln );
140
141void
143
144#ifdef __cplusplus
145}
146#endif
147
148#endif /* OPM_IFS_TPFA_HEADER_INCLUDED */
int ifs_tpfa_assemble(struct UnstructuredGrid *G, const struct ifs_tpfa_forces *F, const double *trans, const double *gpress, struct ifs_tpfa_data *h)
void ifs_tpfa_destroy(struct ifs_tpfa_data *h)
int ifs_tpfa_assemble_comprock_increment(struct UnstructuredGrid *G, const struct ifs_tpfa_forces *F, const double *trans, const double *gpress, const double *porevol, const double *rock_comp, const double dt, const double *prev_pressure, const double *initial_porevolume, struct ifs_tpfa_data *h)
struct ifs_tpfa_data * ifs_tpfa_construct(struct UnstructuredGrid *G, struct Wells *W)
void ifs_tpfa_press_flux(struct UnstructuredGrid *G, const struct ifs_tpfa_forces *F, const double *trans, struct ifs_tpfa_data *h, struct ifs_tpfa_solution *soln)
int ifs_tpfa_assemble_comprock(struct UnstructuredGrid *G, const struct ifs_tpfa_forces *F, const double *trans, const double *gpress, const double *porevol, const double *rock_comp, const double dt, const double *pressure, struct ifs_tpfa_data *h)
Definition: sparse_sys.h:39
Definition: flow_bc.h:39
Definition: wells.h:51
Definition: ifs_tpfa.h:48
struct ifs_tpfa_impl * pimpl
Definition: ifs_tpfa.h:53
double * x
Definition: ifs_tpfa.h:51
double * b
Definition: ifs_tpfa.h:50
struct CSRMatrix * A
Definition: ifs_tpfa.h:49
Definition: ifs_tpfa.h:70
const struct Wells * W
Definition: ifs_tpfa.h:74
const struct FlowBoundaryConditions * bc
Definition: ifs_tpfa.h:72
const double * totmob
Definition: ifs_tpfa.h:75
const double * src
Definition: ifs_tpfa.h:71
const double * wdp
Definition: ifs_tpfa.h:76
Definition: ifs_tpfa.h:59
double * cell_press
Definition: ifs_tpfa.h:60
double * well_flux
Definition: ifs_tpfa.h:64
double * face_flux
Definition: ifs_tpfa.h:61
double * well_press
Definition: ifs_tpfa.h:63