From 6d61db640150d409487201d605ff02079748c895 Mon Sep 17 00:00:00 2001 From: Soham Banerjee Date: Tue, 22 Apr 2025 16:25:46 -0400 Subject: [PATCH 01/16] added gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..7ec04427 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +mlruns/ From d2211a963ac3df23b52c4ca9f16afda01662e135 Mon Sep 17 00:00:00 2001 From: Soham Banerjee Date: Tue, 22 Apr 2025 16:26:59 -0400 Subject: [PATCH 02/16] added launch.json --- .vscode/launch.json | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 00000000..166f3a3b --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,16 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Python Debugger: Current File with Arguments", + "type": "debugpy", + "request": "launch", + "program": "${file}", + "console": "integratedTerminal", + "args": ["--cfg", "configs/1d", "--mode", "fit"] + } + ] +} \ No newline at end of file From ce45cd6f53ea093453f914ade69ee3f5aebfdfbc Mon Sep 17 00:00:00 2001 From: Soham Banerjee Date: Thu, 24 Apr 2025 18:04:28 -0400 Subject: [PATCH 03/16] Changed ts_params and inputs for multiple Va, but form factor gives multiply by non-int type error --- configs/1d/defaults.yaml | 6 --- configs/1d/inputs.yaml | 69 +++++++++++++++++++++++++++--- tsadar/core/modules/ts_params.py | 32 +++++++++----- tsadar/core/physics/form_factor.py | 6 ++- 4 files changed, 88 insertions(+), 25 deletions(-) diff --git a/configs/1d/defaults.yaml b/configs/1d/defaults.yaml index 8dec5025..ffde634a 100644 --- a/configs/1d/defaults.yaml +++ b/configs/1d/defaults.yaml @@ -69,12 +69,6 @@ parameters: active: False lb: -100.0 ub: 100.0 - Va: - val: 0.0 - angle: 0.0 - active: False - lb: -20.5 - ub: 20.5 other: expandedions: False diff --git a/configs/1d/inputs.yaml b/configs/1d/inputs.yaml index 1215a15a..12bd6607 100644 --- a/configs/1d/inputs.yaml +++ b/configs/1d/inputs.yaml @@ -57,12 +57,6 @@ parameters: num_grad_points: 1 ub: 15.0 val: 0.0 - Va: - active: false - angle: 0.0 - lb: -40.5 - ub: 40.5 - val: 0.0 amp1: active: true lb: 0.01 @@ -95,21 +89,84 @@ parameters: lb: -20.0 ub: 40.0 val: 0.0 + ion-1: A: active: false val: 40.0 Ti: + active: True + lb: 0.01 + same: false + ub: 1.0 + val: 0.1 + Z: + active: True + lb: 1.0 + ub: 18.0 + val: 8.0 + Va: + active: True + angle: 0.0 + lb: 0.0 + ub: 40.5 + val: 15.0 + fract: + active: false + val: 1.0 + type: + active: false + ion: null + + ion-2: + A: active: false + val: 40.0 + Ti: + active: True lb: 0.01 same: false ub: 1.0 val: 0.1 Z: + active: True + lb: 1.0 + ub: 18.0 + val: 8.0 + Va: + active: True + angle: 0.0 + lb: 0.0 + ub: 40.5 + val: 20.0 + fract: + active: false + val: 1.0 + type: active: false + ion: null + + ion-3: + A: + active: false + val: 40.0 + Ti: + active: True + lb: 0.01 + same: false + ub: 1.0 + val: 0.1 + Z: + active: True lb: 1.0 ub: 18.0 val: 8.0 + Va: + active: True + angle: 0.0 + lb: 0.0 + ub: 40.5 + val: 10.0 fract: active: false val: 1.0 diff --git a/tsadar/core/modules/ts_params.py b/tsadar/core/modules/ts_params.py index a82766aa..12fd8537 100644 --- a/tsadar/core/modules/ts_params.py +++ b/tsadar/core/modules/ts_params.py @@ -133,11 +133,14 @@ def __call__(self): class IonParams(eqx.Module): normed_Ti: Array normed_Z: Array + normed_Va: Array #SB fract: Array Ti_scale: float Ti_shift: float Z_scale: float Z_shift: float + Va_scale: float # SB + Va_shift: float # SB A: int act_funs: Dict[str, Callable] inv_act_funs: Dict[str, Callable] @@ -145,7 +148,7 @@ class IonParams(eqx.Module): def __init__(self, cfg, batch_size, batch=True, activate=False): super().__init__() self.act_funs, self.inv_act_funs = {}, {} - for param in ["Ti", "Z"]: + for param in ["Ti", "Z", "Va"]: #SB setattr(self, param + "_scale", cfg[param]["ub"] - cfg[param]["lb"]) setattr(self, param + "_shift", cfg[param]["lb"]) self.act_funs[param], self.inv_act_funs[param] = get_act_and_inv_act(cfg[param], activate) @@ -159,11 +162,15 @@ def __init__(self, cfg, batch_size, batch=True, activate=False): self.normed_Z = self.inv_act_funs["Z"]( jnp.full(batch_size, (cfg["Z"]["val"] - self.Z_shift) / self.Z_scale) ) + self.normed_Va = self.inv_act_funs["Va"]( + jnp.full(batch_size, (cfg["Va"]["val"] - self.Va_shift) / self.Va_scale) # SB + ) self.A = jnp.full(batch_size, cfg["A"]["val"]) self.fract = self.inv_act_funs["fract"](jnp.full(batch_size, cfg["fract"]["val"])) else: self.normed_Ti = self.inv_act_funs["Ti"]((cfg["Ti"]["val"] - self.Ti_shift) / self.Ti_scale) self.normed_Z = self.inv_act_funs["Z"]((cfg["Z"]["val"] - self.Z_shift) / self.Z_scale) + self.normed_Va = self.inv_act_funs["Va"]((cfg["Va"]["val"] - self.Va_shift) / self.Va_scale) # SB self.A = cfg["A"]["val"] self.fract = float(self.inv_act_funs["fract"](cfg["fract"]["val"])) @@ -177,6 +184,7 @@ def __call__(self): "fract": self.act_funs["fract"](self.fract), "Ti": self.act_funs["Ti"](self.normed_Ti) * self.Ti_scale + self.Ti_shift, "Z": self.act_funs["Z"](self.normed_Z) * self.Z_scale + self.Z_shift, + "Va": self.act_funs["Va"](self.normed_Va) * self.Va_scale + self.Va_shift, } @@ -213,7 +221,7 @@ class GeneralParams(eqx.Module): normed_ne_gradient: Array normed_Te_gradient: Array normed_ud: Array - normed_Va: Array + #normed_Va: Array # SB lam_scale: float lam_shift: float amp1_scale: float @@ -228,8 +236,8 @@ class GeneralParams(eqx.Module): Te_gradient_shift: float ud_scale: float ud_shift: float - Va_scale: float - Va_shift: float + #Va_scale: float # SB + #Va_shift: float # SB act_funs: Dict[str, Callable] def __init__(self, cfg, batch_size: int, batch=True, activate=False): @@ -237,7 +245,7 @@ def __init__(self, cfg, batch_size: int, batch=True, activate=False): # this is all a bit ugly but we use setattr instead of = to be able to use the for loop self.act_funs, inv_act_funs = {}, {} - for param in ["lam", "amp1", "amp2", "amp3", "ne_gradient", "Te_gradient", "ud", "Va"]: + for param in ["lam", "amp1", "amp2", "amp3", "ne_gradient", "Te_gradient", "ud"]: # SB removed Va self.act_funs[param], inv_act_funs[param] = get_act_and_inv_act(cfg[param], activate) setattr(self, param + "_scale", cfg[param]["ub"] - cfg[param]["lb"]) setattr(self, param + "_shift", cfg[param]["lb"]) @@ -245,7 +253,7 @@ def __init__(self, cfg, batch_size: int, batch=True, activate=False): # this is where the linear and nonlinear transformations are applied i.e. # the rescaling and the activation function if batch: - for param in ["lam", "amp1", "amp2", "amp3", "ne_gradient", "Te_gradient", "ud", "Va"]: + for param in ["lam", "amp1", "amp2", "amp3", "ne_gradient", "Te_gradient", "ud"]: # SB removed Va setattr( self, "normed_" + param, @@ -257,7 +265,7 @@ def __init__(self, cfg, batch_size: int, batch=True, activate=False): ), ) else: - for param in ["lam", "amp1", "amp2", "amp3", "ne_gradient", "Te_gradient", "ud", "Va"]: + for param in ["lam", "amp1", "amp2", "amp3", "ne_gradient", "Te_gradient", "ud"]: # SB removed Va setattr( self, "normed_" + param, @@ -281,7 +289,7 @@ def __call__(self): self.act_funs["Te_gradient"](self.normed_Te_gradient) * self.Te_gradient_scale + self.Te_gradient_shift ) unnormed_ud = self.act_funs["ud"](self.normed_ud) * self.ud_scale + self.ud_shift - unnormed_Va = self.act_funs["Va"](self.normed_Va) * self.Va_scale + self.Va_shift + # unnormed_Va = self.act_funs["Va"](self.normed_Va) * self.Va_scale + self.Va_shift # SB return { "lam": unnormed_lam, @@ -291,7 +299,7 @@ def __call__(self): "ne_gradient": unnormed_ne_gradient, "Te_gradient": unnormed_Te_gradient, "ud": unnormed_ud, - "Va": unnormed_Va, + #"Va": unnormed_Va, # SB } @@ -365,14 +373,16 @@ def get_filter_spec(cfg_params: Dict, ts_params: ThomsonParams) -> Dict: filter_spec = jtu.tree_map(lambda _: False, ts_params) ion_num = 0 for species, params in cfg_params.items(): + if "ion" in species: # SB + ion_num += 1 # SB for key, _params in params.items(): if _params["active"]: if key == "fe": filter_spec = get_distribution_filter_spec(filter_spec, dist_params=_params) else: nkey = f"normed_{key}" - if "ion" in species: - ion_num += 1 + if "ion" in species: # SB + # ion_num += 1 # SB filter_spec = eqx.tree_at( lambda tree: getattr(getattr(tree, "ions")[ion_num - 1], nkey), filter_spec, diff --git a/tsadar/core/physics/form_factor.py b/tsadar/core/physics/form_factor.py index c0dc8485..95f17d2d 100644 --- a/tsadar/core/physics/form_factor.py +++ b/tsadar/core/physics/form_factor.py @@ -148,9 +148,11 @@ def __call__(self, params): A = [params[species]["A"] for species in params.keys() if "ion" in species] Z = [params[species]["Z"] for species in params.keys() if "ion" in species] Ti = [params[species]["Ti"] for species in params.keys() if "ion" in species] + Va = [params[species]["Va"] for species in params.keys() if "ion" in species] # SB fract = [params[species]["fract"] for species in params.keys() if "ion" in species] - Va = params["general"]["Va"] * 1e6 # flow velocity in 1e6 cm/s - ud = params["general"]["ud"] * 1e6 # drift velocity in 1e6 cm/s + #Va = params["general"]["Va"] * 1e6 # flow velocity in 1e6 cm/s # commented out by SB + Va = Va * 1.0e6 + ud = params["general"]["ud"] * 1.0e6 # drift velocity in 1e6 cm/s fe = params["electron"]["fe"] vx = params["electron"]["v"] From eb5aaa3055de417e5b49d52a550b2d2dd7e4e27e Mon Sep 17 00:00:00 2001 From: Soham Banerjee Date: Thu, 24 Apr 2025 18:48:40 -0400 Subject: [PATCH 04/16] commented out Va*1e6, ignore --- tsadar/core/physics/form_factor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tsadar/core/physics/form_factor.py b/tsadar/core/physics/form_factor.py index 95f17d2d..ddfeb307 100644 --- a/tsadar/core/physics/form_factor.py +++ b/tsadar/core/physics/form_factor.py @@ -151,7 +151,7 @@ def __call__(self, params): Va = [params[species]["Va"] for species in params.keys() if "ion" in species] # SB fract = [params[species]["fract"] for species in params.keys() if "ion" in species] #Va = params["general"]["Va"] * 1e6 # flow velocity in 1e6 cm/s # commented out by SB - Va = Va * 1.0e6 + # Va = Va * 1.0e6 ud = params["general"]["ud"] * 1.0e6 # drift velocity in 1e6 cm/s fe = params["electron"]["fe"] vx = params["electron"]["v"] From 6cbed20c410a59d61ba237e9f844b8c79fc0d90d Mon Sep 17 00:00:00 2001 From: Soham Banerjee Date: Thu, 24 Apr 2025 19:13:16 -0400 Subject: [PATCH 05/16] Added a bunch of stuff to .gitignore --- .gitignore | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.gitignore b/.gitignore index 7ec04427..306b6ea2 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,14 @@ mlruns/ +configs/1d +tsadar/__pycache__ +tsadar/core/__pycache__ +tsadar/core/modules/__pycache__ +tsadar/core/modules/distribution_functions/__pycache__ +tsadar/core/modules/physics/__pycache__ +tsadar/core/physics/__pycache__ +tsadar/forward/__pycache__ +tsadar/inverse/__pycache__ +tsadar/utils/__pycache__ +tsadar/utils/data_handling/__pycache__ +tsadar/utils/plotting/__pycache__ +tsadar/utils/process/__pycache__ From 1b8fb0b451c9890054e319e4039f6706ea153fbb Mon Sep 17 00:00:00 2001 From: Soham Banerjee Date: Tue, 29 Apr 2025 13:58:37 -0400 Subject: [PATCH 06/16] Added the multi-ion flow velocity part to form_factor.py(1d case). Working. --- .gitignore | 1 + tsadar/core/physics/form_factor.py | 24 +++++++++++++++--------- 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 306b6ea2..44387c84 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ tsadar/utils/__pycache__ tsadar/utils/data_handling/__pycache__ tsadar/utils/plotting/__pycache__ tsadar/utils/process/__pycache__ +tsadar/externals/data \ No newline at end of file diff --git a/tsadar/core/physics/form_factor.py b/tsadar/core/physics/form_factor.py index ddfeb307..eb015bdb 100644 --- a/tsadar/core/physics/form_factor.py +++ b/tsadar/core/physics/form_factor.py @@ -151,7 +151,7 @@ def __call__(self, params): Va = [params[species]["Va"] for species in params.keys() if "ion" in species] # SB fract = [params[species]["fract"] for species in params.keys() if "ion" in species] #Va = params["general"]["Va"] * 1e6 # flow velocity in 1e6 cm/s # commented out by SB - # Va = Va * 1.0e6 + Va = jnp.reshape(jnp.array(Va),[1,1,1,-1]) * 1.0e6 ud = params["general"]["ud"] * 1.0e6 # drift velocity in 1e6 cm/s fe = params["electron"]["fe"] vx = params["electron"]["v"] @@ -167,10 +167,12 @@ def __call__(self, params): # calculate k and omega vectors omgpe = constants * jnp.sqrt(ne[..., jnp.newaxis, jnp.newaxis]) # plasma frequency Rad/cm omg = self.omgs - omgL + omg = omg[..., jnp.newaxis] ks = jnp.sqrt(self.omgs**2 - omgpe**2) / self.C kL = jnp.sqrt(omgL**2 - omgpe**2) / self.C k = jnp.sqrt(ks**2 + kL**2 - 2 * ks * kL * jnp.cos(sarad)) + k = k[...,jnp.newaxis] # SB kdotv = k * Va omgdop = omg - kdotv @@ -187,29 +189,32 @@ def __call__(self, params): Zbar = jnp.sum(Z * fract) ni = fract * ne[..., jnp.newaxis, jnp.newaxis, jnp.newaxis] / Zbar omgpi = constants * Z * jnp.sqrt(ni * self.Me / Mi) + num_species = fract.shape[3] vTi = jnp.sqrt(jnp.array(Ti) / Mi) # ion thermal velocity - kldi = (vTi / omgpi) * (k[..., jnp.newaxis]) + kldi = (vTi / omgpi) * (k) # SB # ion susceptibilities # finding derivative of plasma dispersion function along xii array - xii = 1.0 / jnp.transpose((jnp.sqrt(2.0) * vTi), [1, 0, 2, 3]) * ((omgdop / k)[..., jnp.newaxis]) + xii = 1.0 / jnp.transpose((jnp.sqrt(2.0) * vTi), [1, 0, 2, 3]) * ((omgdop / k)) #SB # num_ion_pts = jnp.shape(xii) # chiI = jnp.zeros(num_ion_pts) ZpiR = jnp.interp(xii, self.xi2, self.Zpi[0, :], left=xii**-2, right=xii**-2) ZpiI = jnp.interp(xii, self.xi2, self.Zpi[1, :], left=0, right=0) - chiI = jnp.sum(-0.5 / (kldi**2) * (ZpiR + 1j * ZpiI), 3) + #chiI = jnp.sum(-0.5 / (kldi**2) * (ZpiR + 1j * ZpiI), 3) + chiI = -0.5 / (kldi**2) * (ZpiR + 1j * ZpiI) # SB # electron susceptibility # calculating normilized phase velcoity(xi's) for electrons - xie = omgdop / (k * vTe) - ud / vTe + udr = ud - Va # drift velocity w.r.t different ions # SB + xie = omgdop / (k * vTe) - udr / vTe #fe_vphi = jnp.exp(jnp.interp(xie, vx, jnp.log(fe))) fe_vphi=jnp.exp(jnp.apply_along_axis(interp1d,0,jnp.squeeze(xie),vx,jnp.log(jnp.squeeze(fe)),extrap=[-50, -50])).reshape(jnp.shape(xie)) df = jnp.diff(fe_vphi, 1, 1) / jnp.diff(xie, 1, 1) - df = jnp.append(df, jnp.zeros((len(ne), 1, len(self.scattering_angles["sa"]))), 1) + df = jnp.append(df, jnp.zeros((len(ne), 1, len(self.scattering_angles["sa"]),num_species)), 1) chiEI = jnp.pi / (klde**2) * 1j * df @@ -229,19 +234,20 @@ def __call__(self, params): # This line needs to be changed if ion distribution is changed!!! ion_comp_fact = jnp.transpose(fract * Z**2 / Zbar / vTi, [1, 0, 2, 3]) ion_comp = ion_comp_fact * ( - (jnp.abs(chiE[..., jnp.newaxis])) ** 2.0 * jnp.exp(-(xii**2)) / jnp.sqrt(2 * jnp.pi) + (jnp.abs(chiE)) ** 2.0 * jnp.exp(-(xii**2)) / jnp.sqrt(2 * jnp.pi) ) ele_comp = (jnp.abs(1.0 + chiI)) ** 2.0 * fe_vphi / vTe # ele_compE = fe_vphi / vTe # commented because unused - SKW_ion_omg = 1.0 / k[..., jnp.newaxis] * ion_comp / ((jnp.abs(epsilon[..., jnp.newaxis])) ** 2) + SKW_ion_omg = 1.0 / k * ion_comp / ((jnp.abs(epsilon)) ** 2) - SKW_ion_omg = jnp.sum(SKW_ion_omg, 3) + #SKW_ion_omg = jnp.sum(SKW_ion_omg, 3) # commented by SB SKW_ele_omg = 1.0 / k * (ele_comp) / ((jnp.abs(epsilon)) ** 2) # SKW_ele_omgE = 2 * jnp.pi * 1.0 / klde * (ele_compE) / ((jnp.abs(1 + (chiE))) ** 2) * vTe / omgpe # commented because unused PsOmg = (SKW_ion_omg + SKW_ele_omg) * (1 + 2 * omgdop / omgL) * re**2.0 * ne[:, None, None] + PsOmg = jnp.sum(PsOmg,3) # PsOmgE = (SKW_ele_omg) * (1 + 2 * omgdop / omgL) * re**2.0 * jnp.transpose(ne) # commented because unused lams = 2 * jnp.pi * self.C / self.omgs PsLam = PsOmg * 2 * jnp.pi * self.C / lams**2 From e050255d7b95c331d1ddeca0e7fc89f3d5e84171 Mon Sep 17 00:00:00 2001 From: Soham Banerjee Date: Tue, 29 Apr 2025 14:21:23 -0400 Subject: [PATCH 07/16] added some stuff to gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 44387c84..92e3ece3 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,4 @@ tsadar/utils/__pycache__ tsadar/utils/data_handling/__pycache__ tsadar/utils/plotting/__pycache__ tsadar/utils/process/__pycache__ -tsadar/externals/data \ No newline at end of file +tsadar/tsadar/externals/data \ No newline at end of file From 1cf31251f5f7c74f34475aef737518fcaf1b86fd Mon Sep 17 00:00:00 2001 From: Soham Banerjee Date: Sat, 10 May 2025 19:47:49 -0400 Subject: [PATCH 08/16] Fixed the input files for multiple ion flows tests --- tests/configs/1d-defaults.yaml | 12 ++++++------ tests/configs/1d-inputs.yaml | 13 +++++++------ tests/configs/epw_defaults.yaml | 12 ++++++------ tests/configs/epw_inputs.yaml | 13 +++++++------ tests/configs/time_test_defaults.yaml | 12 ++++++------ tests/configs/time_test_inputs.yaml | 12 ++++++------ 6 files changed, 38 insertions(+), 36 deletions(-) diff --git a/tests/configs/1d-defaults.yaml b/tests/configs/1d-defaults.yaml index e5972ea4..649cab5d 100644 --- a/tests/configs/1d-defaults.yaml +++ b/tests/configs/1d-defaults.yaml @@ -29,6 +29,12 @@ parameters: fract: val: 0.1 active: False + Va: + val: 0.0 + angle: 0.0 + active: False + lb: -20.5 + ub: 20.5 general: amp1: @@ -69,12 +75,6 @@ parameters: active: False lb: -100.0 ub: 100.0 - Va: - val: 0.0 - angle: 0.0 - active: False - lb: -20.5 - ub: 20.5 other: expandedions: False diff --git a/tests/configs/1d-inputs.yaml b/tests/configs/1d-inputs.yaml index aa341be8..8a26ca38 100644 --- a/tests/configs/1d-inputs.yaml +++ b/tests/configs/1d-inputs.yaml @@ -38,6 +38,13 @@ parameters: fract: val: 1. active: False + Va: + val: 0.0 + angle: 0.0 + active: False + lb: -20.5 + ub: 20.5 + general: amp1: val: 1. @@ -77,12 +84,6 @@ parameters: active: False lb: -10.0 ub: 10.0 - Va: - val: 0.0 - angle: 0.0 - active: False - lb: -20.5 - ub: 20.5 other: diff --git a/tests/configs/epw_defaults.yaml b/tests/configs/epw_defaults.yaml index c4f64e8e..a6e98582 100644 --- a/tests/configs/epw_defaults.yaml +++ b/tests/configs/epw_defaults.yaml @@ -37,6 +37,12 @@ parameters: fract: val: 0.1 active: False + Va: + val: 0.0 + angle: 0.0 + active: False + lb: -20.5 + ub: 20.5 general: amp1: @@ -77,12 +83,6 @@ parameters: active: False lb: -100.0 ub: 100.0 - Va: - val: 0.0 - angle: 0.0 - active: False - lb: -20.5 - ub: 20.5 other: expandedions: False diff --git a/tests/configs/epw_inputs.yaml b/tests/configs/epw_inputs.yaml index be2eeae4..053e702c 100644 --- a/tests/configs/epw_inputs.yaml +++ b/tests/configs/epw_inputs.yaml @@ -39,6 +39,13 @@ parameters: val: 1.0 active: False + Va: + val: 0.0 + angle: 0.0 + active: True + lb: -20.5 + ub: 20.5 + general: amp1: val: 1. @@ -78,12 +85,6 @@ parameters: active: False lb: -10.0 ub: 10.0 - Va: - val: 0.0 - angle: 0.0 - active: True - lb: -20.5 - ub: 20.5 data: shotnum: 101675 diff --git a/tests/configs/time_test_defaults.yaml b/tests/configs/time_test_defaults.yaml index 686d5b95..9ed1ee76 100644 --- a/tests/configs/time_test_defaults.yaml +++ b/tests/configs/time_test_defaults.yaml @@ -35,6 +35,12 @@ parameters: fract: val: 0.1 active: False + Va: + val: 0.0 + angle: 0.0 + active: False + lb: -20.5 + ub: 20.5 general: amp1: @@ -75,12 +81,6 @@ parameters: active: False lb: -100.0 ub: 100.0 - Va: - val: 0.0 - angle: 0.0 - active: False - lb: -20.5 - ub: 20.5 other: expandedions: False diff --git a/tests/configs/time_test_inputs.yaml b/tests/configs/time_test_inputs.yaml index 4b7b28ff..f3ae1743 100644 --- a/tests/configs/time_test_inputs.yaml +++ b/tests/configs/time_test_inputs.yaml @@ -37,6 +37,12 @@ parameters: fract: val: 1.0 active: False + Va: + val: 0.0 + angle: 0.0 + active: False + lb: -20.5 + ub: 20.5 general: amp1: val: 1. @@ -76,12 +82,6 @@ parameters: active: False lb: -10.0 ub: 10.0 - Va: - val: 0.0 - angle: 0.0 - active: False - lb: -20.5 - ub: 20.5 other: From 2ea779eec93df3379e402b416e97881b2fac3464 Mon Sep 17 00:00:00 2001 From: Soham Banerjee Date: Sat, 10 May 2025 19:48:22 -0400 Subject: [PATCH 09/16] Fixed cant find "m" error --- .gitignore | 2 +- tsadar/core/modules/ts_params.py | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 92e3ece3..d5d822f0 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,4 @@ tsadar/utils/__pycache__ tsadar/utils/data_handling/__pycache__ tsadar/utils/plotting/__pycache__ tsadar/utils/process/__pycache__ -tsadar/tsadar/externals/data \ No newline at end of file +tsadar/external/data \ No newline at end of file diff --git a/tsadar/core/modules/ts_params.py b/tsadar/core/modules/ts_params.py index 12fd8537..bd7e17c5 100644 --- a/tsadar/core/modules/ts_params.py +++ b/tsadar/core/modules/ts_params.py @@ -356,9 +356,12 @@ def get_fitted_params(self, param_cfg): for k in param_dict.keys(): fitted_params[k] = {} for k2 in param_dict[k].keys(): - if k2 == "m" and param_cfg[k]["fe"]["active"]: - fitted_params[k][k2] = param_dict[k][k2] - num_params += 1 + if k2 == "m": #and param_cfg[k]["fe"]["active"]: + if param_cfg[k]["fe"]["active"]: + fitted_params[k][k2] = param_dict[k][k2] + num_params += 1 + else : + pass elif k2 in ["f", "flm"]: pass elif param_cfg[k][k2]["active"]: @@ -380,7 +383,7 @@ def get_filter_spec(cfg_params: Dict, ts_params: ThomsonParams) -> Dict: if key == "fe": filter_spec = get_distribution_filter_spec(filter_spec, dist_params=_params) else: - nkey = f"normed_{key}" + nkey = f"normed_{key}" if key!="fract" else f"{key}" # SB treat fractions differently if "ion" in species: # SB # ion_num += 1 # SB filter_spec = eqx.tree_at( From 29bc810aedd2d216833b8e3bf5bf145cef3bce24 Mon Sep 17 00:00:00 2001 From: Soham Banerjee Date: Mon, 19 May 2025 14:28:10 -0400 Subject: [PATCH 10/16] Changed calibrations and test files --- .../test_epw.cpython-310-pytest-8.2.0.pyc | Bin 0 -> 3506 bytes .../test_iaw.cpython-310-pytest-8.2.0.pyc | Bin 0 -> 3293 bytes .../test_1d.cpython-310-pytest-8.2.0.pyc | Bin 0 -> 3043 bytes ...st_angular_1v.cpython-310-pytest-8.2.0.pyc | Bin 0 -> 3222 bytes ...st_angular_2v.cpython-310-pytest-8.2.0.pyc | Bin 0 -> 4572 bytes .../test_1d_data.cpython-310-pytest-8.2.0.pyc | Bin 0 -> 2251 bytes ...est_1d_random.cpython-310-pytest-8.2.0.pyc | Bin 0 -> 5873 bytes ...st_angular_1v.cpython-310-pytest-8.2.0.pyc | Bin 0 -> 8784 bytes ...st_angular_2v.cpython-310-pytest-8.2.0.pyc | Bin 0 -> 9769 bytes tsadar/utils/data_handling/calibration.py | 32 +++++++++++++++++- 10 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 tests/test_form_factor/__pycache__/test_epw.cpython-310-pytest-8.2.0.pyc create mode 100644 tests/test_form_factor/__pycache__/test_iaw.cpython-310-pytest-8.2.0.pyc create mode 100644 tests/test_forward/__pycache__/test_1d.cpython-310-pytest-8.2.0.pyc create mode 100644 tests/test_forward/__pycache__/test_angular_1v.cpython-310-pytest-8.2.0.pyc create mode 100644 tests/test_forward/__pycache__/test_angular_2v.cpython-310-pytest-8.2.0.pyc create mode 100644 tests/test_inverse/__pycache__/test_1d_data.cpython-310-pytest-8.2.0.pyc create mode 100644 tests/test_inverse/__pycache__/test_1d_random.cpython-310-pytest-8.2.0.pyc create mode 100644 tests/test_inverse/__pycache__/test_angular_1v.cpython-310-pytest-8.2.0.pyc create mode 100644 tests/test_inverse/__pycache__/test_angular_2v.cpython-310-pytest-8.2.0.pyc diff --git a/tests/test_form_factor/__pycache__/test_epw.cpython-310-pytest-8.2.0.pyc b/tests/test_form_factor/__pycache__/test_epw.cpython-310-pytest-8.2.0.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e9b3e7aee5f4b21d116b15ba7f2e9da454999c10 GIT binary patch literal 3506 zcmZt|ON<;xwX3`5|J$9N{mlMm{E3qRJj)u}aENgn+lhpd5adOM5~x!DWY0~vvhb4YPaKOYouAt>Tv zP{L(Rv;0a>#Z?U>zlLjCvySU}Y~Y3-OLzuG+n)`ZxT$4x{#?+)tzaI{AL}jzi+Bkc ztZ>+-d0KdA9>c{92K|!19IW6KEnoImgEhRS;flW=bZ`gYDy=;*aF?B;^*bi_S$7}S zPth&idW|FS(0He3rTIY=4m~%uc08Hp!f_B!dMGVY#^OPw;RX?cap@4>ANY}AJu@u~ zeIg|b)6zIR2626d>^dwY+dgx4FJIik4Mm`y&=jx^X3Ik_q)yDp9igx{A|AX!1~TG+ z)wV`aAfoVH!buGXSWQyADk}vJ68SJBT7`9w4M(lUme1Kp&v@A59Hu(Hzb1 zoA1}ANZNTMYp#IJ>3mY5t4Sl7aZS29w7}W|?Ho(Zg46=o zTTJG)_UVTREG+@QqO8y}z*jQa{;AzK3+<)0T0>iDB#UZA324k2OE6n93!G)mY5yP2 zisme9&Wh?64cbYTVTP5K0ldYen5~SSQ)_Q&o6}XLMPEMlXHDDCGtyU*Rb>VA*RpX@ zdAy#qlXbOoi-v|OZLs5-(~ew97LyL`(Jvi9{K@v=@O7@&sHV{`|J>FQwzjhl5mljIq33D;z=rcYH9ei2KJ2LdR?+g4RkJ^r6SJGf z2T1(pWLBKy)55LiWuxJ`T0SUPtS0WVKXm zD0#|;Wb8}PpOC;$5r1cI?L{FkjK{|!p3yaov>dDQ$0V%u2tm1fqi5nWRAoogMVi|t zaxn5f0G{`;2?{nPlHeMHs_T=$5hHIXQ&W(mS3x^1xGZFx__z`>$K`~2;8faB1{LPS zkr#r``P2?$DRAkj2|OzXs>G|kbx7#?Oz?TIi1TBraGbwK)YvmW`%&wcZ+^P>;Ob|< zhVRc;-Hh_Ht8i1~N6d3a5|`mT0xx9YfZ?jT0Gx~=xbo69jKj}A{M*Xw?!T`6Zup0P z{P?va@Xc^9z5QF`&EMa;a-?o%*SPZ2_x}35e_jV^!+6vjTuUujZ))8m{?V_1#FwBu zg6qNHi_pOV*<40`&&IVNqRe-qfVsrkd>*}k>kw}dpFCwhk6-ASM>%D)1Kk!JM**%& z;q8GRQn?1(K8eQCr7J)DmN}_hb(cT?(<|#ASFYmnZE_FJC3NNJsIC`;i^B-^TPc^W z1+nkRF=cyg9WVbIU;P+%Ij5(9n5=AXN4t&}4n|D$&ZYUlANtXKTo+6_&%za#gd}iP zLtLhI6vG8=tLOtV8A5zSgz^F`B+ZXw2ph(W%CCy*)b*O0VVvd&=VZdwE~W)>cg)xx z8n#{T zQCtwP>u^N4rYys5cq(Z{?@Vf`Z83+QdfjBXndY+u+I(Q;%ayJpxU#`wN4=4j%sJ+Z*47SD)Ar(TD^aH=@B< z)kCq7)k^2$`OS;xFI+lCH?qp6`jdO5$qp35emqfO09-(3z`S?>T{Sm@s_?Hqu3D-u zT6I)Jw$-#ult(5iqdIEB2-v@?<-9p_OlhJ8WSdoFqZzb>nr0K^&Y@-aF9UQMXmwOJ zZD?iCC?op|`|(0)8D^@(UqmfbHM@VWe_~!f`w71R3rUNP6A&+SoZjiQxIOlK>4hS# zz7|iMr&!yGC(4C>_8f+Lq|e!X?n#!Go|4kS6IvORwa0`*YLMM5#B^~|#f+a<^V;f( zt+R{2q=;u!x2d|96}zUN<9%fY%COERTs?ko!^;|CQ)RQxVmuoVsq)14wqdt*#^ke+ zUsOWppu<%$@Zw2dcy361uJRanvIFf8BF_3*REz$JTBIujUOOoT0XK&Gp#L;evJ&!S wC)JhdI68_>bk||BwD@YK`%P8!#X59-ql&t4GCC6AOslG)qE-A3oZI970xdJ;3;+NC literal 0 HcmV?d00001 diff --git a/tests/test_form_factor/__pycache__/test_iaw.cpython-310-pytest-8.2.0.pyc b/tests/test_form_factor/__pycache__/test_iaw.cpython-310-pytest-8.2.0.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7c19a78bd307845f4d98b2cfe6ee374fc8cc61e2 GIT binary patch literal 3293 zcmZt|OLH7Yx#zL(m$X_-TCG-EKN1kcD=cguTrswBu**eas92O?p=#3F?wuWZUheL- zwPLn7C>%Jbk{lsPmBft;#f{=8a3JIWm%dSOQE^BGPEaYt*FBQGE@!5?`}@A`ulsv< zN0mwu!S}^Gnc?p%2>o3l)1M88|fdadiG1QFdXM*a<8mm!>{xznzP!g>aozP>2anv1EcNF2K8P&nCs1*tZxKodh-UNxq}6g zA=yJy({uh}(CjreocEW4RD1|v;8O>c&@azJs~sUD2T^vhRhR6<9-CNDRToK3qeC!7=@=`bsO(E zG{jpzb#|^^-UOB!=A1I&VBhci5vM>Z4!n>!F~yI#!tO*YxP$v5Vt`dPhf%uv1=B zZBm$INHNKf(j01`NjAxnasy3rq%z4T*_7TuNgikgQ6N=Pb4@ZsW=UNX4@zXth21SzcEYtpT4Z_Onv|3B9-36d zOj6u4lFFX(6LV6X)PQp~sggEX*#{g>ttVCBuZlT<8wv*PX2h9fhOCkfIlFHG-|VEG z%);aB7l)nML4FwO71nfYKzTWU+zt8DC9u z${ujeQnHXNEg;n|BG;U>#A4D)nq-Z9Z6BgRG!K>z(R)9hEDLnd63Z~tZlXOyLrW)6 z>lv*@G>v@yBU}5sy}d$~;D3!=B;9=*Y}B5tBr6B2N_*w4pPy(C7KOA;R<=82oqU5_ z+E1~wWaBw@aPAPIF==m~PnJJKh8GMfp3#?(K)|yt#j|z!;S#twN4-V{Sl-*?cffNX;OPfpYk>pBNp;&DYjb{923kgs`FH3 zsL>tZ^8y+QC&U5mH9Y*(89=#k2D)B2Y9%bpvr(v5?5=9w^|W~Lbs9f)2p!;&FL-y1 z178~K{%-r_MP3+>PL{X`9sK*lf408u{_EDC2Y>zSXE%>bs5tIGeZTwYrhDbBKcTyS zd2rpU0NtBW9qPaWSfoE`a(whUfU*d70l5VzFLN#pDZ{=jh178wCLX9IYfxD==ERW~ zg4S7Shq2(Y;N!sILvJADEbpsA%e>HaaOnD!vw5|9c0?2|vrn)ZkJQz4WI%TZs&i3o ztdHk1vxP-}$kY@V%f>q%cYpOu_5I<-3Gl}oz>^(P&m9U7n?->aQgEXzt1|7R6a46Z z$H&Jmy8gjC|M=nOx3$8b*88`l1;R?}3HDER`}~Ic)5dS_{%!Z&8|pwNB7e=6l^`P2 zccOs0*tzr~x*@9&J`o!~n|=}BSTm0@N|@CSbM zR8~0^&hyBW1uih$ZxDjgj$*hEZ5?O@jtA87BTQHp1Oacw1d@m40AVFXF~eA9Fk^TO zw=BRmf6Rn5V~>^98l|bU1ByeLuqHN-tJW zQ+Yvyc;NX|);9r)7-r))JO-%?hL$Biavcax=Jg>&Ks79+75hTw`DiQlBM3rU4YH^d z-tqAk^;3A9!nVsi0pT3htby>;87>Qu%3xsdpezV}8qu|QIOZNyq*Fp>bI8W`WF7+X7KHabX{#KU z8U4tBfL1{aQ5|zxA40sqoPK|RcM08*O-|t$;(W=J4LgE)qQH$Q_&0Fhl;)#1WqB%= zxwL>TE7JkYWmW_+@tCxfZA`rL8^j)i*8lz9`VZhe#MgN=#KHO-QGcZB8(&XrpL6-* zrOOvLuAHFjX{A#Av{f|Ofe7x#W94O-1*8Vs^8~tbZpJ9XzkFP_RG+u1M&7W^vg(Z) z!!)yo34hh7>oNPE#X=ouGe9Ytidr`ojXFTD8cQ(Fs~NLs+Av!*)Ng-bAI}$-V7=P8 zVU*3zXVp*4jSHVJu3VdUoB(^F)sk8A;|&X+>bxnqsgiJTr9+=_FyQ@Ua`}TwA?Ob(XMeig;CZ*Hw2{O_xvJsSfer z`ci4B(^1X_Sg266w+n@ literal 0 HcmV?d00001 diff --git a/tests/test_forward/__pycache__/test_1d.cpython-310-pytest-8.2.0.pyc b/tests/test_forward/__pycache__/test_1d.cpython-310-pytest-8.2.0.pyc new file mode 100644 index 0000000000000000000000000000000000000000..53cf85f084c58938775120f19ae21b079b460eb6 GIT binary patch literal 3043 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 literal 0 HcmV?d00001 diff --git a/tests/test_inverse/__pycache__/test_1d_random.cpython-310-pytest-8.2.0.pyc b/tests/test_inverse/__pycache__/test_1d_random.cpython-310-pytest-8.2.0.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ad616273ee07dc47e74fd43d8967067164cad0e3 GIT binary patch literal 5873 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 literal 0 HcmV?d00001 diff --git a/tests/test_inverse/__pycache__/test_angular_1v.cpython-310-pytest-8.2.0.pyc b/tests/test_inverse/__pycache__/test_angular_1v.cpython-310-pytest-8.2.0.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5112e9582d58cf170db83df51989599753efe3fb GIT binary patch literal 8784 zcmb7JYm6MpUGL{i&tqq2pWgLzY_ENuJMXUT^F88o&UXB`b8vj-yb;{!qNaDMXST;P zJ>%*gdw1v&fpuaVFi8kR3AsqKLJ9Z_Um}FUXFw?88(&ZfBqF4UL*fG;B2W}!e*fy8 z-C3WBU`AbCUG=Z3f7So}ulCqjR>ALQzh-R3#;Q(v`G)TNR6GZn}|S`gwvdn%P#al56EFc~x<9gE3~Z)Rrbk zr_ooajJJxFVr!x@A=|9xWNWH2CF_~ybZe$EldLpb*&|mdROaM+zOq-o_qFy{4kR!K zD+guU5Sv4lL-M;+DarTY%3=9FQaK{uM=MA1&NdfX$12BK$1BI>Jh|petrL|KvYv02 zTQ65$mi4jbE3K22ldZ+dqWms2ms-n}<<_anDSRJhMfWtDa8I&H_jE1Arr7iYvvP(V zVYBY5HI40IbND{%rW&seUT3pxrmk*jN#8u%`@q;#D{ruUZ2tqL@+LdL4&wbO_Z&NP zN8>+q-(V?LdZJ<-^|pMz4PQD`{pw(C2qP1jz3{p?Cv7pC8Bbv8udp405Q zw&OFq&K)N7h8LDqk>}1mw`q4aLhicwwpyO=wY;8-+0(VA6NauYGF?BZ0>Wr{K^5

il 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 literal 0 HcmV?d00001 diff --git a/tests/test_inverse/__pycache__/test_angular_2v.cpython-310-pytest-8.2.0.pyc b/tests/test_inverse/__pycache__/test_angular_2v.cpython-310-pytest-8.2.0.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5b10d387411613c34f844b4e594aa4b9c14a313e GIT binary patch literal 9769 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 literal 0 HcmV?d00001 diff --git a/tsadar/utils/data_handling/calibration.py b/tsadar/utils/data_handling/calibration.py index 91f92243..5abab1bd 100644 --- a/tsadar/utils/data_handling/calibration.py +++ b/tsadar/utils/data_handling/calibration.py @@ -329,7 +329,37 @@ def get_calibrations(shotNum, tstype, t0, CCDsize): # IAWtime = 0 # temporal offset between EPW ross and IAW ross (varies shot to shot, can potentially add a fix based off the fiducials) else: - if shotNum < 104000: + if shotNum == 92522: + EPWDisp = 0.27093 + IAWDisp = 0.0057 + EPWoff = 381.75 # only this shot seems to have shifted + IAWoff = 523.74 + + stddev["spect_stddev_ion"] = 0.028 # needs to be checked + stddev["spect_stddev_ele"] = 1.4365 # needs to be checked + + magI = 2.87 # um / px + magE = 5.13 # um / px + + EPWtcc = 1024 - 456.1 # 562; + IAWtcc = 519#1024 - 519 # 469; + + elif 92522 < shotNum <= 92538: + EPWDisp = 0.27093 + IAWDisp = 0.0057 + EPWoff = 385.256 # needs to be checked + IAWoff = 523.74 + + stddev["spect_stddev_ion"] = 0.028 # needs to be checked + stddev["spect_stddev_ele"] = 1.4365 # needs to be checked + + magI = 2.87 # um / px + magE = 5.13 # um / px + + EPWtcc = 1024 - 456.1 # 562; + IAWtcc = 519#1024 - 519 # 469; + + elif shotNum < 104000: EPWDisp = 0.27093 IAWDisp = 0.00438 EPWoff = 396.256 # needs to be checked From 3a988009e16a7079c44df64d77549c5cb8a30967 Mon Sep 17 00:00:00 2001 From: almilder <107502790+almilder@users.noreply.github.com> Date: Tue, 20 May 2025 14:22:01 -0400 Subject: [PATCH 11/16] Delete .gitignore --- .gitignore | 15 --------------- 1 file changed, 15 deletions(-) delete mode 100644 .gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index d5d822f0..00000000 --- a/.gitignore +++ /dev/null @@ -1,15 +0,0 @@ -mlruns/ -configs/1d -tsadar/__pycache__ -tsadar/core/__pycache__ -tsadar/core/modules/__pycache__ -tsadar/core/modules/distribution_functions/__pycache__ -tsadar/core/modules/physics/__pycache__ -tsadar/core/physics/__pycache__ -tsadar/forward/__pycache__ -tsadar/inverse/__pycache__ -tsadar/utils/__pycache__ -tsadar/utils/data_handling/__pycache__ -tsadar/utils/plotting/__pycache__ -tsadar/utils/process/__pycache__ -tsadar/external/data \ No newline at end of file From 5fa8a5e56e1cc79317cce9cdc5fd8c2dfe068b2f Mon Sep 17 00:00:00 2001 From: almilder <107502790+almilder@users.noreply.github.com> Date: Tue, 20 May 2025 14:22:17 -0400 Subject: [PATCH 12/16] Delete .vscode/launch.json --- .vscode/launch.json | 16 ---------------- 1 file changed, 16 deletions(-) delete mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 166f3a3b..00000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Python Debugger: Current File with Arguments", - "type": "debugpy", - "request": "launch", - "program": "${file}", - "console": "integratedTerminal", - "args": ["--cfg", "configs/1d", "--mode", "fit"] - } - ] -} \ No newline at end of file From 90a3629729489eeeac93d5e7755cc899a5304fc3 Mon Sep 17 00:00:00 2001 From: Soham Banerjee <99272716+Soham919@users.noreply.github.com> Date: Tue, 20 May 2025 15:40:59 -0400 Subject: [PATCH 13/16] Delete tests/test_form_factor/__pycache__/test_iaw.cpython-310-pytest-8.2.0.pyc deleted bin file --- .../test_iaw.cpython-310-pytest-8.2.0.pyc | Bin 3293 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/test_form_factor/__pycache__/test_iaw.cpython-310-pytest-8.2.0.pyc diff --git a/tests/test_form_factor/__pycache__/test_iaw.cpython-310-pytest-8.2.0.pyc b/tests/test_form_factor/__pycache__/test_iaw.cpython-310-pytest-8.2.0.pyc deleted file mode 100644 index 7c19a78bd307845f4d98b2cfe6ee374fc8cc61e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3293 zcmZt|OLH7Yx#zL(m$X_-TCG-EKN1kcD=cguTrswBu**eas92O?p=#3F?wuWZUheL- zwPLn7C>%Jbk{lsPmBft;#f{=8a3JIWm%dSOQE^BGPEaYt*FBQGE@!5?`}@A`ulsv< zN0mwu!S}^Gnc?p%2>o3l)1M88|fdadiG1QFdXM*a<8mm!>{xznzP!g>aozP>2anv1EcNF2K8P&nCs1*tZxKodh-UNxq}6g zA=yJy({uh}(CjreocEW4RD1|v;8O>c&@azJs~sUD2T^vhRhR6<9-CNDRToK3qeC!7=@=`bsO(E zG{jpzb#|^^-UOB!=A1I&VBhci5vM>Z4!n>!F~yI#!tO*YxP$v5Vt`dPhf%uv1=B zZBm$INHNKf(j01`NjAxnasy3rq%z4T*_7TuNgikgQ6N=Pb4@ZsW=UNX4@zXth21SzcEYtpT4Z_Onv|3B9-36d zOj6u4lFFX(6LV6X)PQp~sggEX*#{g>ttVCBuZlT<8wv*PX2h9fhOCkfIlFHG-|VEG z%);aB7l)nML4FwO71nfYKzTWU+zt8DC9u z${ujeQnHXNEg;n|BG;U>#A4D)nq-Z9Z6BgRG!K>z(R)9hEDLnd63Z~tZlXOyLrW)6 z>lv*@G>v@yBU}5sy}d$~;D3!=B;9=*Y}B5tBr6B2N_*w4pPy(C7KOA;R<=82oqU5_ z+E1~wWaBw@aPAPIF==m~PnJJKh8GMfp3#?(K)|yt#j|z!;S#twN4-V{Sl-*?cffNX;OPfpYk>pBNp;&DYjb{923kgs`FH3 zsL>tZ^8y+QC&U5mH9Y*(89=#k2D)B2Y9%bpvr(v5?5=9w^|W~Lbs9f)2p!;&FL-y1 z178~K{%-r_MP3+>PL{X`9sK*lf408u{_EDC2Y>zSXE%>bs5tIGeZTwYrhDbBKcTyS zd2rpU0NtBW9qPaWSfoE`a(whUfU*d70l5VzFLN#pDZ{=jh178wCLX9IYfxD==ERW~ zg4S7Shq2(Y;N!sILvJADEbpsA%e>HaaOnD!vw5|9c0?2|vrn)ZkJQz4WI%TZs&i3o ztdHk1vxP-}$kY@V%f>q%cYpOu_5I<-3Gl}oz>^(P&m9U7n?->aQgEXzt1|7R6a46Z z$H&Jmy8gjC|M=nOx3$8b*88`l1;R?}3HDER`}~Ic)5dS_{%!Z&8|pwNB7e=6l^`P2 zccOs0*tzr~x*@9&J`o!~n|=}BSTm0@N|@CSbM zR8~0^&hyBW1uih$ZxDjgj$*hEZ5?O@jtA87BTQHp1Oacw1d@m40AVFXF~eA9Fk^TO zw=BRmf6Rn5V~>^98l|bU1ByeLuqHN-tJW zQ+Yvyc;NX|);9r)7-r))JO-%?hL$Biavcax=Jg>&Ks79+75hTw`DiQlBM3rU4YH^d z-tqAk^;3A9!nVsi0pT3htby>;87>Qu%3xsdpezV}8qu|QIOZNyq*Fp>bI8W`WF7+X7KHabX{#KU z8U4tBfL1{aQ5|zxA40sqoPK|RcM08*O-|t$;(W=J4LgE)qQH$Q_&0Fhl;)#1WqB%= zxwL>TE7JkYWmW_+@tCxfZA`rL8^j)i*8lz9`VZhe#MgN=#KHO-QGcZB8(&XrpL6-* zrOOvLuAHFjX{A#Av{f|Ofe7x#W94O-1*8Vs^8~tbZpJ9XzkFP_RG+u1M&7W^vg(Z) z!!)yo34hh7>oNPE#X=ouGe9Ytidr`ojXFTD8cQ(Fs~NLs+Av!*)Ng-bAI}$-V7=P8 zVU*3zXVp*4jSHVJu3VdUoB(^F)sk8A;|&X+>bxnqsgiJTr9+=_FyQ@Ua`}TwA?Ob(XMeig;CZ*Hw2{O_xvJsSfer z`ci4B(^1X_Sg266w+n@ From aa97223f0b8a9b44ef48b1b7c86cc0904e194251 Mon Sep 17 00:00:00 2001 From: Soham Banerjee <99272716+Soham919@users.noreply.github.com> Date: Tue, 20 May 2025 15:41:24 -0400 Subject: [PATCH 14/16] Delete tests/test_form_factor/__pycache__/test_epw.cpython-310-pytest-8.2.0.pyc deleted bin file --- .../test_epw.cpython-310-pytest-8.2.0.pyc | Bin 3506 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/test_form_factor/__pycache__/test_epw.cpython-310-pytest-8.2.0.pyc diff --git a/tests/test_form_factor/__pycache__/test_epw.cpython-310-pytest-8.2.0.pyc b/tests/test_form_factor/__pycache__/test_epw.cpython-310-pytest-8.2.0.pyc deleted file mode 100644 index e9b3e7aee5f4b21d116b15ba7f2e9da454999c10..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3506 zcmZt|ON<;xwX3`5|J$9N{mlMm{E3qRJj)u}aENgn+lhpd5adOM5~x!DWY0~vvhb4YPaKOYouAt>Tv zP{L(Rv;0a>#Z?U>zlLjCvySU}Y~Y3-OLzuG+n)`ZxT$4x{#?+)tzaI{AL}jzi+Bkc ztZ>+-d0KdA9>c{92K|!19IW6KEnoImgEhRS;flW=bZ`gYDy=;*aF?B;^*bi_S$7}S zPth&idW|FS(0He3rTIY=4m~%uc08Hp!f_B!dMGVY#^OPw;RX?cap@4>ANY}AJu@u~ zeIg|b)6zIR2626d>^dwY+dgx4FJIik4Mm`y&=jx^X3Ik_q)yDp9igx{A|AX!1~TG+ z)wV`aAfoVH!buGXSWQyADk}vJ68SJBT7`9w4M(lUme1Kp&v@A59Hu(Hzb1 zoA1}ANZNTMYp#IJ>3mY5t4Sl7aZS29w7}W|?Ho(Zg46=o zTTJG)_UVTREG+@QqO8y}z*jQa{;AzK3+<)0T0>iDB#UZA324k2OE6n93!G)mY5yP2 zisme9&Wh?64cbYTVTP5K0ldYen5~SSQ)_Q&o6}XLMPEMlXHDDCGtyU*Rb>VA*RpX@ zdAy#qlXbOoi-v|OZLs5-(~ew97LyL`(Jvi9{K@v=@O7@&sHV{`|J>FQwzjhl5mljIq33D;z=rcYH9ei2KJ2LdR?+g4RkJ^r6SJGf z2T1(pWLBKy)55LiWuxJ`T0SUPtS0WVKXm zD0#|;Wb8}PpOC;$5r1cI?L{FkjK{|!p3yaov>dDQ$0V%u2tm1fqi5nWRAoogMVi|t zaxn5f0G{`;2?{nPlHeMHs_T=$5hHIXQ&W(mS3x^1xGZFx__z`>$K`~2;8faB1{LPS zkr#r``P2?$DRAkj2|OzXs>G|kbx7#?Oz?TIi1TBraGbwK)YvmW`%&wcZ+^P>;Ob|< zhVRc;-Hh_Ht8i1~N6d3a5|`mT0xx9YfZ?jT0Gx~=xbo69jKj}A{M*Xw?!T`6Zup0P z{P?va@Xc^9z5QF`&EMa;a-?o%*SPZ2_x}35e_jV^!+6vjTuUujZ))8m{?V_1#FwBu zg6qNHi_pOV*<40`&&IVNqRe-qfVsrkd>*}k>kw}dpFCwhk6-ASM>%D)1Kk!JM**%& z;q8GRQn?1(K8eQCr7J)DmN}_hb(cT?(<|#ASFYmnZE_FJC3NNJsIC`;i^B-^TPc^W z1+nkRF=cyg9WVbIU;P+%Ij5(9n5=AXN4t&}4n|D$&ZYUlANtXKTo+6_&%za#gd}iP zLtLhI6vG8=tLOtV8A5zSgz^F`B+ZXw2ph(W%CCy*)b*O0VVvd&=VZdwE~W)>cg)xx z8n#{T zQCtwP>u^N4rYys5cq(Z{?@Vf`Z83+QdfjBXndY+u+I(Q;%ayJpxU#`wN4=4j%sJ+Z*47SD)Ar(TD^aH=@B< z)kCq7)k^2$`OS;xFI+lCH?qp6`jdO5$qp35emqfO09-(3z`S?>T{Sm@s_?Hqu3D-u zT6I)Jw$-#ult(5iqdIEB2-v@?<-9p_OlhJ8WSdoFqZzb>nr0K^&Y@-aF9UQMXmwOJ zZD?iCC?op|`|(0)8D^@(UqmfbHM@VWe_~!f`w71R3rUNP6A&+SoZjiQxIOlK>4hS# zz7|iMr&!yGC(4C>_8f+Lq|e!X?n#!Go|4kS6IvORwa0`*YLMM5#B^~|#f+a<^V;f( zt+R{2q=;u!x2d|96}zUN<9%fY%COERTs?ko!^;|CQ)RQxVmuoVsq)14wqdt*#^ke+ zUsOWppu<%$@Zw2dcy361uJRanvIFf8BF_3*REz$JTBIujUOOoT0XK&Gp#L;evJ&!S wC)JhdI68_>bk||BwD@YK`%P8!#X59-ql&t4GCC6AOslG)qE-A3oZI970xdJ;3;+NC From 62e26d7fe01a6a54b0fa9ffb3f308673b5c9ab0f Mon Sep 17 00:00:00 2001 From: Soham Banerjee <99272716+Soham919@users.noreply.github.com> Date: Tue, 20 May 2025 15:42:27 -0400 Subject: [PATCH 15/16] Delete tests/test_forward/__pycache__ directory deleted pycache file --- .../test_1d.cpython-310-pytest-8.2.0.pyc | Bin 3043 -> 0 bytes .../test_angular_1v.cpython-310-pytest-8.2.0.pyc | Bin 3222 -> 0 bytes .../test_angular_2v.cpython-310-pytest-8.2.0.pyc | Bin 4572 -> 0 bytes 3 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/test_forward/__pycache__/test_1d.cpython-310-pytest-8.2.0.pyc delete mode 100644 tests/test_forward/__pycache__/test_angular_1v.cpython-310-pytest-8.2.0.pyc delete mode 100644 tests/test_forward/__pycache__/test_angular_2v.cpython-310-pytest-8.2.0.pyc diff --git a/tests/test_forward/__pycache__/test_1d.cpython-310-pytest-8.2.0.pyc b/tests/test_forward/__pycache__/test_1d.cpython-310-pytest-8.2.0.pyc deleted file mode 100644 index 53cf85f084c58938775120f19ae21b079b460eb6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3043 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 X%`F2`ka^d1z<70n Date: Tue, 20 May 2025 15:43:17 -0400 Subject: [PATCH 16/16] Delete tests/test_inverse/__pycache__ directory deleted pycache folder --- .../test_1d_data.cpython-310-pytest-8.2.0.pyc | Bin 2251 -> 0 bytes .../test_1d_random.cpython-310-pytest-8.2.0.pyc | Bin 5873 -> 0 bytes .../test_angular_1v.cpython-310-pytest-8.2.0.pyc | Bin 8784 -> 0 bytes .../test_angular_2v.cpython-310-pytest-8.2.0.pyc | Bin 9769 -> 0 bytes 4 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 tests/test_inverse/__pycache__/test_1d_data.cpython-310-pytest-8.2.0.pyc delete mode 100644 tests/test_inverse/__pycache__/test_1d_random.cpython-310-pytest-8.2.0.pyc delete mode 100644 tests/test_inverse/__pycache__/test_angular_1v.cpython-310-pytest-8.2.0.pyc delete mode 100644 tests/test_inverse/__pycache__/test_angular_2v.cpython-310-pytest-8.2.0.pyc diff --git a/tests/test_inverse/__pycache__/test_1d_data.cpython-310-pytest-8.2.0.pyc b/tests/test_inverse/__pycache__/test_1d_data.cpython-310-pytest-8.2.0.pyc deleted file mode 100644 index 35a14ca96d0170668cf7c8ce5c4ab152d12455bd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2251 zcmZ`4O>Y}TbY^$GUavnA=R0XqN(&N3s@;?Vm(b);fw+`PEmW+4W$PKco9-7gj6#P8{HhG+c^6Li_|Or1EC$IIgPBYG&W}ym{}yA6I2d{NI@=^yYEov#@(---euXd(-pWB}H%91A$7O!z?*HKUZ% zeJt%}nzX{UtgHt&eVPPUBI@6K<;*3Jwp$^XU;tTh$eT@N`(QW#sACwWr&Ui-?oWS;w&RReFJ0g7^8P#f{yuwj`4&}<1rnxi?_jY7xye- zc8zVk2Np$6Q%zy_^2E{qCBXv{u#;L=7Lrcv zH&aGA%Rw1J)w?1ULFB7#SW%I%%*Rx)u*s#(MIbs{7Mf|CMO0AI{{7!i)_)LxueR@J zuerZ{^I!mc@abCn!tNKz#P(mS?Vqpz`1L~Lm(})HU#d}9tJ$&?#M!dnrU_+1q_NXO ztQZCHA##cOG@?zx(nJ=M5yXv$3^op)G7QULkMCF2m181}SXHqm6zk)uZ{PT1Q>?N{ zMVdO4-d|iBxQq5?_ENL|ycLVGG(=7tf*{Sm)8_#zzLE3wvf; z`1@$zkVgHK#Mi)!BBKz`>p|3kAkTvS!?zl5Lkr;zo?Z>&#<{fFiD?2U?q|k7b8`92 z$MZ3AZvyoV8j_zYSw}J?f`1(l2#2@n&6}?YWYEB=aq30v}G=1pv%;|C9P|8gV!8s zv_k0|+%{?VZxge%CD>jX;*_-DE#R^=xGBEMhdzGIU@DyKh+0%AWMP;URhj&CSV~q2 zFFq=nYIV#CcCc%^hKt9sV~pbkT!PQRM$W(opZ#!QX#qI>Z_zl4pZk@)s?0mS9|vLL z`?Y!LT$w=7JPI-@sOD5xw9Niu&xb3s`<9WeHy+G8w+ z^oAKro0Rh~X|orA%8se!gyNS5&t*RhDy98YmZ95Z8+Bz%Y3U%F@M!8-vg07$|kNyW`g;y5< diff --git a/tests/test_inverse/__pycache__/test_1d_random.cpython-310-pytest-8.2.0.pyc b/tests/test_inverse/__pycache__/test_1d_random.cpython-310-pytest-8.2.0.pyc deleted file mode 100644 index ad616273ee07dc47e74fd43d8967067164cad0e3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5873 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 diff --git a/tests/test_inverse/__pycache__/test_angular_1v.cpython-310-pytest-8.2.0.pyc b/tests/test_inverse/__pycache__/test_angular_1v.cpython-310-pytest-8.2.0.pyc deleted file mode 100644 index 5112e9582d58cf170db83df51989599753efe3fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8784 zcmb7JYm6MpUGL{i&tqq2pWgLzY_ENuJMXUT^F88o&UXB`b8vj-yb;{!qNaDMXST;P zJ>%*gdw1v&fpuaVFi8kR3AsqKLJ9Z_Um}FUXFw?88(&ZfBqF4UL*fG;B2W}!e*fy8 z-C3WBU`AbCUG=Z3f7So}ulCqjR>ALQzh-R3#;Q(v`G)TNR6GZn}|S`gwvdn%P#al56EFc~x<9gE3~Z)Rrbk zr_ooajJJxFVr!x@A=|9xWNWH2CF_~ybZe$EldLpb*&|mdROaM+zOq-o_qFy{4kR!K zD+guU5Sv4lL-M;+DarTY%3=9FQaK{uM=MA1&NdfX$12BK$1BI>Jh|petrL|KvYv02 zTQ65$mi4jbE3K22ldZ+dqWms2ms-n}<<_anDSRJhMfWtDa8I&H_jE1Arr7iYvvP(V zVYBY5HI40IbND{%rW&seUT3pxrmk*jN#8u%`@q;#D{ruUZ2tqL@+LdL4&wbO_Z&NP zN8>+q-(V?LdZJ<-^|pMz4PQD`{pw(C2qP1jz3{p?Cv7pC8Bbv8udp405Q zw&OFq&K)N7h8LDqk>}1mw`q4aLhicwwpyO=wY;8-+0(VA6NauYGF?BZ0>Wr{K^5

il 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 diff --git a/tests/test_inverse/__pycache__/test_angular_2v.cpython-310-pytest-8.2.0.pyc b/tests/test_inverse/__pycache__/test_angular_2v.cpython-310-pytest-8.2.0.pyc deleted file mode 100644 index 5b10d387411613c34f844b4e594aa4b9c14a313e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9769 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