NPScalars computes the Newman-Penrose scalar \(\Psi _{4}\) with up to 6th order accurate finite-difference stencils.
NPScalars was introduced in [1] (cf. Appendix C therein for the detailed description) as part of the Lean code, to compute the Newman-Penrose scalar \(\Psi _{4}\) and perform its decomposition into spherical harmonics. It has since been modified to interface instead with the Multipole thorn for this decomposition.
The thorn was made publicly available through the Canuda numerical relativity library [2], and has since been distributed also as a part of the Einstein Toolkit.
The bulk of the code is written in Fortran 90 and should be simple to follow – emphasis has been given to readability.
NPScalars is included with the Einstein Toolkit and can also be obtained through the Canuda numerical relativity library [2].
[1] U. Sperhake, “Binary black-hole evolutions of excision and puncture data,” Phys. Rev. D 76 (2007), 104015 doi:10.1103/PhysRevD.76.104015 [arXiv:gr-qc/0606079 [gr-qc]].
[2] H. Witek, M. Zilhao, G. Bozzola, C.-H. Cheng, A. Dima, M. Elley, G. Ficarra, T. Ikeda, R. Luna, C. Richards, N. Sanchis-Gual, H. Okada da Silva. “Canuda: a public numerical relativity library to probe fundamental physics,” Zenodo (2023) doi: 10.5281/zenodo.3565474
calculate_np_every | Scope: private | INT |
Description: Calculate NP scalars every N iterations
| ||
Range | Default: 1 | |
*:* | 0 or negative is never
| |
np_order | Scope: private | INT |
Description: Second or fourth order accuracy?
| ||
Range | Default: 4 | |
2 | Second order
| |
4 | Fourth order
| |
6 | Sixth order
| |
Implements:
npscalars
Inherits:
admbase
Group Names | Variable Names | Details | |
nppsi4r_group | compact | 0 | |
psi4re | dimensions | 3 | |
distribution | DEFAULT | ||
group type | GF | ||
tags | tensortypealias=”Scalar” tensorweight=0 tensorparity=1 | ||
timelevels | 3 | ||
variable type | REAL | ||
nppsi4i_group | compact | 0 | |
psi4im | dimensions | 3 | |
distribution | DEFAULT | ||
group type | GF | ||
tags | tensortypealias=”Scalar” tensorweight=0 tensorparity=-1 | ||
timelevels | 3 | ||
variable type | REAL | ||
This section lists all the variables which are assigned storage by thorn Lean/NPScalars. Storage can either last for the duration of the run (Always means that if this thorn is activated storage will be assigned, Conditional means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.
Always: | |
NPPsi4R_group[3] | |
NPPsi4I_group[3] | |
CCTK_PARAMCHECK
npscalars_paramcheck
check npscalars parameters for consistency
Language: | c | |
Type: | function | |
CCTK_BASEGRID
np_symmetries
set symmetries for grid functions
Language: | fortran | |
Options: | meta | |
Type: | function | |
CalcNPScalars_BC
npboundaries
symmetry boundary conditions
Language: | fortran | |
Options: | level | |
Sync: | nppsi4r_group | |
nppsi4i_group | ||
Type: | function | |
CalcNPScalars_BC
applybcs
apply boundary conditions
After: | npboundaries | |
Type: | group | |
CCTK_POSTINITIAL
calcnpscalars
calculate npscalars
Type: | group | |
MoL_PseudoEvolution
calcnpscalars
calculate npscalars
After: | admbase_setadmvars | |
Type: | group | |
CalcNPScalars
np_calcpsigf
calculate psi4 as grid function
Language: | fortran | |
Options: | local | |
Type: | function | |
CalcNPScalars
calcnpscalars_bc
boundary conditions
After: | np_calcpsigf | |
Type: | group | |
CCTK_POSTREGRIDINITIAL
calcnpscalars_bc
boundary conditions
After: | mol_poststep | |
Type: | group | |
CCTK_POSTREGRID
calcnpscalars_bc
boundary conditions
After: | mol_poststep | |
Type: | group | |
CCTK_POSTRESTRICTINITIAL
calcnpscalars_bc
boundary conditions
After: | mol_poststep | |
Type: | group | |
CCTK_POSTRESTRICT
calcnpscalars_bc
boundary conditions
After: | mol_poststep | |
Type: | group | |
Alias Name: | Function Name: |
ApplyBCs | ApplyBCs_NP |