Code in QuantityFactory allocate a temporary Quantity to build the Halo Specification used for exchange. This code will then create the spec based on that Quantity but will allow divergence from the default number of halo points.
We put a warning in the halo_spec function because we weren't sure that was needed.
Code in pyfv3.dyn_core has a legit case of a 3-halo allocated Quantity requiring a 2-halo exchange.
This entire system is duct tape upon duct tape and need refactor.
First steps:
Going deeper - requiring orchestration-worthy system:
Code in
QuantityFactoryallocate a temporaryQuantityto build theHalo Specificationused for exchange. This code will then create the spec based on thatQuantitybut will allow divergence from the default number of halo points.We put a warning in the
halo_specfunction because we weren't sure that was needed.Code in
pyfv3.dyn_corehas a legit case of a 3-halo allocatedQuantityrequiring a 2-halo exchange.This entire system is duct tape upon duct tape and need refactor.
First steps:
halo_specrather than a temporary allocationQuantityFactory.get_quantity_halo_specGoing deeper - requiring
orchestration-worthy system:WrappedHaloUpdaterneeds to goHaloUpdaterbased on previously cachedQuantityneeds to go