updated testing

This commit is contained in:
Benoît Sierro
2021-06-10 16:20:39 +02:00
parent 69c89f04c4
commit 03b29f29f4
46 changed files with 428 additions and 411 deletions

View File

@@ -1,13 +1,13 @@
name = "test config"
[fiber]
# fiber
# gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
intensity_noise = 0.05e-2
peak_power = 100e3
quantum_noise = true
@@ -15,7 +15,7 @@ shape = "gaussian"
wavelength = 1050e-9
width = 50e-15
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = false
raman_type = "agrawal"

View File

@@ -1,19 +1,13 @@
[fiber]
# fiber
core_radius = 50e-6
length = 50e-2
model = "marcatili"
[gas.variable]
gas_name = ["air", "helium"]
[pulse]
# pulse
peak_power = 100e3
wavelength = 800e-9
[pulse.variable]
width = [250e-15, 240e-15, 230e-15, 220e-15, 210e-15]
[simulation]
# simulation
parallel = true
repeat = 4
t_num = 16384
@@ -21,5 +15,10 @@ time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[simulation.variable]
[variable]
# gas.variable
gas_name = ["air", "helium"]
# pulse.variable
width = [250e-15, 240e-15, 230e-15, 220e-15, 210e-15]
# simulation.variable
behaviors = [["spm", "raman", "ss"], ["spm", "raman"], ["spm"]]

View File

@@ -1,17 +1,17 @@
[fiber]
# fiber
core_radius = 50e-6
length = 50e-2
model = "marcatili"
[gas]
# gas
gas_name = "air"
[pulse]
# pulse
peak_power = 100e3
wavelength = 800e-9
width = 250e-15
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
repeat = 1

View File

@@ -1,19 +1,16 @@
[fiber]
# fiber
core_radius = 50e-6
length = 50e-2
model = "marcatili"
[gas]
# gas
gas_name = "air"
[pulse]
# pulse
peak_power = 100e3
wavelength = 800e-9
[pulse.variable]
width = [250e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
repeat = 1
@@ -21,3 +18,5 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
width = [250e-15]

View File

@@ -1,17 +1,17 @@
[fiber]
# fiber
core_radius = 50e-6
length = 50e-2
model = "marcatili"
[gas]
# gas
gas_name = "air"
[pulse]
# pulse
peak_power = 100e3
wavelength = 800e-9
width = 250e-15
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
repeat = 2

View File

@@ -1,20 +1,17 @@
[fiber]
# fiber
core_radius = 50e-6
length = 50e-2
model = "marcatili"
[gas]
# gas
gas_name = "air"
[pulse]
# pulse
soliton_num = 5
wavelength = 800e-9
width = 250e-15
[pulse.variable]
shape = ["gaussian", "sech"]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
repeat = 1
@@ -22,3 +19,6 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
shape = ["gaussian", "sech"]

View File

@@ -2,7 +2,7 @@ dt = 1e-15
field_file = "testing/configs/custom_field/init_field.npz"
length = 1
peak_power = 20000
readjust_wavelength = true
readjust_wavelength = false
t_num = 2048
wavelength = 1593e-9
z_num = 32

View File

@@ -1,17 +1,17 @@
name = "test config"
[fiber]
# fiber
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
field_file = "testing/configs/custom_field/init_field.npz"
quantum_noise = false
wavelength = 1050e-9
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
lower_wavelength_interp_limit = 300e-9
raman_type = "agrawal"

View File

@@ -1,18 +1,16 @@
name = "test config"
[fiber]
# fiber
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
field_file = "testing/configs/custom_field/init_field.npz"
quantum_noise = false
[pulse.variable]
wavelength = [1050e-9, 1321e-9, 1593e-9]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
lower_wavelength_interp_limit = 300e-9
raman_type = "agrawal"
@@ -22,3 +20,7 @@ time_window = 37e-12
tolerated_error = 1e-11
upper_wavelength_interp_limit = 1900e-9
z_num = 128
[variable]
# pulse.variable
wavelength = [1050e-9, 1321e-9, 1593e-9]

View File

@@ -2,23 +2,20 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -27,3 +24,7 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]

View File

@@ -2,23 +2,19 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
soliton_num = [1, 2, 3, 4]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -27,3 +23,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
soliton_num = [1, 2, 3, 4]

View File

@@ -2,24 +2,20 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -27,3 +23,8 @@ repeat = 4
t_num = 16384
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -2,25 +2,21 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
width = 120e-15
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -29,3 +25,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -2,7 +2,7 @@
name = "test config"
[fiber]
# fiber
capillary_num = 6
capillary_outer_d = 2e-6
capillary_spacing = 4e-6
@@ -11,17 +11,13 @@ gamma = 0.018
length = 1
model = "hasan"
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -30,3 +26,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -2,7 +2,7 @@
name = "test config"
[fiber]
# fiber
capillary_num = 6
capillary_thickness = 4e-6
core_radius = 50e-6
@@ -10,17 +10,13 @@ gamma = 0.018
length = 1
model = "hasan"
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -29,3 +25,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -2,24 +2,20 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -28,3 +24,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -2,24 +2,20 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
repeat = 4
@@ -27,3 +23,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -1,23 +1,19 @@
# name should be added
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -26,3 +22,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -2,7 +2,7 @@
name = "test config"
[fiber]
# fiber
capillary_num = 6
capillary_outer_d = 2e-6
capillary_spacing = 4e-6
@@ -11,23 +11,16 @@ core_radius = 50e-6
length = 1
model = "hasan"
[gas]
# gas
gas_name = "helium"
[gas.variable]
temperature = [300, 350, 400]
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -36,3 +29,10 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# gas.variable
temperature = [300, 350, 400]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -2,23 +2,19 @@
name = "test config"
[fiber]
# fiber
core_radius = 50e-6
gamma = 0.018
length = 1
model = "marcatili"
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -27,3 +23,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -3,24 +3,20 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -29,3 +25,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -1,13 +1,13 @@
name = "fiber 2"
[fiber]
# fiber
beta = [-1.183e-26, 8.1038e-41, -9.5205e-56, 2.0737e-70, -5.3943e-85, 1.3486e-99, -2.5495e-114, 3.0524e-129, -1.714e-144]
gamma = 0.13
length = 0.05
model = "custom"
[fiber.variable]
input_transmission = [0.9, 0.95]
[simulation]
# simulation
z_num = 16
[variable]
# fiber.variable
input_transmission = [0.9, 0.95]

View File

@@ -1,20 +1,20 @@
name = "full anomalous"
[fiber]
# fiber
beta = [-1.183e-26, 8.1038e-41, -9.5205e-56, 2.0737e-70, -5.3943e-85, 1.3486e-99, -2.5495e-114, 3.0524e-129, -1.714e-144]
gamma = 0.11
input_transmission = 1.0
length = 0.02
model = "custom"
[pulse]
# pulse
intensity_noise = 0
peak_power = 10000
quantum_noise = false
shape = "gaussian"
t0 = 2.84e-14
[simulation]
# simulation
behaviors = ["spm", "ss"]
dt = 1e-15
frep = 80000000.0
@@ -28,5 +28,6 @@ tolerated_error = 1e-9
upper_wavelength_interp_limit = 1.9e-6
z_num = 64
[pulse.variable]
[variable]
# pulse.variable
wavelength = [8.35e-7, 8.3375e-7]

View File

@@ -2,24 +2,21 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
width = 50e-15
[pulse.variable]
intensity_noise = [0.10000000005e-2, 0.1e-2]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
repeat = 4
@@ -27,3 +24,7 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.10000000005e-2, 0.1e-2]

View File

@@ -2,24 +2,21 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
width = 50e-15
[pulse.variable]
intensity_noise = [0.1e-2, 0.001]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
repeat = 4
@@ -27,3 +24,7 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.1e-2, 0.001]

View File

@@ -2,14 +2,14 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
intensity_noise = 0.1e-2
peak_power = 100e3
quantum_noise = true
@@ -17,7 +17,7 @@ shape = "gaussian"
wavelength = 1050e-9
width = 50e-15
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
repeat = 4

View File

@@ -1,6 +1,6 @@
name = "full anomalous"
[fiber]
# fiber
beta = [
-1.183e-26,
8.1038e-41,
@@ -15,14 +15,11 @@ beta = [
gamma = 0.11
length = 0.02
[pulse]
# pulse
peak_power = 10000
t0 = 2.84e-14
[pulse.variable]
wavelength = [835e-9, 830e-9]
[simulation]
# simulation
dt = 1e-15
parallel = true
raman_type = "measured"
@@ -30,3 +27,7 @@ repeat = 4
t_num = 16384
tolerated_error = 1e-10
z_num = 64
[variable]
# pulse.variable
wavelength = [835e-9, 830e-9]

View File

@@ -2,24 +2,20 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
pitch = 1.5e-6
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -28,3 +24,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -2,24 +2,20 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss", "q_noise"]
parallel = true
raman_type = "agrawal"
@@ -28,3 +24,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -2,24 +2,20 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = ["gaussian", "sech"]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -28,3 +24,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = ["gaussian", "sech"]

View File

@@ -2,24 +2,20 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
raman_type = "agrawal"
repeat = 4
@@ -28,5 +24,9 @@ time_window = 37e-12
tolerated_error = 1e-11
z_num = 1
[simulation.variable]
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
# simulation.variable
parallel = [true, false]

View File

@@ -2,24 +2,20 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = 0.05e-2
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -28,3 +24,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = 0.05e-2
width = [50e-15, 100e-15, 200e-15]

View File

@@ -2,24 +2,21 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
intensity_noise = 0.05e-2
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -28,3 +25,7 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
width = [50e-15, 100e-15, 200e-15]

View File

@@ -2,22 +2,18 @@
name = "test config"
[fiber]
# fiber
beta = [1, 2, 3]
gamma = 0.018
length = 1
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = []
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -26,3 +22,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = []
width = [50e-15, 100e-15, 200e-15]

View File

@@ -1,23 +1,19 @@
name = "test config"
[fiber]
# fiber
gamma = 0.018
length = 1
model = "pcf"
pitch = 1.5e-6
pitch_ratio = 0.37
[pulse]
# pulse
peak_power = 100e3
quantum_noise = true
shape = "gaussian"
wavelength = 1050e-9
[pulse.variable]
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]
[simulation]
# simulation
behaviors = ["spm", "raman", "ss"]
parallel = true
raman_type = "agrawal"
@@ -26,3 +22,8 @@ t_num = 16384
time_window = 37e-12
tolerated_error = 1e-11
z_num = 128
[variable]
# pulse.variable
intensity_noise = [0.05e-2, 0.1e-2]
width = [50e-15, 100e-15, 200e-15]

View File

@@ -6,7 +6,8 @@ import numpy as np
import toml
from scgenerator import defaults, utils, math
from scgenerator.errors import *
from scgenerator.physics import units
from scgenerator.physics import pulse, units
from scgenerator.utils.parameter import BareConfig, BareParams
def load_conf(name):
@@ -38,12 +39,6 @@ class TestParamSequence(unittest.TestCase):
l.append(vary_list)
s.append(utils.format_variable_list(vary_list))
def test_init_config_not_affected_by_iteration(self):
for param_seq in self.iterconf(["almost_equal", "equal", "no_variations"]):
config = deepcopy(param_seq.config)
for _ in utils.required_simulations(param_seq.config):
self.assertEqual(config.items(), param_seq.config.items())
def test_no_variations_yields_only_num_and_id(self):
for param_seq in self.iterconf(["no_variations"]):
for vary_list, _ in utils.required_simulations(param_seq.config):
@@ -55,34 +50,30 @@ class TestParamSequence(unittest.TestCase):
class TestInitializeMethods(unittest.TestCase):
def test_validate_types(self):
conf = lambda s: load_conf("validate_types/" + s)
with self.assertRaisesRegex(TypeError, "belong"):
init._validate_types(conf("bad1"))
with self.assertRaisesRegex(TypeError, "valid list of behaviors"):
init._validate_types(conf("bad2"))
with self.assertRaisesRegex(ValueError, r"'behaviors\[3\]' must be a str in"):
init.Config(**conf("bad2"))
with self.assertRaisesRegex(TypeError, "single, real, non-negative number"):
init._validate_types(conf("bad3"))
with self.assertRaisesRegex(TypeError, "value must be of type <class 'float'>"):
init.Config(**conf("bad3"))
with self.assertRaisesRegex(TypeError, "'parallel' is not a valid variable parameter"):
init._validate_types(conf("bad4"))
with self.assertRaisesRegex(TypeError, "Variable parameters should be specified in a list"):
init._validate_types(conf("bad5"))
init.Config(**conf("bad4"))
with self.assertRaisesRegex(
TypeError,
"value '0' of type .*int.* for key 'repeat' is not valid, must be a strictly positive integer",
TypeError, "'variable intensity_noise' value must be of type <class 'list'>"
):
init._validate_types(conf("bad6"))
init.Config(**conf("bad5"))
with self.assertRaisesRegex(ValueError, "'repeat' must be positive"):
init.Config(**conf("bad6"))
with self.assertRaisesRegex(
ValueError,
r"Variable parameters lists should contain at least 1 element",
ValueError, "variable parameter 'intensity_noise' must not be empty"
):
init._ensure_consistency(conf("bad7"))
init.Config(**conf("bad7"))
self.assertIsNone(init._validate_types(conf("good")))
self.assertIsNone(init.Config(**conf("good")).hr_w)
def test_ensure_consistency(self):
conf = lambda s: load_conf("ensure_consistency/" + s)
@@ -90,68 +81,66 @@ class TestInitializeMethods(unittest.TestCase):
MissingParameterError,
r"1 of '\['t0', 'width'\]' is required and no defaults have been set",
):
init._ensure_consistency(conf("bad1"))
init.Config(**conf("bad1"))
with self.assertRaisesRegex(
MissingParameterError,
r"1 of '\['peak_power', 'mean_power', 'energy', 'width', 't0'\]' is required when 'soliton_num' is specified and no defaults have been set",
):
init._ensure_consistency(conf("bad2"))
init.Config(**conf("bad2"))
with self.assertRaisesRegex(
MissingParameterError,
r"2 of '\['dt', 't_num', 'time_window'\]' are required and no defaults have been set",
):
init._ensure_consistency(conf("bad3"))
init.Config(**conf("bad3"))
with self.assertRaisesRegex(
DuplicateParameterError,
r"got multiple values for parameter 'width'",
):
init._ensure_consistency(conf("bad4"))
init.Config(**conf("bad4"))
with self.assertRaisesRegex(
MissingParameterError,
r"'capillary_thickness' is a required parameter for fiber model 'hasan' and no defaults have been set",
):
init._ensure_consistency(conf("bad5"))
init.Config(**conf("bad5"))
with self.assertRaisesRegex(
MissingParameterError,
r"1 of '\['capillary_spacing', 'capillary_outer_d'\]' is required for fiber model 'hasan' and no defaults have been set",
):
init._ensure_consistency(conf("bad6"))
init.Config(**conf("bad6"))
self.assertLessEqual(
{"model": "pcf"}.items(), init._ensure_consistency(conf("good1"))["fiber"].items()
{"model": "pcf"}.items(), init.Config(**conf("good1")).__dict__.items()
)
self.assertNotIn("gas", init._ensure_consistency(conf("good1")))
self.assertNotIn("gamma", init._ensure_consistency(conf("good4"))["fiber"])
self.assertIsNone(init.Config(**conf("good4")).gamma)
self.assertLessEqual(
{"raman_type": "agrawal"}.items(),
init._ensure_consistency(conf("good2"))["simulation"].items(),
init.Config(**conf("good2")).__dict__.items(),
)
self.assertLessEqual(
{"name": "no name"}.items(), init._ensure_consistency(conf("good3")).items()
{"name": "no name"}.items(), init.Config(**conf("good3")).__dict__.items()
)
self.assertLessEqual(
{"capillary_nested": 0, "capillary_resonance_strengths": []}.items(),
init._ensure_consistency(conf("good4"))["fiber"].items(),
init.Config(**conf("good4")).__dict__.items(),
)
self.assertLessEqual(
dict(he_mode=(1, 1)).items(),
init._ensure_consistency(conf("good5"))["fiber"].items(),
init.Config(**conf("good5")).__dict__.items(),
)
self.assertLessEqual(
dict(temperature=300, pressure=1e5, gas_name="vacuum", plasma_density=0).items(),
init._ensure_consistency(conf("good5"))["gas"].items(),
init.Config(**conf("good5")).__dict__.items(),
)
self.assertLessEqual(
@@ -165,62 +154,75 @@ class TestInitializeMethods(unittest.TestCase):
"upper_wavelength_interp_limit"
],
).items(),
init._ensure_consistency(conf("good6"))["simulation"].items(),
init.Config(**conf("good6")).__dict__.items(),
)
def setup_conf_custom_field(self, path) -> BareParams:
conf = load_conf(path)
conf = BareParams(**conf)
init.build_sim_grid_in_place(conf)
return conf
def test_setup_custom_field(self):
d = np.load("testing/configs/custom_field/init_field.npz")
t = d["time"]
field = d["field"]
conf = load_conf("custom_field/no_change")
conf = init.build_sim_grid(conf)
result = init.setup_custom_field(conf)
self.assertAlmostEqual(conf["field_0"].real.max(), field.real.max(), 4)
self.assertTrue(result)
conf = load_conf("custom_field/peak_power")
conf = init.build_sim_grid(conf)
result = init.setup_custom_field(conf)
self.assertAlmostEqual(math.abs2(conf["field_0"]).max(), 20000, 4)
self.assertTrue(result)
self.assertNotAlmostEqual(conf["wavelength"], 1593e-9)
conf = load_conf("custom_field/mean_power")
conf = init.build_sim_grid(conf)
result = init.setup_custom_field(conf)
self.assertAlmostEqual(np.trapz(math.abs2(conf["field_0"]), conf["t"]), 0.22 / 40e6, 4)
self.assertTrue(result)
conf = load_conf("custom_field/recover1")
conf = init.build_sim_grid(conf)
result = init.setup_custom_field(conf)
self.assertAlmostEqual(math.abs2(conf["field_0"] - field).sum(), 0)
self.assertTrue(result)
conf = load_conf("custom_field/recover2")
conf = init.build_sim_grid(conf)
result = init.setup_custom_field(conf)
self.assertAlmostEqual((math.abs2(conf["field_0"]) / 0.9 - math.abs2(field)).sum(), 0)
self.assertTrue(result)
conf = load_conf("custom_field/wavelength_shift1")
result = init.compute_init_parameters(conf)
self.assertAlmostEqual(
units.m.inv(result["w"])[np.argmax(math.abs2(result["spec_0"]))], 1050e-9
conf = self.setup_conf_custom_field("custom_field/no_change")
result, conf.width, conf.peak_power, conf.energy, conf.field_0 = pulse.setup_custom_field(
conf
)
self.assertAlmostEqual(conf.field_0.real.max(), field.real.max(), 4)
self.assertTrue(result)
conf = load_conf("custom_field/wavelength_shift1")
conf["pulse"]["wavelength"] = 1593e-9
result = init.compute_init_parameters(conf)
conf = self.setup_conf_custom_field("custom_field/peak_power")
result, conf.width, conf.peak_power, conf.energy, conf.field_0 = pulse.setup_custom_field(
conf
)
conf.wavelength = pulse.correct_wavelength(conf.wavelength, conf.w_c, conf.field_0)
self.assertAlmostEqual(math.abs2(conf.field_0).max(), 20000, 4)
self.assertTrue(result)
self.assertNotAlmostEqual(conf.wavelength, 1593e-9)
conf = self.setup_conf_custom_field("custom_field/mean_power")
result, conf.width, conf.peak_power, conf.energy, conf.field_0 = pulse.setup_custom_field(
conf
)
self.assertAlmostEqual(np.trapz(math.abs2(conf.field_0), conf.t), 0.22 / 40e6, 4)
self.assertTrue(result)
conf = self.setup_conf_custom_field("custom_field/recover1")
result, conf.width, conf.peak_power, conf.energy, conf.field_0 = pulse.setup_custom_field(
conf
)
self.assertAlmostEqual(math.abs2(conf.field_0 - field).sum(), 0)
self.assertTrue(result)
conf = self.setup_conf_custom_field("custom_field/recover2")
result, conf.width, conf.peak_power, conf.energy, conf.field_0 = pulse.setup_custom_field(
conf
)
self.assertAlmostEqual((math.abs2(conf.field_0) / 0.9 - math.abs2(field)).sum(), 0)
self.assertTrue(result)
conf = self.setup_conf_custom_field("custom_field/wavelength_shift1")
result = init.Params.from_bare(conf)
self.assertAlmostEqual(units.m.inv(result.w)[np.argmax(math.abs2(result.spec_0))], 1050e-9)
conf = self.setup_conf_custom_field("custom_field/wavelength_shift1")
conf.wavelength = 1593e-9
result = init.Params.from_bare(conf)
conf = load_conf("custom_field/wavelength_shift2")
conf = init.Config(**conf)
for target, (variable, config) in zip(
[1050e-9, 1321e-9, 1593e-9], init.ParamSequence(conf)
):
init.build_sim_grid_in_place(conf)
self.assertAlmostEqual(
units.m.inv(config["w"])[np.argmax(math.abs2(config["spec_0"]))], target
units.m.inv(config.w)[np.argmax(math.abs2(config.spec_0))], target
)
print(config["wavelength"], target)
print(config.wavelength, target)
if __name__ == "__main__":

View File

@@ -1,37 +0,0 @@
from numba.core import config
from scgenerator.initialize import Config, Params, BareParams
from scgenerator.utils import variable_iterator, override_config
from scgenerator.io import load_toml
from pprint import pprint
from dataclasses import asdict
dico = load_toml("testing/configs/ensure_consistency/good2.toml")
out = dict(variable=dict())
for k, v in dico.items():
if isinstance(v, dict):
for kk, vv in v.items():
if kk == "variable":
for kkk, vvv in vv.items():
out["variable"][kkk] = vvv
else:
out[kk] = vv
pprint(out)
p = Config(**out)
print(p)
for l, c in variable_iterator(p):
print(l, c.width, c.intensity_noise)
print()
config2 = override_config(dict(width=1.2e-13, variable=dict(peak_power=[1e5, 2e5])), p)
print(
f"{config2.variable=}",
f"{config2.intensity_noise=}",
f"{config2.width=}",
f"{config2.peak_power=}",
)
par = BareParams()
print(all(v is None for v in vars(par).values()))

View File

@@ -14,9 +14,9 @@ def load_conf(name):
def conf_maker(folder, val=True):
def conf(name):
if val:
return initialize.validate(load_conf(folder + "/" + name))
return initialize.Config(**load_conf(folder + "/" + name))
else:
return load_conf(folder + "/" + name)
return initialize.BareConfig(**load_conf(folder + "/" + name))
return conf
@@ -58,9 +58,9 @@ class TestUtilsMethods(unittest.TestCase):
old = conf("initial_config")
new = conf("fiber2")
over = utils.override_config(new, old)
self.assertIn("input_transmission", over["fiber"]["variable"])
self.assertNotIn("input_transmission", over["fiber"])
over = utils.override_config(vars(new), old)
self.assertNotIn("input_transmission", over.variable)
self.assertIsNone(over.input_transmission)
if __name__ == "__main__":