src/alge/matrvv.f90 File Reference

| programmer's documentation

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions/Subroutines
matrvv.f90 File Reference

This function builds the matrix of advection/diffusion for a vector field with a tensorial diffusivity. More...

## Functions/Subroutines
subroutine | matrvv (ncelet, ncel, nfac, nfabor, iconvp, idiffp, ndircp, isym, nfecra, thetap, ifacel, ifabor, coefbu, cofbfu, fimp, flumas, flumab, viscf, viscb, da, xa)

## Detailed Description

This function builds the matrix of advection/diffusion for a vector field with a tensorial diffusivity.

The advection is upwind, the diffusion is not reconstructed. The matrix is splitted into a diagonal block (3x3 times number of cells) and an extra diagonal part (of dimension 2 times 3x3 the number of internal faces).

## Function/Subroutine Documentation

subroutine matrvv | ( | integer | ncelet,
|  | integer | ncel,
|  | integer | nfac,
|  | integer | nfabor,
|  | integer | iconvp,
|  | integer | idiffp,
|  | integer | ndircp,
|  | integer | isym,
|  | integer | nfecra,
|  | double precision | thetap,
|  | integer, dimension(2,nfac) | ifacel,
|  | integer, dimension(nfabor) | ifabor,
|  | double precision, dimension(3,3,nfabor) | coefbu,
|  | double precision, dimension(3,3,nfabor) | cofbfu,
|  | double precision, dimension(3,3,ncelet) | fimp,
|  | double precision, dimension(nfac) | flumas,
|  | double precision, dimension(nfabor) | flumab,
|  | double precision, dimension(3,3,nfac) | viscf,
|  | double precision, dimension(nfabor) | viscb,
|  | double precision, dimension(3,3,ncelet) | da,
|  | double precision, dimension(3,3,isym,nfac) | xa
| ) |  |

Parameters

  [in] | ncelet | number of extended (real + ghost) cells
  [in] | ncel | number of cells
  [in] | nfac | number of interior faces
  [in] | nfabor | number of boundary faces
  [in] | iconvp | indicator 1 advection 0 otherwise
  [in] | idiffp | indicator 1 diffusion 0 otherwise
  [in] | ndircp | indicator 0 if the diagonal stepped aside
  [in] | isym | indicator 1 symmetric matrix 2 non symmmetric matrix
  [in] | thetap | weightening coefficient for the theta-schema, thetap = 0: explicit scheme thetap = 0.5: time-centred scheme (mix between Crank-Nicolson and Adams-Bashforth) thetap = 1: implicit scheme
  [in] | ifacel | cell indexes of interior faces
  [in] | ifabor | no de l'elt voisin d'une face de bord
  [in] | coefbu | boundary condition array for the variable (Impplicit part - 3x3 tensor array)
  [in] | cofbfu | boundary condition array for the variable flux (Impplicit part - 3x3 tensor array)
  [in] | flumas | mass flux at interior faces
  [in] | flumab | mass flux at border faces
  [in] | viscf | at interior faces for the matrix
  [in] | viscb | at border faces for the matrix
  [out] | da | diagonal part of the matrix
  [out] | xa | extra interleaved diagonal part of the matrix