diff --git a/spec/session/session.verificateur.first.ts b/spec/session/session.verificateur.first.ts
index 9577d0f2b0ef4f8e14490e2b27d69b023df9d77a..94f8a00f8b53ee9a01e2776708cefbc985757b6d 100644
--- a/spec/session/session.verificateur.first.ts
+++ b/spec/session/session.verificateur.first.ts
@@ -152,7 +152,7 @@ export const sessionVerificateurFirst = {
                     value: 0.4
                 },
                 {
-                    symbol: "VMax",
+                    symbol: "VeMax",
                     mode: "SINGLE",
                     value: 2.5
                 },
@@ -343,7 +343,7 @@ export const sessionVerificateurFirst = {
                     value: 0.4
                 },
                 {
-                    symbol: "VMax",
+                    symbol: "VeMax",
                     mode: "SINGLE",
                     value: 2.5
                 },
diff --git a/spec/session/session.verificateur.last.ts b/spec/session/session.verificateur.last.ts
index cab34a220a42bd9fc0f77c1ca7efebda3d6100ac..c7bb319c5262c3af03ef8c4ebb24baed1b3b93d1 100644
--- a/spec/session/session.verificateur.last.ts
+++ b/spec/session/session.verificateur.last.ts
@@ -136,7 +136,7 @@ export const sessionVerificateurLast = {
                     value: 0.4
                 },
                 {
-                    symbol: "VMax",
+                    symbol: "VeMax",
                     mode: "SINGLE",
                     value: 2.5
                 },
@@ -327,7 +327,7 @@ export const sessionVerificateurLast = {
                     value: 0.4
                 },
                 {
-                    symbol: "VMax",
+                    symbol: "VeMax",
                     mode: "SINGLE",
                     value: 2.5
                 },
diff --git a/spec/verificateur/verificateur.spec.ts b/spec/verificateur/verificateur.spec.ts
index 951ffcfdfc4e3c118995fb0467d95a2e396b5d74..3ffd541ec75659d178bb0664e4ec927284be625a 100644
--- a/spec/verificateur/verificateur.spec.ts
+++ b/spec/verificateur/verificateur.spec.ts
@@ -18,6 +18,7 @@ import { ParType } from "../../src/par/par";
 import { MRCInclination } from "../../src/macrorugo/mrc-inclination";
 import { Espece } from "../../src/verification/espece";
 import { StructureJetType } from "../../src/structure/structure";
+import { EspeceParams } from "../../src/verification/espece_params";
 
 function createPab(): Pab {
     const pab = Session.getInstance().createSessionNub(
@@ -251,7 +252,7 @@ describe("vérificateur de franchissement −", () => {
         it("Plusieurs warnings entraînent la non-franchissabilité d'une cloison", () => {
             // contexte
             Session.getInstance().clear();
-            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-04-29T10:00:03.138Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"bjlnc2","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Croustibat®"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.6},{"symbol":"BMin","mode":"SINGLE","value":0.18},{"symbol":"PMinS","mode":"SINGLE","value":0.9},{"symbol":"PMinP","mode":"SINGLE","value":0.9},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":25},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":50000}]},{"uid":"M29hc3","props":{"calcType":"Pab"},"meta":{"title":"PAB 1"},"children":[{"uid":"eDllOD","props":{"calcType":"Cloisons"},"children":[{"uid":"ZGMwc3","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":98},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"cGs5OX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":101},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":100.5},{"symbol":"ZRAM","mode":"SINGLE","value":100.75},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":2.349},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":101}],"downWall":{"uid":"NzBlcD","props":{"calcType":"CloisonAval"},"children":[{"uid":"cG5xdX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":97.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"aGM1ZG","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":100.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":100.25}]}}]}`;
+            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-04-29T10:00:03.138Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"bjlnc2","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Croustibat®"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.6},{"symbol":"BMin","mode":"SINGLE","value":0.18},{"symbol":"PMinS","mode":"SINGLE","value":0.9},{"symbol":"PMinP","mode":"SINGLE","value":0.9},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":25},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":50000}]},{"uid":"M29hc3","props":{"calcType":"Pab"},"meta":{"title":"PAB 1"},"children":[{"uid":"eDllOD","props":{"calcType":"Cloisons"},"children":[{"uid":"ZGMwc3","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":98},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"cGs5OX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":101},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":100.5},{"symbol":"ZRAM","mode":"SINGLE","value":100.75},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":2.349},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":101}],"downWall":{"uid":"NzBlcD","props":{"calcType":"CloisonAval"},"children":[{"uid":"cG5xdX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":97.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"aGM1ZG","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":100.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":100.25}]}}]}`;
             Session.getInstance().unserialise(sess);
             const pab = Session.getInstance().findNubByUid("M29hc3") as Pab;
             const espece = Session.getInstance().findNubByUid("bjlnc2") as Espece;
@@ -283,7 +284,7 @@ describe("vérificateur de franchissement −", () => {
         it("Plusieurs warnings entraînent la non-franchissabilité d'une cloison (2)", () => {
             // contexte
             Session.getInstance().clear();
-            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-04-29T10:00:03.138Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"bjlnc2","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Croustibat®"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":50000}]},{"uid":"M29hc3","props":{"calcType":"Pab"},"meta":{"title":"PAB 1"},"children":[{"uid":"eDllOD","props":{"calcType":"Cloisons"},"children":[{"uid":"ZGMwc3","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":98},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"cGs5OX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":101},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":100.5},{"symbol":"ZRAM","mode":"SINGLE","value":100.75},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":2.349},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":101}],"downWall":{"uid":"NzBlcD","props":{"calcType":"CloisonAval"},"children":[{"uid":"cG5xdX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":97.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"aGM1ZG","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":100.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":100.25}]}}]}`;
+            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-04-29T10:00:03.138Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"bjlnc2","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Croustibat®"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":50000}]},{"uid":"M29hc3","props":{"calcType":"Pab"},"meta":{"title":"PAB 1"},"children":[{"uid":"eDllOD","props":{"calcType":"Cloisons"},"children":[{"uid":"ZGMwc3","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":98},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"cGs5OX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":101},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":100.5},{"symbol":"ZRAM","mode":"SINGLE","value":100.75},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":2.349},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":101}],"downWall":{"uid":"NzBlcD","props":{"calcType":"CloisonAval"},"children":[{"uid":"cG5xdX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":97.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]},{"uid":"aGM1ZG","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":100.5},{"symbol":"L","mode":"SINGLE","value":0.2},{"symbol":"CdWSL","mode":"SINGLE","value":0.75}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":100.25}]}}]}`;
             Session.getInstance().unserialise(sess);
             const pab = Session.getInstance().findNubByUid("M29hc3") as Pab;
             const espece = Session.getInstance().findNubByUid("bjlnc2") as Espece;
@@ -313,7 +314,7 @@ describe("vérificateur de franchissement −", () => {
         it("Puissance dissipée trop élevée", () => {
             // contexte
             Session.getInstance().clear();
-            Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T13:11:24.549Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"MDdjbW","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"Mno1eG","props":{"calcType":"Cloisons"},"children":[{"uid":"ZXQ3N2","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"MWhoMX","props":{"calcType":"CloisonAval"},"children":[{"uid":"NXRnbm","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"cWJ4cz","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":50},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":200}]},{"uid":"bjlidj","props":{"calcType":"Verificateur","nubToVerify":"MDdjbW","speciesList":["cWJ4cz"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`);
+            Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T13:11:24.549Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"MDdjbW","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"Mno1eG","props":{"calcType":"Cloisons"},"children":[{"uid":"ZXQ3N2","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"MWhoMX","props":{"calcType":"CloisonAval"},"children":[{"uid":"NXRnbm","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"cWJ4cz","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":50},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":200}]},{"uid":"bjlidj","props":{"calcType":"Verificateur","nubToVerify":"MDdjbW","speciesList":["cWJ4cz"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`);
             const v = Session.getInstance().findNubByUid("bjlidj") as Verificateur; // LOL "bjlidj"
             // résultat
             const res = v.CalcSerie();
@@ -374,7 +375,7 @@ describe("vérificateur de franchissement −", () => {
 
         it("Échec sur certaines itérations mais pas toutes", () => {
             // contexte
-            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-07T13:45:19.352Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Y3k4bj","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"ampiN3","props":{"calcType":"Cloisons"},"children":[{"uid":"Yzgxa2","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":28.085},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":27.413},{"symbol":"ZRAM","mode":"SINGLE","value":27.526},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"c3RmMz","props":{"calcType":"Cloisons"},"children":[{"uid":"dmwyem","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.858},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":27.186},{"symbol":"ZRAM","mode":"SINGLE","value":27.299},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"cTlydj","props":{"calcType":"Cloisons"},"children":[{"uid":"cWQ5aX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.631},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":26.959},{"symbol":"ZRAM","mode":"SINGLE","value":27.072},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"emRkMX","props":{"calcType":"Cloisons"},"children":[{"uid":"aG1xbj","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.404},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":26.731},{"symbol":"ZRAM","mode":"SINGLE","value":26.845},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"eG9hdT","props":{"calcType":"Cloisons"},"children":[{"uid":"M3Z5ZX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.177},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":26.504},{"symbol":"ZRAM","mode":"SINGLE","value":26.618},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.8},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"MINMAX","min":28,"max":30,"step":1,"extensionStrategy":0}],"downWall":{"uid":"bWExN2","props":{"calcType":"CloisonAval"},"children":[{"uid":"bm0zcD","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":26.95},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":26.391}]}},{"uid":"Y25qdn","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"c2d6OW","props":{"calcType":"Verificateur","nubToVerify":"Y3k4bj","speciesList":["Y25qdn","SPECIES_10"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`;
+            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-07T13:45:19.352Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Y3k4bj","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"ampiN3","props":{"calcType":"Cloisons"},"children":[{"uid":"Yzgxa2","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":28.085},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":27.413},{"symbol":"ZRAM","mode":"SINGLE","value":27.526},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"c3RmMz","props":{"calcType":"Cloisons"},"children":[{"uid":"dmwyem","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.858},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":27.186},{"symbol":"ZRAM","mode":"SINGLE","value":27.299},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"cTlydj","props":{"calcType":"Cloisons"},"children":[{"uid":"cWQ5aX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.631},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":26.959},{"symbol":"ZRAM","mode":"SINGLE","value":27.072},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"emRkMX","props":{"calcType":"Cloisons"},"children":[{"uid":"aG1xbj","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.404},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":26.731},{"symbol":"ZRAM","mode":"SINGLE","value":26.845},{"symbol":"QA","mode":"SINGLE","value":0}]},{"uid":"eG9hdT","props":{"calcType":"Cloisons"},"children":[{"uid":"M3Z5ZX","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":27.177},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":4.5},{"symbol":"BB","mode":"SINGLE","value":3.6},{"symbol":"ZRMB","mode":"SINGLE","value":26.504},{"symbol":"ZRAM","mode":"SINGLE","value":26.618},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.8},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"MINMAX","min":28,"max":30,"step":1,"extensionStrategy":0}],"downWall":{"uid":"bWExN2","props":{"calcType":"CloisonAval"},"children":[{"uid":"bm0zcD","props":{"calcType":"Structure","structureType":"SeuilRectangulaire","loiDebit":"WeirSubmergedLarinier"},"children":[],"parameters":[{"symbol":"ZDV","mode":"SINGLE","value":26.95},{"symbol":"L","mode":"SINGLE","value":0.5},{"symbol":"CdWSL","mode":"SINGLE","value":0.83}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":26.391}]}},{"uid":"Y25qdn","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"c2d6OW","props":{"calcType":"Verificateur","nubToVerify":"Y3k4bj","speciesList":["Y25qdn","SPECIES_10"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`;
             Session.getInstance().clear();
             Session.getInstance().unserialise(sess);
             // vérificateur
@@ -694,7 +695,7 @@ describe("vérificateur de franchissement −", () => {
         it("Puissance dissipée trop élevée", () => {
             // contexte
             Session.getInstance().clear();
-            Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T13:16:38.320Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"cWJ4cz","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.6},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":200}]},{"uid":"bjlidj","props":{"calcType":"Verificateur","nubToVerify":"Mm5tYm","speciesList":["cWJ4cz"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]},{"uid":"Mm5tYm","props":{"calcType":"MacroRugo"},"meta":{"title":"Macro-rugo."},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"L","mode":"SINGLE","value":6},{"symbol":"B","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Q","mode":"CALCUL"},{"symbol":"Y","mode":"SINGLE","value":0.6},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.13},{"symbol":"PBD","mode":"SINGLE","value":0.4},{"symbol":"PBH","mode":"SINGLE","value":0.4},{"symbol":"Cd0","mode":"SINGLE","value":1.2}]}]}`);
+            Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T13:16:38.320Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"cWJ4cz","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.6},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":200}]},{"uid":"bjlidj","props":{"calcType":"Verificateur","nubToVerify":"Mm5tYm","speciesList":["cWJ4cz"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]},{"uid":"Mm5tYm","props":{"calcType":"MacroRugo"},"meta":{"title":"Macro-rugo."},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"L","mode":"SINGLE","value":6},{"symbol":"B","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Q","mode":"CALCUL"},{"symbol":"Y","mode":"SINGLE","value":0.6},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.13},{"symbol":"PBD","mode":"SINGLE","value":0.4},{"symbol":"PBH","mode":"SINGLE","value":0.4},{"symbol":"Cd0","mode":"SINGLE","value":1.2}]}]}`);
             const v = Session.getInstance().findNubByUid("bjlidj") as Verificateur;
             // résultat
             const res = v.CalcSerie();
@@ -783,7 +784,7 @@ describe("vérificateur de franchissement −", () => {
         it("Largeur franchissable insuffisante", () => {
             // contexte
             Session.getInstance().clear();
-            Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T09:00:31.023Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"b2tnbW","props":{"calcType":"MacroRugoCompound","inclinedApron":"INCLINED"},"meta":{"title":"M-Rugo complexe"},"children":[{"uid":"cnl6cT","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.223},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"cmduNT","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":11.668},{"symbol":"B","mode":"SINGLE","value":1.11}]},{"uid":"d292eG","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":11.113},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"Y3AycW","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":10.668},{"symbol":"B","mode":"SINGLE","value":0.672}]}],"parameters":[{"symbol":"L","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.13},{"symbol":"PBD","mode":"SINGLE","value":0.4},{"symbol":"PBH","mode":"SINGLE","value":0.4},{"symbol":"Cd0","mode":"SINGLE","value":1.2},{"symbol":"Z1","mode":"SINGLE","value":13.1},{"symbol":"ZRL","mode":"SINGLE","value":10.5},{"symbol":"ZRR","mode":"SINGLE","value":12.5},{"symbol":"BR","mode":"SINGLE","value":4},{"symbol":"DH","mode":"SINGLE","value":3}]},{"uid":"Z215Y2","props":{"calcType":"Verificateur","nubToVerify":"b2tnbW","speciesList":["dDZzOX"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]},{"uid":"dDZzOX","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":2.2},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":800000}]}]}`);
+            Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T09:00:31.023Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"b2tnbW","props":{"calcType":"MacroRugoCompound","inclinedApron":"INCLINED"},"meta":{"title":"M-Rugo complexe"},"children":[{"uid":"cnl6cT","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.223},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"cmduNT","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":11.668},{"symbol":"B","mode":"SINGLE","value":1.11}]},{"uid":"d292eG","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":11.113},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"Y3AycW","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":10.668},{"symbol":"B","mode":"SINGLE","value":0.672}]}],"parameters":[{"symbol":"L","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.13},{"symbol":"PBD","mode":"SINGLE","value":0.4},{"symbol":"PBH","mode":"SINGLE","value":0.4},{"symbol":"Cd0","mode":"SINGLE","value":1.2},{"symbol":"Z1","mode":"SINGLE","value":13.1},{"symbol":"ZRL","mode":"SINGLE","value":10.5},{"symbol":"ZRR","mode":"SINGLE","value":12.5},{"symbol":"BR","mode":"SINGLE","value":4},{"symbol":"DH","mode":"SINGLE","value":3}]},{"uid":"Z215Y2","props":{"calcType":"Verificateur","nubToVerify":"b2tnbW","speciesList":["dDZzOX"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]},{"uid":"dDZzOX","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":2.2},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":800000}]}]}`);
             const v = Session.getInstance().findNubByUid("Z215Y2") as Verificateur;
             // résultat
             const res = v.CalcSerie();
@@ -801,7 +802,7 @@ describe("vérificateur de franchissement −", () => {
         it("Puissance dissipée trop élevée", () => {
             // contexte
             Session.getInstance().clear();
-            Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T13:17:16.084Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"cWJ4cz","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.6},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":200}]},{"uid":"bjlidj","props":{"calcType":"Verificateur","nubToVerify":"ZG5wNn","speciesList":["cWJ4cz"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]},{"uid":"ZG5wNn","props":{"calcType":"MacroRugoCompound","inclinedApron":"INCLINED"},"meta":{"title":"M-Rugo complexe"},"children":[{"uid":"NHYyeW","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"Mm9laW","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":1.11}]},{"uid":"aTlxMn","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"bDlrYm","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":0.672}]}],"parameters":[{"symbol":"L","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.13},{"symbol":"PBD","mode":"SINGLE","value":0.4},{"symbol":"PBH","mode":"SINGLE","value":0.4},{"symbol":"Cd0","mode":"SINGLE","value":1.2},{"symbol":"Z1","mode":"SINGLE","value":13.1},{"symbol":"ZRL","mode":"SINGLE","value":12.5},{"symbol":"ZRR","mode":"SINGLE","value":12.5},{"symbol":"BR","mode":"SINGLE","value":4},{"symbol":"DH","mode":"SINGLE","value":3}]}]}`);
+            Session.getInstance().unserialise(`{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-11T13:17:16.084Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"cWJ4cz","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Espèce"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.6},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3},{"symbol":"PVMax","mode":"SINGLE","value":200}]},{"uid":"bjlidj","props":{"calcType":"Verificateur","nubToVerify":"ZG5wNn","speciesList":["cWJ4cz"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]},{"uid":"ZG5wNn","props":{"calcType":"MacroRugoCompound","inclinedApron":"INCLINED"},"meta":{"title":"M-Rugo complexe"},"children":[{"uid":"NHYyeW","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"Mm9laW","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":1.11}]},{"uid":"aTlxMn","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":1.109}]},{"uid":"bDlrYm","props":{"calcType":"MacroRugo"},"children":[],"parameters":[{"symbol":"ZF1","mode":"SINGLE","value":12.5},{"symbol":"B","mode":"SINGLE","value":0.672}]}],"parameters":[{"symbol":"L","mode":"SINGLE","value":1},{"symbol":"If","mode":"SINGLE","value":0.05},{"symbol":"Ks","mode":"SINGLE","value":0.01},{"symbol":"C","mode":"SINGLE","value":0.13},{"symbol":"PBD","mode":"SINGLE","value":0.4},{"symbol":"PBH","mode":"SINGLE","value":0.4},{"symbol":"Cd0","mode":"SINGLE","value":1.2},{"symbol":"Z1","mode":"SINGLE","value":13.1},{"symbol":"ZRL","mode":"SINGLE","value":12.5},{"symbol":"ZRR","mode":"SINGLE","value":12.5},{"symbol":"BR","mode":"SINGLE","value":4},{"symbol":"DH","mode":"SINGLE","value":3}]}]}`);
             const v = Session.getInstance().findNubByUid("bjlidj") as Verificateur;
             // résultat
             const res = v.CalcSerie();
@@ -879,12 +880,98 @@ describe("vérificateur de franchissement −", () => {
 
     });
 
+    describe("espèces personnalisées", () => {
+
+        it("PAB, critères manquants, pas de jet plongeant", () => {
+            // contexte
+            Session.getInstance().clear();
+            const pab = createPab();
+            // espèce : omit BMin, PMinP and PVMax, but Pab has no diving jet so PMinP won't be marked as missing
+            const e = new Espece(new EspeceParams(0.7, 0.65, undefined, 0.2, undefined, 0.8, 1, 0.65));
+            Session.getInstance().registerNub(e);
+            // vérificateur
+            const v = new Verificateur();
+            v.nubToVerify = pab;
+            v.speciesList.push(e.uid);
+            // résultat
+            const res = v.CalcSerie();
+            expect(res.ok).toBe(false);
+
+            expect(e.result.log.messages.length).toBe(2);
+            expect(e.result.log.messages[0].code).toBe(MessageCode.ERROR_VERIF_MISSING_CRITERION);
+            expect(e.result.log.messages[0].extraVar.var_criterion).toBe("PVMax");
+            expect(e.result.log.messages[1].code).toBe(MessageCode.ERROR_VERIF_MISSING_CRITERION);
+            expect(e.result.log.messages[1].extraVar.var_criterion).toBe("BMin");
+        });
+
+        it("PAR, critères manquants", () => {
+            // contexte
+            Session.getInstance().clear();
+            const par = createPar(); // plane baffles by default
+            // espèce : omit YMinPB for Plane Baffles
+            const e = new Espece(new EspeceParams(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 3, undefined));
+            Session.getInstance().registerNub(e);
+            // vérificateur
+            const v = new Verificateur();
+            v.nubToVerify = par;
+            v.speciesList.push(e.uid);
+            // résultat
+            const res = v.CalcSerie();
+            expect(res.ok).toBe(false);
+
+            expect(e.result.log.messages.length).toBe(1);
+            expect(e.result.log.messages[0].code).toBe(MessageCode.ERROR_VERIF_MISSING_CRITERION);
+            expect(e.result.log.messages[0].extraVar.var_criterion).toBe("YMinPB");
+        });
+
+        it("MR, critères manquants", () => {
+            // contexte
+            Session.getInstance().clear();
+            const mr = createMR();
+            // espèce : omit VeMax
+            const e = new Espece(new EspeceParams(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 0.25, undefined));
+            Session.getInstance().registerNub(e);
+            // vérificateur
+            const v = new Verificateur();
+            v.nubToVerify = mr;
+            v.speciesList.push(e.uid);
+            // résultat
+            const res = v.CalcSerie();
+            expect(res.ok).toBe(false);
+
+            expect(e.result.log.messages.length).toBe(1);
+            expect(e.result.log.messages[0].code).toBe(MessageCode.ERROR_VERIF_MISSING_CRITERION);
+            expect(e.result.log.messages[0].extraVar.var_criterion).toBe("VeMax");
+        });
+
+        it("MRC, critères manquants", () => {
+            // contexte
+            Session.getInstance().clear();
+            const mrc = createMRC();
+            // espèce : omit YMin
+            const e = new Espece(new EspeceParams(undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, 2.5));
+            Session.getInstance().registerNub(e);
+            // vérificateur
+            const v = new Verificateur();
+            v.nubToVerify = mrc;
+            v.speciesList.push(e.uid);
+            // résultat
+            const res = v.CalcSerie();
+            expect(res.ok).toBe(false);
+
+            expect(e.result.log.messages.length).toBe(1);
+            expect(e.result.log.messages[0].code).toBe(MessageCode.ERROR_VERIF_MISSING_CRITERION);
+            expect(e.result.log.messages[0].extraVar.var_criterion).toBe("YMin");
+        });
+
+    });
+
     describe("dépendances entre Nubs", () => {
 
         it("le Verificateur devrait être dépendant d'un Nub Espèce sélectionné", () => {
             // contexte
             Session.getInstance().clear();
-            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`;
+            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`;
             Session.getInstance().unserialise(sess);
             const espece = Session.getInstance().findNubByUid("Z2xxan") as Espece;
             const verif = Session.getInstance().findNubByUid("OWsxdT") as Verificateur;
@@ -896,7 +983,7 @@ describe("vérificateur de franchissement −", () => {
         it("le Verificateur ne devrait pas être dépendant d'un Nub Espèce non sélectionné", () => {
             // contexte
             Session.getInstance().clear();
-            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`;
+            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`;
             Session.getInstance().unserialise(sess);
             const espece = Session.getInstance().findNubByUid("Z2xxan") as Espece;
             const verif = Session.getInstance().findNubByUid("OWsxdT") as Verificateur;
@@ -908,7 +995,7 @@ describe("vérificateur de franchissement −", () => {
         it("le Verificateur devrait être dépendant d'un Nub choisi comme passe à vérifier", () => {
             // contexte
             Session.getInstance().clear();
-            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`;
+            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`;
             Session.getInstance().unserialise(sess);
             const pab = Session.getInstance().findNubByUid("eGs4Nm") as Pab;
             const par = Session.getInstance().findNubByUid("YjJmYT") as ParSimulation;
@@ -921,7 +1008,7 @@ describe("vérificateur de franchissement −", () => {
         it("le Verificateur ne devrait pas être dépendant d'un Nub non choisi comme passe à vérifier", () => {
             // contexte
             Session.getInstance().clear();
-            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`;
+            const sess = `{"header":{"source":"jalhyd","format_version":"1.3","created":"2020-05-06T08:11:24.196Z"},"settings":{"precision":1e-7,"maxIterations":100,"displayPrecision":3},"documentation":"","session":[{"uid":"Z2xxan","props":{"calcType":"Espece","species":"SPECIES_CUSTOM"},"meta":{"title":"Cabillaud"},"children":[],"parameters":[{"symbol":"OK","mode":"CALCUL"},{"symbol":"DHMaxS","mode":"SINGLE","value":0.35},{"symbol":"DHMaxP","mode":"SINGLE","value":0.35},{"symbol":"BMin","mode":"SINGLE","value":0.3},{"symbol":"PMinS","mode":"SINGLE","value":1},{"symbol":"PMinP","mode":"SINGLE","value":1},{"symbol":"LMinS","mode":"SINGLE","value":2.5},{"symbol":"LMinP","mode":"SINGLE","value":2.5},{"symbol":"HMin","mode":"SINGLE","value":0.3},{"symbol":"YMin","mode":"SINGLE","value":0.4},{"symbol":"VeMax","mode":"SINGLE","value":2.5},{"symbol":"YMinSB","mode":"SINGLE","value":0.2},{"symbol":"YMinPB","mode":"SINGLE","value":0.3}]},{"uid":"eGs4Nm","props":{"calcType":"Pab"},"meta":{"title":"PAB"},"children":[{"uid":"cnBpMD","props":{"calcType":"Cloisons"},"children":[{"uid":"MjN2Yn","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"LB","mode":"SINGLE","value":10},{"symbol":"BB","mode":"SINGLE","value":1},{"symbol":"ZRMB","mode":"SINGLE","value":0},{"symbol":"ZRAM","mode":"SINGLE","value":0},{"symbol":"QA","mode":"SINGLE","value":0}]}],"parameters":[{"symbol":"Q","mode":"SINGLE","value":1.5},{"symbol":"Z1","mode":"CALCUL"},{"symbol":"Z2","mode":"SINGLE","value":99}],"downWall":{"uid":"OWoxcn","props":{"calcType":"CloisonAval"},"children":[{"uid":"aDg4aH","props":{"calcType":"Structure","loiDebit":"OrificeSubmerged"},"children":[],"parameters":[{"symbol":"S","mode":"SINGLE","value":0.1},{"symbol":"CdO","mode":"SINGLE","value":0.7}]}],"parameters":[{"symbol":"ZRAM","mode":"SINGLE","value":0}]}},{"uid":"YjJmYT","props":{"calcType":"ParSimulation","parType":"PLANE"},"meta":{"title":"PAR : simulation"},"children":[],"parameters":[{"symbol":"Q","mode":"CALCUL"},{"symbol":"Z1","mode":"SINGLE","value":10},{"symbol":"Z2","mode":"SINGLE","value":9},{"symbol":"ZD1","mode":"SINGLE"},{"symbol":"S","mode":"SINGLE","value":0.2},{"symbol":"P","mode":"SINGLE","value":0.4},{"symbol":"L","mode":"SINGLE","value":0.6},{"symbol":"Nb","mode":"SINGLE"},{"symbol":"ZR1","mode":"SINGLE","value":9.36},{"symbol":"ZR2","mode":"SINGLE","value":8.36},{"symbol":"ZD2","mode":"SINGLE"}]},{"uid":"OWsxdT","props":{"calcType":"Verificateur","nubToVerify":"eGs4Nm","speciesList":["Z2xxan"]},"meta":{"title":"Vérification"},"children":[],"parameters":[]}]}`;
             Session.getInstance().unserialise(sess);
             const pab = Session.getInstance().findNubByUid("eGs4Nm") as Pab;
             const par = Session.getInstance().findNubByUid("YjJmYT") as ParSimulation;
diff --git a/src/session.ts b/src/session.ts
index 0e95eb431bd6449af9c1f6014e1519d7cf10719e..e64aecc8c7d0581f8aa2026c4ea2527dc4fbd2e6 100644
--- a/src/session.ts
+++ b/src/session.ts
@@ -709,7 +709,7 @@ export class Session {
                         2.5,    // LMinP
                         0.3,    // HMin
                         0.4,    // YMin
-                        2.5,    // VMax
+                        2.5,    // VeMax
                         0.2,    // YMinSB
                         0.3,    // YMinPB
                         200     // PVMax
diff --git a/src/util/message.ts b/src/util/message.ts
index 974e70577a048ec11802dc8ea4bc4f9357ba099c..62cd45b7c6d9f19600441c815cc45965ced0bb37 100644
--- a/src/util/message.ts
+++ b/src/util/message.ts
@@ -191,6 +191,9 @@ export enum MessageCode {
     /** Vérificateur : la passe à vérifier contient des erreurs */
     ERROR_VERIF_ERRORS_IN_PASS,
 
+    /** Vérificateur : le critère testé %var_criterion% est indéfini */
+    ERROR_VERIF_MISSING_CRITERION,
+
     /** Vérificateur : la passe variée à vérifier contient des erreurs à l'itération %i% */
     ERROR_VERIF_VARYING_ERRORS_IN_PASS,
 
diff --git a/src/verification/espece.ts b/src/verification/espece.ts
index 12c78dd7c9d5449fa2dcfd37274c28d8806f3dab..ddff199ab93c45fdecf88e9f5c0b52eea5a2a640 100644
--- a/src/verification/espece.ts
+++ b/src/verification/espece.ts
@@ -240,51 +240,51 @@ export class Espece extends Nub implements Observer {
         this.presets[CalculatorType.MacroRugo] = {};
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_1] = {
             YMin: 0.4,
-            VMax: 2.5
+            VeMax: 2.5
         };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_2] = {
             YMin: 0.3,
-            VMax: 2.5
+            VeMax: 2.5
         };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_3a] =
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_3b] = {
             YMin: 0.4,
-            VMax: 2
+            VeMax: 2
         };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_3c] = {
             YMin: 0.15,
-            VMax: 2
+            VeMax: 2
         };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_4a] = {
             YMin: 0.3,
-            VMax: 2
+            VeMax: 2
         };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_4b] = {
             YMin: 0.2,
-            VMax: 2
+            VeMax: 2
         };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_5] =
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_6] =
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_7a] = {
             YMin: 0.3,
-            VMax: 2
+            VeMax: 2
         };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_7b] = {
             YMin: 0.15,
-            VMax: 2
+            VeMax: 2
         };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8a] =
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8b] =
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8c] =
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_8d] = {
             YMin: 0.3,
-            VMax: 1.5
+            VeMax: 1.5
         };
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_9a] =
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_9b] =
         this.presets[CalculatorType.MacroRugo][FishSpecies.SPECIES_10] = {
             YMin: 0.2,
-            VMax: 1.5
+            VeMax: 1.5
         };
     }
 
@@ -306,6 +306,31 @@ export class Espece extends Nub implements Observer {
         this.loadPredefinedParametersValues();
     }
 
+    /**
+     * Check that all given criteria are defined before controlling their values
+     * @param symbols list of symbols of criteria that have to be defined
+     * @return undefined if all criteria are present, a Result with appropriate error
+     *      log messages otherwise
+     */
+    protected checkCriteriaPresence(symbols: string[]): Result {
+        const r = new Result();
+        r.addResultElement(new ResultElement());
+        let error = false;
+        for (const s of symbols) {
+            if (this.getParameter(s).singleValue === undefined) {
+                error = true;
+                const m = new Message(MessageCode.ERROR_VERIF_MISSING_CRITERION);
+                m.extraVar.var_criterion = s;
+                r.log.add(m);
+            }
+        }
+        if (error) {
+            return r;
+        } else {
+            return undefined; // everything OK
+        }
+    }
+
     /** Returns 1 if the fish can go through the pass, 0 if it cannot */
     public Equation(): Result {
         // default result is 1 (OK)
@@ -337,6 +362,34 @@ export class Espece extends Nub implements Observer {
                 case CalculatorType.Pab:
                     const passB = this._passToCheck as Pab;
 
+                    // Check criteria presence (depends on jet types)
+                    let hasAtLeastOneSurfaceJet = false;
+                    let hasAtLeastOneDivingJet = false;
+                    for (const wall of passB.children) {
+                        hasAtLeastOneSurfaceJet = hasAtLeastOneSurfaceJet || this.hasJet(wall, [ StructureJetType.SURFACE, StructureJetType.SO ]);
+                        hasAtLeastOneDivingJet = hasAtLeastOneDivingJet || this.hasJet(wall, StructureJetType.PLONGEANT);
+                    }
+                    hasAtLeastOneSurfaceJet = hasAtLeastOneSurfaceJet || this.hasJet(passB.downWall, [ StructureJetType.SURFACE, StructureJetType.SO ]);
+                    hasAtLeastOneDivingJet = hasAtLeastOneDivingJet || this.hasJet(passB.downWall, StructureJetType.PLONGEANT);
+
+                    let cpRetPAB: Result;
+                    let criteriaToCheck: string[] = [];
+                    if (hasAtLeastOneSurfaceJet) {
+                        criteriaToCheck = criteriaToCheck.concat([ "PVMax", "DHMaxS", "BMin", "PMinS", "LMinS" ]);
+                    }
+                    if (hasAtLeastOneDivingJet) {
+                        criteriaToCheck = criteriaToCheck.concat([ "PVMax", "DHMaxP", "PMinP", "LMinP", "HMin" ]);
+                    }
+                    if (criteriaToCheck.length > 0) {
+                        criteriaToCheck = criteriaToCheck.filter(
+                            (item, index) => criteriaToCheck.indexOf(item) === index // deduplicate
+                        );
+                        cpRetPAB = this.checkCriteriaPresence(criteriaToCheck);
+                        if (cpRetPAB !== undefined) {
+                            return cpRetPAB;
+                        }
+                    }
+
                     // A -- walls
                     let cloisonNumber = 1;
                     for (const wall of passB.children) {
@@ -429,12 +482,25 @@ export class Espece extends Nub implements Observer {
                         res.log.add(m);
                     }
 
-
                     break;
 
                 case CalculatorType.ParSimulation:
                     const passR = this._passToCheck as ParSimulation;
 
+                    // Check criteria presence, depending on baffle type
+                    let parCriteria: string[] = [];
+                    if ([ ParType.PLANE, ParType.FATOU ].includes(passR.parType)) {
+                        parCriteria = [ "YMinPB" ];
+                    } else if ([ ParType.SUPERACTIVE, ParType.CHEVRON ].includes(passR.parType)) {
+                        parCriteria = [ "YMinSB" ];
+                    }
+                    if (parCriteria.length > 0) {
+                        const cpRetPAR = this.checkCriteriaPresence(parCriteria);
+                        if (cpRetPAR !== undefined) {
+                            return cpRetPAR;
+                        }
+                    }
+
                     // 1. species groups 3a, 3b, 7b are discouraged
                     if ([ FishSpecies.SPECIES_3a, FishSpecies.SPECIES_3b, FishSpecies.SPECIES_7b ].includes(this.species)) {
                         res.log.add(new Message(MessageCode.WARNING_VERIF_PAR_SPECIES_GROUP));
@@ -459,6 +525,13 @@ export class Espece extends Nub implements Observer {
 
                 case CalculatorType.MacroRugoCompound:
                     const passMRC = this._passToCheck as MacrorugoCompound;
+
+                    // Check criteria presence
+                    const cpRetMRC = this.checkCriteriaPresence([ "YMin", "VeMax" ]);
+                    if (cpRetMRC !== undefined) {
+                        return cpRetMRC;
+                    }
+
                     let atLeastOneOK = false;
                     let apronNumber = 1;
                     const consecutiveWidths: number[] = [];
@@ -501,11 +574,17 @@ export class Espece extends Nub implements Observer {
                     break;
 
                 case CalculatorType.MacroRugo:
+                    // Check criteria presence
+                    const cpRetMR = this.checkCriteriaPresence([ "YMin", "VeMax" ]);
+                    if (cpRetMR !== undefined) {
+                        return cpRetMR;
+                    }
                     res.vCalc = this.checkMacroRugo(this._passToCheck as MacroRugo, r, res);
                     break;
 
                 default:
                     // should never happen
+                    throw new Error(`Espece.Equation(): undefined pass type ${CalculatorType[this._passToCheck.calcType]}`);
             }
         }
 
@@ -896,7 +975,7 @@ export class Espece extends Nub implements Observer {
         }
 
         // 2. speed
-        if (this.prms.VMax.singleValue !== undefined && isGreaterThan(passResult.values.Vmax, this.prms.VMax.singleValue, 1e-3)) {
+        if (this.prms.VeMax.singleValue !== undefined && isGreaterThan(passResult.values.Vmax, this.prms.VeMax.singleValue, 1e-3)) {
             val = 0;
             let m: Message;
             if (apronNumber !== undefined) {
@@ -906,7 +985,7 @@ export class Espece extends Nub implements Observer {
                 m = new Message(MessageCode.ERROR_VERIF_MR_VMAX);
             }
             m.extraVar.V = passResult.values.Vmax;
-            m.extraVar.maxV = this.prms.VMax.singleValue;
+            m.extraVar.maxV = this.prms.VeMax.singleValue;
             verifResult.log.add(m);
         }
 
diff --git a/src/verification/espece_params.ts b/src/verification/espece_params.ts
index 2073b0a5c45ca758aa08e9739996a78a0b3f51ba..1716163546f137e0ebb03ea97a058d16499d72ff 100644
--- a/src/verification/espece_params.ts
+++ b/src/verification/espece_params.ts
@@ -35,7 +35,7 @@ export class EspeceParams extends ParamsEquation {
     private _YMin: ParamDefinition;
 
     /** Vitesse d'écoulement maximale (m) (MacroRugo enrochements régulièrement répartis) */
-    private _VMax: ParamDefinition;
+    private _VeMax: ParamDefinition;
 
     /** Tirant d'eau minimum sur les ralentisseurs suractifs de fond (m) */
     private _YMinSB: ParamDefinition;
@@ -48,7 +48,7 @@ export class EspeceParams extends ParamsEquation {
 
     constructor(
         rDHMaxS: number, rDHMaxP?: number, rBMin?: number, rPMinS?: number, rPMinP?: number, rLMinS?: number,
-        rLMinP?: number,rHMin?: number, rYMin?: number, rVMax?: number, rYMinSB?: number, rYMinPB?: number, rPVMax?: number
+        rLMinP?: number,rHMin?: number, rYMin?: number, rVeMax?: number, rYMinSB?: number, rYMinPB?: number, rPVMax?: number
     ) {
         super();
         this._OK = new ParamDefinition(this, "OK", ParamDomainValue.POS, "");
@@ -61,7 +61,7 @@ export class EspeceParams extends ParamsEquation {
         this._LMinP = new ParamDefinition(this, "LMinP", ParamDomainValue.POS, "m", rLMinP);
         this._HMin = new ParamDefinition(this, "HMin", ParamDomainValue.POS, "m", rHMin);
         this._YMin = new ParamDefinition(this, "YMin", ParamDomainValue.POS, "m", rYMin);
-        this._VMax = new ParamDefinition(this, "VMax", ParamDomainValue.POS, "m", rVMax);
+        this._VeMax = new ParamDefinition(this, "VeMax", ParamDomainValue.POS, "m", rVeMax);
         this._YMinSB = new ParamDefinition(this, "YMinSB", ParamDomainValue.POS, "m", rYMinSB);
         this._YMinPB = new ParamDefinition(this, "YMinPB", ParamDomainValue.POS, "m", rYMinPB);
         this._PVMax = new ParamDefinition(this, "PVMax", ParamDomainValue.POS, "W/m³", rPVMax);
@@ -76,7 +76,7 @@ export class EspeceParams extends ParamsEquation {
         this.addParamDefinition(this._LMinP);
         this.addParamDefinition(this._HMin);
         this.addParamDefinition(this._YMin);
-        this.addParamDefinition(this._VMax);
+        this.addParamDefinition(this._VeMax);
         this.addParamDefinition(this._YMinSB);
         this.addParamDefinition(this._YMinPB);
         this.addParamDefinition(this._PVMax);
@@ -122,8 +122,8 @@ export class EspeceParams extends ParamsEquation {
         return this._YMin;
     }
 
-    public get VMax(): ParamDefinition {
-        return this._VMax;
+    public get VeMax(): ParamDefinition {
+        return this._VeMax;
     }
 
     public get YMinSB(): ParamDefinition {