Index: dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingBligh/DamPipingBlighKernelWrapper.cs
===================================================================
diff -u -r640 -r647
--- dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingBligh/DamPipingBlighKernelWrapper.cs (.../DamPipingBlighKernelWrapper.cs) (revision 640)
+++ dam engine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/DamPipingBligh/DamPipingBlighKernelWrapper.cs (.../DamPipingBlighKernelWrapper.cs) (revision 647)
@@ -30,55 +30,59 @@
///
public IKernelDataInput Prepare(DamKernelInput damKernelInput)
{
- var damPipingBlighInput = new DamPipingBlighInput();
-
- var soilProfile1D = damKernelInput.SubSoilScenario.SoilProfile1D;
- var surfaceLine = damKernelInput.Location.SurfaceLine;
- var location = damKernelInput.Location;
- double riverLevel = damKernelInput.DesignScenario.RiverLevel;
- var plLines = DamPipingHelper.CreatePlLines(location, soilProfile1D, riverLevel);
- UpliftLocationDeterminator 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));
- bool isUplift = (upliftLocationAndResult != null);
- double xEntry = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).X;
- double xExit = 0.0;
- double surfaceLevel = 0.0;
- double d70 = 0.0;
- double dCoverLayer = 0.0;
- if (upliftLocationAndResult != null)
- {
- xExit = upliftLocationAndResult.X;
- surfaceLevel = surfaceLine.Geometry.GetZatX(upliftLocationAndResult.X);
- SoilLayer1D heaveLayer = soilProfile1D.GetLayerWithName(upliftLocationAndResult.LayerWhereUpliftOccuresId);
- d70 = factorMeterToMicroMeter * heaveLayer.Soil.DiameterD70;
- var topLevelAquifer = soilProfile1D.GetLayerWithName(upliftLocationAndResult.LayerWhereUpliftOccuresId).TopLevel;
- dCoverLayer = DamPipingHelper.DetermineHeightCoverLayer(topLevelAquifer, surfaceLevel);
+ var damPipingBlighInput = new DamPipingBlighInput();
+
+ var soilProfile1D = damKernelInput.SubSoilScenario.SoilProfile1D;
+ var surfaceLine = damKernelInput.Location.SurfaceLine;
+ var location = damKernelInput.Location;
+ double riverLevel = damKernelInput.DesignScenario.RiverLevel;
+ var plLines = DamPipingHelper.CreatePlLines(location, soilProfile1D, riverLevel);
+ UpliftLocationDeterminator upliftLocationDeterminator = new UpliftLocationDeterminator
+ {
+ PLLines = plLines,
+ SoilProfile = soilProfile1D,
+ SurfaceLine = surfaceLine,
+ DikeEmbankmentMaterial = location.GetDikeEmbankmentSoil(),
+ XSoilGeometry2DOrigin = location.XSoilGeometry2DOrigin
+ };
+ var upliftLocationAndResult = upliftLocationDeterminator.GetLocationAndResult(damKernelInput.DesignScenario.GetUpliftCriterionPiping(null));
+ bool isUplift = (upliftLocationAndResult != null);
+ double xEntry = surfaceLine.CharacteristicPoints.GetGeometryPoint(CharacteristicPointType.DikeToeAtRiver).X;
+ double xExit = 0.0;
+ double surfaceLevel = 0.0;
+ double d70 = 0.0;
+ double dCoverLayer = 0.0;
+ if (upliftLocationAndResult != null)
+ {
+ xExit = upliftLocationAndResult.X;
+ surfaceLevel = surfaceLine.Geometry.GetZatX(upliftLocationAndResult.X);
+ SoilLayer1D heaveLayer = soilProfile1D.GetLayerWithName(upliftLocationAndResult.LayerWhereUpliftOccuresId);
+ d70 = factorMeterToMicroMeter * heaveLayer.Soil.DiameterD70;
+ var topLevelAquifer = soilProfile1D.GetLayerWithName(upliftLocationAndResult.LayerWhereUpliftOccuresId).TopLevel;
+ dCoverLayer = DamPipingHelper.DetermineHeightCoverLayer(topLevelAquifer, surfaceLevel);
+ }
+ double seepageLength = xExit - xEntry;
+ damPipingBlighInput.HRiver = riverLevel;
+ // 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 DamPipingBlighInput()
+ {
+ HRiver = riverLevel,
+ HExit = referenceLevel,
+ Rc = defaultFluidisationGradient,
+ DTotal = dCoverLayer,
+ SeepageLength = seepageLength,
+ D70 = d70,
+ IsUplift = isUplift
+ };
}
- double seepageLength = xExit - xEntry;
- damPipingBlighInput.HRiver = riverLevel;
- // 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 DamPipingBlighInput()
- {
- HRiver = riverLevel,
- HExit = referenceLevel,
- Rc = defaultFluidisationGradient,
- DTotal = dCoverLayer,
- SeepageLength = seepageLength,
- D70 = d70,
- IsUplift = isUplift
- };
+ return null;
}
///