Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This fixes a bug in which halo regions were not filled for subgrid-scale LES diffusivities.
To do this robustly for various diffusivity structures with different nesting hierarchies, a recursive halo region filling functionality is implemented that dispatches on
bcs::NamedTuple{(:x, :y:, :z)}
, corresponding to aFieldBoundaryCondition
. Thus, whenfill_halo_regions!(fields, bcs, grid)
is called with matching tuples for bothfields
andbcs
, a simultaneous loop is done over the members of the two tuples. However, whenfill_halo_regions!(fields, bcs, grid)
is called andbcs
is aFieldBoundaryCondition
, a loop is performed over the members offields
only, andbcs
is reused for every member offields
. Thus halo regions for fields embedded in nested structures (like diffusivities inAnisotropicMinimumDissipation
) are all filled with a single call tofill_halo_regions!
.For now, the code uses temperature boundary conditions to determine the diffusivity boundary conditions. This will work until we implement the changes proposed in #371.