ICFERST
22-06
Reservoir simulator based on DCVFEM, Dynamic Mesh optimisation and Surface-based modelling
|
SHAPE FUNCTIONS SUBRTS. More...
Data Types | |
interface | detnlxr_plus_u |
Subroutine to compute the derivatives of the inputed shape functions. More... | |
Functions/Subroutines | |
subroutine | shape_cv_n (ndim, cv_ele_type, cv_ngi, cv_nloc, u_nloc, cvn, cvweigh, n, nlx, nly, nlz, un, unlx, unly, unlz) |
SHAPESV AND RELATED SUBRTS & FUNCTIONS Shape functions associated with volume integration using both CV basis functions CVN as well as FEM basis functions N (and its derivatives NLX, NLY, NLZ) also for velocity basis functions UN, UNLX, UNLY, UNLZ. More... | |
subroutine | cv_fem_shape_funs (shape_fun, Mdims, GIdims, cv_ele_type, QUAD_OVER_WHOLE_ELE) |
This subrt defines the sub-control volume and FEM shape functions. Shape functions associated with volume integration using both CV basis functions CVN as well as FEM basis functions CVFEN (and its derivatives CVFENLX, CVFENLY, CVFENLZ) More... | |
subroutine | det_suf_ele_shape (SCVNGI, NFACE, CVFEM_ON_FACE, CV_NLOC, SCVFEN, SCVFENSLX, SCVFENSLY, SCVFEWEIGH, SCVFENLX, SCVFENLY, SCVFENLZ, U_NLOC, SUFEN, SUFENSLX, SUFENSLY, SUFENLX, SUFENLY, SUFENLZ, SBCVNGI, SBCVFEN, SBCVFENSLX, SBCVFENSLY, SBCVFEWEIGH, SBCVFENLX, SBCVFENLY, SBCVFENLZ, SBUFEN, SBUFENSLX, SBUFENSLY, SBUFENLX, SBUFENLY, SBUFENLZ, CV_SLOCLIST, U_SLOCLIST, CV_SNLOC, U_SNLOC, NDIM, CV_ELE_TYPE) |
this subroutine generates the FE basis functions, weights and the derivatives of the shape functions for a variety of elements on the control volume boundaries. The routine also generates the shape functions and derivatives associated with the CV surfaces and also the FV basis functions. More... | |
subroutine | scvfen_2_sbcvfen (cv_nloc, cv_snloc, scvngi, sbcvngi, cv_nloc_cells, cv_snloc_cells, cvfem_on_face, sbcvfen, sbcvfenslx, sbcvfensly, sbcvfenlx, sbcvfenly, sbcvfenlz, sbcvfeweigh, scvfen, scvfenslx, scvfensly, scvfenlx, scvfenly, scvfenlz, scvfeweigh) |
Compute SBCVFEN from SCVFEN. More... | |
subroutine | shapesv_fem_plus (scvngi, cv_neiloc, cv_on_face, cvfem_on_face, ufem_on_face, cv_ele_type, cv_nloc, scvfen, scvfenslx, scvfensly, scvfeweigh, scvfenlx, scvfenly, scvfenlz, u_nloc, sufen, sufenslx, sufensly, sufenlx, sufenly, sufenlz, ndim) |
This subroutine generates the FE basis functions, weights and the derivatives of the shape functions for a variety of elements on the control volume boundaries. The routine also generates the shape functions and derivatives associated with the CV surfaces and also the FV basis functions. More... | |
subroutine | fv_1d_quad (SCVNGI, CV_NLOC, SCVFEN, SCVFENSLX, SCVFENSLY, SCVFEWEIGH, SCVFENLX, SCVFENLY, SCVFENLZ) |
this subroutine generates the FE basis functions, weights and the derivatives of the shape functions for a variety of elements. The routine also generates the shape functions and derivatives associated with the CV surfaces and also the FV basis functions. More... | |
subroutine | fvquad (NGI, NLOC, SVNGI, M, SVN, SVNLX, SVWEIGH) |
this routine generates the shape functions associated with the FV's i.e. their surfaces and volume shape functions and derivatives. The surface shape functions are the values of the FE volume shape functions evaluated on the surfaces of the CV's. More... | |
subroutine | fvhex (NGI, NLOC, SVNGI, M, SVN, SVNLX, SVNLY, SVWEIGH) |
this routine generates the shape functions associated with the FV's i.e. their surfaces and volume shape functions and derivatives. More... | |
subroutine | fvqquad (NGI, NLOC, SVNGI, M, SVN, SVNLX, SVWEIGH) |
this routine generates the shape functions associated with the FV's i.e. their surfaces and volume shape functions and derivatives. The surface shape functions are the values of the FE volume shape functions evaluated on the surfaces of the CV's. More... | |
subroutine | fvqhex (NGI, NLOC, SVNGI, M, SVN, SVNLX, SVNLY, SVWEIGH) |
this routine generates the shape functions associated with the FV's i.e. their surfaces and volume shape functions and derivatives. The surface shape functions are the values of the FE volume shape functions evaluated on the surfaces of the CV's. More... | |
subroutine | volnei (NEILOC, FEM_NEILOC, NLOC, SVNGI, CV_ELE_TYPE) |
this subroutine calculates NEILOC which is the array containing information given a local node and an integration point what is the other opposing local node. It contains -1 if on the boundary of of the element. More... | |
subroutine | u_volnei (cv_ele_type, cv_nloc, u_nloc, scvngi, cv_neiloc, u_on_face) |
This subroutine calculates U_ON_FACE, a logical that works -! in a similar way of CV_ON_FACE. -! More... | |
subroutine | gaussiloc (FINDGPTS, COLGPTS, NCOLGPTS, NEILOC, NLOC, SVNGI) |
This subroutine calculates FINDGPTS,COLGPTS,NCOLGPTS which contains given a local node ILOC the Gauss pts that are used to integrate around this local node. More... | |
subroutine | detnlxr_plus_u1 (ELE, X_ALL, XONDGL, weight, cvshape, cvshapelx, ushapelx, DevFuns) |
Subroutine to compute the derivatives of the inputed shape functions. More... | |
subroutine | detnlxr_plus_u2 (ELE, X, Y, Z, XONDGL, TOTELE, NONODS, X_NLOC, CV_NLOC, NGI, N, NLX, NLY, NLZ, WEIGHT, DETWEI, RA, VOLUME, D1, D3, DCYL, NX_ALL, U_NLOC, UNLX, UNLY, UNLZ, UNX_ALL) |
Subroutine to compute the derivatives of the inputed shape functions. More... | |
SHAPE FUNCTIONS SUBRTS.
subroutine shape_functions_prototype::cv_fem_shape_funs | ( | type(multi_shape_funs), intent(inout) | shape_fun, |
type (multi_dimensions), intent(in) | Mdims, | ||
type (multi_gi_dimensions), intent(in) | GIdims, | ||
integer, intent(in) | cv_ele_type, | ||
logical, intent(in) | QUAD_OVER_WHOLE_ELE | ||
) |
This subrt defines the sub-control volume and FEM shape functions. Shape functions associated with volume integration using both CV basis functions CVN as well as FEM basis functions CVFEN (and its derivatives CVFENLX, CVFENLY, CVFENLZ)
subroutine shape_functions_prototype::det_suf_ele_shape | ( | integer, intent(in) | SCVNGI, |
integer, intent(in) | NFACE, | ||
logical, dimension( cv_nloc, scvngi ), intent(in) | CVFEM_ON_FACE, | ||
integer, intent(in) | CV_NLOC, | ||
real, dimension( cv_nloc, scvngi ), intent(in) | SCVFEN, | ||
real, dimension( cv_nloc, scvngi ), intent(in) | SCVFENSLX, | ||
real, dimension( cv_nloc, scvngi ), intent(in) | SCVFENSLY, | ||
real, dimension( scvngi ), intent(inout) | SCVFEWEIGH, | ||
real, dimension( cv_nloc, scvngi ), intent(in) | SCVFENLX, | ||
real, dimension( cv_nloc, scvngi ), intent(in) | SCVFENLY, | ||
real, dimension( cv_nloc, scvngi ), intent(in) | SCVFENLZ, | ||
integer, intent(in) | U_NLOC, | ||
real, dimension( u_nloc, scvngi ), intent(in) | SUFEN, | ||
real, dimension( u_nloc, scvngi ), intent(in) | SUFENSLX, | ||
real, dimension( u_nloc, scvngi ), intent(in) | SUFENSLY, | ||
real, dimension( u_nloc, scvngi ), intent(in) | SUFENLX, | ||
real, dimension( u_nloc, scvngi ), intent(in) | SUFENLY, | ||
real, dimension( u_nloc, scvngi ), intent(in) | SUFENLZ, | ||
integer, intent(in) | SBCVNGI, | ||
real, dimension( cv_snloc, sbcvngi ), intent(inout) | SBCVFEN, | ||
real, dimension( cv_snloc, sbcvngi ), intent(inout) | SBCVFENSLX, | ||
real, dimension( cv_snloc, sbcvngi ), intent(inout) | SBCVFENSLY, | ||
real, dimension( sbcvngi ), intent(inout) | SBCVFEWEIGH, | ||
real, dimension( cv_snloc, sbcvngi ), intent(inout) | SBCVFENLX, | ||
real, dimension( cv_snloc, sbcvngi ), intent(inout) | SBCVFENLY, | ||
real, dimension( cv_snloc, sbcvngi ), intent(inout) | SBCVFENLZ, | ||
real, dimension( u_snloc, sbcvngi ), intent(inout) | SBUFEN, | ||
real, dimension( u_snloc, sbcvngi ), intent(inout) | SBUFENSLX, | ||
real, dimension( u_snloc, sbcvngi ), intent(inout) | SBUFENSLY, | ||
real, dimension( u_snloc, sbcvngi ), intent(inout) | SBUFENLX, | ||
real, dimension( u_snloc, sbcvngi ), intent(inout) | SBUFENLY, | ||
real, dimension( u_snloc, sbcvngi ), intent(inout) | SBUFENLZ, | ||
integer, dimension( nface, cv_snloc ), intent(inout) | CV_SLOCLIST, | ||
integer, dimension( nface, u_snloc ), intent(inout) | U_SLOCLIST, | ||
integer, intent(in) | CV_SNLOC, | ||
integer, intent(in) | U_SNLOC, | ||
integer, intent(in) | NDIM, | ||
integer, intent(in) | CV_ELE_TYPE | ||
) |
this subroutine generates the FE basis functions, weights and the derivatives of the shape functions for a variety of elements on the control volume boundaries. The routine also generates the shape functions and derivatives associated with the CV surfaces and also the FV basis functions.
subroutine shape_functions_prototype::detnlxr_plus_u1 | ( | integer, intent(in) | ELE, |
real, dimension(:,:), intent(in) | X_ALL, | ||
integer, dimension( : ), intent(in) | XONDGL, | ||
real, dimension(:), intent(in) | weight, | ||
real, dimension(:,:), intent(in) | cvshape, | ||
real, dimension(:,:,:), intent(in) | cvshapelx, | ||
real, dimension(:,:,:), intent(in) | ushapelx, | ||
type (multi_dev_shape_funs) | DevFuns | ||
) |
Subroutine to compute the derivatives of the inputed shape functions.
subroutine shape_functions_prototype::detnlxr_plus_u2 | ( | integer, intent(in) | ELE, |
real, dimension( : ), intent(in) | X, | ||
real, dimension( : ), intent(in) | Y, | ||
real, dimension( : ), intent(in) | Z, | ||
integer, dimension( : ), intent(in) | XONDGL, | ||
integer, intent(in) | TOTELE, | ||
integer, intent(in) | NONODS, | ||
integer, intent(in) | X_NLOC, | ||
integer, intent(in) | CV_NLOC, | ||
integer, intent(in) | NGI, | ||
real, dimension( :, : ), intent(in) | N, | ||
real, dimension( :, : ), intent(in) | NLX, | ||
real, dimension( :, : ), intent(in) | NLY, | ||
real, dimension( :, : ), intent(in) | NLZ, | ||
real, dimension( : ), intent(in) | WEIGHT, | ||
real, dimension(:), intent(inout) | DETWEI, | ||
real, dimension(:), intent(inout) | RA, | ||
real, intent(inout) | VOLUME, | ||
logical, intent(in) | D1, | ||
logical, intent(in) | D3, | ||
logical, intent(in) | DCYL, | ||
real, dimension(:,:,:), intent(inout) | NX_ALL, | ||
integer, intent(in) | U_NLOC, | ||
real, dimension( :, : ), intent(in) | UNLX, | ||
real, dimension( :, : ), intent(in) | UNLY, | ||
real, dimension( :, : ), intent(in) | UNLZ, | ||
real, dimension(:,:,:), intent(inout) | UNX_ALL | ||
) |
Subroutine to compute the derivatives of the inputed shape functions.
subroutine shape_functions_prototype::fv_1d_quad | ( | integer, intent(in) | SCVNGI, |
integer, intent(in) | CV_NLOC, | ||
real, dimension( cv_nloc, scvngi ), intent(inout) | SCVFEN, | ||
real, dimension( cv_nloc, scvngi ), intent(inout) | SCVFENSLX, | ||
real, dimension( cv_nloc, scvngi ), intent(inout) | SCVFENSLY, | ||
real, dimension( scvngi ), intent(inout) | SCVFEWEIGH, | ||
real, dimension( cv_nloc, scvngi ), intent(inout) | SCVFENLX, | ||
real, dimension( cv_nloc, scvngi ), intent(inout) | SCVFENLY, | ||
real, dimension( cv_nloc, scvngi ), intent(inout) | SCVFENLZ | ||
) |
this subroutine generates the FE basis functions, weights and the derivatives of the shape functions for a variety of elements. The routine also generates the shape functions and derivatives associated with the CV surfaces and also the FV basis functions.
subroutine shape_functions_prototype::fvhex | ( | integer | NGI, |
integer | NLOC, | ||
integer | SVNGI, | ||
real, dimension(nloc,ngi) | M, | ||
real, dimension(nloc,svngi) | SVN, | ||
real, dimension(nloc,svngi) | SVNLX, | ||
real, dimension(nloc,svngi) | SVNLY, | ||
real, dimension(svngi) | SVWEIGH | ||
) |
this routine generates the shape functions associated with the FV's i.e. their surfaces and volume shape functions and derivatives.
subroutine shape_functions_prototype::fvqhex | ( | integer | NGI, |
integer | NLOC, | ||
integer | SVNGI, | ||
real, dimension(nloc,ngi) | M, | ||
real, dimension(nloc,svngi) | SVN, | ||
real, dimension(nloc,svngi) | SVNLX, | ||
real, dimension(nloc,svngi) | SVNLY, | ||
real, dimension(svngi) | SVWEIGH | ||
) |
this routine generates the shape functions associated with the FV's i.e. their surfaces and volume shape functions and derivatives. The surface shape functions are the values of the FE volume shape functions evaluated on the surfaces of the CV's.
subroutine shape_functions_prototype::fvqquad | ( | integer | NGI, |
integer | NLOC, | ||
integer | SVNGI, | ||
real, dimension(nloc,ngi) | M, | ||
real, dimension(nloc,svngi) | SVN, | ||
real, dimension(nloc,svngi) | SVNLX, | ||
real, dimension(svngi) | SVWEIGH | ||
) |
this routine generates the shape functions associated with the FV's i.e. their surfaces and volume shape functions and derivatives. The surface shape functions are the values of the FE volume shape functions evaluated on the surfaces of the CV's.
subroutine shape_functions_prototype::fvquad | ( | integer | NGI, |
integer | NLOC, | ||
integer | SVNGI, | ||
real, dimension(nloc,ngi) | M, | ||
real, dimension(nloc,svngi) | SVN, | ||
real, dimension(nloc,svngi) | SVNLX, | ||
real, dimension(svngi) | SVWEIGH | ||
) |
this routine generates the shape functions associated with the FV's i.e. their surfaces and volume shape functions and derivatives. The surface shape functions are the values of the FE volume shape functions evaluated on the surfaces of the CV's.
subroutine shape_functions_prototype::gaussiloc | ( | integer, dimension( nloc + 1 ), intent(inout) | FINDGPTS, |
integer, dimension( nloc * svngi ), intent(inout) | COLGPTS, | ||
integer, intent(inout) | NCOLGPTS, | ||
integer, dimension( nloc, svngi ), intent(in) | NEILOC, | ||
integer, intent(in) | NLOC, | ||
integer, intent(in) | SVNGI | ||
) |
This subroutine calculates FINDGPTS,COLGPTS,NCOLGPTS which contains given a local node ILOC the Gauss pts that are used to integrate around this local node.
subroutine shape_functions_prototype::scvfen_2_sbcvfen | ( | integer, intent(in) | cv_nloc, |
integer, intent(in) | cv_snloc, | ||
integer, intent(in) | scvngi, | ||
integer, intent(in) | sbcvngi, | ||
integer, intent(in) | cv_nloc_cells, | ||
integer, intent(in) | cv_snloc_cells, | ||
logical, dimension( cv_nloc_cells, scvngi ), intent(in) | cvfem_on_face, | ||
real, dimension( cv_snloc, sbcvngi ), intent(inout) | sbcvfen, | ||
real, dimension( cv_snloc, sbcvngi ), intent(inout) | sbcvfenslx, | ||
real, dimension( cv_snloc, sbcvngi ), intent(inout) | sbcvfensly, | ||
real, dimension( cv_snloc, sbcvngi ), intent(inout) | sbcvfenlx, | ||
real, dimension( cv_snloc, sbcvngi ), intent(inout) | sbcvfenly, | ||
real, dimension( cv_snloc, sbcvngi ), intent(inout) | sbcvfenlz, | ||
real, dimension( sbcvngi ), intent(inout) | sbcvfeweigh, | ||
real, dimension( cv_nloc, scvngi ), intent(in) | scvfen, | ||
real, dimension( cv_nloc, scvngi ), intent(in) | scvfenslx, | ||
real, dimension( cv_nloc, scvngi ), intent(in) | scvfensly, | ||
real, dimension( cv_nloc, scvngi ), intent(in) | scvfenlx, | ||
real, dimension( cv_nloc, scvngi ), intent(in) | scvfenly, | ||
real, dimension( cv_nloc, scvngi ), intent(in) | scvfenlz, | ||
real, dimension( scvngi ), intent(in) | scvfeweigh | ||
) |
Compute SBCVFEN from SCVFEN.
subroutine shape_functions_prototype::shape_cv_n | ( | integer, intent(in) | ndim, |
integer, intent(in) | cv_ele_type, | ||
integer, intent(in) | cv_ngi, | ||
integer, intent(in) | cv_nloc, | ||
integer, intent(in) | u_nloc, | ||
real, dimension( cv_nloc, cv_ngi ), intent(inout) | cvn, | ||
real, dimension( cv_ngi ), intent(inout) | cvweigh, | ||
real, dimension( cv_nloc, cv_ngi ), intent(inout) | n, | ||
real, dimension( cv_nloc, cv_ngi ), intent(inout) | nlx, | ||
real, dimension( cv_nloc, cv_ngi ), intent(inout) | nly, | ||
real, dimension( cv_nloc, cv_ngi ), intent(inout) | nlz, | ||
real, dimension( u_nloc, cv_ngi ), intent(inout) | un, | ||
real, dimension( u_nloc, cv_ngi ), intent(inout) | unlx, | ||
real, dimension( u_nloc, cv_ngi ), intent(inout) | unly, | ||
real, dimension( u_nloc, cv_ngi ), intent(inout) | unlz | ||
) |
SHAPESV AND RELATED SUBRTS & FUNCTIONS Shape functions associated with volume integration using both CV basis functions CVN as well as FEM basis functions N (and its derivatives NLX, NLY, NLZ) also for velocity basis functions UN, UNLX, UNLY, UNLZ.
subroutine shape_functions_prototype::shapesv_fem_plus | ( | integer, intent(in) | scvngi, |
integer, dimension( cv_nloc, scvngi ), intent(inout) | cv_neiloc, | ||
logical, dimension( cv_nloc, scvngi ), intent(inout) | cv_on_face, | ||
logical, dimension( cv_nloc, scvngi ), intent(inout) | cvfem_on_face, | ||
logical, dimension( u_nloc, scvngi ), intent(inout) | ufem_on_face, | ||
integer, intent(in) | cv_ele_type, | ||
integer, intent(in) | cv_nloc, | ||
real, dimension( cv_nloc, scvngi ), intent(inout) | scvfen, | ||
real, dimension( cv_nloc, scvngi ), intent(inout) | scvfenslx, | ||
real, dimension( cv_nloc, scvngi ), intent(inout) | scvfensly, | ||
real, dimension( scvngi ), intent(inout) | scvfeweigh, | ||
real, dimension( cv_nloc, scvngi ), intent(inout) | scvfenlx, | ||
real, dimension( cv_nloc, scvngi ), intent(inout) | scvfenly, | ||
real, dimension( cv_nloc, scvngi ), intent(inout) | scvfenlz, | ||
integer, intent(in) | u_nloc, | ||
real, dimension( u_nloc, scvngi ), intent(inout) | sufen, | ||
real, dimension( u_nloc, scvngi ), intent(inout) | sufenslx, | ||
real, dimension( u_nloc, scvngi ), intent(inout) | sufensly, | ||
real, dimension( u_nloc, scvngi ), intent(inout) | sufenlx, | ||
real, dimension( u_nloc, scvngi ), intent(inout) | sufenly, | ||
real, dimension( u_nloc, scvngi ), intent(inout) | sufenlz, | ||
integer, intent(in) | ndim | ||
) |
This subroutine generates the FE basis functions, weights and the derivatives of the shape functions for a variety of elements on the control volume boundaries. The routine also generates the shape functions and derivatives associated with the CV surfaces and also the FV basis functions.
subroutine shape_functions_prototype::u_volnei | ( | integer, intent(in) | cv_ele_type, |
integer, intent(in) | cv_nloc, | ||
integer, intent(in) | u_nloc, | ||
integer, intent(in) | scvngi, | ||
integer, dimension( cv_nloc, scvngi ), intent(in) | cv_neiloc, | ||
logical, dimension( u_nloc, scvngi ), intent(inout) | u_on_face | ||
) |
This subroutine calculates U_ON_FACE, a logical that works -! in a similar way of CV_ON_FACE. -!
subroutine shape_functions_prototype::volnei | ( | integer, dimension( nloc, svngi ), intent(inout) | NEILOC, |
integer, dimension( nloc, svngi ), intent(inout) | FEM_NEILOC, | ||
integer, intent(in) | NLOC, | ||
integer, intent(in) | SVNGI, | ||
integer, intent(in) | CV_ELE_TYPE | ||
) |
this subroutine calculates NEILOC which is the array containing information given a local node and an integration point what is the other opposing local node. It contains -1 if on the boundary of of the element.