Skip to content

Commit 0d71021

Browse files
authored
Add defaults for given_in_basis (#136)
Closes #133 Set defaults for given_in_basis: `"0"` for scalar and `"v"` for vector-valued.
1 parent f9ed0f1 commit 0d71021

File tree

3 files changed

+35
-20
lines changed

3 files changed

+35
-20
lines changed

src/struphy/feec/psydac_derham.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1775,6 +1775,9 @@ def f_tmp(e1, e2, e3):
17751775
# perturbation class
17761776
elif isinstance(ptb, Perturbation):
17771777
if self.space_id in {"H1", "L2"}:
1778+
if ptb.given_in_basis is None:
1779+
ptb.given_in_basis = "0"
1780+
17781781
fun = TransformedPformComponent(
17791782
ptb,
17801783
ptb.given_in_basis,
@@ -1785,6 +1788,8 @@ def f_tmp(e1, e2, e3):
17851788
fun_vec = [None] * 3
17861789
fun_vec[ptb.comp] = ptb
17871790

1791+
if ptb.given_in_basis is None:
1792+
ptb.given_in_basis = "v"
17881793
# pullback callable for each component
17891794
fun = []
17901795
for comp in range(3):

src/struphy/initial/perturbations.py

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ class Noise(Perturbation):
3131
amp: float = 0.0001
3232
seed: int = None
3333
comp: int = 0
34-
given_in_basis: GivenInBasis = "0"
34+
given_in_basis: GivenInBasis = None
3535

3636
def __post_init__(
3737
self,
@@ -111,7 +111,7 @@ def __init__(
111111
Lx=1.0,
112112
Ly=1.0,
113113
Lz=1.0,
114-
given_in_basis: GivenInBasis = "0",
114+
given_in_basis: GivenInBasis = None,
115115
comp: int = 0,
116116
):
117117
if ls is not None:
@@ -247,7 +247,7 @@ def __init__(
247247
Lx=1.0,
248248
Ly=1.0,
249249
Lz=1.0,
250-
given_in_basis: GivenInBasis = "0",
250+
given_in_basis: GivenInBasis = None,
251251
comp: int = 0,
252252
):
253253
if ls is not None:
@@ -448,7 +448,7 @@ def __init__(
448448
Lx=1.0,
449449
Ly=1.0,
450450
Lz=1.0,
451-
given_in_basis: GivenInBasis = "0",
451+
given_in_basis: GivenInBasis = None,
452452
comp: int = 0,
453453
):
454454
if ls is not None:
@@ -553,7 +553,7 @@ def __init__(
553553
Lx=1.0,
554554
Ly=1.0,
555555
Lz=1.0,
556-
given_in_basis: GivenInBasis = "0",
556+
given_in_basis: GivenInBasis = None,
557557
comp: int = 0,
558558
):
559559
if ls is not None:
@@ -658,7 +658,7 @@ def __init__(
658658
Lx=1.0,
659659
Ly=1.0,
660660
Lz=1.0,
661-
given_in_basis: GivenInBasis = "0",
661+
given_in_basis: GivenInBasis = None,
662662
comp: int = 0,
663663
):
664664
# number of modes
@@ -765,7 +765,7 @@ def __init__(
765765
Lx=1.0,
766766
Ly=1.0,
767767
Lz=1.0,
768-
given_in_basis: GivenInBasis = "0",
768+
given_in_basis: GivenInBasis = None,
769769
comp: int = 0,
770770
):
771771
# number of modes
@@ -902,10 +902,11 @@ def __init__(
902902
amps=(1e-4,),
903903
pfuns=("sin",),
904904
pfun_params=None,
905-
given_in_basis: GivenInBasis = "0",
905+
given_in_basis: GivenInBasis = None,
906906
comp: int = 0,
907907
):
908-
assert "physical" not in given_in_basis
908+
if given_in_basis is not None:
909+
assert "physical" not in given_in_basis
909910

910911
if ms is not None:
911912
n_modes = len(ms)
@@ -1034,10 +1035,11 @@ def __init__(
10341035
amps: tuple = (0.1,),
10351036
pfuns: tuple = ("sin",),
10361037
pfun_params=None,
1037-
given_in_basis: GivenInBasis = "0",
1038+
given_in_basis: GivenInBasis = None,
10381039
comp: int = 0,
10391040
):
1040-
assert "physical" not in given_in_basis
1041+
if given_in_basis is not None:
1042+
assert "physical" not in given_in_basis
10411043

10421044
if ms is not None:
10431045
n_modes = len(ms)
@@ -1144,10 +1146,11 @@ def __init__(
11441146
self,
11451147
amp=1e-4,
11461148
delta=1 / 15,
1147-
given_in_basis: GivenInBasis = "0",
1149+
given_in_basis: GivenInBasis = None,
11481150
comp: int = 0,
11491151
):
1150-
assert "physical" not in given_in_basis, f"Perturbation {self.__name__} can only be used in logical space."
1152+
if given_in_basis is not None:
1153+
assert "physical" not in given_in_basis, f"Perturbation {self.__name__} can only be used in logical space."
11511154

11521155
self._amp = amp
11531156
self._delta = delta
@@ -1190,10 +1193,11 @@ def __init__(
11901193
self,
11911194
amp=1e-4,
11921195
delta=1 / 15,
1193-
given_in_basis: GivenInBasis = "0",
1196+
given_in_basis: GivenInBasis = None,
11941197
comp: int = 0,
11951198
):
1196-
assert "physical" not in given_in_basis, f"Perturbation {self.__name__} can only be used in logical space."
1199+
if given_in_basis is not None:
1200+
assert "physical" not in given_in_basis, f"Perturbation {self.__name__} can only be used in logical space."
11971201

11981202
self._amp = amp
11991203
self._delta = delta
@@ -1236,10 +1240,11 @@ def __init__(
12361240
self,
12371241
amp=1e-4,
12381242
delta=1 / 15,
1239-
given_in_basis: GivenInBasis = "0",
1243+
given_in_basis: GivenInBasis = None,
12401244
comp: int = 0,
12411245
):
1242-
assert "physical" not in given_in_basis, f"Perturbation {self.__name__} can only be used in logical space."
1246+
if given_in_basis is not None:
1247+
assert "physical" not in given_in_basis, f"Perturbation {self.__name__} can only be used in logical space."
12431248

12441249
self._amp = amp
12451250
self._delta = delta
@@ -1282,10 +1287,11 @@ def __init__(
12821287
self,
12831288
amp=1e-4,
12841289
delta=1 / 15,
1285-
given_in_basis: GivenInBasis = "0",
1290+
given_in_basis: GivenInBasis = None,
12861291
comp: int = 0,
12871292
):
1288-
assert "physical" not in given_in_basis, f"Perturbation {self.__name__} can only be used in logical space."
1293+
if given_in_basis is not None:
1294+
assert "physical" not in given_in_basis, f"Perturbation {self.__name__} can only be used in logical space."
12891295

12901296
self._amp = amp
12911297
self._delta = delta
@@ -1970,7 +1976,6 @@ def __init__(
19701976
self,
19711977
n0: float = 0.00720655,
19721978
c: tuple = (0.491230, 0.298228, 0.198739, 0.521298),
1973-
given_in_basis: GivenInBasis = "0",
19741979
comp: int = 0,
19751980
):
19761981
"""

src/struphy/pic/base.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,6 +1259,9 @@ def _set_initial_condition(self):
12591259
assert isinstance(pert, Perturbation)
12601260

12611261
if moment == "n":
1262+
if pert.given_in_basis is None:
1263+
pert.given_in_basis = "0"
1264+
12621265
_fun = TransformedPformComponent(
12631266
pert,
12641267
pert.given_in_basis,
@@ -1267,6 +1270,8 @@ def _set_initial_condition(self):
12671270
domain=self.domain,
12681271
)
12691272
elif moment == "u1":
1273+
if pert.given_in_basis is None:
1274+
pert.given_in_basis = "v"
12701275
_fun = TransformedPformComponent(
12711276
pert,
12721277
pert.given_in_basis,

0 commit comments

Comments
 (0)