Finite-Volume transport solver for chemical species mass fractions.
This module implements non-reacting finite-volume transport for chemical species mass fractions . The solver supports: 1. Upwind Advection: A 1st-order stable scheme for robust transport of sharp scalar gradients. 2. Corrected Diffusion: Diffusive fluxes are explicitly corrected to ensure the net mass flux sums to zero . 3. Mass Conservation: Enforces and boundedness after every timestep. Chemical reactions and source terms are currently disabled in the supported path. 4. MPI Synchronization: Efficiently gathers owned-cell updates into the globally replicated mesh field.
Container for multi-species mass fraction fields.
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| real(kind=rk), | public, | allocatable | :: | Y(:,:) | |||
| real(kind=rk), | public, | allocatable | :: | Y_old(:,:) | |||
| character(len=name_len), | public, | allocatable | :: | names(:) | |||
| integer, | public | :: | nspecies | = | 0 | ||
| real(kind=rk), | public, | allocatable | :: | rhs_old(:,:) | |||
| logical, | public | :: | rhs_old_valid | = | .false. |
Performs one explicit Euler step for non-reacting species transport.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_t), | intent(in) | :: | mesh |
The computational mesh. |
||
| type(flow_mpi_t), | intent(inout) | :: | flow |
MPI decomposition data for synchronization. |
||
| type(bc_set_t), | intent(in) | :: | bc |
Boundary condition settings. |
||
| type(case_params_t), | intent(in) | :: | params |
Simulation parameters (dt, etc). |
||
| type(flow_fields_t), | intent(in) | :: | fields |
Flow field (velocity/face fluxes). |
||
| type(species_fields_t), | intent(inout) | :: | species |
Mass fraction fields to update. |
||
| type(transport_properties_t), | intent(in) | :: | transport |
Physical properties (diffusivities). |
Safely deallocates species fields and names.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(species_fields_t), | intent(inout) | :: | species |
Populates species fields with initial mass fractions and handles naming.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh_t), | intent(in) | :: | mesh |
The computational mesh. |
||
| type(case_params_t), | intent(in) | :: | params |
Input configuration. |
||
| type(species_fields_t), | intent(inout) | :: | species |
The fields to initialize. |
Keeps the local species mass fractions on the bounded physical simplex.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=rk), | intent(inout) | :: | Y_cell(:) | |||
| integer, | intent(in) | :: | nspecies |
Total number of species in Y_cell. |