diff --git a/src/compute-node.ts b/src/compute-node.ts
index 7ec2cf5845de489fe00a965bc6f74403894b4f94..92c5ec74cf29d8361221c163561d20416a704589 100644
--- a/src/compute-node.ts
+++ b/src/compute-node.ts
@@ -22,6 +22,8 @@ export enum ComputeNodeType {
     SectionTrapeze, SectionRectangle, SectionCercle, SectionPuissance,
     // types d'ouvrages hydrauliques
     StructureRectangle,
+    // ouvrages hydrauliques : Kindsvater-Carter & Villemonte
+    StructureKIVI
 }
 
 /**
diff --git a/src/parameters.ts b/src/parameters.ts
index 710b5b55f7ca5eddb5511d632e300fe91dc7df2f..88275fa9623a42e5d2d063966277e464fbf23b2e 100644
--- a/src/parameters.ts
+++ b/src/parameters.ts
@@ -17,6 +17,8 @@ import { ParallelStructureParams } from "./structure/parallel_structure_params";
 import { ParallelStructure } from "./structure/parallel_structure";
 import { RectangularStructureParams } from "./structure/rectangular_structure_params";
 import { StructureCem88d } from "./structure/structure_cem88d";
+import { StructureKiviParams } from "./structure/structure_kivi_params";
+import { StructureKivi } from "./structure/structure_kivi";
 
 
 export class ComputeNodeParameters {
@@ -132,6 +134,13 @@ export class ComputeNodeParameters {
                         let n = new StructureCem88d(cn);
                         return cn;
 
+                    case ComputeNodeType.StructureKIVI:
+                        {
+                            let cn = new StructureKiviParams(undefined, 1, 2, 1, undefined, undefined, undefined, undefined);
+                            let n = new StructureKivi(cn);
+                            return cn;
+                        }
+
                     default:
                         throw new Error(`ComputeNodeParameters.createComputeNodeParameters() : calculatrice '${CalculatorType[calcType]}' / noeud de calcul '${ComputeNodeType[nodeType]}' non pris en charge`);
                 }