Replies: 1 comment
|
Hi @smressle , sorry for my late response. I have been very busy these days... You are absolutely right, and your concern is real. In fact, the CT scheme conserves the divergence to the machine precision within each MeshBlock. If there is any (even slight) mismatch in the EMFs between MeshBlocks, it means there is divergence error between MeshBlcoks, although the divergence integrated over active cells still remains conserved to the machine precision. This issue becomes prominent in AMR, because it is practically impossible to perfectly match the coarse and fine surface fields at level boundaries even with the EMF correction. Honestly, I think this is a fundamental issue of AMR. For now, all I can do is just to pray the error does not grow too badly. Possibly we may need a kind of cleaning of the divergence error, but it is a global operation and is complicated on AMR. Or possibly, every step, we can just take remap the coarse fields with the fine fields, but I'm afraid it is just foisting the error to the coarser side. |
Uh oh!
There was an error while loading. Please reload this page.
Hi all,
I have been thinking about AMR prolongation recently, particularly the issue raised in #617
After the corresponding update, when the code refines a coarse block that is bordered by a fine block, the shared face fields from the fine block are copied over to the newly refined block, which are then used for internal prolongation, etc. However, if the flux through the original coarse face and the sum of the flux from the four finer faces differ after a long evolution, this introduces nonzero div B.
On the other hand, if the old fine face fields are NOT copied over to the new shared fine face, then the two blocks can have different B for the same face. If they are later de-refined, then this can translate into a nonzero divergence as well.
It doesn't seem like there is a way out.
(For context I am seeing nonzero divergence in my simulations so this is not just a hypothetical issue).
All reactions