1.4.0
Version 1.4.0 (2 May 2023)
General
- Minimum version of Python required is now 3.7.
kuibit
now explicitly follows NEP29. - Started gradual typing
- Now
SimDir
can be imported directly fromkuibit
(from kuibit import SimDir
) - Update logo to high resolution (and vector graphics)
Features
- Added linear momentum lost by gravitational waves along the x and y directions (starting from a contribution by @konrad-topolski)
- Added
Tree
data structure - Added
effective_amplitude_spectral_density
withingw_utils
(starting from a contribution by @irrationalnumbers, #27) - Added fourth order accuracy in finite differences of grid functions
- Added
copy
to gravitational and electromagnetic waves - Added
crop
andcropped
to multipole data setup_matplotlib
now takes an optional parameterrc_param_file
to configure matplotlib using a file- Added computation of linear momentum lost by electromagnetic waves
- Added
rotation180_symmetry_undo
to undo rotational symmetries in grid data - Added
cactus_twopunctures
to read metadata from TwoPunctures - Added
local_maxima
andlocal_minima
to series - Added
mean
,average
,median
,std
reductions to series and grid data - Added
ah_available
,qlm_available
toOneHorizon
- Added
tensor
module - Added support to
surface*.vtk
fromQuasiLocalMeasures
Support to VTK
variables from QuasiLocalMeasures
QuasiLocalMeasures
has an option to output its variables on the horizon. Now, kuibit
can read and parse them, so it is possible to plot horizon meshes and variables onto the mesh.
New tensor
module
kuibit.tensor
is a new module to provide high-level interfaces to work with tensorial objects. A Tensor
can be built with collections of TimeSeries
, FrequencySeries
, UniformGridData
, HierarchicalGridData
, or any other class derived from BaseNumerical
. Tensor
s support all the mathematical operations and inherit the methods from their contained object. At the moment, there are two new subclasses of Tensor
that implement additional features for vector calculus. For example, if bh_cen
is a Vector
with the time evolution of the centroid of an horizon. bh_cen.differentiated().norm()
will be a TimeSeries
with the magnitude of the coordinate velocity as a function of time (as a TimeSeries
).
Currently, the number of specialized methods in Vector
and Matrix
is not large. Nonetheless, the infrastructure is in place and adding new will be straightforward.
New cactus_twopunctures
module
TwoPunctures
creates a metadata file that stores important physical information about the initial data. The new module cactus_twopunctures
can read this information and present it as a dictionary. If sim
is a SimFactory
, sim.twopunctures
will be a dictionary-like object that has as keys the various quantities saved by TwoPunctures
and as values, their values as read from the TwoPunctures.bbh` file.
New tree
module
kuibit.tree
is a new module that can represent tree structures. At the moment, it is main use is to work with timer trees.
New hor_utils
module
kuibit.hor_utils
is a handy new module that implements common functions needed when working with binary black holes. At the moment, the functions implemented are:
compute_separation_vector
compute_separation
compute_center_of_mass
compute_angular_velocity_vector
Bug fixes
- Fix passing an empty
ah_vars
toOneHorizon
. - Fix floating-point comparison in
grid_data
. - Fix optional positional arguments to
series._local_extrema
. - Fix algorithm to compute hash for
UniformGrid
. - Make classes that should not hashed unhashable.
GravitationalWaves
now find multipole variables that containpsi4
(as opposed to being identically toPsi4
)
Detector sensitivity curves
New/updated examples
Scripts:
describe_simdir.py
interactive_timertree.py
print_available_iteration.py
optionally prints the corresponding timeplot_charge_phi1.py
plot_binary_ah_angular_velocity.py
plot_binary_ah_period.py