![]() |
ICFERST
25-11
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 | ||
| ) |