pybhpt 0.9.5__cp313-cp313-macosx_14_0_arm64.whl → 0.9.8__cp313-cp313-macosx_14_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pybhpt might be problematic. Click here for more details.

Binary file
pybhpt/geo.py CHANGED
@@ -499,25 +499,256 @@ class KerrGeodesic:
499
499
  """
500
500
  return np.dot(np.array([n, k, m]), (self.frequencies))
501
501
 
502
- def minotime(self, t):
502
+ def psi_radial(self, la):
503
+ """
504
+ Function that returns the radial true anomaly for a given Mino time value.
505
+
506
+ Parameters
507
+ ----------
508
+ la : float or numpy.ndarray
509
+ The Mino time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
510
+
511
+ Returns
512
+ -------
513
+ numpy.ndarray
514
+ The radial true anomaly for the given Mino time value(s).
515
+ """
516
+ if isinstance(la, np.ndarray) or isinstance(la, list):
517
+ return self.base.psi_radial_vec(np.array(la))
518
+ else:
519
+ return self.base.psi_radial(la)
520
+
521
+ def psi_polar(self, la):
522
+ """
523
+ Function that returns the polar Darwin phase for a given Mino time value.
524
+
525
+ Parameters
526
+ ----------
527
+ la : float or numpy.ndarray
528
+ The Mino time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
529
+
530
+ Returns
531
+ -------
532
+ numpy.ndarray
533
+ The polar Darwin phase for the given Mino time value(s).
534
+ """
535
+ if isinstance(la, np.ndarray) or isinstance(la, list):
536
+ return self.base.psi_polar_vec(np.array(la))
537
+ else:
538
+ return self.base.psi_polar(la)
539
+
540
+ def psi_radial_of_t(self, t):
541
+ """
542
+ Function that returns the radial true anomaly for a given time value.
543
+
544
+ Parameters
545
+ ----------
546
+ t : float or numpy.ndarray
547
+ The time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
548
+
549
+ Returns
550
+ -------
551
+ numpy.ndarray
552
+ The radial true anomaly for the given time value(s).
553
+ """
554
+ if isinstance(t, np.ndarray) or isinstance(t, list):
555
+ return self.base.psi_radial_time_vec(np.array(t))
556
+ else:
557
+ return self.base.psi_radial_time(t)
558
+
559
+ def psi_polar_of_t(self, t):
560
+ """
561
+ Function that returns the polar Darwin phase for a given time value.
562
+
563
+ Parameters
564
+ ----------
565
+ t : float or numpy.ndarray
566
+ The time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
567
+
568
+ Returns
569
+ -------
570
+ numpy.ndarray
571
+ The polar Darwin phase for the given time value(s).
572
+ """
573
+ if isinstance(t, np.ndarray) or isinstance(t, list):
574
+ return self.base.psi_polar_time_vec(np.array(t))
575
+ else:
576
+ return self.base.psi_polar_time(t)
577
+
578
+ def time_position(self, la):
579
+ """
580
+ Function that returns the time position for a given Mino time value.
581
+
582
+ Parameters
583
+ ----------
584
+ la : float or numpy.ndarray
585
+ The Mino time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
586
+
587
+ Returns
588
+ -------
589
+ numpy.ndarray
590
+ The time position for the given Mino time value(s).
591
+ """
592
+ if isinstance(la, np.ndarray) or isinstance(la, list):
593
+ return self.base.time_position_vec(np.array(la))
594
+ else:
595
+ return self.base.time_position(la)
596
+
597
+ def radial_position(self, la):
598
+ """
599
+ Function that returns the radial position for a given Mino time value.
600
+
601
+ Parameters
602
+ ----------
603
+ la : float or numpy.ndarray
604
+ The Mino time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
605
+
606
+ Returns
607
+ -------
608
+ numpy.ndarray
609
+ The radial position for the given Mino time value(s).
610
+ """
611
+ if isinstance(la, np.ndarray) or isinstance(la, list):
612
+ return self.base.radial_position_vec(np.array(la))
613
+ else:
614
+ return self.base.radial_position(la)
615
+
616
+ def polar_position(self, la):
617
+ """
618
+ Function that returns the polar position for a given Mino time value.
619
+
620
+ Parameters
621
+ ----------
622
+ la : float or numpy.ndarray
623
+ The Mino time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
624
+
625
+ Returns
626
+ -------
627
+ numpy.ndarray
628
+ The polar position for the given Mino time value(s).
629
+ """
630
+ if isinstance(la, np.ndarray) or isinstance(la, list):
631
+ return self.base.polar_position_vec(np.array(la))
632
+ else:
633
+ return self.base.polar_position(la)
634
+
635
+ def azimuthal_position(self, la):
636
+ """
637
+ Function that returns the azimuthal position for a given Mino time value.
638
+
639
+ Parameters
640
+ ----------
641
+ la : float or numpy.ndarray
642
+ The Mino time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
643
+
644
+ Returns
645
+ -------
646
+ numpy.ndarray
647
+ The azimuthal position for the given Mino time value(s).
648
+ """
649
+ if isinstance(la, np.ndarray) or isinstance(la, list):
650
+ return self.base.azimuthal_position_vec(np.array(la))
651
+ else:
652
+ return self.base.azimuthal_position(la)
653
+
654
+ def radial_position_of_t(self, t):
655
+ """
656
+ Function that returns the radial position for a given Mino time value.
657
+
658
+ Parameters
659
+ ----------
660
+ t : float or numpy.ndarray
661
+ The Mino time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
662
+
663
+ Returns
664
+ -------
665
+ numpy.ndarray
666
+ The radial position for the given Mino time value(s).
667
+ """
668
+ if isinstance(t, np.ndarray) or isinstance(t, list):
669
+ return self.base.radial_position_time_vec(np.array(t))
670
+ else:
671
+ return self.base.radial_position_time(t)
672
+
673
+ def polar_position_of_t(self, t):
674
+ """
675
+ Function that returns the polar position for a given time value.
676
+
677
+ Parameters
678
+ ----------
679
+ t : float or numpy.ndarray
680
+ The time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
681
+
682
+ Returns
683
+ -------
684
+ numpy.ndarray
685
+ The polar position for the given time value(s).
686
+ """
687
+ if isinstance(t, np.ndarray) or isinstance(t, list):
688
+ return self.base.polar_position_time_vec(np.array(t))
689
+ else:
690
+ return self.base.polar_position_time(t)
691
+
692
+ def azimuthal_position_of_t(self, t):
693
+ """
694
+ Function that returns the azimuthal position for a given time value.
695
+
696
+ Parameters
697
+ ----------
698
+ t : float or numpy.ndarray
699
+ The time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
700
+
701
+ Returns
702
+ -------
703
+ numpy.ndarray
704
+ The azimuthal position for the given time value(s).
705
+ """
706
+ if isinstance(t, np.ndarray) or isinstance(t, list):
707
+ return self.base.azimuthal_position_time_vec(np.array(t))
708
+ else:
709
+ return self.base.azimuthal_position_time(t)
710
+
711
+ def mino_of_t(self, t):
503
712
  """
504
713
  Function that returns the Mino time for a given Boyer-Lindquist time.
505
714
 
506
715
  Parameters
507
716
  ----------
508
- t : float
509
- The Boyer-Lindquist time.
717
+ t : float or numpy.ndarray
718
+ The Boyer-Lindquist time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
510
719
 
511
- Returns
720
+ Returns
512
721
  -------
513
- float
514
- The Mino time for the given Boyer-Lindquist time.
722
+ numpy.ndarray
723
+ The Mino time for the given Boyer-Lindquist time value(s).
515
724
  """
516
- return self.base.mino_time(t)
725
+ if isinstance(t, np.ndarray) or isinstance(t, list):
726
+ return self.base.mino_time_vec(np.array(t))
727
+ else:
728
+ return self.base.mino_time(t)
517
729
 
518
- def __call__(self, la):
730
+ def position_of_t(self, t):
519
731
  """
520
- Function that returns the position vector for a given Mino time value.
732
+ Function that returns the position vector (r, theta, phi) for a given Boyer-Lindquist time value.
733
+
734
+ Parameters
735
+ ----------
736
+ t : float or numpy.ndarray
737
+ The Boyer-Lindquist time value(s). If a numpy array is provided, the function will return a numpy array of the same shape.
738
+
739
+ Returns
740
+ -------
741
+ numpy.ndarray
742
+ The position vector (r, theta, phi) for the given Boyer-Lindquist time value(s).
743
+ """
744
+ if isinstance(t, np.ndarray) or isinstance(t, list):
745
+ return self.base.position_time_vec(np.array(t))
746
+ else:
747
+ return self.base.position_time(t)
748
+
749
+ def position(self, la):
750
+ """
751
+ Function that returns the position vector (t, r, theta, phi) for a given Mino time value.
521
752
  Parameters
522
753
  ----------
523
754
  la : float or numpy.ndarray
@@ -525,9 +756,12 @@ class KerrGeodesic:
525
756
  Returns
526
757
  -------
527
758
  numpy.ndarray
528
- The position vector for the given Mino time value(s).
759
+ The position vector (t, r, theta, phi) for the given Mino time value(s).
529
760
  """
530
761
  if isinstance(la, np.ndarray) or isinstance(la, list):
531
762
  return self.base.position_vec(np.array(la))
532
763
  else:
533
- return self.base.position(la)
764
+ return self.base.position(la)
765
+
766
+ def __call__(self, la):
767
+ return self.position(la)
pybhpt/swsh.py CHANGED
@@ -48,6 +48,9 @@ def Yslm(s, l, m, th, ph = None):
48
48
  array_like
49
49
  The values of the spherical harmonic at the specified angles.
50
50
  """
51
+ assert isinstance(s, int) and isinstance(l, int) and isinstance(m, int), "s, l, and m must be integers"
52
+ if ph is not None:
53
+ return Yslm(s, l, m, th)*np.exp(1.j*m*ph)
51
54
  if np.abs(s) > l:
52
55
  return 0.*th
53
56
  if s == 0:
@@ -377,7 +380,7 @@ class SpinWeightedSpheroidalHarmonic(SWSHSeriesBase):
377
380
  if self.spheroidicity == 0.:
378
381
  self.eval = self.Yslm
379
382
  self.eigenvalue = Yslm_eigenvalue(self.s, self.l)
380
- self.coeffs = np.zeros(self.l - self.lmin)
383
+ self.coeffs = np.zeros(self.l - self.lmin + 1)
381
384
  self.coeffs[-1] = 1.
382
385
  else:
383
386
  self.eval = self.Sslm
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: pybhpt
3
- Version: 0.9.5
3
+ Version: 0.9.8
4
4
  Summary: Black Hole Perturbation Theory and Self-Force Algorithms in Python
5
5
  Author-Email: Zach Nasipak <znasipak@gmail.com>
6
6
  License: GPL
@@ -1,16 +1,16 @@
1
- cybhpt_full.cpython-313-darwin.so,sha256=ymcJLRrQzWWUy7SPjPt9DtWlh7RR-CaiKV7xbtAE4Q4,1768624
2
- pybhpt/geo.py,sha256=H-rTM6zy-9EvLaMaeyMfwbdwgAS53d_Z6dmBCp3eya4,15473
1
+ cybhpt_full.cpython-313-darwin.so,sha256=2yz4piOZBAuNaFEzxQqGd_PvrfVIVRc_ErvCV8J6b6c,1802288
2
+ pybhpt-0.9.8.dist-info/RECORD,,
3
+ pybhpt-0.9.8.dist-info/WHEEL,sha256=JQjbSeIEkRYX2pMcC7AUVmS6hQLl2Hp0BI-A19AYobA,141
4
+ pybhpt-0.9.8.dist-info/METADATA,sha256=NIzqGzLYfDWkON7jWb24fRxC7DbZzIrcdMYBF2iOWlA,6367
5
+ pybhpt-0.9.8.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
6
+ pybhpt/geo.py,sha256=VqbarbR1CC7ARD82FI8vmoNnklCZUoraRVJOii3vBlE,23803
3
7
  pybhpt/redshift.py,sha256=ozDDbkv34FQ_Op3FotmHJ-J5Vfy2oF4_Ri1HRujnzAY,791
4
8
  pybhpt/hertz.py,sha256=9atjscxbR7eszsY6BuJvcy0PqlgMFwYI23kUIn4mUwc,13565
5
9
  pybhpt/radial.py,sha256=t9Lx6Cyuprxqk2iowbvHMvsoL-6UO-YnZmO1G1wdyMU,15597
6
10
  pybhpt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- pybhpt/swsh.py,sha256=w3XQoadHY-aiZZYQo5sUjweimM3HJ44AWuFcA2uuffs,14641
11
+ pybhpt/swsh.py,sha256=sQR0S-tHXYaAIuuW9kHK99U39htXt5j8oGWPZzIqwt0,14826
8
12
  pybhpt/metric.py,sha256=y8ip24rFto7m7rZb0-fuYMrYUmbCzInaWQVYJRI3m3o,11971
9
13
  pybhpt/teuk.py,sha256=8rZ-2fyzAfTbt9T4-lkUL8wUmPpORv0VkJCfkpEBssc,13616
10
14
  pybhpt/flux.py,sha256=2ahStjbsswsWMNPfDiOlQIrzulJZrhaqoDENC0bCLE4,4299
11
15
  pybhpt/.dylibs/libgsl.28.dylib,sha256=57NeYzXRx_Fvr8ChQggQOBqCgqn5xXxWyFIiGMm3-_M,2241424
12
16
  pybhpt/.dylibs/libgslcblas.0.dylib,sha256=FuXGrQKlT1nkAMaRH6O1B_CnRFFX4pqVcK36KX_-56A,239760
13
- pybhpt-0.9.5.dist-info/RECORD,,
14
- pybhpt-0.9.5.dist-info/WHEEL,sha256=JQjbSeIEkRYX2pMcC7AUVmS6hQLl2Hp0BI-A19AYobA,141
15
- pybhpt-0.9.5.dist-info/METADATA,sha256=OXj1Mg_Dtv15cYn28Uo0FffhH9LkR9Xp8NcIUWBxMK0,6367
16
- pybhpt-0.9.5.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
File without changes