Cached sparse matrix coefficients for the Pressure Poisson operator.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=rk), | public, | allocatable | :: | coeff(:,:) | |||
| real(kind=rk), | public, | allocatable | :: | diag(:) | |||
| logical, | public | :: | has_dirichlet_pressure | = | .false. | ||
| logical, | public | :: | has_neumann_outlet | = | .false. | ||
| logical, | public | :: | initialized | = | .false. | ||
| integer, | public | :: | max_faces | = | 0 | ||
| integer, | public, | allocatable | :: | nb(:,:) | |||
| integer, | public | :: | ncells | = | 0 | ||
| real(kind=rk), | public, | allocatable | :: | var_coeff(:,:) | |||
| real(kind=rk), | public, | allocatable | :: | var_diag(:) |
type, public :: pressure_operator_cache_t logical :: initialized = .false. !< Initialization toggle. logical :: has_dirichlet_pressure = .false. !< True if at least one patch has a fixed pressure. logical :: has_neumann_outlet = .false. !< True if at least one boundary patch can absorb flux imbalance. integer :: ncells = 0 !< Number of cells. integer :: max_faces = 0 !< Max faces per cell. integer, allocatable :: nb(:,:) !< Neighbor indices for each cell face. real(rk), allocatable :: coeff(:,:) !< Off-diagonal Laplacian coefficients real(rk), allocatable :: diag(:) !< Diagonal Laplacian coefficients real(rk), allocatable :: var_coeff(:,:) !< Per-step variable-density coefficients real(rk), allocatable :: var_diag(:) !< Per-step variable-density diagonal. end type pressure_operator_cache_t