OGS
|
Definition at line 33 of file TwoPhaseFlowWithPrhoMaterialProperties.h.
#include <TwoPhaseFlowWithPrhoMaterialProperties.h>
Public Types | |
using | ArrayType = MaterialLib::Fluid::FluidProperty::ArrayType |
Public Member Functions | |
TwoPhaseFlowWithPrhoMaterialProperties (MeshLib::PropertyVector< int > const *material_ids, std::vector< std::unique_ptr< MaterialLib::PorousMedium::CapillaryPressureSaturation > > &&capillary_pressure_models, std::vector< std::unique_ptr< MaterialLib::PorousMedium::RelativePermeability > > &&relative_permeability_models) | |
int | getMaterialID (const std::size_t element_id) |
double | getNonwetRelativePermeability (const double t, const ParameterLib::SpatialPosition &pos, const double p, const double T, const double saturation) const |
double | getWetRelativePermeability (const double t, const ParameterLib::SpatialPosition &pos, const double p, const double T, const double saturation) const |
double | getCapillaryPressure (const int material_id, const double t, const ParameterLib::SpatialPosition &pos, const double p, const double T, const double saturation) const |
double | getCapillaryPressureDerivative (const int material_id, const double t, const ParameterLib::SpatialPosition &pos, const double p, const double T, const double saturation) const |
bool | computeConstitutiveRelation (double const t, ParameterLib::SpatialPosition const &x, const int material_id, double const pg, double const X, double const T, double &Sw, double &X_m, double &dsw_dpg, double &dsw_dX, double &dxm_dpg, double &dxm_dX) |
Protected Attributes | |
MeshLib::PropertyVector< int > const *const | _material_ids |
std::vector< std::unique_ptr< MaterialLib::PorousMedium::CapillaryPressureSaturation > > | _capillary_pressure_models |
std::vector< std::unique_ptr< MaterialLib::PorousMedium::RelativePermeability > > | _relative_permeability_models |
Private Types | |
using | ResidualVector = Eigen::Matrix<double, jacobian_residual_size, 1> |
using | JacobianMatrix |
using | UnknownVector = Eigen::Matrix<double, jacobian_residual_size, 1> |
Private Member Functions | |
void | calculateResidual (const int material_id, double const pl, double const X, double const T, double Sw, double rho_h2_wet, ResidualVector &res) |
void | calculateJacobian (const int material_id, double const t, ParameterLib::SpatialPosition const &x, double const pl, double const X, double const T, JacobianMatrix &Jac, double Sw, double rho_h2_wet) |
double | calculatedSwdP (double pl, double S, double rho_wet_h2, double const T, int current_material_id) const |
double | calculatedSwdX (double const pl, const double, const double S, const double rho_wet_h2, double const T, int current_material_id) const |
double | calculatedXmdX (double pl, double Sw, double rho_wet_h2, double dSwdX, int current_material_id) const |
double | calculatedXmdP (double pl, double Sw, double rho_wet_h2, double dSwdP, int current_material_id) const |
Static Private Member Functions | |
static double | calculateEquilibiumRhoWetLight (double const pg, double const Sw, double const rho_wet_h2) |
static double | calculateSaturation (double, double X, double Sw, double rho_wet_h2, double rho_nonwet_h2, double) |
Static Private Attributes | |
static int const | jacobian_residual_size = 2 |
using ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoMaterialProperties::ArrayType = MaterialLib::Fluid::FluidProperty::ArrayType |
Definition at line 36 of file TwoPhaseFlowWithPrhoMaterialProperties.h.
|
private |
Definition at line 93 of file TwoPhaseFlowWithPrhoMaterialProperties.h.
|
private |
Definition at line 92 of file TwoPhaseFlowWithPrhoMaterialProperties.h.
|
private |
Definition at line 96 of file TwoPhaseFlowWithPrhoMaterialProperties.h.
ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoMaterialProperties::TwoPhaseFlowWithPrhoMaterialProperties | ( | MeshLib::PropertyVector< int > const * | material_ids, |
std::vector< std::unique_ptr< MaterialLib::PorousMedium::CapillaryPressureSaturation > > && | capillary_pressure_models, | ||
std::vector< std::unique_ptr< MaterialLib::PorousMedium::RelativePermeability > > && | relative_permeability_models ) |
Definition at line 36 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References DBUG().
|
private |
Calculate the derivatives using the analytical way
Definition at line 220 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References _capillary_pressure_models.
Referenced by computeConstitutiveRelation().
|
private |
Calculate the derivatives using the analytical way
Definition at line 246 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References _capillary_pressure_models.
Referenced by computeConstitutiveRelation().
|
private |
Calculate the derivatives using the analytical way
Definition at line 292 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References _capillary_pressure_models.
Referenced by computeConstitutiveRelation().
|
private |
Calculate the derivatives using the analytical way
Definition at line 272 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References _capillary_pressure_models.
Referenced by computeConstitutiveRelation().
|
staticprivate |
Complementary condition 1 for calculating molar fraction of light component in the liquid phase
Definition at line 200 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
Referenced by calculateResidual().
|
private |
Calculates the Jacobian.
Definition at line 169 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References _capillary_pressure_models.
Referenced by computeConstitutiveRelation().
|
private |
Calculates the residual vector.
Definition at line 156 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References _capillary_pressure_models, calculateEquilibiumRhoWetLight(), and calculateSaturation().
Referenced by computeConstitutiveRelation().
|
staticprivate |
Complementary condition 2 for calculating the saturation
Definition at line 210 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
Referenced by calculateResidual().
bool ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoMaterialProperties::computeConstitutiveRelation | ( | double const | t, |
ParameterLib::SpatialPosition const & | x, | ||
const int | material_id, | ||
double const | pg, | ||
double const | X, | ||
double const | T, | ||
double & | Sw, | ||
double & | X_m, | ||
double & | dsw_dpg, | ||
double & | dsw_dX, | ||
double & | dxm_dpg, | ||
double & | dxm_dX ) |
Definition at line 94 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References calculatedSwdP(), calculatedSwdX(), calculatedXmdP(), calculatedXmdX(), calculateJacobian(), calculateResidual(), and NumLib::NewtonRaphson< LinearSolver, JacobianMatrixUpdate, ResidualUpdate, SolutionUpdate >::solve().
double ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoMaterialProperties::getCapillaryPressure | ( | const int | material_id, |
const double | t, | ||
const ParameterLib::SpatialPosition & | pos, | ||
const double | p, | ||
const double | T, | ||
const double | saturation ) const |
Definition at line 77 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References _capillary_pressure_models.
double ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoMaterialProperties::getCapillaryPressureDerivative | ( | const int | material_id, |
const double | t, | ||
const ParameterLib::SpatialPosition & | pos, | ||
const double | p, | ||
const double | T, | ||
const double | saturation ) const |
Definition at line 86 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References _capillary_pressure_models.
int ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoMaterialProperties::getMaterialID | ( | const std::size_t | element_id | ) |
Definition at line 51 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References _material_ids.
double ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoMaterialProperties::getNonwetRelativePermeability | ( | const double | t, |
const ParameterLib::SpatialPosition & | pos, | ||
const double | p, | ||
const double | T, | ||
const double | saturation ) const |
Definition at line 63 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References _relative_permeability_models.
double ProcessLib::TwoPhaseFlowWithPrho::TwoPhaseFlowWithPrhoMaterialProperties::getWetRelativePermeability | ( | const double | t, |
const ParameterLib::SpatialPosition & | pos, | ||
const double | p, | ||
const double | T, | ||
const double | saturation ) const |
Definition at line 70 of file TwoPhaseFlowWithPrhoMaterialProperties.cpp.
References _relative_permeability_models.
|
protected |
Definition at line 85 of file TwoPhaseFlowWithPrhoMaterialProperties.h.
Referenced by calculatedSwdP(), calculatedSwdX(), calculatedXmdP(), calculatedXmdX(), calculateJacobian(), calculateResidual(), getCapillaryPressure(), and getCapillaryPressureDerivative().
|
protected |
Use two phase models for different material zones. Material IDs must be given as mesh element properties.
Definition at line 81 of file TwoPhaseFlowWithPrhoMaterialProperties.h.
Referenced by getMaterialID().
|
protected |
Definition at line 88 of file TwoPhaseFlowWithPrhoMaterialProperties.h.
Referenced by getNonwetRelativePermeability(), and getWetRelativePermeability().
|
staticprivate |
Definition at line 91 of file TwoPhaseFlowWithPrhoMaterialProperties.h.