Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Dike.cs =================================================================== diff -u -r4947 -r5465 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Dike.cs (.../Dike.cs) (revision 4947) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/Dike.cs (.../Dike.cs) (revision 5465) @@ -119,6 +119,8 @@ } public virtual IList Aquifers { get; set; } = new List(); + + public virtual IList TrafficLoadDegreeOfConsolidations { get; set; } = new List(); [Browsable(false)] public virtual IList Gauges { get; set; } = new List(); @@ -187,7 +189,7 @@ } /// - /// Add to soil data as read from the csv-file to the dike soils + /// Add to soil data as read from the csv-file to the dike soils /// public void FillImportedCsvSoilsFromCsvFile(IEnumerable soilRecords) { @@ -261,7 +263,39 @@ ImportedCsvSoils.Add(soil); } } + + /// + /// Add to traffic load degree of consolidation as read from the csv-file to the dike soils. + /// For soil profile 1D, only the soils used by the soil profiles are added. + /// + public void FillTrafficLoadDegreeOfConsolidationFromCsvFile(IEnumerable soilRecords) + { + if (soilRecords == null) + { + return; + } + foreach (CsvImporterSoils.SoilRecord soilRecord in soilRecords) + { + if (soilList.Soils.Count > 0 && soilList.GetSoilByName(soilRecord.SoilName) == null) + { + continue; + } + + var degreeOfConsolidation = new TrafficLoadDegreeOfConsolidation + { + SoilName = soilRecord.SoilName + }; + + if (soilRecord.TrafficLoadDegreeOfConsolidation.HasValue) + { + degreeOfConsolidation.DegreeOfConsolidation = soilRecord.TrafficLoadDegreeOfConsolidation.Value; + } + + TrafficLoadDegreeOfConsolidations.Add(degreeOfConsolidation); + } + } + /// /// Fill the imported sigma tau curves from the csv file /// Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/TrafficLoadDegreeOfConsolidation.cs =================================================================== diff -u --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/TrafficLoadDegreeOfConsolidation.cs (revision 0) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/TrafficLoadDegreeOfConsolidation.cs (revision 5465) @@ -0,0 +1,28 @@ +// Copyright (C) Stichting Deltares 2025. All rights reserved. +// +// This file is part of the application DAM - UI. +// +// DAM - UI is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// All names, logos, and references to "Deltares" are registered trademarks of +// Stichting Deltares and remain full property of Stichting Deltares at all times. +// All rights reserved. + +namespace Deltares.Dam.Data; + +public class TrafficLoadDegreeOfConsolidation +{ + public string SoilName { get; init; } + public double DegreeOfConsolidation { get; set; } +} \ No newline at end of file Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/WaterBoardImporter.cs =================================================================== diff -u -r4947 -r5465 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/WaterBoardImporter.cs (.../WaterBoardImporter.cs) (revision 4947) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/WaterBoardImporter.cs (.../WaterBoardImporter.cs) (revision 5465) @@ -223,7 +223,8 @@ // Add dikes to waterboard List importedCsvSoils = importer.WaterBoard.Dikes.First(d => d.Name == dikeRingId).ImportedCsvSoils; IEnumerable importedCsvAquifers = importer.WaterBoard.Dikes.First(d => d.Name == dikeRingId).Aquifers; - Dike dike = ImportDataForDikeRing(importedCsvSoils, importedCsvAquifers, dikeRingId); + IEnumerable importedDegreeOfConsolidations = importer.WaterBoard.Dikes.First(d => d.Name == dikeRingId).TrafficLoadDegreeOfConsolidations; + Dike dike = ImportDataForDikeRing(importedCsvSoils, importedCsvAquifers, importedDegreeOfConsolidations, dikeRingId); waterBoard.Dikes.Add(dike); } @@ -297,9 +298,11 @@ /// Imports the data for dike ring. /// /// The soils as imported from the csv file + /// The aquifers as imported from the csv file + /// The traffic load degree of consolidaiton as imported from the csv file /// The dike ring identifier. /// - private Dike ImportDataForDikeRing(List importedCsvSoils, IEnumerable importedCsvAquifers, string dikeRingId) + private Dike ImportDataForDikeRing(List importedCsvSoils, IEnumerable importedCsvAquifers, IEnumerable importedDegreeOfConsolidations, string dikeRingId) { var dike = new Dike { @@ -310,6 +313,8 @@ ImportSoilProfiles1D(dikeRingId, dike); ImportAquifers(importedCsvAquifers, dike); + + ImportTrafficLoadDegreeOfConsolidation(importedDegreeOfConsolidations, dike); ImportSegments(dikeRingId, dike); @@ -651,6 +656,14 @@ dike.Aquifers.Add(aquifer); } } + + private static void ImportTrafficLoadDegreeOfConsolidation(IEnumerable trafficLoadDegreeOfConsolidations, Dike dike) + { + foreach (TrafficLoadDegreeOfConsolidation degreeOfConsolidation in trafficLoadDegreeOfConsolidations) + { + dike.TrafficLoadDegreeOfConsolidations.Add(degreeOfConsolidation); + } + } /// /// Imports a profile. Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/IO/CombineImportedDataTest.cs =================================================================== diff -u -r4936 -r5465 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/IO/CombineImportedDataTest.cs (.../CombineImportedDataTest.cs) (revision 4936) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/IO/CombineImportedDataTest.cs (.../CombineImportedDataTest.cs) (revision 5465) @@ -222,44 +222,64 @@ } } - Assert.That(damProjectData.WaterBoard.Dikes[0].Locations.Count, Is.EqualTo(2)); - Assert.That(damProjectData.WaterBoard.Segments.Count, Is.EqualTo(2)); - Assert.That(damProjectData.WaterBoard.Dikes[0].SoilProfiles.Count, Is.EqualTo(23)); - Assert.That(damProjectData.WaterBoard.Dikes[0].SoilProfiles[0].Layers.Count, Is.EqualTo(4)); - Assert.That(damProjectData.WaterBoard.Dikes[0].SoilProfiles[0].Layers[0].Soil.Name, Is.EqualTo("kade")); - Assert.That(damProjectData.WaterBoard.Dikes[0].SoilProfiles[0].Layers[0].Name, Is.EqualTo("Layer0")); - Assert.That(damProjectData.WaterBoard.Dikes[0].SoilProfiles[0].Layers[0].TopLevel, Is.EqualTo(60.0)); - Assert.That(damProjectData.WaterBoard.Dikes[0].SurfaceLines2.Count, Is.EqualTo(2)); + Assert.Multiple(() => + { + Assert.That(damProjectData.WaterBoard.Dikes[0].Locations, Has.Count.EqualTo(2)); + Assert.That(damProjectData.WaterBoard.Segments, Has.Count.EqualTo(2)); + Assert.That(damProjectData.WaterBoard.Dikes[0].SoilProfiles, Has.Count.EqualTo(23)); + }); + Assert.That(damProjectData.WaterBoard.Dikes[0].SoilProfiles[0].Layers, Has.Count.EqualTo(4)); + Assert.Multiple(() => + { + Assert.That(damProjectData.WaterBoard.Dikes[0].SoilProfiles[0].Layers[0].Soil.Name, Is.EqualTo("kade")); + Assert.That(damProjectData.WaterBoard.Dikes[0].SoilProfiles[0].Layers[0].Name, Is.EqualTo("Layer0")); + Assert.That(damProjectData.WaterBoard.Dikes[0].SoilProfiles[0].Layers[0].TopLevel, Is.EqualTo(60.0)); + Assert.That(damProjectData.WaterBoard.Dikes[0].SurfaceLines2, Has.Count.EqualTo(2)); + }); // Check soil data + Assert.That(damProjectData.WaterBoard.Dikes[0].SoilList.Soils, Has.Count.EqualTo(14)); Soil soil = damProjectData.WaterBoard.Dikes[0].SoilList.Soils.FirstOrDefault(s => s.Name == "CCC"); Assert.That(soil, Is.Not.Null); - Assert.That(soil.ShearStrengthModel, Is.EqualTo(ShearStrengthModel.StressTable)); - Assert.That(soil.StressTable.Name, Is.EqualTo("CurveKlei")); + Assert.Multiple(() => + { + Assert.That(soil.ShearStrengthModel, Is.EqualTo(ShearStrengthModel.StressTable)); + Assert.That(soil.StressTable.Name, Is.EqualTo("CurveKlei")); + }); + // Check degree of consolidation data + Assert.That(damProjectData.WaterBoard.Dikes[0].TrafficLoadDegreeOfConsolidations, Has.Count.EqualTo(14)); + TrafficLoadDegreeOfConsolidation degreeOfConsolidation = damProjectData.WaterBoard.Dikes[0].TrafficLoadDegreeOfConsolidations.FirstOrDefault(s => s.SoilName == "CCC"); + Assert.That(degreeOfConsolidation, Is.Not.Null); + Assert.That(degreeOfConsolidation.DegreeOfConsolidation, Is.EqualTo(25)); + degreeOfConsolidation = damProjectData.WaterBoard.Dikes[0].TrafficLoadDegreeOfConsolidations.FirstOrDefault(s => s.SoilName == "BAS"); + Assert.That(degreeOfConsolidation, Is.Not.Null); + Assert.That(degreeOfConsolidation.DegreeOfConsolidation, Is.EqualTo(100)); + // Check location specific data Location location = damProjectData.WaterBoard.Dikes[0].Locations.FirstOrDefault(s => s.Name.Equals("25-2-2-A-1-A")); Assert.That(location, Is.Not.Null); - Assert.That(location.Name, Is.EqualTo("25-2-2-A-1-A")); - //Assert.AreEqual("25-2-2-A-1-A", location.SurfaceLine.Name); - //Assert.AreEqual("106", location.Segment.Name); - Assert.That(location.XRd, Is.EqualTo(66586.0).Within(tolerance)); - Assert.That(location.YRd, Is.EqualTo(424173.0).Within(tolerance)); - Assert.That(location.XSoilGeometry2DOrigin, Is.EqualTo(2.0).Within(tolerance)); - //Assert.AreEqual("25-2-2-A-1-A", location.PL1Line.Name); - Assert.That(location.DikeEmbankmentMaterial, Is.EqualTo("klei")); - Assert.That(location.ShoulderEmbankmentMaterial, Is.EqualTo("klei2")); - Assert.That(location.PenetrationLength, Is.EqualTo(1.3).Within(tolerance)); - Assert.That(location.TrafficLoad, Is.EqualTo(10).Within(tolerance)); - Assert.That(location.TL_DegreeOfConsolidation, Is.EqualTo(22.44).Within(tolerance)); - Assert.That(location.MinimalCircleDepth, Is.EqualTo(1.5).Within(tolerance)); - Assert.That(location.DampingFactorPL3, Is.EqualTo(0.3).Within(tolerance)); - Assert.That(location.DampingFactorPL4, Is.EqualTo(0.4).Within(tolerance)); - Assert.That(location.PLLineCreationMethod, Is.EqualTo(PLLineCreationMethod.ExpertKnowledgeRRD)); - Assert.That(location.DistanceToEntryPoint, Is.EqualTo(2.1).Within(tolerance)); - Assert.That(location.StabilityShoulderGrowSlope, Is.EqualTo(2.0).Within(tolerance)); - Assert.That(location.StabilityShoulderGrowDeltaX, Is.EqualTo(0.2).Within(tolerance)); - Assert.That(location.StabilitySlopeAdaptionDeltaX, Is.EqualTo(0.5).Within(tolerance)); + Assert.Multiple(() => + { + Assert.That(location.Name, Is.EqualTo("25-2-2-A-1-A")); + Assert.That(location.Segment.Name, Is.EqualTo("106")); + Assert.That(location.XRd, Is.EqualTo(66586.0).Within(tolerance)); + Assert.That(location.YRd, Is.EqualTo(424173.0).Within(tolerance)); + Assert.That(location.XSoilGeometry2DOrigin, Is.EqualTo(2.0).Within(tolerance)); + Assert.That(location.DikeEmbankmentMaterial, Is.EqualTo("klei")); + Assert.That(location.ShoulderEmbankmentMaterial, Is.EqualTo("klei2")); + Assert.That(location.PenetrationLength, Is.EqualTo(1.3).Within(tolerance)); + Assert.That(location.TrafficLoad, Is.EqualTo(10).Within(tolerance)); + Assert.That(location.TL_DegreeOfConsolidation, Is.EqualTo(22.44).Within(tolerance)); + Assert.That(location.MinimalCircleDepth, Is.EqualTo(1.5).Within(tolerance)); + Assert.That(location.DampingFactorPL3, Is.EqualTo(0.3).Within(tolerance)); + Assert.That(location.DampingFactorPL4, Is.EqualTo(0.4).Within(tolerance)); + Assert.That(location.PLLineCreationMethod, Is.EqualTo(PLLineCreationMethod.ExpertKnowledgeRRD)); + Assert.That(location.DistanceToEntryPoint, Is.EqualTo(2.1).Within(tolerance)); + Assert.That(location.StabilityShoulderGrowSlope, Is.EqualTo(2.0).Within(tolerance)); + Assert.That(location.StabilityShoulderGrowDeltaX, Is.EqualTo(0.2).Within(tolerance)); + Assert.That(location.StabilitySlopeAdaptionDeltaX, Is.EqualTo(0.5).Within(tolerance)); + }); // Assert that the scenarios are set correctly for this location List scenarios = location.Scenarios; Index: DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/CombineImportedData.cs =================================================================== diff -u -r4933 -r5465 --- DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/CombineImportedData.cs (.../CombineImportedData.cs) (revision 4933) +++ DamClients/DamUI/trunk/src/DamClientsLibrary/Deltares.Dam.Data/IO/CombineImportedData.cs (.../CombineImportedData.cs) (revision 5465) @@ -31,7 +31,6 @@ using Deltares.Standard.EventPublisher; using Deltares.Standard.Language; using Deltares.Standard.Logging; -using DGeoSuite.Common; namespace Deltares.Dam.Data.IO; @@ -421,6 +420,7 @@ { dike.FillImportedCsvSoilsFromCsvFile(SoilRecords); dike.AssignImportedCsvSoilsPropertiesToSoilListSoils(); + dike.FillTrafficLoadDegreeOfConsolidationFromCsvFile(SoilRecords); } private void TransferSigmaTauCurveData(Dike dike) Index: DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/TestData/CSVData/Full1DProject/csvfiles/soils.csv =================================================================== diff -u -r4750 -r5465 --- DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/TestData/CSVData/Full1DProject/csvfiles/soils.csv (.../soils.csv) (revision 4750) +++ DamClients/DamUI/trunk/src/Dam/Deltares.Dam.Tests/TestData/CSVData/Full1DProject/csvfiles/soils.csv (.../soils.csv) (revision 5465) @@ -1,52 +1,52 @@ -soil_name;soil_color;soil_type;saturated_unit_weight;unsaturated_unit_weight;cohesion;friction_angle;diameter_d70;permeability_x;shear_strength_model;pop;sigma_tau_curve_name -BAS;#FFFFFF;Clay;20.00;20.00;20.00;25.00;0.01;1e-05;MohrCoulomb;0.00; -BFG;#FFFFFF;Clay;19.00;19.00;5.00;22.00;0.01;1e-05;SigmaTauTable;0.00;Missing -BSS;#FFFFFF;Sand;20.00;20.00;0.00;30.00;170.00;0.17;MohrCoulomb;0.00;CurveZand -CCC;#FFFFFF;Clay;17.00;17.00;5.00;22.00;0.01;1e-05;SigmaTauTable;0.00;CurveKlei -EFG;#FFFFFF;Sand;21.00;21.00;0.00;35.00;400.00;0.4;MohrCoulomb;0.00; -ETL;#FFFFFF;Clay;21.00;21.00;15.00;22.00;0.01;1e-05;MohrCoulomb;0.00; -FCC;#FFFFFF;Sand;20.00;20.00;0.00;30.00;350.00;0.35;MohrCoulomb;0.00; -FCF;#FFFFFF;Sand;19.00;19.00;0.00;27.00;170.00;0.17;MohrCoulomb;0.00; -FCM;#FFFFFF;Sand;20.00;20.00;0.00;30.00;250.00;0.25;MohrCoulomb;0.00; -FCO;#FFFFFF;Clay;17.00;17.00;2.00;20.00;0.01;1e-05;MohrCoulomb;0.00; -FFG;#FFFFFF;Clay;19.00;19.00;8.00;27.50;0.01;1e-05;MohrCoulomb;0.00; -FFO;#FFFFFF;Clay;15.00;15.00;2.00;20.00;0.01;1e-05;MohrCoulomb;0.00; -FFS;#FFFFFF;Clay;19.00;19.00;5.00;30.00;0.01;1e-05;MohrCoulomb;0.00; -FPR;#FFFFFF;Peat;13.00;13.00;2.00;20.00;0.01;1e-05;MohrCoulomb;0.00; -kade;#FFFFFF;Clay;17.00;17.00;3.00;22.00;0.01;1e-05;MohrCoulomb;0.00; -KCS;#FFFFFF;Sand;20.00;20.00;0.00;33.00;400.00;0.4;MohrCoulomb;0.00; -KFG;#FFFFFF;Clay;19.00;19.00;10.00;22.00;0.01;1e-05;MohrCoulomb;0.00; -KFS;#FFFFFF;Sand;19.00;19.00;0.00;27.00;150.00;0.15;MohrCoulomb;0.00; -KMS;#FFFFFF;Sand;20.00;20.00;0.00;30.00;250.00;0.25;MohrCoulomb;0.00; -PEC;#FFFFFF;Clay;15.00;15.00;3.00;22.00;0.01;1e-05;MohrCoulomb;0.00; -PES;#FFFFFF;Sand;17.00;20.00;0.00;30.00;0.01;1e-05;MohrCoulomb;0.00; -PLC;#FFFFFF;Clay;14.00;14.00;2.00;22.00;0.01;1e-05;MohrCoulomb;0.00; -PLO;#FFFFFF;Peat;12.00;12.00;2.00;20.00;0.01;1e-05;MohrCoulomb;0.00; -PPP;#FFFFFF;Peat;10.00;10.00;2.00;25.00;0.01;1e-05;MohrCoulomb;0.00; -SSC;#FFFFFF;Sand;21.00;21.00;0.00;33.00;400.00;0.4;MohrCoulomb;0.00; -SSF;#FFFFFF;Sand;19.00;19.00;0.00;30.00;200.00;0.2;MohrCoulomb;0.00; -SSM;#FFFFFF;Sand;20.00;20.00;0.00;30.00;250.00;0.25;MohrCoulomb;0.00; -TCC;#FFFFFF;Clay;18.00;18.00;1.00;25.00;0.01;1e-05;MohrCoulomb;0.00; -TCS;#FFFFFF;Sand;20.00;20.00;0.00;30.00;200.00;0.2;MohrCoulomb;0.00; -TFG;#FFFFFF;Clay;17.00;17.00;5.00;20.00;0.01;1e-05;MohrCoulomb;0.00; -TOP;#FFFFFF;Clay;17.00;17.00;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00; -top_1;#FFFFFF;Clay;13.80;13.80;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00; -top_2;#FFFFFF;Clay;14.68;14.68;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00; -top_3;#FFFFFF;Clay;15.26;15.26;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00; -top_4;#FFFFFF;Clay;15.88;15.88;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00; -top_5;#FFFFFF;Clay;16.09;16.09;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00; -top_6;#FFFFFF;Clay;16.98;16.98;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00; -top_7;#FFFFFF;Clay;17.49;17.49;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00; -top_8;#FFFFFF;Clay;17.81;17.81;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00; -TSF;#FFFFFF;Clay;18.00;18.00;1.00;25.00;0.01;1e-05;MohrCoulomb;0.00; -TSS;#FFFFFF;Sand;19.00;19.00;1.00;27.00;150.00;0.15;MohrCoulomb;0.00; -zand_1;#FFFFFF;Sand;20.00;17.00;0.00;30.00;109.00;0.109;MohrCoulomb;0.00; -zand_10;#FFFFFF;Sand;20.00;17.00;0.00;30.00;473.00;0.473;MohrCoulomb;0.00; -zand_2;#FFFFFF;Sand;20.00;17.00;0.00;30.00;124.00;0.124;MohrCoulomb;0.00; -zand_3;#FFFFFF;Sand;20.00;17.00;0.00;30.00;145.00;0.145;MohrCoulomb;0.00; -zand_4;#FFFFFF;Sand;20.00;17.00;0.00;30.00;158.00;0.158;MohrCoulomb;0.00; -zand_5;#FFFFFF;Sand;20.00;17.00;0.00;30.00;192.00;0.192;MohrCoulomb;0.00; -zand_6;#FFFFFF;Sand;20.00;17.00;0.00;30.00;217.00;0.217;MohrCoulomb;0.00; -zand_7;#FFFFFF;Sand;20.00;17.00;0.00;30.00;282.00;0.282;MohrCoulomb;0.00; -zand_8;#FFFFFF;Sand;20.00;17.00;0.00;30.00;343.00;0.343;MohrCoulomb;0.00; -zand_9;#FFFFFF;Sand;20.00;17.00;0.00;30.00;396.00;0.396;MohrCoulomb;0.00; +soil_name;soil_color;soil_type;saturated_unit_weight;unsaturated_unit_weight;cohesion;friction_angle;diameter_d70;permeability_x;shear_strength_model;pop;sigma_tau_curve_name;traffic_load_degree_of_consolidation +BAS;#FFFFFF;Clay;20.00;20.00;20.00;25.00;0.01;1e-05;MohrCoulomb;0.00;;100 +BFG;#FFFFFF;Clay;19.00;19.00;5.00;22.00;0.01;1e-05;SigmaTauTable;0.00;Missing;100 +BSS;#FFFFFF;Sand;20.00;20.00;0.00;30.00;170.00;0.17;MohrCoulomb;0.00;CurveZand;100 +CCC;#FFFFFF;Clay;17.00;17.00;5.00;22.00;0.01;1e-05;SigmaTauTable;0.00;CurveKlei;25 +EFG;#FFFFFF;Sand;21.00;21.00;0.00;35.00;400.00;0.4;MohrCoulomb;0.00;;100 +ETL;#FFFFFF;Clay;21.00;21.00;15.00;22.00;0.01;1e-05;MohrCoulomb;0.00;;100 +FCC;#FFFFFF;Sand;20.00;20.00;0.00;30.00;350.00;0.35;MohrCoulomb;0.00;;100 +FCF;#FFFFFF;Sand;19.00;19.00;0.00;27.00;170.00;0.17;MohrCoulomb;0.00;;100 +FCM;#FFFFFF;Sand;20.00;20.00;0.00;30.00;250.00;0.25;MohrCoulomb;0.00;;100 +FCO;#FFFFFF;Clay;17.00;17.00;2.00;20.00;0.01;1e-05;MohrCoulomb;0.00;;100 +FFG;#FFFFFF;Clay;19.00;19.00;8.00;27.50;0.01;1e-05;MohrCoulomb;0.00;;100 +FFO;#FFFFFF;Clay;15.00;15.00;2.00;20.00;0.01;1e-05;MohrCoulomb;0.00;;100 +FFS;#FFFFFF;Clay;19.00;19.00;5.00;30.00;0.01;1e-05;MohrCoulomb;0.00;;100 +FPR;#FFFFFF;Peat;13.00;13.00;2.00;20.00;0.01;1e-05;MohrCoulomb;0.00;;100 +kade;#FFFFFF;Clay;17.00;17.00;3.00;22.00;0.01;1e-05;MohrCoulomb;0.00;;100 +KCS;#FFFFFF;Sand;20.00;20.00;0.00;33.00;400.00;0.4;MohrCoulomb;0.00;;100 +KFG;#FFFFFF;Clay;19.00;19.00;10.00;22.00;0.01;1e-05;MohrCoulomb;0.00;;100 +KFS;#FFFFFF;Sand;19.00;19.00;0.00;27.00;150.00;0.15;MohrCoulomb;0.00;;100 +KMS;#FFFFFF;Sand;20.00;20.00;0.00;30.00;250.00;0.25;MohrCoulomb;0.00;;100 +PEC;#FFFFFF;Clay;15.00;15.00;3.00;22.00;0.01;1e-05;MohrCoulomb;0.00;;100 +PES;#FFFFFF;Sand;17.00;20.00;0.00;30.00;0.01;1e-05;MohrCoulomb;0.00;;100 +PLC;#FFFFFF;Clay;14.00;14.00;2.00;22.00;0.01;1e-05;MohrCoulomb;0.00;;100 +PLO;#FFFFFF;Peat;12.00;12.00;2.00;20.00;0.01;1e-05;MohrCoulomb;0.00;;100 +PPP;#FFFFFF;Peat;10.00;10.00;2.00;25.00;0.01;1e-05;MohrCoulomb;0.00;;100 +SSC;#FFFFFF;Sand;21.00;21.00;0.00;33.00;400.00;0.4;MohrCoulomb;0.00;;100 +SSF;#FFFFFF;Sand;19.00;19.00;0.00;30.00;200.00;0.2;MohrCoulomb;0.00;;100 +SSM;#FFFFFF;Sand;20.00;20.00;0.00;30.00;250.00;0.25;MohrCoulomb;0.00;;100 +TCC;#FFFFFF;Clay;18.00;18.00;1.00;25.00;0.01;1e-05;MohrCoulomb;0.00;;100 +TCS;#FFFFFF;Sand;20.00;20.00;0.00;30.00;200.00;0.2;MohrCoulomb;0.00;;100 +TFG;#FFFFFF;Clay;17.00;17.00;5.00;20.00;0.01;1e-05;MohrCoulomb;0.00;;100 +TOP;#FFFFFF;Clay;17.00;17.00;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00;;100 +top_1;#FFFFFF;Clay;13.80;13.80;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00;;100 +top_2;#FFFFFF;Clay;14.68;14.68;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00;;100 +top_3;#FFFFFF;Clay;15.26;15.26;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00;;100 +top_4;#FFFFFF;Clay;15.88;15.88;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00;;100 +top_5;#FFFFFF;Clay;16.09;16.09;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00;;100 +top_6;#FFFFFF;Clay;16.98;16.98;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00;;100 +top_7;#FFFFFF;Clay;17.49;17.49;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00;;100 +top_8;#FFFFFF;Clay;17.81;17.81;3.00;23.00;0.01;1e-05;MohrCoulomb;0.00;;100 +TSF;#FFFFFF;Clay;18.00;18.00;1.00;25.00;0.01;1e-05;MohrCoulomb;0.00;;100 +TSS;#FFFFFF;Sand;19.00;19.00;1.00;27.00;150.00;0.15;MohrCoulomb;0.00;;100 +zand_1;#FFFFFF;Sand;20.00;17.00;0.00;30.00;109.00;0.109;MohrCoulomb;0.00;;100 +zand_10;#FFFFFF;Sand;20.00;17.00;0.00;30.00;473.00;0.473;MohrCoulomb;0.00;;100 +zand_2;#FFFFFF;Sand;20.00;17.00;0.00;30.00;124.00;0.124;MohrCoulomb;0.00;;100 +zand_3;#FFFFFF;Sand;20.00;17.00;0.00;30.00;145.00;0.145;MohrCoulomb;0.00;;100 +zand_4;#FFFFFF;Sand;20.00;17.00;0.00;30.00;158.00;0.158;MohrCoulomb;0.00;;100 +zand_5;#FFFFFF;Sand;20.00;17.00;0.00;30.00;192.00;0.192;MohrCoulomb;0.00;;100 +zand_6;#FFFFFF;Sand;20.00;17.00;0.00;30.00;217.00;0.217;MohrCoulomb;0.00;;100 +zand_7;#FFFFFF;Sand;20.00;17.00;0.00;30.00;282.00;0.282;MohrCoulomb;0.00;;100 +zand_8;#FFFFFF;Sand;20.00;17.00;0.00;30.00;343.00;0.343;MohrCoulomb;0.00;;100 +zand_9;#FFFFFF;Sand;20.00;17.00;0.00;30.00;396.00;0.396;MohrCoulomb;0.00;;100