mirror of
https://github.com/OPM/opm-simulators.git
synced 2025-02-25 18:55:30 -06:00
Merge branch 'master' into reorder_tof
This commit is contained in:
commit
214546ece9
@ -504,13 +504,13 @@ namespace Opm
|
|||||||
cq.phasemobf = &face_phasemob_[0];
|
cq.phasemobf = &face_phasemob_[0];
|
||||||
cq.voldiscr = &cell_voldisc_[0];
|
cq.voldiscr = &cell_voldisc_[0];
|
||||||
int was_adjusted = 0;
|
int was_adjusted = 0;
|
||||||
if (rock_comp_props_ == NULL || !rock_comp_props_->isActive()) {
|
if (! (rock_comp_props_ && rock_comp_props_->isActive())) {
|
||||||
was_adjusted =
|
was_adjusted =
|
||||||
cfs_tpfa_res_assemble(gg, dt, &forces, z, &cq, &trans_[0],
|
cfs_tpfa_res_assemble(gg, dt, &forces, z, &cq, &trans_[0],
|
||||||
&face_gravcap_[0], cell_press, well_bhp,
|
&face_gravcap_[0], cell_press, well_bhp,
|
||||||
&porevol_[0], h_);
|
&porevol_[0], h_);
|
||||||
} else {
|
} else {
|
||||||
was_adjusted =
|
was_adjusted =
|
||||||
cfs_tpfa_res_comprock_assemble(gg, dt, &forces, z, &cq, &trans_[0],
|
cfs_tpfa_res_comprock_assemble(gg, dt, &forces, z, &cq, &trans_[0],
|
||||||
&face_gravcap_[0], cell_press, well_bhp,
|
&face_gravcap_[0], cell_press, well_bhp,
|
||||||
&porevol_[0], &initial_porevol_[0],
|
&porevol_[0], &initial_porevol_[0],
|
||||||
|
@ -61,7 +61,7 @@ namespace Opm
|
|||||||
/// and completions does not change during the
|
/// and completions does not change during the
|
||||||
/// run. However, controls (only) are allowed
|
/// run. However, controls (only) are allowed
|
||||||
/// to change.
|
/// to change.
|
||||||
CompressibleTpfa(const UnstructuredGrid& grid,
|
CompressibleTpfa(const UnstructuredGrid& grid,
|
||||||
const BlackoilPropertiesInterface& props,
|
const BlackoilPropertiesInterface& props,
|
||||||
const RockCompressibility* rock_comp_props,
|
const RockCompressibility* rock_comp_props,
|
||||||
const LinearSolverInterface& linsolver,
|
const LinearSolverInterface& linsolver,
|
||||||
@ -71,8 +71,8 @@ namespace Opm
|
|||||||
const double* gravity,
|
const double* gravity,
|
||||||
const Wells* wells);
|
const Wells* wells);
|
||||||
|
|
||||||
/// Destructor.
|
/// Destructor.
|
||||||
~CompressibleTpfa();
|
~CompressibleTpfa();
|
||||||
|
|
||||||
/// Solve the pressure equation by Newton-Raphson scheme.
|
/// Solve the pressure equation by Newton-Raphson scheme.
|
||||||
/// May throw an exception if the number of iterations
|
/// May throw an exception if the number of iterations
|
||||||
@ -112,11 +112,11 @@ namespace Opm
|
|||||||
void solveIncrement();
|
void solveIncrement();
|
||||||
double residualNorm() const;
|
double residualNorm() const;
|
||||||
double incrementNorm() const;
|
double incrementNorm() const;
|
||||||
void computeResults(BlackoilState& state,
|
void computeResults(BlackoilState& state,
|
||||||
WellState& well_state) const;
|
WellState& well_state) const;
|
||||||
|
|
||||||
// ------ Data that will remain unmodified after construction. ------
|
// ------ Data that will remain unmodified after construction. ------
|
||||||
const UnstructuredGrid& grid_;
|
const UnstructuredGrid& grid_;
|
||||||
const BlackoilPropertiesInterface& props_;
|
const BlackoilPropertiesInterface& props_;
|
||||||
const RockCompressibility* rock_comp_props_;
|
const RockCompressibility* rock_comp_props_;
|
||||||
const LinearSolverInterface& linsolver_;
|
const LinearSolverInterface& linsolver_;
|
||||||
@ -125,12 +125,12 @@ namespace Opm
|
|||||||
const int maxiter_;
|
const int maxiter_;
|
||||||
const double* gravity_; // May be NULL
|
const double* gravity_; // May be NULL
|
||||||
const Wells* wells_; // May be NULL, outside may modify controls (only) between calls to solve().
|
const Wells* wells_; // May be NULL, outside may modify controls (only) between calls to solve().
|
||||||
std::vector<double> htrans_;
|
std::vector<double> htrans_;
|
||||||
std::vector<double> trans_ ;
|
std::vector<double> trans_ ;
|
||||||
std::vector<int> allcells_;
|
std::vector<int> allcells_;
|
||||||
|
|
||||||
// ------ Internal data for the cfs_tpfa_res solver. ------
|
// ------ Internal data for the cfs_tpfa_res solver. ------
|
||||||
struct cfs_tpfa_res_data* h_;
|
struct cfs_tpfa_res_data* h_;
|
||||||
|
|
||||||
// ------ Data that will be modified for every solve. ------
|
// ------ Data that will be modified for every solve. ------
|
||||||
std::vector<double> wellperf_gpot_;
|
std::vector<double> wellperf_gpot_;
|
||||||
|
@ -96,7 +96,7 @@ namespace Opm
|
|||||||
props_.viscosity(props_.numCells(), pressure, NULL, &allcells_[0], &visc_[0], NULL);
|
props_.viscosity(props_.numCells(), pressure, NULL, &allcells_[0], &visc_[0], NULL);
|
||||||
props_.matrix(props_.numCells(), pressure, NULL, &allcells_[0], &A_[0], NULL);
|
props_.matrix(props_.numCells(), pressure, NULL, &allcells_[0], &A_[0], NULL);
|
||||||
|
|
||||||
// Check non-miscibility requirement (only done for first cell).
|
// Check immiscibility requirement (only done for first cell).
|
||||||
if (A_[1] != 0.0 || A_[2] != 0.0) {
|
if (A_[1] != 0.0 || A_[2] != 0.0) {
|
||||||
THROW("TransportModelCompressibleTwophase requires a property object without miscibility.");
|
THROW("TransportModelCompressibleTwophase requires a property object without miscibility.");
|
||||||
}
|
}
|
||||||
|
@ -76,7 +76,7 @@ namespace Opm
|
|||||||
std::vector<double>& saturation);
|
std::vector<double>& saturation);
|
||||||
|
|
||||||
//// Return the number of iterations used by the reordering solver.
|
//// Return the number of iterations used by the reordering solver.
|
||||||
//// \param[out] vector of iteration per cell
|
//// \return vector of iteration per cell
|
||||||
const std::vector<int>& getReorderIterations() const;
|
const std::vector<int>& getReorderIterations() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
@ -243,9 +243,9 @@ namespace Opm
|
|||||||
// matrix data.
|
// matrix data.
|
||||||
std::fill(surfacevol, surfacevol + n*np, 0.0);
|
std::fill(surfacevol, surfacevol + n*np, 0.0);
|
||||||
for (int i = 0; i < n; ++i) {
|
for (int i = 0; i < n; ++i) {
|
||||||
for (int row = 0; row < np; ++row) {
|
for (int col = 0; col < np; ++col) {
|
||||||
for (int col = 0; col < np; ++col) {
|
for (int row = 0; row < np; ++row) {
|
||||||
surfacevol[i*np + row] += A[i*np*np + row*np + col] * saturation[i*np + col];
|
surfacevol[i*np + row] += A[i*np*np + row + col*np] * saturation[i*np + col];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user