Loading...
Searching...
No Matches
terra::fv::hex::operators::FVFCTBuffers< ScalarType > Struct Template Reference

All working storage for a single FCT timestep, allocated once and reused every step. More...

#include <fct_advection_diffusion.hpp>

Public Member Functions

 FVFCTBuffers (const grid::shell::DistributedDomain &domain)
 

Public Attributes

grid::Grid4DDataScalar< ScalarType > T_L
 Low-order (upwind) predictor \(T^L\); same cell layout as the transported scalar.
 
grid::Grid5DDataScalar< ScalarType > antidiff
 
grid::Grid4DDataScalar< ScalarType > R_plus
 Zalesak correction factor \(R_i^+\) — limits incoming positive antidiff flux.
 
grid::Grid4DDataScalar< ScalarType > R_minus
 Zalesak correction factor \(R_i^-\) — limits incoming negative antidiff flux.
 
communication::shell::FVGhostLayerBuffers< ScalarType > ghost_T
 MPI ghost-layer buffers for \(T\) (reused for T_L as well via the same slot).
 
communication::shell::FVGhostLayerBuffers< ScalarType > ghost_R_plus
 MPI ghost-layer buffers for \(R^+\) (needed so the correction kernel reads neighbours).
 
communication::shell::FVGhostLayerBuffers< ScalarType > ghost_R_minus
 MPI ghost-layer buffers for \(R^-\).
 

Detailed Description

template<typename ScalarType>
struct terra::fv::hex::operators::FVFCTBuffers< ScalarType >

All working storage for a single FCT timestep, allocated once and reused every step.

Avoids heap allocation in the time loop. Pass a single FVFCTBuffers instance to all stage functions (fct_predictor, fct_limiter, fct_correction) and to the convenience wrappers (fct_explicit_step, upwind_explicit_step, fct_semiimplicit_step).

Template Parameters
ScalarTypeFloating-point type used for all fields.

Constructor & Destructor Documentation

◆ FVFCTBuffers()

template<typename ScalarType >
terra::fv::hex::operators::FVFCTBuffers< ScalarType >::FVFCTBuffers ( const grid::shell::DistributedDomain domain)
inlineexplicit

Member Data Documentation

◆ antidiff

template<typename ScalarType >
grid::Grid5DDataScalar< ScalarType > terra::fv::hex::operators::FVFCTBuffers< ScalarType >::antidiff

Pre-scaled antidiffusive fluxes \(\tilde{f}_{ij} = (\Delta t / M_{ii})\,f_{ij}\), sixth dimension indexes the 6 faces in neighbour order (0=x−1, 1=x+1, …, 5=r+1).

◆ ghost_R_minus

template<typename ScalarType >
communication::shell::FVGhostLayerBuffers< ScalarType > terra::fv::hex::operators::FVFCTBuffers< ScalarType >::ghost_R_minus

MPI ghost-layer buffers for \(R^-\).

◆ ghost_R_plus

template<typename ScalarType >
communication::shell::FVGhostLayerBuffers< ScalarType > terra::fv::hex::operators::FVFCTBuffers< ScalarType >::ghost_R_plus

MPI ghost-layer buffers for \(R^+\) (needed so the correction kernel reads neighbours).

◆ ghost_T

template<typename ScalarType >
communication::shell::FVGhostLayerBuffers< ScalarType > terra::fv::hex::operators::FVFCTBuffers< ScalarType >::ghost_T

MPI ghost-layer buffers for \(T\) (reused for T_L as well via the same slot).

◆ R_minus

template<typename ScalarType >
grid::Grid4DDataScalar< ScalarType > terra::fv::hex::operators::FVFCTBuffers< ScalarType >::R_minus

Zalesak correction factor \(R_i^-\) — limits incoming negative antidiff flux.

◆ R_plus

template<typename ScalarType >
grid::Grid4DDataScalar< ScalarType > terra::fv::hex::operators::FVFCTBuffers< ScalarType >::R_plus

Zalesak correction factor \(R_i^+\) — limits incoming positive antidiff flux.

◆ T_L

template<typename ScalarType >
grid::Grid4DDataScalar< ScalarType > terra::fv::hex::operators::FVFCTBuffers< ScalarType >::T_L

Low-order (upwind) predictor \(T^L\); same cell layout as the transported scalar.


The documentation for this struct was generated from the following file: