Index: DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile1D.cs
===================================================================
diff -u -r5290 -r6404
--- DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile1D.cs (.../SoilProfile1D.cs) (revision 5290)
+++ DamEngine/trunk/src/Deltares.DamEngine.Data/Geotechnics/SoilProfile1D.cs (.../SoilProfile1D.cs) (revision 6404)
@@ -1,4 +1,4 @@
-// Copyright (C) Stichting Deltares 2024. All rights reserved.
+// Copyright (C) Stichting Deltares 2025. All rights reserved.
//
// This file is part of the Dam Engine.
//
@@ -183,7 +183,7 @@
return aquiferLayer;
}
}
-
+
///
/// Gets the deepest aquifer layer
///
@@ -196,7 +196,7 @@
{
IList sortedLayers = Layers.OrderBy(l => l.TopLevel).ToList();
SoilLayer1D aquiferLayer = null;
-
+
for (var layerIndex = 0; layerIndex < sortedLayers.Count; layerIndex++)
{
SoilLayer1D layer = sortedLayers[layerIndex];
@@ -221,26 +221,7 @@
/// The list of all clusters of in-between aquifers.
///
public IList<(SoilLayer1D, SoilLayer1D)> GetInBetweenAquiferClusters => InBetweenAquiferClusters();
-
- private IList<(SoilLayer1D, SoilLayer1D)> InBetweenAquiferClusters()
- {
- // At least 4 layers are needed (aquitard, aquifer, aquitard, aquifer) to get one in-between aquifer
- if (LayerCount <= 3)
- {
- return new List<(SoilLayer1D, SoilLayer1D)>();
- }
- IList sortedLayers = Layers.OrderByDescending(l => l.TopLevel).ToList();
- IList topLayers = DetermineTopLayersOfInBetweenAquiferClusters(sortedLayers);
- if (topLayers.Count <= 0)
- {
- return new List<(SoilLayer1D, SoilLayer1D)>();
- }
-
- IList bottomLayers = DetermineBottomLayersOfInBetweenAquiferClusters(sortedLayers, layers.IndexOf(topLayers.First()));
- return topLayers.Count != bottomLayers.Count ? null : topLayers.Select((topLayer, i) => new ValueTuple(topLayer, bottomLayers[i])).ToList();
- }
-
///
/// Gets the highest aquifer in the highest cluster of in-between aquifers.
/// The top layer of a cluster of in-between aquifer can't be the highest layer of the soil profile.
@@ -512,7 +493,7 @@
return layer;
}
-
+
///
/// Gets the lowest layer of the highest cluster of aquifers.
///
@@ -531,7 +512,7 @@
return layer;
}
-
+
///
/// Returns a that represents this instance.
///
@@ -543,6 +524,25 @@
return Name;
}
+ private IList<(SoilLayer1D, SoilLayer1D)> InBetweenAquiferClusters()
+ {
+ // At least 4 layers are needed (aquitard, aquifer, aquitard, aquifer) to get one in-between aquifer
+ if (LayerCount <= 3)
+ {
+ return new List<(SoilLayer1D, SoilLayer1D)>();
+ }
+
+ IList sortedLayers = Layers.OrderByDescending(l => l.TopLevel).ToList();
+ IList topLayers = DetermineTopLayersOfInBetweenAquiferClusters(sortedLayers);
+ if (topLayers.Count <= 0)
+ {
+ return new List<(SoilLayer1D, SoilLayer1D)>();
+ }
+
+ IList bottomLayers = DetermineBottomLayersOfInBetweenAquiferClusters(sortedLayers, layers.IndexOf(topLayers.First()));
+ return topLayers.Count != bottomLayers.Count ? null : topLayers.Select((topLayer, i) => new ValueTuple(topLayer, bottomLayers[i])).ToList();
+ }
+
private List DetermineTopLayersOfInBetweenAquiferClusters(IList sortedLayers)
{
List topLayers = [];