-
Notifications
You must be signed in to change notification settings - Fork 27
Description
As of right now, the user doesn't have good information on when to SetRFactor. The user could easily SetRFactor during FCRelax and during FRestrict, while on level 0, and the effort to compute SetRFactor during FCRelax would be wasted.
So, the proposal is to create a new Status element (say, "RFactorOK") that tells the user (True/False) whether to compute an RFactor.
This value would only ever be true during FRestrict on level 0, so the user would only be "told" to SetRFactor exactly once for each point on the fine grid per iteration. This new status element would have to be set to TRUE during FRestrict during BOTH the F-relax and C-relax for the residual computation.
All other StepStatusInit() calls would have to set this value to False. No other status structures (Access, CoarsenRef,...) would use this status element.
LASTLY, the SetRFactor function in braid_status.c would have to be changed. Instead of the
if (ii >= 0)
we would check
if core/status->RFactorOK == True
The same logic would need to be done in SetRefinementDtValues
Lastly, the example codes would have to be updated to use this new status element.