Grey, absorbing-emitting, non-scattering P-1 radiation solver model for incident radiation diffusion.
[Physical Assumptions] - Grey (single wavenumber/band) absorbing-emitting medium. - Non-scattering; no scattering source is included and Gamma = 1 / (3*kappa).
[X-1 Contract] - This module computes and populates only the unreduced partial absorption-like term kappaG in source%qrad. - The radiation driver is responsible for performing MPI reductions and then locally subtracting the emission term 4kappasigmaT^4 on all ranks.
[Parallel Spectral Contract] - In a parallel spectral run, only the single rank assigned to wavenumber/band 1 computes the P-1 equation. Other ranks exit immediately returning zero source%qrad, which is subsequently synchronized globally by the driver using MPI_Allreduce(MPI_SUM).
This module solves the discretized finite-volume P-1 equation: -div(Gamma grad(G)) + kappaG = 4kappasigmaT^4 where Gamma = 1/(3*kappa), and G is the incident radiation. Marshak boundary conditions are applied at walls and open boundaries.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=rk), | private, | parameter | :: | sigma | = | 5.670374419e-8_rk |
Stefan-Boltzmann constant [W/(m^2*K^4)] |
Main entry point for the P-1 radiation model.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_t), | intent(in) | :: | mesh | |||
| type(bc_set_t), | intent(in) | :: | bc | |||
| type(radiation_context_t), | intent(in) | :: | context | |||
| type(radiation_state_t), | intent(in) | :: | state | |||
| type(radiation_source_t), | intent(inout) | :: | source | |||
| type(case_params_t), | intent(in) | :: | params |
Sparse matrix-vector product for the assembled P-1 system.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_t), | intent(in) | :: | mesh | |||
| real(kind=rk), | intent(in) | :: | diag(:) | |||
| real(kind=rk), | intent(in) | :: | coeff(:,:) | |||
| integer, | intent(in) | :: | nb(:,:) | |||
| real(kind=rk), | intent(in) | :: | x(:) | |||
| real(kind=rk), | intent(out) | :: | ax(:) |
Jacobi-preconditioned Conjugate Gradient solver for the symmetric P-1 system.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_t), | intent(in) | :: | mesh | |||
| real(kind=rk), | intent(in) | :: | diag(:) | |||
| real(kind=rk), | intent(in) | :: | coeff(:,:) | |||
| integer, | intent(in) | :: | nb(:,:) | |||
| real(kind=rk), | intent(in) | :: | rhs(:) | |||
| real(kind=rk), | intent(inout) | :: | G(:) | |||
| integer, | intent(in) | :: | max_iter | |||
| real(kind=rk), | intent(in) | :: | tol |