ICFERST
22-06
Reservoir simulator based on DCVFEM, Dynamic Mesh optimisation and Surface-based modelling
|
This module contains all that is required to perform compositional modelling. NOTE THAT THIS FUNCTIONALITY HAS NEVER BEEN FULLY IMPLEMENTED ONLY INERT COMPOSITIONAL WORKS CURRENTLY. More...
Functions/Subroutines | |
subroutine | calculate_componentabsorptionterm (packed_state, icomp, cv_ndgln, Mdims, denold, volfra_pore, mass_ele, comp_absorb) |
Calculate compositional model linkage between the phase expressed in COMP_ABSORB. Use values from the previous time step so its easier to converge. alpha_beta is the scaling coeff. of the compositional model e.g. =1.0. More... | |
subroutine | calculate_componentdiffusionterm (packed_state, Mdims, CV_GIdims, CV_funs, mat_ndgln, u_ndgln, x_ndgln, ncomp_diff_coef, comp_diffusion_opt, comp_diff_coef, comp_diffusion) |
Calculate the diffusion coefficient COMP_DIFFUSION for current composition... based on page 136 in Reservoir-Simulation-Mathematical-Techniques-In-Oil-Recovery-(2007).pdf COMP_DIFFUSION_OPT, integer option defining diffusion coeff NCOMP_DIFF_COEF, integer defining how many coeff's are needed to define the diffusion COMP_DIFF_COEF( Mdimsncomp, NCOMP_DIFF_COEF, Mdimsnphase ) More... | |
subroutine | proj_u2mat (COMP_DIFFUSION_OPT, Mdims, CV_GIdims, CV_funs, COMP_DIFFUSION, NCOMP_DIFF_COEF, COMP_DIFF_COEF, X_ALL, NU, NV, NW, MAT_NDGLN, U_NDGLN, X_NDGLN, MAT_U) |
Determine MAT_U from NU,NV,NW which are variables mapped to material mesh. More... | |
subroutine | calc_comp_dif_ten (NDIM, UD, DIFF_molecular, DIFF_longitudinal, DIFF_transverse, DIFF_TEN) |
Calculate the diffusion coefficient COMP_DIFFUSION for current composition... based on page 136 in Reservoir-Simulation-Mathematical-Techniques-In-Oil-Recovery-(2007).pdf. More... | |
subroutine | calc_kcomp2 (cv_nonods, nphase, icomp, KComp_Sigmoid, Satura, K_Comp, max_k, min_k, K_Comp2) |
Method to flash components. More... | |
real function | sigmoid_function (Y, Y0, Width, LowMag, UpMag) |
Width: width of the sigmoid function. The sigmoid function, varies between ( LowMag, UpMag ). Y is the variable of the function and Y0 is the centre of the function. More... | |
real function | exprep (M) |
subroutine | cal_comp_sum2one_sou (packed_state, Mdims) |
make sure the composition sums to 1.0 More... | |
This module contains all that is required to perform compositional modelling. NOTE THAT THIS FUNCTIONALITY HAS NEVER BEEN FULLY IMPLEMENTED ONLY INERT COMPOSITIONAL WORKS CURRENTLY.
subroutine compositional_terms::cal_comp_sum2one_sou | ( | type( state_type ), intent(inout) | packed_state, |
type( multi_dimensions ), intent(in) | Mdims | ||
) |
make sure the composition sums to 1.0
subroutine compositional_terms::calc_comp_dif_ten | ( | integer, intent(in) | NDIM, |
real, dimension( : ), intent(in) | UD, | ||
real, intent(in) | DIFF_molecular, | ||
real, intent(in) | DIFF_longitudinal, | ||
real, intent(in) | DIFF_transverse, | ||
real, dimension( :, : ), intent(inout) | DIFF_TEN | ||
) |
Calculate the diffusion coefficient COMP_DIFFUSION for current composition... based on page 136 in Reservoir-Simulation-Mathematical-Techniques-In-Oil-Recovery-(2007).pdf.
subroutine compositional_terms::calc_kcomp2 | ( | integer, intent(in) | cv_nonods, |
integer, intent(in) | nphase, | ||
integer, intent(in) | icomp, | ||
logical, intent(in) | KComp_Sigmoid, | ||
real, dimension( :, : ), intent(in) | Satura, | ||
real, dimension( :, :, : ), intent(in) | K_Comp, | ||
real, intent(in) | max_k, | ||
real, intent(in) | min_k, | ||
real, dimension( :, :, :, : ), intent(inout) | K_Comp2 | ||
) |
Method to flash components.
subroutine compositional_terms::calculate_componentabsorptionterm | ( | type( state_type ), intent(inout) | packed_state, |
integer, intent(in) | icomp, | ||
integer, dimension( : ), intent(in) | cv_ndgln, | ||
type(multi_dimensions), intent(in) | Mdims, | ||
real, dimension( :, :, : ), intent(in) | denold, | ||
real, dimension( :, : ), intent(in) | volfra_pore, | ||
real, dimension( : ), intent(in) | mass_ele, | ||
real, dimension( :, :, : ), intent(inout) | comp_absorb | ||
) |
Calculate compositional model linkage between the phase expressed in COMP_ABSORB. Use values from the previous time step so its easier to converge. alpha_beta is the scaling coeff. of the compositional model e.g. =1.0.
subroutine compositional_terms::calculate_componentdiffusionterm | ( | type( state_type ), intent(inout) | packed_state, |
type(multi_dimensions), intent(in) | Mdims, | ||
type(multi_gi_dimensions), intent(in) | CV_GIdims, | ||
type(multi_shape_funs), intent(in) | CV_funs, | ||
integer, dimension( : ), intent(in) | mat_ndgln, | ||
integer, dimension( : ), intent(in) | u_ndgln, | ||
integer, dimension( : ), intent(in) | x_ndgln, | ||
integer, intent(in) | ncomp_diff_coef, | ||
integer, intent(in) | comp_diffusion_opt, | ||
real, dimension( :, : ), intent(in) | comp_diff_coef, | ||
real, dimension( :, :, :, : ), intent(inout) | comp_diffusion | ||
) |
Calculate the diffusion coefficient COMP_DIFFUSION for current composition... based on page 136 in Reservoir-Simulation-Mathematical-Techniques-In-Oil-Recovery-(2007).pdf COMP_DIFFUSION_OPT, integer option defining diffusion coeff NCOMP_DIFF_COEF, integer defining how many coeff's are needed to define the diffusion COMP_DIFF_COEF( Mdimsncomp, NCOMP_DIFF_COEF, Mdimsnphase )
real function compositional_terms::exprep | ( | real | M | ) |
subroutine compositional_terms::proj_u2mat | ( | integer, intent(in) | COMP_DIFFUSION_OPT, |
type(multi_dimensions), intent(in) | Mdims, | ||
type(multi_gi_dimensions), intent(in) | CV_GIdims, | ||
type(multi_shape_funs), intent(in) | CV_funs, | ||
real, dimension( :, :, :, : ), intent(in) | COMP_DIFFUSION, | ||
integer, intent(in) | NCOMP_DIFF_COEF, | ||
real, dimension( :, : ), intent(in) | COMP_DIFF_COEF, | ||
real, dimension( :, : ), intent(in) | X_ALL, | ||
real, dimension( : ), intent(in) | NU, | ||
real, dimension( : ), intent(in) | NV, | ||
real, dimension( : ), intent(in) | NW, | ||
integer, dimension( : ), intent(in) | MAT_NDGLN, | ||
integer, dimension( : ), intent(in) | U_NDGLN, | ||
integer, dimension( : ), intent(in) | X_NDGLN, | ||
real, dimension( :), intent(inout) | MAT_U | ||
) |
Determine MAT_U from NU,NV,NW which are variables mapped to material mesh.
real function compositional_terms::sigmoid_function | ( | real | Y, |
real | Y0, | ||
real | Width, | ||
real | LowMag, | ||
real | UpMag | ||
) |