#2634: CCTK_BUILTIN_EXPECT is not documented
Reporter: Swapnil Shankar
Status: new
Milestone:
Version:
Type: enhancement
Priority: minor
Component:
CCTK\_BUILTIN\_EXPECT is not documented in Cactus Reference Manual or Cactus Users' Guide.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2634/cctk_builtin_expe…
#2633: SummationByPart's Diff_gv aliased function does ont document which part of the grid the computed derivative is valid
Reporter: Roland Haas
Status: new
Milestone:
Version:
Type: bug
Priority: minor
Component:
Changes (by Roland Haas):
responsible: [] (was )
assignee: Peter Diener (was )
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2633/summationbyparts-…
#2633: SummationByPart's Diff_gv aliased function does ont document which part of the grid the computed derivative is valid
Reporter: Roland Haas
Status: new
Milestone:
Version:
Type: bug
Priority: minor
Component:
Looking at the code in SummationByParts
```fortran
case (0) direction
if ( bb(1) == 0 ) then
il = 1 + gsize else
ol = offset(1)
!$omp parallel workshare
dvar(1+ol,:,:) = ( q(1,1) * var(1+ol,:,:) + q(2,1) * var(2+ol,:,:) ) * idel
dvar(2+ol,:,:) = ( q(1,2) * var(1+ol,:,:) + q(3,2) * var(3+ol,:,:) ) * idel
!$omp end parallel workshare
il = 3 + ol
end if
```
seems to indicate that for non-boundary ends of a grid component \(`bb == 0`\) derivatives are computed only in the interior \(from `il = 1+gsize`\) while for boundary ends some \(larger\) area is valid.
This does not seem to be documented though, at least I could not find it in either documentation.tex nor interface.ccl.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2633/summationbyparts-…
#2632: SummationByPart assumes `cctk_lsh == cctk_ash`
Reporter: Roland Haas
Status: new
Milestone:
Version:
Type: bug
Priority: minor
Component:
SummationByParts sets `ni = cctk_lsh[0]` but then uses this \(in Fortran code\) to size the array in memory:
```fortran
CCTK_REAL, dimension(ni,nj,nk), intent(IN) :: var
```
which will fail when `cctk_lsh != cctk_ash` that is when padding is used.
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2632/summationbypart-a…
#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):
There’s also a bug in that setting `dtalp` requires computing spatial derivatives \(via SummationByParts `Diff_Gv` aliased function\) so that it can only be computed in the interior, but no SYNC or boundary condition is applied. The easiest fix to this \(since boundary conditions applied to initial data are tricky\) would likely be to compute `alp` on a grid larger than the Cactus grid so that `dx_alp` can be computed on the whole Cactus grid.
--
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:
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: open
Milestone:
Version:
Type: bug
Priority: major
Component:
Changes (by Roland Haas):
status: open (was new)
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2630/wavemol-example-c…