[ET Trac] #2916: Include Cottonmouth
Zach Etienne
trac-noreply at einsteintoolkit.org
Thu Apr 23 09:55:53 CDT 2026
#2916: Include Cottonmouth
Reporter: Beyhan Karakaş
Status: open
Milestone: ET_2026_05
Version:
Type: enhancement
Priority: major
Component: EinsteinToolkit thorn
Comment (by Zach Etienne):
Issues found (sorry for the uneven formatting):
```
Issue 1:
Missing symmetrization in the conformal Ricci tensor inside the constraints/analysis block.
Where the bug is
In `fun_bssn_cons`, the code uses
+ Delta[uc] * Gammat[la, lb, lc]
but in the BSSN Ricci decomposition the corresponding term is the symmetrized object
Delta^c * Gammat_(ab)c
which means
(1/2) * Delta^c * Gammat_abc
+ (1/2) * Delta^c * Gammat_bac.
Minimal fix
Replace
+ Delta[uc] * Gammat[la, lb, lc]
by
+ Rational(1, 2) * Delta[uc] * Gammat[la, lb, lc]
+ Rational(1, 2) * Delta[uc] * Gammat[lb, la, lc]
Note that your own `fun_bssn_rhs` block already contains the correct symmetrized pair and therefore serves as an internal consistency check.
```
2. bssnok.py
```
* Issue 2
- Severity high
- Description of the error
- The momentum-constraint matter source carries an extra factor of `w**2`. With `g_{ij} = (1 / w**2) * gt_{ij}`, one has `gamma^{ij} = w**2 * gt^{ij}`, but the conformal BSSN momentum constraint with free upper index uses `gt^{ij} * S_j`, not `gamma^{ij} * S_j`. The current code therefore overweights the source term by a factor of `w**2`.
- Filename + line number(s)
- Pasted file (filename not provided):638-648
- Original code snippet
- fun_bssn_cons.add_eqn(
MomCons[ua],
+ gt[ua, uc] * gt[ub, ud] * (
D(At[lc, ld], lb)
- Gammat[uk, lc, lb] * At[lk, ld]
- Gammat[uk, ld, lb] * At[lc, lk]
)
+ 6 * At[ua, ub] * cdphi[lb]
- Rational(2, 3) * gt[ua, ub] * D(trK, lb)
# Matter
- 8 * pi * w**2 * gt[ua, ub] * S[lb]
)
- Fixed code snippet.
- fun_bssn_cons.add_eqn(
MomCons[ua],
+ gt[ua, uc] * gt[ub, ud] * (
D(At[lc, ld], lb)
- Gammat[uk, lc, lb] * At[lk, ld]
- Gammat[uk, ld, lb] * At[lc, lk]
)
+ 6 * At[ua, ub] * cdphi[lb]
- Rational(2, 3) * gt[ua, ub] * D(trK, lb)
# Matter
- 8 * pi * gt[ua, ub] * S[lb]
)
- Confidence
- 96%
* Issue 3
- Severity low
- Description of the error
- The comments defining `Delta` are mathematically malformed. They describe the contraction with the wrong index pattern, which can mislead a reader into thinking `Delta^i` is built from `tilde gamma^{i,j} tilde Gamma^a_{ab}` or `tilde gamma^{ij} tilde Gamma^i_{jk}`. The correct definition is `Delta^i = tilde gamma^{jk} tilde Gamma^i_{jk}`. The executable code below the comments is correct; only the comments are wrong.
- Filename + line number(s)
- Pasted file (filename not provided):273-275
- Original code snippet
- # \tilde{\gamma}^{i, j} \tilde{\Gamma}^a_{a b}
# When \tilde{\Gamma}^{i} when it appears and its derivative are not needed,
# the substitution \tilde{\Gamma}^{i} \rightarrow \tilde{gamma}^{ij} \tilde{\Gamma}^{i}_{jk} = \Delta^i
- Fixed code snippet.
- # \Delta^i = \tilde{\gamma}^{jk} \tilde{\Gamma}^i_{jk}
# When \tilde{\Gamma}^{i} appears without derivatives, we replace it by
# \Delta^i = \tilde{\gamma}^{jk} \tilde{\Gamma}^{i}_{jk}
- Confidence
- 99%
```
```
Issue 4:
linear_wave.py:
File sets an unphysical default amplitude for the wave:
amplitude = cottonmouth_linear_wave_id.add_param(
"amplitude",
default=1.0,
desc="Linear wave amplitude"
)
A << 1 for a valid linearized wave.
```
--
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2916/include-cottonmouth
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.einsteintoolkit.org/pipermail/trac/attachments/20260423/3cc7552a/attachment.htm>
More information about the Trac
mailing list