diff --git a/doc/source/math_num_documentation/forward_structure.rst b/doc/source/math_num_documentation/forward_structure.rst index dd083a78..9e1c900a 100644 --- a/doc/source/math_num_documentation/forward_structure.rst +++ b/doc/source/math_num_documentation/forward_structure.rst @@ -35,7 +35,7 @@ Snow operator :math:`\mathcal{M}_{snw}` :align: center :width: 300 -.. dropdown:: zero (Zero Snow) +.. dropdown:: Zero Snow (zero) :animate: fade-in-slide-down This snow operator simply means that there is no snow operator. @@ -46,7 +46,7 @@ Snow operator :math:`\mathcal{M}_{snw}` with :math:`m_{lt}` the melt flux. -.. dropdown:: ssn (Simple Snow) +.. dropdown:: Simple Snow (ssn) :animate: fade-in-slide-down This snow operator is a simple degree-day snow operator. It can be expressed as follows: @@ -1736,6 +1736,19 @@ surface discharge can inflow the current cell :math:`x` - each cell has a unique :align: center :width: 300 +.. _math_num_documentation.forward_structure.routing_module.zero: + +.. dropdown:: Zero Routing (zero) + :animate: fade-in-slide-down + + This routing operator simply means that there is no routing operator. + + .. math:: + + Q(x, t) = \alpha(x) q_t(x, t) + + with :math:`\alpha` a conversion factor from :math:`mm.\Delta t^{-1}` to :math:`m^3.s^{-1}` for a single cell. + .. _math_num_documentation.forward_structure.routing_module.lag0: .. dropdown:: Instantaneous Routing (lag0) diff --git a/smash/_constant.py b/smash/_constant.py index 543805a5..a64a5b9c 100644 --- a/smash/_constant.py +++ b/smash/_constant.py @@ -17,21 +17,31 @@ def get_structure() -> list[str]: def get_rr_parameters_from_structure(structure: str) -> list[str]: rr_parameters = [] - [rr_parameters.extend(MODULE_RR_PARAMETERS[module]) for module in structure.split("-")] + sm, hm, rm = structure.split("-") + rr_parameters.extend(SNOW_MODULE_RR_PARAMETERS[sm]) + rr_parameters.extend(HYDROLOGICAL_MODULE_RR_PARAMETERS[hm]) + rr_parameters.extend(ROUTING_MODULE_RR_PARAMETERS[rm]) return rr_parameters def get_rr_states_from_structure(structure: str) -> list[str]: rr_states = [] - [rr_states.extend(MODULE_RR_STATES[module]) for module in structure.split("-")] + sm, hm, rm = structure.split("-") + rr_states.extend(SNOW_MODULE_RR_STATES[sm]) + rr_states.extend(HYDROLOGICAL_MODULE_RR_STATES[hm]) + rr_states.extend(ROUTING_MODULE_RR_STATES[rm]) return rr_states def get_rr_internal_fluxes_from_structure(structure: str) -> list[str]: rr_internal_fluxes = [] - [rr_internal_fluxes.extend(MODULE_RR_INTERNAL_FLUXES[module]) for module in structure.split("-")] + sm, hm, rm = structure.split("-") + rr_internal_fluxes.extend(SNOW_MODULE_RR_INTERNAL_FLUXES[sm]) + rr_internal_fluxes.extend(HYDROLOGICAL_MODULE_RR_INTERNAL_FLUXES[hm]) + rr_internal_fluxes.extend(ROUTING_MODULE_RR_INTERNAL_FLUXES[rm]) + return rr_internal_fluxes @@ -74,7 +84,7 @@ def get_neurons_from_hydrological_module(hydrological_module: str, hidden_neuron "vic3l", ] -ROUTING_MODULE = ["lag0", "lr", "kw"] +ROUTING_MODULE = ["zero", "lag0", "lr", "kw"] MODULE = SNOW_MODULE + HYDROLOGICAL_MODULE + ROUTING_MODULE @@ -111,14 +121,7 @@ def get_neurons_from_hydrological_module(hydrological_module: str, hidden_neuron # % Following ROUTING_MODULE order ROUTING_MODULE_RR_PARAMETERS = dict( - zip(ROUTING_MODULE, [[], ["llr"], ["akw", "bkw"]]) # % lag0 # % lr # % kw -) - -# % Following MODULE order -MODULE_RR_PARAMETERS = dict( - **SNOW_MODULE_RR_PARAMETERS, - **HYDROLOGICAL_MODULE_RR_PARAMETERS, - **ROUTING_MODULE_RR_PARAMETERS, + zip(ROUTING_MODULE, [[], [], ["llr"], ["akw", "bkw"]]) # % zero, lag0, lr, kw ) # % Following SNOW_MODULE order @@ -151,15 +154,12 @@ def get_neurons_from_hydrological_module(hydrological_module: str, hidden_neuron # % Following ROUTING_MODULE order ROUTING_MODULE_RR_STATES = dict( - zip(ROUTING_MODULE, [[], ["hlr"], []]) # % lag0 # % lr # % kw + zip(ROUTING_MODULE, [[], [], ["hlr"], []]) # % zero, lag0, lr, kw ) -# % Following MODULE order -MODULE_RR_STATES = dict(**SNOW_MODULE_RR_STATES, **HYDROLOGICAL_MODULE_RR_STATES, **ROUTING_MODULE_RR_STATES) - # % Following ROUTING_MODULE order ROUTING_MODULE_NQZ = dict( - zip(ROUTING_MODULE, [1, 1, 2]) # % lag0 # % lr # % kw + zip(ROUTING_MODULE, [1, 1, 1, 2]) # % zero, lag0, lr, kw ) # % Following SNOW_MODULE order @@ -197,13 +197,7 @@ def get_neurons_from_hydrological_module(hydrological_module: str, hidden_neuron # % Following ROUTING_MODULE order ROUTING_MODULE_RR_INTERNAL_FLUXES = dict( - zip(ROUTING_MODULE, [["qup"], ["qup"], ["qim1j"]]) # % lag0 # % lr # % kw -) - -MODULE_RR_INTERNAL_FLUXES = dict( - **SNOW_MODULE_RR_INTERNAL_FLUXES, - **HYDROLOGICAL_MODULE_RR_INTERNAL_FLUXES, - **ROUTING_MODULE_RR_INTERNAL_FLUXES, + zip(ROUTING_MODULE, [[], ["qup"], ["qup"], ["qim1j"]]) # % zero, lag0, lr, kw ) ### STRUCTURE ### diff --git a/smash/core/model/model.py b/smash/core/model/model.py index 29d8fcb2..3e870daf 100644 --- a/smash/core/model/model.py +++ b/smash/core/model/model.py @@ -141,6 +141,7 @@ class Model: routing_module : `str`, default 'lr' Name of routing module. Should be one of: + - ``'zero'`` - ``'lag0'`` - ``'lr'`` - ``'kw'`` diff --git a/smash/fcore/forward/forward_db.f90 b/smash/fcore/forward/forward_db.f90 index 31dec329..b301076e 100644 --- a/smash/fcore/forward/forward_db.f90 +++ b/smash/fcore/forward/forward_db.f90 @@ -26781,6 +26781,10 @@ SUBROUTINE SIMULATION_CHECKPOINT_D(setup, mesh, input_data, parameters& END SELECT ! Routing module SELECT CASE (setup%routing_module) + CASE ('zero') +! 'zero' module + checkpoint_variable_d%ac_qz = checkpoint_variable_d%ac_qtz + checkpoint_variable%ac_qz = checkpoint_variable%ac_qtz CASE ('lag0') ! 'lag0' module CALL LAG0_TIME_STEP_D(setup, mesh, options, returns, t, & @@ -27748,6 +27752,10 @@ SUBROUTINE SIMULATION_CHECKPOINT_B(setup, mesh, input_data, parameters& END SELECT ! Routing module SELECT CASE (setup%routing_module) + CASE ('zero') +! 'zero' module + checkpoint_variable%ac_qz = checkpoint_variable%ac_qtz + CALL PUSHCONTROL3B(1) CASE ('lag0') ! 'lag0' module CALL PUSHREAL4ARRAY(checkpoint_variable%ac_qz, SIZE(& @@ -27756,7 +27764,7 @@ SUBROUTINE SIMULATION_CHECKPOINT_B(setup, mesh, input_data, parameters& CALL LAG0_TIME_STEP(setup, mesh, options, returns, t, & & checkpoint_variable%ac_qtz, checkpoint_variable%& & ac_qz) - CALL PUSHCONTROL2B(1) + CALL PUSHCONTROL3B(2) CASE ('lr') ! 'lr' module ! % To avoid potential aliasing tapenade warning (DF02) @@ -27773,7 +27781,7 @@ SUBROUTINE SIMULATION_CHECKPOINT_B(setup, mesh, input_data, parameters& & ac_rr_parameters(:, rr_parameters_inc+1), h1, & & checkpoint_variable%ac_qz) checkpoint_variable%ac_rr_states(:, rr_states_inc+1) = h1 - CALL PUSHCONTROL2B(2) + CALL PUSHCONTROL3B(3) CASE ('kw') ! 'kw' module ! % akw @@ -27786,9 +27794,9 @@ SUBROUTINE SIMULATION_CHECKPOINT_B(setup, mesh, input_data, parameters& & ac_rr_parameters(:, rr_parameters_inc+1), & & checkpoint_variable%ac_rr_parameters(:, & & rr_parameters_inc+2), checkpoint_variable%ac_qz) - CALL PUSHCONTROL2B(3) + CALL PUSHCONTROL3B(4) CASE DEFAULT - CALL PUSHCONTROL2B(0) + CALL PUSHCONTROL3B(0) END SELECT CALL STORE_TIME_STEP(setup, mesh, output, returns, & & checkpoint_variable, t) @@ -27796,19 +27804,23 @@ SUBROUTINE SIMULATION_CHECKPOINT_B(setup, mesh, input_data, parameters& DO t=end_time_step,start_time_step,-1 CALL STORE_TIME_STEP_B(setup, mesh, output, output_b, returns, & & checkpoint_variable, checkpoint_variable_b, t) - CALL POPCONTROL2B(branch) + CALL POPCONTROL3B(branch) IF (branch .LT. 2) THEN IF (branch .NE. 0) THEN - CALL POPREAL4ARRAY(checkpoint_variable%ac_qz, SIZE(& -& checkpoint_variable%ac_qz, 1)*SIZE(& -& checkpoint_variable%ac_qz, 2)) - CALL LAG0_TIME_STEP_B(setup, mesh, options, returns, t, & -& checkpoint_variable%ac_qtz, & -& checkpoint_variable_b%ac_qtz, & -& checkpoint_variable%ac_qz, & -& checkpoint_variable_b%ac_qz) + checkpoint_variable_b%ac_qtz = checkpoint_variable_b%ac_qtz + & +& checkpoint_variable_b%ac_qz + checkpoint_variable_b%ac_qz = 0.0_4 END IF ELSE IF (branch .EQ. 2) THEN + CALL POPREAL4ARRAY(checkpoint_variable%ac_qz, SIZE(& +& checkpoint_variable%ac_qz, 1)*SIZE(& +& checkpoint_variable%ac_qz, 2)) + CALL LAG0_TIME_STEP_B(setup, mesh, options, returns, t, & +& checkpoint_variable%ac_qtz, & +& checkpoint_variable_b%ac_qtz, & +& checkpoint_variable%ac_qz, checkpoint_variable_b& +& %ac_qz) + ELSE IF (branch .EQ. 3) THEN h1_b = 0.0_4 h1_b = checkpoint_variable_b%ac_rr_states(:, rr_states_inc+1) CALL POPREAL4ARRAY(h1, mesh%nac) @@ -29720,6 +29732,9 @@ SUBROUTINE SIMULATION_CHECKPOINT(setup, mesh, input_data, parameters, & END SELECT ! Routing module SELECT CASE (setup%routing_module) + CASE ('zero') +! 'zero' module + checkpoint_variable%ac_qz = checkpoint_variable%ac_qtz CASE ('lag0') ! 'lag0' module CALL LAG0_TIME_STEP(setup, mesh, options, returns, t, & diff --git a/smash/fcore/forward/forward_openmp_db.f90 b/smash/fcore/forward/forward_openmp_db.f90 index 328bb405..b34255b0 100644 --- a/smash/fcore/forward/forward_openmp_db.f90 +++ b/smash/fcore/forward/forward_openmp_db.f90 @@ -28030,6 +28030,10 @@ SUBROUTINE SIMULATION_CHECKPOINT_D(setup, mesh, input_data, parameters& END SELECT ! Routing module SELECT CASE (setup%routing_module) + CASE ('zero') +! 'zero' module + checkpoint_variable_d%ac_qz = checkpoint_variable_d%ac_qtz + checkpoint_variable%ac_qz = checkpoint_variable%ac_qtz CASE ('lag0') ! 'lag0' module CALL LAG0_TIME_STEP_D(setup, mesh, options, returns, t, & @@ -28997,6 +29001,10 @@ SUBROUTINE SIMULATION_CHECKPOINT_B(setup, mesh, input_data, parameters& END SELECT ! Routing module SELECT CASE (setup%routing_module) + CASE ('zero') +! 'zero' module + checkpoint_variable%ac_qz = checkpoint_variable%ac_qtz + CALL PUSHCONTROL3B(1) CASE ('lag0') ! 'lag0' module CALL PUSHREAL4ARRAY(checkpoint_variable%ac_qz, SIZE(& @@ -29005,7 +29013,7 @@ SUBROUTINE SIMULATION_CHECKPOINT_B(setup, mesh, input_data, parameters& CALL LAG0_TIME_STEP(setup, mesh, options, returns, t, & & checkpoint_variable%ac_qtz, checkpoint_variable%& & ac_qz) - CALL PUSHCONTROL2B(1) + CALL PUSHCONTROL3B(2) CASE ('lr') ! 'lr' module ! % To avoid potential aliasing tapenade warning (DF02) @@ -29022,7 +29030,7 @@ SUBROUTINE SIMULATION_CHECKPOINT_B(setup, mesh, input_data, parameters& & ac_rr_parameters(:, rr_parameters_inc+1), h1, & & checkpoint_variable%ac_qz) checkpoint_variable%ac_rr_states(:, rr_states_inc+1) = h1 - CALL PUSHCONTROL2B(2) + CALL PUSHCONTROL3B(3) CASE ('kw') ! 'kw' module ! % akw @@ -29035,9 +29043,9 @@ SUBROUTINE SIMULATION_CHECKPOINT_B(setup, mesh, input_data, parameters& & ac_rr_parameters(:, rr_parameters_inc+1), & & checkpoint_variable%ac_rr_parameters(:, & & rr_parameters_inc+2), checkpoint_variable%ac_qz) - CALL PUSHCONTROL2B(3) + CALL PUSHCONTROL3B(4) CASE DEFAULT - CALL PUSHCONTROL2B(0) + CALL PUSHCONTROL3B(0) END SELECT CALL STORE_TIME_STEP(setup, mesh, output, returns, & & checkpoint_variable, t) @@ -29045,19 +29053,23 @@ SUBROUTINE SIMULATION_CHECKPOINT_B(setup, mesh, input_data, parameters& DO t=end_time_step,start_time_step,-1 CALL STORE_TIME_STEP_B(setup, mesh, output, output_b, returns, & & checkpoint_variable, checkpoint_variable_b, t) - CALL POPCONTROL2B(branch) + CALL POPCONTROL3B(branch) IF (branch .LT. 2) THEN IF (branch .NE. 0) THEN - CALL POPREAL4ARRAY(checkpoint_variable%ac_qz, SIZE(& -& checkpoint_variable%ac_qz, 1)*SIZE(& -& checkpoint_variable%ac_qz, 2)) - CALL LAG0_TIME_STEP_B(setup, mesh, options, returns, t, & -& checkpoint_variable%ac_qtz, & -& checkpoint_variable_b%ac_qtz, & -& checkpoint_variable%ac_qz, & -& checkpoint_variable_b%ac_qz) + checkpoint_variable_b%ac_qtz = checkpoint_variable_b%ac_qtz + & +& checkpoint_variable_b%ac_qz + checkpoint_variable_b%ac_qz = 0.0_4 END IF ELSE IF (branch .EQ. 2) THEN + CALL POPREAL4ARRAY(checkpoint_variable%ac_qz, SIZE(& +& checkpoint_variable%ac_qz, 1)*SIZE(& +& checkpoint_variable%ac_qz, 2)) + CALL LAG0_TIME_STEP_B(setup, mesh, options, returns, t, & +& checkpoint_variable%ac_qtz, & +& checkpoint_variable_b%ac_qtz, & +& checkpoint_variable%ac_qz, checkpoint_variable_b& +& %ac_qz) + ELSE IF (branch .EQ. 3) THEN h1_b = 0.0_4 h1_b = checkpoint_variable_b%ac_rr_states(:, rr_states_inc+1) CALL POPREAL4ARRAY(h1, mesh%nac) @@ -30969,6 +30981,9 @@ SUBROUTINE SIMULATION_CHECKPOINT(setup, mesh, input_data, parameters, & END SELECT ! Routing module SELECT CASE (setup%routing_module) + CASE ('zero') +! 'zero' module + checkpoint_variable%ac_qz = checkpoint_variable%ac_qtz CASE ('lag0') ! 'lag0' module CALL LAG0_TIME_STEP(setup, mesh, options, returns, t, & diff --git a/smash/fcore/forward/md_simulation.f90 b/smash/fcore/forward/md_simulation.f90 index ffd157a8..076b01dc 100644 --- a/smash/fcore/forward/md_simulation.f90 +++ b/smash/fcore/forward/md_simulation.f90 @@ -856,6 +856,11 @@ subroutine simulation_checkpoint(setup, mesh, input_data, parameters, output, op ! Routing module select case (setup%routing_module) + ! 'zero' module + case ("zero") + + checkpoint_variable%ac_qz = checkpoint_variable%ac_qtz + ! 'lag0' module case ("lag0") diff --git a/smash/tests/baseline.hdf5 b/smash/tests/baseline.hdf5 index 7d898718..bd3ef892 100644 Binary files a/smash/tests/baseline.hdf5 and b/smash/tests/baseline.hdf5 differ diff --git a/smash/tests/diff_baseline.csv b/smash/tests/diff_baseline.csv index 9e5a5114..1464405f 100644 --- a/smash/tests/diff_baseline.csv +++ b/smash/tests/diff_baseline.csv @@ -1,8 +1,12 @@ -commit a19c8a96ecb0aff7235aded84b75bfa9060c16a0 -Author: ngo-nghi-truyen.huynh -Date: Sun Jul 5 15:08:16 2026 +0200 +commit a699068370a787ff737a6f51251c096b3f45b83b +Author: Ngo Nghi Truyen Huynh <129378719+nghi-truyen@users.noreply.github.com> +Date: Thu Jul 16 23:06:50 2026 +0200 - ENH: add new hybrid flux correction structures taking into account rain intensity + ENH: add new hybrid flux correction structures taking into account rain intensity (#537) + + * ENH: add new hybrid flux correction structures taking into account rain intensity + + * Apply suggestions from FC review TEST NAME |STATUS bbox_mesh.active_cell |NON MODIFIED @@ -104,6 +108,13 @@ forward_run.zero-gr4-lr.rr_states.hlr |NON MODIFIED forward_run.zero-gr4-lr.rr_states.hp |NON MODIFIED forward_run.zero-gr4-lr.rr_states.ht |NON MODIFIED forward_run.zero-gr4-lr.sim_q |NON MODIFIED +forward_run.zero-gr4-zero.cost |ADDED +forward_run.zero-gr4-zero.jobs |ADDED +forward_run.zero-gr4-zero.q_domain |ADDED +forward_run.zero-gr4-zero.rr_states.hi |ADDED +forward_run.zero-gr4-zero.rr_states.hp |ADDED +forward_run.zero-gr4-zero.rr_states.ht |ADDED +forward_run.zero-gr4-zero.sim_q |ADDED forward_run.zero-gr4_mlp-lr.cost |NON MODIFIED forward_run.zero-gr4_mlp-lr.jobs |NON MODIFIED forward_run.zero-gr4_mlp-lr.q_domain |NON MODIFIED @@ -128,14 +139,14 @@ forward_run.zero-gr4_ri-lr.rr_states.hlr |NON MODIFIED forward_run.zero-gr4_ri-lr.rr_states.hp |NON MODIFIED forward_run.zero-gr4_ri-lr.rr_states.ht |NON MODIFIED forward_run.zero-gr4_ri-lr.sim_q |NON MODIFIED -forward_run.zero-gr4_ri_mlp_exc-lr.cost |ADDED -forward_run.zero-gr4_ri_mlp_exc-lr.jobs |ADDED -forward_run.zero-gr4_ri_mlp_exc-lr.q_domain |ADDED -forward_run.zero-gr4_ri_mlp_exc-lr.rr_states.hi |ADDED -forward_run.zero-gr4_ri_mlp_exc-lr.rr_states.hlr |ADDED -forward_run.zero-gr4_ri_mlp_exc-lr.rr_states.hp |ADDED -forward_run.zero-gr4_ri_mlp_exc-lr.rr_states.ht |ADDED -forward_run.zero-gr4_ri_mlp_exc-lr.sim_q |ADDED +forward_run.zero-gr4_ri_mlp_exc-lr.cost |NON MODIFIED +forward_run.zero-gr4_ri_mlp_exc-lr.jobs |NON MODIFIED +forward_run.zero-gr4_ri_mlp_exc-lr.q_domain |NON MODIFIED +forward_run.zero-gr4_ri_mlp_exc-lr.rr_states.hi |NON MODIFIED +forward_run.zero-gr4_ri_mlp_exc-lr.rr_states.hlr |NON MODIFIED +forward_run.zero-gr4_ri_mlp_exc-lr.rr_states.hp |NON MODIFIED +forward_run.zero-gr4_ri_mlp_exc-lr.rr_states.ht |NON MODIFIED +forward_run.zero-gr4_ri_mlp_exc-lr.sim_q |NON MODIFIED forward_run.zero-gr4_ude-lr.cost |NON MODIFIED forward_run.zero-gr4_ude-lr.jobs |NON MODIFIED forward_run.zero-gr4_ude-lr.q_domain |NON MODIFIED @@ -168,14 +179,14 @@ forward_run.zero-gr5_ri-lr.rr_states.hlr |NON MODIFIED forward_run.zero-gr5_ri-lr.rr_states.hp |NON MODIFIED forward_run.zero-gr5_ri-lr.rr_states.ht |NON MODIFIED forward_run.zero-gr5_ri-lr.sim_q |NON MODIFIED -forward_run.zero-gr5_ri_mlp_exc-lr.cost |ADDED -forward_run.zero-gr5_ri_mlp_exc-lr.jobs |ADDED -forward_run.zero-gr5_ri_mlp_exc-lr.q_domain |ADDED -forward_run.zero-gr5_ri_mlp_exc-lr.rr_states.hi |ADDED -forward_run.zero-gr5_ri_mlp_exc-lr.rr_states.hlr |ADDED -forward_run.zero-gr5_ri_mlp_exc-lr.rr_states.hp |ADDED -forward_run.zero-gr5_ri_mlp_exc-lr.rr_states.ht |ADDED -forward_run.zero-gr5_ri_mlp_exc-lr.sim_q |ADDED +forward_run.zero-gr5_ri_mlp_exc-lr.cost |NON MODIFIED +forward_run.zero-gr5_ri_mlp_exc-lr.jobs |NON MODIFIED +forward_run.zero-gr5_ri_mlp_exc-lr.q_domain |NON MODIFIED +forward_run.zero-gr5_ri_mlp_exc-lr.rr_states.hi |NON MODIFIED +forward_run.zero-gr5_ri_mlp_exc-lr.rr_states.hlr |NON MODIFIED +forward_run.zero-gr5_ri_mlp_exc-lr.rr_states.hp |NON MODIFIED +forward_run.zero-gr5_ri_mlp_exc-lr.rr_states.ht |NON MODIFIED +forward_run.zero-gr5_ri_mlp_exc-lr.sim_q |NON MODIFIED forward_run.zero-gr6-lr.cost |NON MODIFIED forward_run.zero-gr6-lr.jobs |NON MODIFIED forward_run.zero-gr6-lr.q_domain |NON MODIFIED @@ -292,6 +303,18 @@ internal_fluxes.zero-gr4-lr.qd |NON MODIFIED internal_fluxes.zero-gr4-lr.qr |NON MODIFIED internal_fluxes.zero-gr4-lr.qt |NON MODIFIED internal_fluxes.zero-gr4-lr.qup |NON MODIFIED +internal_fluxes.zero-gr4-zero.en |ADDED +internal_fluxes.zero-gr4-zero.es |ADDED +internal_fluxes.zero-gr4-zero.lexc |ADDED +internal_fluxes.zero-gr4-zero.perc |ADDED +internal_fluxes.zero-gr4-zero.pn |ADDED +internal_fluxes.zero-gr4-zero.pr |ADDED +internal_fluxes.zero-gr4-zero.prd |ADDED +internal_fluxes.zero-gr4-zero.prr |ADDED +internal_fluxes.zero-gr4-zero.ps |ADDED +internal_fluxes.zero-gr4-zero.qd |ADDED +internal_fluxes.zero-gr4-zero.qr |ADDED +internal_fluxes.zero-gr4-zero.qt |ADDED internal_fluxes.zero-gr4_mlp-lr.en |NON MODIFIED internal_fluxes.zero-gr4_mlp-lr.es |NON MODIFIED internal_fluxes.zero-gr4_mlp-lr.lexc |NON MODIFIED @@ -323,19 +346,19 @@ internal_fluxes.zero-gr4_ri-lr.qd |NON MODIFIED internal_fluxes.zero-gr4_ri-lr.qr |NON MODIFIED internal_fluxes.zero-gr4_ri-lr.qt |NON MODIFIED internal_fluxes.zero-gr4_ri-lr.qup |NON MODIFIED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.en |ADDED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.es |ADDED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.lexc |ADDED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.perc |ADDED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.pn |ADDED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.pr |ADDED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.prd |ADDED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.prr |ADDED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.ps |ADDED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.qd |ADDED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.qr |ADDED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.qt |ADDED -internal_fluxes.zero-gr4_ri_mlp_exc-lr.qup |ADDED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.en |NON MODIFIED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.es |NON MODIFIED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.lexc |NON MODIFIED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.perc |NON MODIFIED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.pn |NON MODIFIED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.pr |NON MODIFIED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.prd |NON MODIFIED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.prr |NON MODIFIED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.ps |NON MODIFIED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.qd |NON MODIFIED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.qr |NON MODIFIED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.qt |NON MODIFIED +internal_fluxes.zero-gr4_ri_mlp_exc-lr.qup |NON MODIFIED internal_fluxes.zero-gr4_ude-lr.en |NON MODIFIED internal_fluxes.zero-gr4_ude-lr.lexc |NON MODIFIED internal_fluxes.zero-gr4_ude-lr.pn |NON MODIFIED @@ -380,19 +403,19 @@ internal_fluxes.zero-gr5_ri-lr.qd |NON MODIFIED internal_fluxes.zero-gr5_ri-lr.qr |NON MODIFIED internal_fluxes.zero-gr5_ri-lr.qt |NON MODIFIED internal_fluxes.zero-gr5_ri-lr.qup |NON MODIFIED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.en |ADDED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.es |ADDED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.lexc |ADDED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.perc |ADDED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.pn |ADDED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.pr |ADDED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.prd |ADDED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.prr |ADDED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.ps |ADDED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.qd |ADDED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.qr |ADDED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.qt |ADDED -internal_fluxes.zero-gr5_ri_mlp_exc-lr.qup |ADDED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.en |NON MODIFIED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.es |NON MODIFIED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.lexc |NON MODIFIED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.perc |NON MODIFIED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.pn |NON MODIFIED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.pr |NON MODIFIED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.prd |NON MODIFIED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.prr |NON MODIFIED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.ps |NON MODIFIED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.qd |NON MODIFIED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.qr |NON MODIFIED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.qt |NON MODIFIED +internal_fluxes.zero-gr5_ri_mlp_exc-lr.qup |NON MODIFIED internal_fluxes.zero-gr6-lr.en |NON MODIFIED internal_fluxes.zero-gr6-lr.es |NON MODIFIED internal_fluxes.zero-gr6-lr.lexc |NON MODIFIED @@ -633,6 +656,16 @@ optimize.zero-gr4-lr.multi-power.control_vector |NON MODIFIED optimize.zero-gr4-lr.multi-power.sim_q |NON MODIFIED optimize.zero-gr4-lr.uniform.control_vector |NON MODIFIED optimize.zero-gr4-lr.uniform.sim_q |NON MODIFIED +optimize.zero-gr4-zero.ann.control_vector |ADDED +optimize.zero-gr4-zero.ann.sim_q |ADDED +optimize.zero-gr4-zero.distributed.control_vector |ADDED +optimize.zero-gr4-zero.distributed.sim_q |ADDED +optimize.zero-gr4-zero.multi-linear.control_vector |ADDED +optimize.zero-gr4-zero.multi-linear.sim_q |ADDED +optimize.zero-gr4-zero.multi-power.control_vector |ADDED +optimize.zero-gr4-zero.multi-power.sim_q |ADDED +optimize.zero-gr4-zero.uniform.control_vector |ADDED +optimize.zero-gr4-zero.uniform.sim_q |ADDED optimize.zero-gr4_mlp-lr.ann.control_vector |NON MODIFIED optimize.zero-gr4_mlp-lr.ann.sim_q |NON MODIFIED optimize.zero-gr4_mlp-lr.distributed.control_vector |NON MODIFIED @@ -663,16 +696,16 @@ optimize.zero-gr4_ri-lr.multi-power.control_vector |NON MODIFIED optimize.zero-gr4_ri-lr.multi-power.sim_q |NON MODIFIED optimize.zero-gr4_ri-lr.uniform.control_vector |NON MODIFIED optimize.zero-gr4_ri-lr.uniform.sim_q |NON MODIFIED -optimize.zero-gr4_ri_mlp_exc-lr.ann.control_vector |ADDED -optimize.zero-gr4_ri_mlp_exc-lr.ann.sim_q |ADDED -optimize.zero-gr4_ri_mlp_exc-lr.distributed.control_vector |ADDED -optimize.zero-gr4_ri_mlp_exc-lr.distributed.sim_q |ADDED -optimize.zero-gr4_ri_mlp_exc-lr.multi-linear.control_vector |ADDED -optimize.zero-gr4_ri_mlp_exc-lr.multi-linear.sim_q |ADDED -optimize.zero-gr4_ri_mlp_exc-lr.multi-power.control_vector |ADDED -optimize.zero-gr4_ri_mlp_exc-lr.multi-power.sim_q |ADDED -optimize.zero-gr4_ri_mlp_exc-lr.uniform.control_vector |ADDED -optimize.zero-gr4_ri_mlp_exc-lr.uniform.sim_q |ADDED +optimize.zero-gr4_ri_mlp_exc-lr.ann.control_vector |NON MODIFIED +optimize.zero-gr4_ri_mlp_exc-lr.ann.sim_q |NON MODIFIED +optimize.zero-gr4_ri_mlp_exc-lr.distributed.control_vector |NON MODIFIED +optimize.zero-gr4_ri_mlp_exc-lr.distributed.sim_q |NON MODIFIED +optimize.zero-gr4_ri_mlp_exc-lr.multi-linear.control_vector |NON MODIFIED +optimize.zero-gr4_ri_mlp_exc-lr.multi-linear.sim_q |NON MODIFIED +optimize.zero-gr4_ri_mlp_exc-lr.multi-power.control_vector |NON MODIFIED +optimize.zero-gr4_ri_mlp_exc-lr.multi-power.sim_q |NON MODIFIED +optimize.zero-gr4_ri_mlp_exc-lr.uniform.control_vector |NON MODIFIED +optimize.zero-gr4_ri_mlp_exc-lr.uniform.sim_q |NON MODIFIED optimize.zero-gr4_ude-lr.ann.control_vector |NON MODIFIED optimize.zero-gr4_ude-lr.ann.sim_q |NON MODIFIED optimize.zero-gr4_ude-lr.distributed.control_vector |NON MODIFIED @@ -713,16 +746,16 @@ optimize.zero-gr5_ri-lr.multi-power.control_vector |NON MODIFIED optimize.zero-gr5_ri-lr.multi-power.sim_q |NON MODIFIED optimize.zero-gr5_ri-lr.uniform.control_vector |NON MODIFIED optimize.zero-gr5_ri-lr.uniform.sim_q |NON MODIFIED -optimize.zero-gr5_ri_mlp_exc-lr.ann.control_vector |ADDED -optimize.zero-gr5_ri_mlp_exc-lr.ann.sim_q |ADDED -optimize.zero-gr5_ri_mlp_exc-lr.distributed.control_vector |ADDED -optimize.zero-gr5_ri_mlp_exc-lr.distributed.sim_q |ADDED -optimize.zero-gr5_ri_mlp_exc-lr.multi-linear.control_vector |ADDED -optimize.zero-gr5_ri_mlp_exc-lr.multi-linear.sim_q |ADDED -optimize.zero-gr5_ri_mlp_exc-lr.multi-power.control_vector |ADDED -optimize.zero-gr5_ri_mlp_exc-lr.multi-power.sim_q |ADDED -optimize.zero-gr5_ri_mlp_exc-lr.uniform.control_vector |ADDED -optimize.zero-gr5_ri_mlp_exc-lr.uniform.sim_q |ADDED +optimize.zero-gr5_ri_mlp_exc-lr.ann.control_vector |NON MODIFIED +optimize.zero-gr5_ri_mlp_exc-lr.ann.sim_q |NON MODIFIED +optimize.zero-gr5_ri_mlp_exc-lr.distributed.control_vector |NON MODIFIED +optimize.zero-gr5_ri_mlp_exc-lr.distributed.sim_q |NON MODIFIED +optimize.zero-gr5_ri_mlp_exc-lr.multi-linear.control_vector |NON MODIFIED +optimize.zero-gr5_ri_mlp_exc-lr.multi-linear.sim_q |NON MODIFIED +optimize.zero-gr5_ri_mlp_exc-lr.multi-power.control_vector |NON MODIFIED +optimize.zero-gr5_ri_mlp_exc-lr.multi-power.sim_q |NON MODIFIED +optimize.zero-gr5_ri_mlp_exc-lr.uniform.control_vector |NON MODIFIED +optimize.zero-gr5_ri_mlp_exc-lr.uniform.sim_q |NON MODIFIED optimize.zero-gr6-lr.ann.control_vector |NON MODIFIED optimize.zero-gr6-lr.ann.sim_q |NON MODIFIED optimize.zero-gr6-lr.distributed.control_vector |NON MODIFIED diff --git a/smash/tests/test_constant.py b/smash/tests/test_constant.py index 1ba8277a..70e2936d 100644 --- a/smash/tests/test_constant.py +++ b/smash/tests/test_constant.py @@ -74,7 +74,7 @@ def test_module_name(): ] # % Check routing module - assert ROUTING_MODULE == ["lag0", "lr", "kw"] + assert ROUTING_MODULE == ["zero", "lag0", "lr", "kw"] def test_module_parameters(): @@ -139,15 +139,15 @@ def test_module_parameters(): ) # % Check routing module rr parameters - assert list(ROUTING_MODULE_RR_PARAMETERS.values()) == [[], ["llr"], ["akw", "bkw"]] + assert list(ROUTING_MODULE_RR_PARAMETERS.values()) == [[], [], ["llr"], ["akw", "bkw"]] # % Check routing module rr internal fluxes - assert list(ROUTING_MODULE_RR_INTERNAL_FLUXES.values()) == [["qup"], ["qup"], ["qim1j"]] + assert list(ROUTING_MODULE_RR_INTERNAL_FLUXES.values()) == [[], ["qup"], ["qup"], ["qim1j"]] # % Check routing module rr states - assert list(ROUTING_MODULE_RR_STATES.values()) == [[], ["hlr"], []] + assert list(ROUTING_MODULE_RR_STATES.values()) == [[], [], ["hlr"], []] - assert list(ROUTING_MODULE_NQZ.values()) == [1, 1, 2] + assert list(ROUTING_MODULE_NQZ.values()) == [1, 1, 1, 2] def test_parameters():