[WIP] MLABecLaplacian spherical 2d support. #4258
Open
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.
Summary
add support spherical 2d support for MLABecLaplacian.
Additional background
I'm trying to get add spherical 2d geometry support for MLABecLaplacian for MLMG since Castro uses the
apply()
function in MLMG to compute thermal diffusion source term. I think I mainly need to changeapplyMetricTerms()
andunapplyMetricTerms()
.I think the logic of the current code is to use$r^2$ for spherical in r-dir, and r for cylindrical in r-dir. Then $L(\phi)$ after everything is calculated, which corresponds to the 1/r^2 and 1/r outside of the derivative in divergence.
applyMetricTerms()
withinapplyMetricTermsCoeffs
to modify the coefficients by the extra geometric term from divergence, i.e.unapplyMetricTerms
is applied to the entireMy current logic is to modify the coefficient by$r^2 \sin(\theta)$ when dir=0 and $\sin(\theta)$ when dir=1, and when we unapply we divide by $\frac{1}{r^2\sin(\theta)}$ altogether, so that it is consistent with the divergence calculation.
I think I should also make sure
compResidual()
,getFluxes()
, andgetGradSolution()
to work although it doesn't affect theapply()
function.getGradSolution()
probably works since I modifiedcompGrad()
.Checklist
The proposed changes: