ICFERST  22-06
Reservoir simulator based on DCVFEM, Dynamic Mesh optimisation and Surface-based modelling
sparsity_nd Module Reference

Subroutines associated with the CSR storage used in ICFERST. More...

Functions/Subroutines

subroutine getfinele (totele, nloc, snloc, nonods, ndglno, mx_nface_p1, mxnele, ncolele, finele, colele, midele)
 This sub caluculates COLELE the element connectivitiy list in order of faces. More...
 
subroutine exten_sparse_multi_phase_old (nonods, mxnele, finm, colm, nphase, npha_nonods, ncolm_pha, finm_pha, colm_pha, midm_pha)
 Extend the sparsity to a multiphase sparsity. More...
 
subroutine exten_sparse_multi_phase (nonods, mxnele, finm, colm, nphase, npha_nonods, ncolm_pha, finm_pha, colm_pha, midm_pha)
 Extend the sparsity to a multiphase sparsity. More...
 
subroutine form_dgm_pha_sparsity (totele, nphase, u_nloc, u_pha_nonods, ndim, mx_ncoldgm_pha, ncoldgm_pha, coldgm_pha, findgm_pha, middgm_pha, finele, colele, ncolele)
 Form the sparsity of the phase coupled DG discretised matrix from the element-wise multi-phase sparsity matrix. More...
 
subroutine pousinmc2 (totele, nloc1, nonods2, nloc2, nimem, ndglno1, ndglno2, lencolm, findrm, colm, centrm)
 
subroutine conv_ct2c (cv_nonods, nct, findct, colct, u_nonods, mx_nc, findc, colc)
 
subroutine poscmc (totele, nonods, nimem, nct, findct, colct, ncmc, fincmc, colcmc, midcmc, noinod, presym)
 This subroutine forms the matrix operating on the pressure vector. It is found from C1T ML C1 + C2T ML C2 In the first part of COLCMC contains the pressure nodes surrounding a given node. More...
 
subroutine cv_neighboor_sparsity (Mdims, cv_ele_type, cv_ndgln, x_ndgln, ncolele, finele, colele, ncolm, mxnacv_loc, findm, colm, ncolacv_loc, finacv_loc, colacv_loc, midacv_loc)
 

Detailed Description

Subroutines associated with the CSR storage used in ICFERST.

Function/Subroutine Documentation

◆ conv_ct2c()

subroutine sparsity_nd::conv_ct2c ( integer, intent(in)  cv_nonods,
integer, intent(in)  nct,
integer, dimension( cv_nonods + 1 ), intent(in)  findct,
integer, dimension( nct ), intent(in)  colct,
integer, intent(in)  u_nonods,
integer, intent(in)  mx_nc,
integer, dimension( u_nonods + 1 ), intent(inout)  findc,
integer, dimension( mx_nc ), intent(inout)  colc 
)
Here is the caller graph for this function:

◆ cv_neighboor_sparsity()

subroutine sparsity_nd::cv_neighboor_sparsity ( type(multi_dimensions), intent(in)  Mdims,
integer, intent(in)  cv_ele_type,
integer, dimension( mdims%totele * mdims%cv_nloc ), intent(in)  cv_ndgln,
integer, dimension( mdims%totele * mdims%x_nloc ), intent(in)  x_ndgln,
integer, intent(in)  ncolele,
integer, dimension( mdims%totele + 1 ), intent(in)  finele,
integer, dimension( ncolele ), intent(in)  colele,
integer, intent(in)  ncolm,
integer, intent(in)  mxnacv_loc,
integer, dimension( mdims%cv_nonods + 1 ), intent(in)  findm,
integer, dimension( ncolm ), intent(in)  colm,
integer, intent(inout)  ncolacv_loc,
integer, dimension( mdims%cv_nonods + 1 ), intent(inout)  finacv_loc,
integer, dimension( mxnacv_loc ), intent(inout)  colacv_loc,
integer, dimension( mdims%cv_nonods ), intent(inout)  midacv_loc 
)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ exten_sparse_multi_phase()

subroutine sparsity_nd::exten_sparse_multi_phase ( integer, intent(in)  nonods,
integer, intent(in)  mxnele,
integer, dimension( nonods + 1 ), intent(in)  finm,
integer, dimension( mxnele ), intent(in)  colm,
integer, intent(in)  nphase,
integer, intent(in)  npha_nonods,
integer, intent(in)  ncolm_pha,
integer, dimension( npha_nonods + 1 ), intent(inout)  finm_pha,
integer, dimension( ncolm_pha ), intent(inout)  colm_pha,
integer, dimension( npha_nonods ), intent(inout)  midm_pha 
)

Extend the sparsity to a multiphase sparsity.

Here is the caller graph for this function:

◆ exten_sparse_multi_phase_old()

subroutine sparsity_nd::exten_sparse_multi_phase_old ( integer, intent(in)  nonods,
integer, intent(in)  mxnele,
integer, dimension( nonods + 1 ), intent(in)  finm,
integer, dimension( mxnele ), intent(in)  colm,
integer, intent(in)  nphase,
integer, intent(in)  npha_nonods,
integer, intent(in)  ncolm_pha,
integer, dimension( npha_nonods + 1 ), intent(inout)  finm_pha,
integer, dimension( ncolm_pha ), intent(inout)  colm_pha,
integer, dimension( npha_nonods ), intent(inout)  midm_pha 
)

Extend the sparsity to a multiphase sparsity.

Here is the caller graph for this function:

◆ form_dgm_pha_sparsity()

subroutine sparsity_nd::form_dgm_pha_sparsity ( integer, intent(in)  totele,
integer, intent(in)  nphase,
integer, intent(in)  u_nloc,
integer, intent(in)  u_pha_nonods,
integer, intent(in)  ndim,
integer, intent(in)  mx_ncoldgm_pha,
integer, intent(inout)  ncoldgm_pha,
integer, dimension( mx_ncoldgm_pha ), intent(inout)  coldgm_pha,
integer, dimension( u_pha_nonods + 1 ), intent(inout)  findgm_pha,
integer, dimension( u_pha_nonods ), intent(inout)  middgm_pha,
integer, dimension( totele + 1 ), intent(in)  finele,
integer, dimension( ncolele ), intent(in)  colele,
integer, intent(in)  ncolele 
)

Form the sparsity of the phase coupled DG discretised matrix from the element-wise multi-phase sparsity matrix.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getfinele()

subroutine sparsity_nd::getfinele ( integer, intent(in)  totele,
integer, intent(in)  nloc,
integer, intent(in)  snloc,
integer, intent(in)  nonods,
integer, dimension( totele * nloc ), intent(in)  ndglno,
integer, intent(in)  mx_nface_p1,
integer, intent(in)  mxnele,
integer, intent(inout)  ncolele,
integer, dimension( totele + 1 ), intent(inout)  finele,
integer, dimension( mxnele ), intent(inout)  colele,
integer, dimension( totele ), intent(inout)  midele 
)

This sub caluculates COLELE the element connectivitiy list in order of faces.

◆ poscmc()

subroutine sparsity_nd::poscmc ( integer, intent(in)  totele,
integer, intent(in)  nonods,
integer, intent(in)  nimem,
integer, intent(in)  nct,
integer, dimension( totele + 1 ), intent(in)  findct,
integer, dimension( nct ), intent(in)  colct,
integer, intent(inout)  ncmc,
integer, dimension( totele + 1 ), intent(inout)  fincmc,
integer, dimension(:), intent(inout), pointer  colcmc,
integer, dimension( totele ), intent(inout)  midcmc,
integer, dimension( nonods ), intent(inout)  noinod,
logical, intent(inout)  presym 
)

This subroutine forms the matrix operating on the pressure vector. It is found from C1T ML C1 + C2T ML C2 In the first part of COLCMC contains the pressure nodes surrounding a given node.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ pousinmc2()

subroutine sparsity_nd::pousinmc2 ( integer, intent(in)  totele,
integer, intent(in)  nloc1,
integer, intent(in)  nonods2,
integer, intent(in)  nloc2,
integer, intent(in)  nimem,
integer, dimension( totele * nloc1 ), intent(in)  ndglno1,
integer, dimension( totele * nloc2 ), intent(in)  ndglno2,
integer, intent(inout)  lencolm,
integer, dimension( nonods2 + 1 ), intent(inout)  findrm,
integer, dimension( nimem ), intent(inout)  colm,
integer, dimension( nonods2 ), intent(inout)  centrm 
)
Here is the caller graph for this function: