Hello Ian, Miguel,
using CartesianCoordinates is almost the same as using Coordinates with its (default) "cartesian" patch. Only almost b/c of two things:
* CartesianCoordinates does not provide the function MultiPatch_GetDomainSpecification and the others that Coordinates provides (eg MultiPatch_GetBoundarySpecification) * Coordinates has parameters ncells_[xyz] and patch_[xyz]{min,max} that describe its single Cartesian patch (used by MultiPatch_GetDomainSpecification) Yours,
so basically CartesianCoordinates provides the grid functions to make typical science codes work but not enough to make eg CartGrid3D's CartGrid3D::type = "multipatch" or Carpet::domain_from_multipatch work.
One could almost use Coordinates with its default values for ncells and the patch sizes as a replacement for CartesianCoords since the values of the missing parameters are only accessible via the aliased functions that CartesianCoordinates is missing.
However Carpet currently torpedoes any such attempt since it requires that the aliased function "MultiPatch_GetDomainSpecification" is missing unless Carpet::domain_from_multipatch is set. Further CarpetRegrid2 and CarpetMask will use MultiPatch_XXX if it exists obtaining incorrect results.
The only reason CartesianCoordinates was not proposed for the ET was that Llama itself was included so at that point the idea was that one could use Coordinates with its "cartesian" patch type for these cases. However as outlined in the paragraph above that is only almost true.
Yours, Roland
On 10 May 2019, at 10:22, Miguel Zilhão <miguel.zilhao.nogueira@tecnico.ulisboa.ptmailto:miguel.zilhao.nogueira@tecnico.ulisboa.pt> wrote:
hi Ian,
yes, i guess the CartesianCoordinate thorn could work. this is not part of the ET, though, is it?
Hi Miguel,
You're right; I hadn't realised this. It's in the CTGamma arrangement:
https://bitbucket.org/llamacode/ctgamma/src/master/
but is not part of the toolkit. Just clone CTGamma into arrangements and add CTGamma/CartesianCoordinates to the thornlist and recompile.
-- Ian Hinder Research Software Engineer University of Manchester, UK