<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
Hi Miguel,&nbsp;
<div class=""><br class="">
</div>
<div class="">There is also the CartesianCoordinate thorn, which implements &quot;Coordinates&quot;, but which just provides a Cartesian grid. &nbsp;Would this be sufficient?<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On 9 May 2019, at 00:31, Haas, Roland &lt;<a href="mailto:rhaas@illinois.edu" class="">rhaas@illinois.edu</a>&gt; wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<div class="">Hello Miguel,<br class="">
<br class="">
There may be two issues:<br class="">
<br class="">
1. You do not have to inherit from Coordinates to use functions<br class="">
provided by Coordinates.<br class="">
<br class="">
2. You do however need to inherit to get easy access to the Jacobian<br class="">
though. To avoid this you need to call the (low level) function<br class="">
CCTK_VarDataPtr to get access to the Jacobian at runtime depending on<br class="">
whether you want to use it. Then when you need an if statement based on<br class="">
this decision to apply / not apply the Jacobian. This then is a bit<br class="">
more complex.<br class="">
<br class="">
Basically (this is inspired by McLachlan):<br class="">
<br class="">
const CCTK_REAL *J11 = use_jacobian ?<br class="">
&nbsp;CCTK_VarDataPtr(cctkGH, 0, &quot;Coordinates::J11&quot;) : NULL;<br class="">
for(ijk) {<br class="">
&nbsp;CCTK_REAL phi_x = phi[i&#43;1] - phi[i-1];<br class="">
&nbsp;CCTK_REAL phi_y = phi[j&#43;1] - phi[j-1];<br class="">
&nbsp;if (use_jacobian) {<br class="">
&nbsp;&nbsp;&nbsp;// apply jacobian to derivatives (or so)<br class="">
&nbsp;&nbsp;&nbsp;CCTK_REAL Jac_phi_x = J11 * phi_x &#43; J12 * phi_y;<br class="">
&nbsp;&nbsp;&nbsp;CCTK_REAL Jac_phi_y = J12 * phi_x &#43; J22 * phi_y;<br class="">
&nbsp;&nbsp;&nbsp;phi_x = Jac_phi_x;<br class="">
&nbsp;&nbsp;&nbsp;phi_y = Jac_phi_y;<br class="">
&nbsp;}<br class="">
}<br class="">
<br class="">
Yours,<br class="">
Roland<br class="">
<br class="">
<blockquote type="cite" class="">hi again,<br class="">
<br class="">
i have a follow-up question regarding this. i'm following Roland's implementation of the WaveToy code with Llama, and i'm running into the following issue.<br class="">
<br class="">
when i inherit the Coordinates thorn, the function MultiPatch_GetDomainSpecification becomes aliased, and this becomes a problem if i want to use the same thorn and *not* use Llama. in order words, when adding<br class="">
<br class="">
&nbsp;inherits: Coordinates<br class="">
<br class="">
to a thorn's interface.ccl file, one then needs to activate the Coordinates thorn in the parfile upon running the code whether or not one wants to use Llama. but then, if multipatch is not used (ie, with Carpet::domain_from_coordbase = yes), the following error
 occurs:<br class="">
<br class="">
&nbsp;&nbsp;void Carpet::get_domain_specification(const cGH*, int, const ivect&amp;,<br class="">
&nbsp;&nbsp;CarpetLib::rvect&amp;, CarpetLib::rvect&amp;, CarpetLib::rvect&amp;): Assertion `not<br class="">
&nbsp;&nbsp;CCTK_IsFunctionAliased(&quot;MultiPatch_GetDomainSpecification&quot;)' failed.<br class="">
<br class="">
is there a simple way of having a Llama-aware thorn which can also run without multipatch if so desired?<br class="">
<br class="">
i've found a previous discussion with a similar issue (<a href="http://lists.einsteintoolkit.org/pipermail/users/2015-December/004656.html" class="">http://lists.einsteintoolkit.org/pipermail/users/2015-December/004656.html</a>)<br class="">
when using CTGamma, where the suggestion was to activate the thorn CTGamma/CartesianCoordinates when not using multipatch. i'm guessing that this thorn provides all the grid functions that Coordinates provides?<br class="">
<br class="">
is this then the only solution, ie, creating a helper thorn with a &quot;trivial&quot; Coordinates implementation?<br class="">
<br class="">
thanks,<br class="">
Miguel<br class="">
<br class="">
On 22/04/19 21:45, Miguel Zilhão wrote:<br class="">
<blockquote type="cite" class="">thanks Roland!<br class="">
this should be enough to get me started. i'll report back if i run into any difficulty.<br class="">
<br class="">
cheers,<br class="">
Miguel<br class="">
<br class="">
On 22/04/19 13:32, Haas, Roland wrote: &nbsp;<br class="">
<blockquote type="cite" class="">Hello Miguel,<br class="">
<br class="">
I gave a tutorial on this (for a WaveToy code) at the NCSA ET meeting:<br class="">
<br class="">
<a href="https://drive.google.com/open?id=0B4gNfWainf-5dGcxQzNuOUtEUFk" class="">https://drive.google.com/open?id=0B4gNfWainf-5dGcxQzNuOUtEUFk</a><br class="">
<br class="">
The code is (likely, given its name) in the the &quot;rhaas/llama&quot; branch of<br class="">
the cactusexample repo:<br class="">
<br class="">
cd repos/cactusexamples<br class="">
git checkout rhaas/llama<br class="">
<br class="">
should get them for you.<br class="">
<br class="">
Yours,<br class="">
Roland<br class="">
<br class="">
<blockquote type="cite" class="">hi all,<br class="">
<br class="">
i have a few evolution codes that i would like to make Llama-aware. one of them would be the<br class="">
LeanBSSNMoL thorn, that was included in the latest ET release.<br class="">
<br class="">
is there a canonical procedure to do this, or any documentation that i should follow? i understand<br class="">
that the main thing to change are the finite differencing operations... is there a standard way of<br class="">
performing this change? or anything else i should be aware of?<br class="">
<br class="">
thanks,<br class="">
Miguel<br class="">
_______________________________________________<br class="">
Users mailing list<br class="">
Users@einsteintoolkit.org<br class="">
http://lists.einsteintoolkit.org/mailman/listinfo/users &nbsp;<br class="">
</blockquote>
<br class="">
<br class="">
<br class="">
</blockquote>
_______________________________________________<br class="">
Users mailing list<br class="">
<a href="mailto:Users@einsteintoolkit.org" class="">Users@einsteintoolkit.org</a><br class="">
http://lists.einsteintoolkit.org/mailman/listinfo/users<br class="">
<br class="">
</blockquote>
</blockquote>
<br class="">
<br class="">
<br class="">
-- <br class="">
My email is as private as my paper mail. I therefore support encrypting<br class="">
and signing email messages. Get my PGP key from <a href="http://pgp.mit.edu" class="">
http://pgp.mit.edu</a> .<br class="">
_______________________________________________<br class="">
Users mailing list<br class="">
<a href="mailto:Users@einsteintoolkit.org" class="">Users@einsteintoolkit.org</a><br class="">
http://lists.einsteintoolkit.org/mailman/listinfo/users<br class="">
</div>
</div>
</blockquote>
</div>
<br class="">
<div class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none; word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div dir="auto" style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">
<div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
--&nbsp;</div>
<div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
Ian Hinder</div>
<div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
Research Software Engineer</div>
<div style="caret-color: rgb(0, 0, 0); color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant-caps: normal; font-weight: normal; letter-spacing: normal; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; word-spacing: 0px; -webkit-text-stroke-width: 0px; text-decoration: none;">
University of Manchester, UK</div>
</div>
</div>
</div>
</div>
<br class="">
</div>
</body>
</html>