#2631: Meudon_BinNS fails if initial_dtshift or initial_dtlapse is set to an unexpected value
Reporter: Roland Haas
Status: new
Milestone:
Version:
Type: bug
Priority: minor
Component:
Comment (by Roland Haas):
One may also have to check if this will not fail when `cctk_lsh != cctk_ash` ie when padding is used. Currently the code uses:
```c++
int const npoints = cctk_lsh[0] * cctk_lsh[1] * cctk_lsh[2];
vector<double> xx(npoints), yy(npoints), zz(npoints);
```
and
```
for (int i=0; i<npoints; ++i) {
if (CCTK_EQUALS(initial_lapse, "Meudon_Bin_NS")) {
alp[i] = bin_ns.nnn[i];
}
}
```
which is incorrect when padding is used.
‌
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2631/meudon_binns-fail…
#2631: Meudon_BinNS fails if initial_dtshift or initial_dtlapse is set to an unexpected value
Reporter: Roland Haas
Status: new
Milestone:
Version:
Type: bug
Priority: minor
Component:
Meudon\_BinNS contains code like this:
‌
```c
if (CCTK_EQUALS(initial_lapse, "Meudon_Bin_NS")) {
if (CCTK_EQUALS (initial_dtlapse, "Meudon_Bin_NS")) {
CCTK_INFO ("Calculating time derivatives of lapse");
set_dt_from_domega (CCTK_PASS_CTOC, alp, dtalp, omega);
} else if (CCTK_EQUALS (initial_dtlapse, "none") or CCTK_EQUALS(initial_dtlapse,"zero")) {
// do nothing
} else {
CCTK_WARN (CCTK_WARN_ABORT, "internal error");
}
}
```
which fails if `initial_lapse` is set to `Meudon_Bin_NS` but `initial_dtlapse` is set to an unexpected value \(and similar for `shift`\). It also only sets `dtalp` if it sets `alp`.
Neither is correct. The correct way, documented here [https://www.einsteintoolkit.org/thornguide/EinsteinBase/ADMBase/documentati…, is to inspect each parameter independently and then, if the the parameter has a value matching one of the values that `Meudon_Bin_NS` added to the list of allowed keyword values, set the variable accordingly.
That is something along the lines:
```c
for (int i=0; i<npoints; ++i) {
if (CCTK_EQUALS(initial_lapse, "Meudon_Bin_NS")) {
alp[i] = bin_ns.nnn[i];
}
}
if (CCTK_EQUALS (initial_dtlapse, "Meudon_Bin_NS")) {
// use bin_ns.nnn to compute derivs of lapse in case alp is not set by us
set_dt_from_domega (CCTK_PASS_CTOC, bin_ns.nnn, dtalp, omega);
}
```
‌
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2631/meudon_binns-fail…
#2630: WaveMoL example computes energy from unsynchronized grid variables
Reporter: Roland Haas
Status: new
Milestone:
Version:
Type: bug
Priority: major
Component:
The WaveMoL example in CactusExamples computes the wave energy as `E = phi_t**2 + phi_i*phi_i` over the whole grid. However it does so on `MoL_PostStep` and ends up doing so before it applies boundary conditions and `SYNC` to the evolved variables \(`phi`, `phi_t` and `phi_i`\).
Pull request [https://bitbucket.org/cactuscode/cactusexamples/pull-requests/3/wavemol-com… addresses this.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2630/wavemol-example-c…
#2549: inlcude FLRWSolver in ET
Reporter: Roland Haas
Status: new
Milestone: ET_2022_05
Version: development version
Type: enhancement
Priority: major
Component:
Comment (by Roland Haas):
Chi Tian agreed to provide science level input if needed.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2549/inlcude-flrwsolve…
#2629: MoL_PseudoEvolution vs ANALYSIS
Reporter: Gabriele Bozzola
Status: new
Milestone:
Version:
Type: bug
Priority: major
Component:
Changes (by Gabriele Bozzola):
Consider a thorn like `NPScalars` in the canuda arrangement.
`NPScalars` computes the Newman-Penrose grid functions in the `CCTK_ANALYSIS` bin. The operation requires taking derivatives. Similarly, `LeanBSSNMoL` computes the constraints in the same bin \(this will likely be a regression I introduced in commit 80b6b1b\).
My understanding is now that `CCTK_ANALYSIS` is not the right place where to do this because of interpolation/prolongation/notsurewhat.
Is the fix to simply replace `CCTK_ANALYSIS` with `MoL_PseudoEvolution`?
I would like to make sure that this is the case considering also parameters like `compute_every`. Since these are expensive diagnostics, it is best to compute them only when they are output. Do I get the correct constraints/scalars if I compute and output them only when all the refinement levels are synced?
‌
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2629/mol_pseudoevoluti…
#2629: MoL_PseudoEvolution vs ANALYSIS
Reporter: Gabriele Bozzola
Status: new
Milestone:
Version:
Type: bug
Priority: major
Component:
Changes (by Gabriele Bozzola):
Consider a thorn like `NPScalars` in the canuda arrangement.
`NPScalars` computes the Newman-Penrose grid functions in the `CCTK_ANALYSIS` bin. The operation requires taking derivative. Similarly, `LeanBSSNMoL` computes the constraints in the same bin \(this will likely be a regression I introduced in commit 80b6b1b\).
My understanding is now that `CCTK_ANALYSIS` is not the right place where to do this because of interpolation/prolongation/notsurewhat.
Is the fix to simply replace `CCTK_ANALYSIS` with `MoL_PseudoEvolution`?
I would like to make sure that this is the case considering also parameters like `compute_every`. Since these are expensive diagnostics, it is best to compute them only when they are output. Do I get the correct constraints/scalars if I compute and output them only when all the refinement levels are synced?
‌
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2629/mol_pseudoevoluti…
#2629: MoL_PseudoEvolution vs ANALYSIS
Reporter: Gabriele Bozzola
Status: new
Milestone:
Version:
Type: bug
Priority: major
Component:
Consider a thorn like `NPScalars` in the canuda arrangement.
`NPScalars` computes the Newman-Penrose grid functions in the `CCTK_ANALYSIS` bin. The operation requires taking derivative. Similarly, `LeanBSSNMoL` computes the constraints in the same bin \(this will likely be a regression I introduced in commit 80b6b1b\).
My understanding is now that `CCTK_ANALYSIS` is not the right place where to do this because of interpolation/prolongation/notsurewhat.
Is the fix to simply replace `CCTK_ANALYSIS` with `MoL_PseudoEvolution`?
I would like to make sure that this is the considering also parameters like `compute_every`. Since these are expensive diagnostics, it is best to compute them only when they are output. Do I get the correct constraints/scalars if I compute and output them only when all the refinement levels are synced?
‌
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2629/mol_pseudoevoluti…