Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijer4Forces/DamPipingSellmeijer4ForcesKernelWrapper.cs
===================================================================
diff -u -r624 -r652
--- dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijer4Forces/DamPipingSellmeijer4ForcesKernelWrapper.cs (.../DamPipingSellmeijer4ForcesKernelWrapper.cs) (revision 624)
+++ dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingSellmeijer4Forces/DamPipingSellmeijer4ForcesKernelWrapper.cs (.../DamPipingSellmeijer4ForcesKernelWrapper.cs) (revision 652)
@@ -26,75 +26,79 @@
///
public IKernelDataInput Prepare(DamKernelInput damKernelInput)
{
- const double cDefaultWaterViscosity = 1.33E-06;
- const double factorMeterToMicroMeter = 1000000.0;
-
- var soilProfile1D = damKernelInput.SubSoilScenario.SoilProfile1D;
- var surfaceLine = damKernelInput.Location.SurfaceLine;
- var location = damKernelInput.Location;
- var riverLevel = damKernelInput.DesignScenario.RiverLevel;
- var plLines = DamPipingHelper.CreatePlLines(location, soilProfile1D, riverLevel);
- var upliftLocationDeterminator = new UpliftLocationDeterminator
+ if (damKernelInput.SubSoilScenario.SegmentFailureMechanismType == FailureMechanismSystemType.Piping)
{
- PLLines = plLines,
- SoilProfile = soilProfile1D,
- SurfaceLine = surfaceLine,
- DikeEmbankmentMaterial = location.GetDikeEmbankmentSoil(),
- XSoilGeometry2DOrigin = location.XSoilGeometry2DOrigin
- };
- var upliftLocationAndResult = upliftLocationDeterminator.GetLocationAndResult(damKernelInput.DesignScenario.GetUpliftCriterionPiping(null));
- var isUplift = (upliftLocationAndResult != null);
- var xEntry = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).X;
- var xExit = 0.0;
- var surfaceLevel = 0.0;
- var dCoverLayer = 0.0;
- var d70 = 0.0;
- var aquiferHeight = 0.0;
- var permeabilityKx = 0.0;
- if (upliftLocationAndResult != null)
- {
- xExit = upliftLocationAndResult.X;
- surfaceLevel = surfaceLine.Geometry.GetZatX(upliftLocationAndResult.X);
- var topLevelAquifer = soilProfile1D.GetLayerWithName(upliftLocationAndResult.LayerWhereUpliftOccuresId).TopLevel;
- dCoverLayer = DamPipingHelper.DetermineHeightCoverLayer(topLevelAquifer, surfaceLevel);
+ const double cDefaultWaterViscosity = 1.33E-06;
+ const double factorMeterToMicroMeter = 1000000.0;
- var aquiferLayer = SoilProfile1DAquiferLayerCombiner.CombineLayers(soilProfile1D, upliftLocationAndResult.LayerWhereUpliftOccuresId);
- d70 = aquiferLayer.D70 * factorMeterToMicroMeter;
+ var soilProfile1D = damKernelInput.SubSoilScenario.SoilProfile1D;
+ var surfaceLine = damKernelInput.Location.SurfaceLine;
+ var location = damKernelInput.Location;
+ var riverLevel = damKernelInput.DesignScenario.RiverLevel;
+ var plLines = DamPipingHelper.CreatePlLines(location, soilProfile1D, riverLevel);
+ var upliftLocationDeterminator = new UpliftLocationDeterminator
+ {
+ PLLines = plLines,
+ SoilProfile = soilProfile1D,
+ SurfaceLine = surfaceLine,
+ DikeEmbankmentMaterial = location.GetDikeEmbankmentSoil(),
+ XSoilGeometry2DOrigin = location.XSoilGeometry2DOrigin
+ };
+ var upliftLocationAndResult = upliftLocationDeterminator.GetLocationAndResult(damKernelInput.DesignScenario.GetUpliftCriterionPiping(null));
+ var isUplift = (upliftLocationAndResult != null);
+ var xEntry = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).X;
+ var xExit = 0.0;
+ var surfaceLevel = 0.0;
+ var dCoverLayer = 0.0;
+ var d70 = 0.0;
+ var aquiferHeight = 0.0;
+ var permeabilityKx = 0.0;
+ if (upliftLocationAndResult != null)
+ {
+ xExit = upliftLocationAndResult.X;
+ surfaceLevel = surfaceLine.Geometry.GetZatX(upliftLocationAndResult.X);
+ var topLevelAquifer = soilProfile1D.GetLayerWithName(upliftLocationAndResult.LayerWhereUpliftOccuresId).TopLevel;
+ dCoverLayer = DamPipingHelper.DetermineHeightCoverLayer(topLevelAquifer, surfaceLevel);
- aquiferHeight = aquiferLayer.Height;
- permeabilityKx = aquiferLayer.PermeabilityKx;
- }
- var seepageLength = xExit - xEntry;
+ var aquiferLayer = SoilProfile1DAquiferLayerCombiner.CombineLayers(soilProfile1D, upliftLocationAndResult.LayerWhereUpliftOccuresId);
+ d70 = aquiferLayer.D70 * factorMeterToMicroMeter;
- // Reference level is highest value of surfaceLevel or PolderLevel
- // Uit TR Zandmeevoerende wellen (1999): "Het verval dH is gelijk aan het verschil tussen buitenwaterstand (het ontwerppeil(OP))
- // bij zeedijken en de maatgevende hoogwaterstand (MHW bij rivierdijken) en de waterstand binnendijks ter plaatse van het uittredepunt,
- // rekening houdend met zeespiegelrijzing etc.(zie paragraaf 3.7.2). In dien ter plaatse van het uittreepunt of de opbarstlocatie
- // geen vrije waterstand heerst kan gerekend worden met het maaiveldniveau, rekening houdend met eventuele maaiveld daling (zie paragraaf 3.7.2)."
- var referenceLevel = Math.Max(location.PolderLevel, surfaceLevel);
+ aquiferHeight = aquiferLayer.Height;
+ permeabilityKx = aquiferLayer.PermeabilityKx;
+ }
+ var seepageLength = xExit - xEntry;
- Soil inBetweenAquiferlayerSoil = soilProfile1D.BottomAquiferLayer.Soil;
- if (soilProfile1D.InBetweenAquiferLayer != null)
- {
- inBetweenAquiferlayerSoil = soilProfile1D.InBetweenAquiferLayer.Soil;
- }
+ // Reference level is highest value of surfaceLevel or PolderLevel
+ // Uit TR Zandmeevoerende wellen (1999): "Het verval dH is gelijk aan het verschil tussen buitenwaterstand (het ontwerppeil(OP))
+ // bij zeedijken en de maatgevende hoogwaterstand (MHW bij rivierdijken) en de waterstand binnendijks ter plaatse van het uittredepunt,
+ // rekening houdend met zeespiegelrijzing etc.(zie paragraaf 3.7.2). In dien ter plaatse van het uittreepunt of de opbarstlocatie
+ // geen vrije waterstand heerst kan gerekend worden met het maaiveldniveau, rekening houdend met eventuele maaiveld daling (zie paragraaf 3.7.2)."
+ var referenceLevel = Math.Max(location.PolderLevel, surfaceLevel);
- return new DamPipingSellmeijer4ForcesInput()
- {
- HRiver = riverLevel,
- HExit = referenceLevel,
- Rc = DefaultFluidisationGradient,
- DTotal = dCoverLayer,
- SeepageLength = seepageLength,
- IsUplift = isUplift,
- // specific Sellmeijer 4 Forces
- WaterViscosity = cDefaultWaterViscosity,
- WhitesConstant = inBetweenAquiferlayerSoil.WhitesConstant,
- BeddingAngle = inBetweenAquiferlayerSoil.BeddingAngle,
- D70 = d70,
- AquiferHeight = aquiferHeight,
- PermeabilityKx = permeabilityKx,
- };
+ Soil inBetweenAquiferlayerSoil = soilProfile1D.BottomAquiferLayer.Soil;
+ if (soilProfile1D.InBetweenAquiferLayer != null)
+ {
+ inBetweenAquiferlayerSoil = soilProfile1D.InBetweenAquiferLayer.Soil;
+ }
+
+ return new DamPipingSellmeijer4ForcesInput()
+ {
+ HRiver = riverLevel,
+ HExit = referenceLevel,
+ Rc = DefaultFluidisationGradient,
+ DTotal = dCoverLayer,
+ SeepageLength = seepageLength,
+ IsUplift = isUplift,
+ // specific Sellmeijer 4 Forces
+ WaterViscosity = cDefaultWaterViscosity,
+ WhitesConstant = inBetweenAquiferlayerSoil.WhitesConstant,
+ BeddingAngle = inBetweenAquiferlayerSoil.BeddingAngle,
+ D70 = d70,
+ AquiferHeight = aquiferHeight,
+ PermeabilityKx = permeabilityKx,
+ };
+ }
+ return null;
}
///