Skip to content

Commit

Permalink
FIX grc_mlp structure regarding to change on grc structure (#347)
Browse files Browse the repository at this point in the history
  • Loading branch information
nghi-truyen authored Nov 20, 2024
1 parent effe281 commit d2a1ba9
Show file tree
Hide file tree
Showing 5 changed files with 63 additions and 53 deletions.
14 changes: 7 additions & 7 deletions smash/fcore/forward/forward_db.f90
Original file line number Diff line number Diff line change
Expand Up @@ -19171,8 +19171,8 @@ SUBROUTINE GRC_MLP_TIME_STEP_D(setup, mesh, input_data, options, &
temp = (output_layer(4, k)+1._sp)*(pr+perc)
prl_d = 0.9_sp*0.4_sp*(temp0*((pr+perc)*output_layer_d(4, k)+(&
& output_layer(4, k)+1._sp)*(pr_d+perc_d))-temp*2*output_layer&
& (3, k)*output_layer_d(3, k)) + l_d
prl = 0.9_sp*0.4_sp*(temp*temp0) + l
& (3, k)*output_layer_d(3, k))
prl = 0.9_sp*0.4_sp*(temp*temp0)
! Range of correction c0.1: (0, 10)
temp0 = 0.9_sp*(output_layer(3, k)*output_layer(3, k)) + &
& 0.1_sp
Expand Down Expand Up @@ -19351,9 +19351,8 @@ SUBROUTINE GRC_MLP_TIME_STEP_B(setup, mesh, input_data, options, &
& output_layer(3, k)**2))*(pr+perc) + l
! Range of correction c0.4: (0, 2)
! Range of correction c0.9: (1, 0)
CALL PUSHREAL4(prl)
prl = 0.4_sp*(1._sp+output_layer(4, k))*(0.9_sp*(1._sp-&
& output_layer(3, k)**2))*(pr+perc) + l
& output_layer(3, k)**2))*(pr+perc)
! Range of correction c0.1: (0, 10)
prd = (0.1_sp+0.9_sp*output_layer(3, k)**2)*(pr+perc)
CALL PUSHREAL4(ac_ht(k))
Expand Down Expand Up @@ -19393,6 +19392,8 @@ SUBROUTINE GRC_MLP_TIME_STEP_B(setup, mesh, input_data, options, &
prd_b = 0.0_4
END IF
temp = -(0.4_sp*output_layer(4, k)) + 0.6_sp
prl = 0.4_sp*(1._sp+output_layer(4, k))*(0.9_sp*(1._sp-&
& output_layer(3, k)**2))*(pr+perc)
CALL POPREAL4(ac_hl(k))
CALL GR_TRANSFER_B(5._sp, ac_prcp(k), prl, prl_b, ac_cl(k), &
& ac_cl_b(k), ac_hl(k), ac_hl_b(k), ql, ql_b)
Expand All @@ -19402,20 +19403,19 @@ SUBROUTINE GRC_MLP_TIME_STEP_B(setup, mesh, input_data, options, &
temp_b1 = (0.9_sp*output_layer(3, k)**2+0.1_sp)*prd_b
pr_b = temp_b1
perc_b = temp_b1
CALL POPREAL4(prl)
temp_b0 = 0.9_sp*0.4_sp*prl_b
output_layer_b(3, k) = output_layer_b(3, k) + 2*output_layer(3&
& , k)*0.9_sp*(pr+perc)*prd_b - 2*output_layer(3, k)*(&
& output_layer(4, k)+1._sp)*(pr+perc)*temp_b0 - 2*output_layer&
& (3, k)*temp*(pr+perc)*0.9_sp*prr_b
l_b = l_b + prl_b + prr_b
temp_b = (1._sp-output_layer(3, k)**2)*temp_b0
output_layer_b(4, k) = output_layer_b(4, k) + (pr+perc)*temp_b
temp_b1 = (output_layer(4, k)+1._sp)*temp_b
CALL POPREAL4(prr)
temp_b = (1._sp-output_layer(3, k)**2)*0.9_sp*prr_b
pr_b = pr_b + temp_b1 + temp*temp_b
perc_b = perc_b + temp_b1 + temp*temp_b
l_b = l_b + prr_b
output_layer_b(4, k) = output_layer_b(4, k) - 0.4_sp*(pr+perc)&
& *temp_b
CALL POPCONTROL1B(branch)
Expand Down Expand Up @@ -19584,7 +19584,7 @@ SUBROUTINE GRC_MLP_TIME_STEP(setup, mesh, input_data, options, returns&
! Range of correction c0.4: (0, 2)
! Range of correction c0.9: (1, 0)
prl = 0.4_sp*(1._sp+output_layer(4, k))*(0.9_sp*(1._sp-&
& output_layer(3, k)**2))*(pr+perc) + l
& output_layer(3, k)**2))*(pr+perc)
! Range of correction c0.1: (0, 10)
prd = (0.1_sp+0.9_sp*output_layer(3, k)**2)*(pr+perc)
CALL GR_TRANSFER(5._sp, ac_prcp(k), prr, ac_ct(k), ac_ht(k), &
Expand Down
16 changes: 7 additions & 9 deletions smash/fcore/forward/forward_openmp_db.f90
Original file line number Diff line number Diff line change
Expand Up @@ -19842,8 +19842,8 @@ SUBROUTINE GRC_MLP_TIME_STEP_D(setup, mesh, input_data, options, &
temp = (output_layer(4, k)+1._sp)*(pr+perc)
prl_d = 0.9_sp*0.4_sp*(temp0*((pr+perc)*output_layer_d(4, k)+(&
& output_layer(4, k)+1._sp)*(pr_d+perc_d))-temp*2*output_layer&
& (3, k)*output_layer_d(3, k)) + l_d
prl = 0.9_sp*0.4_sp*(temp*temp0) + l
& (3, k)*output_layer_d(3, k))
prl = 0.9_sp*0.4_sp*(temp*temp0)
! Range of correction c0.1: (0, 10)
temp0 = 0.9_sp*(output_layer(3, k)*output_layer(3, k)) + &
& 0.1_sp
Expand Down Expand Up @@ -20035,9 +20035,8 @@ SUBROUTINE GRC_MLP_TIME_STEP_B(setup, mesh, input_data, options, &
& output_layer(3, k)**2))*(pr+perc) + l
! Range of correction c0.4: (0, 2)
! Range of correction c0.9: (1, 0)
CALL PUSHREAL4(prl)
prl = 0.4_sp*(1._sp+output_layer(4, k))*(0.9_sp*(1._sp-&
& output_layer(3, k)**2))*(pr+perc) + l
& output_layer(3, k)**2))*(pr+perc)
! Range of correction c0.1: (0, 10)
prd = (0.1_sp+0.9_sp*output_layer(3, k)**2)*(pr+perc)
CALL PUSHREAL4(ac_ht(k))
Expand All @@ -20058,7 +20057,6 @@ SUBROUTINE GRC_MLP_TIME_STEP_B(setup, mesh, input_data, options, &
CALL PUSHREAL4(pr)
CALL PUSHREAL4(perc)
CALL PUSHREAL4(prr)
CALL PUSHREAL4(prl)
CALL PUSHINTEGER4(k)
!$OMP END PARALLEL
output_layer_b = 0.0_4
Expand All @@ -20074,7 +20072,6 @@ SUBROUTINE GRC_MLP_TIME_STEP_B(setup, mesh, input_data, options, &
!$OMP&, qd_b), PRIVATE(temp, branch, chunk_end, chunk_start), PRIVATE(&
!$OMP&temp_b, temp_b0, temp_b1)
CALL POPINTEGER4(k)
CALL POPREAL4(prl)
CALL POPREAL4(prr)
CALL POPREAL4(perc)
CALL POPREAL4(pr)
Expand Down Expand Up @@ -20107,6 +20104,8 @@ SUBROUTINE GRC_MLP_TIME_STEP_B(setup, mesh, input_data, options, &
prd_b = 0.0_4
END IF
temp = -(0.4_sp*output_layer(4, k)) + 0.6_sp
prl = 0.4_sp*(1._sp+output_layer(4, k))*(0.9_sp*(1._sp-&
& output_layer(3, k)**2))*(pr+perc)
CALL POPREAL4(ac_hl(k))
CALL GR_TRANSFER_B(5._sp, ac_prcp(k), prl, prl_b, ac_cl(k), &
& ac_cl_b(k), ac_hl(k), ac_hl_b(k), ql, ql_b)
Expand All @@ -20116,14 +20115,12 @@ SUBROUTINE GRC_MLP_TIME_STEP_B(setup, mesh, input_data, options, &
temp_b1 = (0.9_sp*output_layer(3, k)**2+0.1_sp)*prd_b
pr_b = temp_b1
perc_b = temp_b1
CALL POPREAL4(prl)
temp_b0 = 0.9_sp*0.4_sp*prl_b
!$OMP ATOMIC update
output_layer_b(3, k) = output_layer_b(3, k) + 2*output_layer(3&
& , k)*0.9_sp*(pr+perc)*prd_b - 2*output_layer(3, k)*(&
& output_layer(4, k)+1._sp)*(pr+perc)*temp_b0 - 2*output_layer&
& (3, k)*temp*(pr+perc)*0.9_sp*prr_b
l_b = l_b + prl_b + prr_b
temp_b = (1._sp-output_layer(3, k)**2)*temp_b0
!$OMP ATOMIC update
output_layer_b(4, k) = output_layer_b(4, k) + (pr+perc)*temp_b
Expand All @@ -20132,6 +20129,7 @@ SUBROUTINE GRC_MLP_TIME_STEP_B(setup, mesh, input_data, options, &
temp_b = (1._sp-output_layer(3, k)**2)*0.9_sp*prr_b
pr_b = pr_b + temp_b1 + temp*temp_b
perc_b = perc_b + temp_b1 + temp*temp_b
l_b = l_b + prr_b
!$OMP ATOMIC update
output_layer_b(4, k) = output_layer_b(4, k) - 0.4_sp*(pr+perc)&
& *temp_b
Expand Down Expand Up @@ -20318,7 +20316,7 @@ SUBROUTINE GRC_MLP_TIME_STEP(setup, mesh, input_data, options, returns&
! Range of correction c0.4: (0, 2)
! Range of correction c0.9: (1, 0)
prl = 0.4_sp*(1._sp+output_layer(4, k))*(0.9_sp*(1._sp-&
& output_layer(3, k)**2))*(pr+perc) + l
& output_layer(3, k)**2))*(pr+perc)
! Range of correction c0.1: (0, 10)
prd = (0.1_sp+0.9_sp*output_layer(3, k)**2)*(pr+perc)
CALL GR_TRANSFER(5._sp, ac_prcp(k), prr, ac_ct(k), ac_ht(k), &
Expand Down
2 changes: 1 addition & 1 deletion smash/fcore/operator/md_gr_operator.f90
Original file line number Diff line number Diff line change
Expand Up @@ -1737,7 +1737,7 @@ subroutine grc_mlp_time_step(setup, mesh, input_data, options, returns, time_ste

prl = (0.4_sp*(1._sp + output_layer(4, k)))* & ! Range of correction c0.4: (0, 2)
& (0.9_sp*(1._sp - output_layer(3, k)**2))* & ! Range of correction c0.9: (1, 0)
& (pr + perc) + l
& (pr + perc)

prd = (0.1_sp + 0.9_sp*output_layer(3, k)**2)*(pr + perc) ! Range of correction c0.1: (0, 10)

Expand Down
Binary file modified smash/tests/baseline.hdf5
Binary file not shown.
84 changes: 48 additions & 36 deletions smash/tests/diff_baseline.csv
Original file line number Diff line number Diff line change
@@ -1,8 +1,20 @@
commit 4a83a00b177a039fadb190a774b82a44ffc850dc
Author: Jay-Allemand Maxime <maxime.jay.allemand@hydris-hydrologie.fr>
Date: Wed Nov 13 10:01:50 2024 +0100
commit 1d1483a759403e563e0c598393db5f3c44123292
Author: maximejay <maximejay@users.noreply.github.com>
Date: Wed Nov 20 11:18:55 2024 +0100

Generate adjoint after change in grc structure
Fix grc structure (model for reunion) (#343)

* Fix grc structure (model for reunion). remove leaking from slow transfert reservoir cl, because the model calibration was done with this structure

* Generate adjoint after change in grc structure

* update baseline

* update doc figure

---------

Co-authored-by: Apolline Elbaz <aelbaz@localhost.localdomain>

TEST NAME |STATUS
bbox_mesh.active_cell |NON MODIFIED
Expand Down Expand Up @@ -1462,66 +1474,66 @@ optimize.zero-gr6_mlp-lr.multi-polynomial.control_vector |NON MODIFIED
optimize.zero-gr6_mlp-lr.multi-polynomial.sim_q |NON MODIFIED
optimize.zero-gr6_mlp-lr.uniform.control_vector |NON MODIFIED
optimize.zero-gr6_mlp-lr.uniform.sim_q |NON MODIFIED
optimize.zero-grc-kw.ann.control_vector |MODIFIED
optimize.zero-grc-kw.ann.sim_q |MODIFIED
optimize.zero-grc-kw.distributed.control_vector |MODIFIED
optimize.zero-grc-kw.distributed.sim_q |MODIFIED
optimize.zero-grc-kw.multi-linear.control_vector |MODIFIED
optimize.zero-grc-kw.multi-linear.sim_q |MODIFIED
optimize.zero-grc-kw.multi-polynomial.control_vector |MODIFIED
optimize.zero-grc-kw.multi-polynomial.sim_q |MODIFIED
optimize.zero-grc-kw.ann.control_vector |NON MODIFIED
optimize.zero-grc-kw.ann.sim_q |NON MODIFIED
optimize.zero-grc-kw.distributed.control_vector |NON MODIFIED
optimize.zero-grc-kw.distributed.sim_q |NON MODIFIED
optimize.zero-grc-kw.multi-linear.control_vector |NON MODIFIED
optimize.zero-grc-kw.multi-linear.sim_q |NON MODIFIED
optimize.zero-grc-kw.multi-polynomial.control_vector |NON MODIFIED
optimize.zero-grc-kw.multi-polynomial.sim_q |NON MODIFIED
optimize.zero-grc-kw.uniform.control_vector |NON MODIFIED
optimize.zero-grc-kw.uniform.sim_q |NON MODIFIED
optimize.zero-grc-lag0.ann.control_vector |NON MODIFIED
optimize.zero-grc-lag0.ann.sim_q |MODIFIED
optimize.zero-grc-lag0.distributed.control_vector |MODIFIED
optimize.zero-grc-lag0.distributed.sim_q |MODIFIED
optimize.zero-grc-lag0.multi-linear.control_vector |MODIFIED
optimize.zero-grc-lag0.multi-linear.sim_q |MODIFIED
optimize.zero-grc-lag0.multi-polynomial.control_vector |MODIFIED
optimize.zero-grc-lag0.multi-polynomial.sim_q |MODIFIED
optimize.zero-grc-lag0.ann.sim_q |NON MODIFIED
optimize.zero-grc-lag0.distributed.control_vector |NON MODIFIED
optimize.zero-grc-lag0.distributed.sim_q |NON MODIFIED
optimize.zero-grc-lag0.multi-linear.control_vector |NON MODIFIED
optimize.zero-grc-lag0.multi-linear.sim_q |NON MODIFIED
optimize.zero-grc-lag0.multi-polynomial.control_vector |NON MODIFIED
optimize.zero-grc-lag0.multi-polynomial.sim_q |NON MODIFIED
optimize.zero-grc-lag0.uniform.control_vector |NON MODIFIED
optimize.zero-grc-lag0.uniform.sim_q |NON MODIFIED
optimize.zero-grc-lr.ann.control_vector |NON MODIFIED
optimize.zero-grc-lr.ann.sim_q |NON MODIFIED
optimize.zero-grc-lr.distributed.control_vector |MODIFIED
optimize.zero-grc-lr.distributed.sim_q |MODIFIED
optimize.zero-grc-lr.multi-linear.control_vector |MODIFIED
optimize.zero-grc-lr.multi-linear.sim_q |MODIFIED
optimize.zero-grc-lr.multi-polynomial.control_vector |MODIFIED
optimize.zero-grc-lr.multi-polynomial.sim_q |MODIFIED
optimize.zero-grc-lr.distributed.control_vector |NON MODIFIED
optimize.zero-grc-lr.distributed.sim_q |NON MODIFIED
optimize.zero-grc-lr.multi-linear.control_vector |NON MODIFIED
optimize.zero-grc-lr.multi-linear.sim_q |NON MODIFIED
optimize.zero-grc-lr.multi-polynomial.control_vector |NON MODIFIED
optimize.zero-grc-lr.multi-polynomial.sim_q |NON MODIFIED
optimize.zero-grc-lr.uniform.control_vector |NON MODIFIED
optimize.zero-grc-lr.uniform.sim_q |NON MODIFIED
optimize.zero-grc_mlp-kw.ann.control_vector |NON MODIFIED
optimize.zero-grc_mlp-kw.ann.sim_q |NON MODIFIED
optimize.zero-grc_mlp-kw.ann.control_vector |MODIFIED
optimize.zero-grc_mlp-kw.ann.sim_q |MODIFIED
optimize.zero-grc_mlp-kw.distributed.control_vector |NON MODIFIED
optimize.zero-grc_mlp-kw.distributed.sim_q |NON MODIFIED
optimize.zero-grc_mlp-kw.multi-linear.control_vector |NON MODIFIED
optimize.zero-grc_mlp-kw.multi-linear.sim_q |NON MODIFIED
optimize.zero-grc_mlp-kw.multi-linear.sim_q |MODIFIED
optimize.zero-grc_mlp-kw.multi-polynomial.control_vector |NON MODIFIED
optimize.zero-grc_mlp-kw.multi-polynomial.sim_q |NON MODIFIED
optimize.zero-grc_mlp-kw.multi-polynomial.sim_q |MODIFIED
optimize.zero-grc_mlp-kw.uniform.control_vector |NON MODIFIED
optimize.zero-grc_mlp-kw.uniform.sim_q |NON MODIFIED
optimize.zero-grc_mlp-lag0.ann.control_vector |NON MODIFIED
optimize.zero-grc_mlp-lag0.ann.sim_q |NON MODIFIED
optimize.zero-grc_mlp-kw.uniform.sim_q |MODIFIED
optimize.zero-grc_mlp-lag0.ann.control_vector |MODIFIED
optimize.zero-grc_mlp-lag0.ann.sim_q |MODIFIED
optimize.zero-grc_mlp-lag0.distributed.control_vector |NON MODIFIED
optimize.zero-grc_mlp-lag0.distributed.sim_q |NON MODIFIED
optimize.zero-grc_mlp-lag0.multi-linear.control_vector |NON MODIFIED
optimize.zero-grc_mlp-lag0.multi-linear.sim_q |NON MODIFIED
optimize.zero-grc_mlp-lag0.multi-polynomial.control_vector |NON MODIFIED
optimize.zero-grc_mlp-lag0.multi-polynomial.sim_q |NON MODIFIED
optimize.zero-grc_mlp-lag0.uniform.control_vector |NON MODIFIED
optimize.zero-grc_mlp-lag0.uniform.sim_q |NON MODIFIED
optimize.zero-grc_mlp-lr.ann.control_vector |NON MODIFIED
optimize.zero-grc_mlp-lr.ann.sim_q |NON MODIFIED
optimize.zero-grc_mlp-lag0.uniform.sim_q |MODIFIED
optimize.zero-grc_mlp-lr.ann.control_vector |MODIFIED
optimize.zero-grc_mlp-lr.ann.sim_q |MODIFIED
optimize.zero-grc_mlp-lr.distributed.control_vector |NON MODIFIED
optimize.zero-grc_mlp-lr.distributed.sim_q |NON MODIFIED
optimize.zero-grc_mlp-lr.multi-linear.control_vector |NON MODIFIED
optimize.zero-grc_mlp-lr.multi-linear.sim_q |NON MODIFIED
optimize.zero-grc_mlp-lr.multi-polynomial.control_vector |NON MODIFIED
optimize.zero-grc_mlp-lr.multi-polynomial.sim_q |NON MODIFIED
optimize.zero-grc_mlp-lr.uniform.control_vector |NON MODIFIED
optimize.zero-grc_mlp-lr.uniform.sim_q |NON MODIFIED
optimize.zero-grc_mlp-lr.uniform.sim_q |MODIFIED
optimize.zero-grd-kw.ann.control_vector |NON MODIFIED
optimize.zero-grd-kw.ann.sim_q |NON MODIFIED
optimize.zero-grd-kw.distributed.control_vector |NON MODIFIED
Expand Down

0 comments on commit d2a1ba9

Please # to comment.