// Copyright (C) Stichting Deltares 2016. All rights reserved.
//
// This file is part of Ringtoets.
//
// Ringtoets 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.
using Ringtoets.Piping.Data;
namespace Ringtoets.Piping.KernelWrapper
{
///
/// This class contains all the parameters that are required to perform a piping assessment.
///
public class PipingCalculatorInput
{
private readonly double waterVolumetricWeight;
private readonly double upliftModelFactor;
private readonly double assessmentLevel;
private readonly double piezometricHeadExit;
private readonly double dampingFactorExit;
private readonly double phreaticLevelExit;
private readonly double criticalHeaveGradient;
private readonly double thicknessCoverageLayer;
private readonly double sellmeijerModelFactor;
private readonly double sellmeijerReductionFactor;
private readonly double seepageLength;
private readonly double sandParticlesVolumicWeight;
private readonly double whitesDragCoefficient;
private readonly double diameter70;
private readonly double darcyPermeability;
private readonly double waterKinematicViscosity;
private readonly double gravity;
private readonly double thicknessAquiferLayer;
private readonly double meanDiameter70;
private readonly double beddingAngle;
private readonly double exitPointXCoordinate;
private readonly RingtoetsPipingSurfaceLine surfaceLine;
private readonly PipingSoilProfile soilProfile;
private readonly double saturatedVolumicWeightOfCoverageLayer;
///
/// Constructs a new , which contains values for the parameters used
/// in the piping sub calculations.
///
/// The volumetric weight of water. [kN/m³]
/// The volumic weight of the coverage layer when saturated.
/// The calculation value used to account for uncertainty in the model for uplift.
/// The outside high water level. [m]
/// The piezometric head at the exit point. [m]
/// The damping factor at the exit point.
/// The phreatic level at the exit point. [m]
/// The critical exit gradient for heave.
/// The total thickness of the coverage layer at the exit point. [m]
/// The calculation value used to account for uncertainty in the model for Sellmeijer.
/// The reduction factor Sellmeijer.
/// The horizontal distance between entry and exit point. [m]
/// The (lowerbound) volumic weight of sand grain material of a sand layer under water. [kN/m³]
/// The White's drag coefficient.
/// The sieve size through which 70% fraction of the grains of the top part of the aquifer passes. [m]
/// The Darcy-speed with which water flows through the aquifer layer. [m/s]
/// The kinematic viscosity of water at 10 degrees Celsius. [m²/s]
/// The gravitational acceleration. [m/s²]
/// The thickness of the aquifer layer. [m]
/// The mean diameter of small scale tests applied to different kinds of sand, on which the formula of Sellmeijer has been fit. [m]
/// The angle of the force balance representing the amount in which sand grains resist rolling. [°]
/// The x coordinate of the exit point. [m]
/// The surface line.
/// The profile which contains a 1 dimensional definition of soil layers with properties.
public PipingCalculatorInput(double waterVolumetricWeight, double saturatedVolumicWeightOfCoverageLayer, double upliftModelFactor, double assessmentLevel, double piezometricHeadExit, double dampingFactorExit, double phreaticLevelExit, double criticalHeaveGradient, double thicknessCoverageLayer, double sellmeijerModelFactor, double sellmeijerReductionFactor, double seepageLength, double sandParticlesVolumicWeight, double whitesDragCoefficient, double diameter70, double darcyPermeability, double waterKinematicViscosity, double gravity, double thicknessAquiferLayer, double meanDiameter70, double beddingAngle, double exitPointXCoordinate, RingtoetsPipingSurfaceLine surfaceLine, PipingSoilProfile soilProfile)
{
this.waterVolumetricWeight = waterVolumetricWeight;
this.saturatedVolumicWeightOfCoverageLayer = saturatedVolumicWeightOfCoverageLayer;
this.upliftModelFactor = upliftModelFactor;
this.assessmentLevel = assessmentLevel;
this.piezometricHeadExit = piezometricHeadExit;
this.dampingFactorExit = dampingFactorExit;
this.phreaticLevelExit = phreaticLevelExit;
this.criticalHeaveGradient = criticalHeaveGradient;
this.thicknessCoverageLayer = thicknessCoverageLayer;
this.sellmeijerModelFactor = sellmeijerModelFactor;
this.sellmeijerReductionFactor = sellmeijerReductionFactor;
this.seepageLength = seepageLength;
this.sandParticlesVolumicWeight = sandParticlesVolumicWeight;
this.whitesDragCoefficient = whitesDragCoefficient;
this.diameter70 = diameter70;
this.darcyPermeability = darcyPermeability;
this.waterKinematicViscosity = waterKinematicViscosity;
this.gravity = gravity;
this.thicknessAquiferLayer = thicknessAquiferLayer;
this.meanDiameter70 = meanDiameter70;
this.beddingAngle = beddingAngle;
this.exitPointXCoordinate = exitPointXCoordinate;
this.surfaceLine = surfaceLine;
this.soilProfile = soilProfile;
}
#region properties
///
/// Gets the volumetric weight of water.
/// [kN/m³]
///
public double WaterVolumetricWeight
{
get
{
return waterVolumetricWeight;
}
}
///
/// Gets the calculation value used to account for uncertainty in the model for uplift.
///
public double UpliftModelFactor
{
get
{
return upliftModelFactor;
}
}
///
/// Gets the outside high water level.
/// [m]
///
public double AssessmentLevel
{
get
{
return assessmentLevel;
}
}
///
/// Gets the piezometric head at the exit point.
/// [m]
///
public double PiezometricHeadExit
{
get
{
return piezometricHeadExit;
}
}
///
/// Gets the damping factor at the exit point.
///
public double DampingFactorExit
{
get
{
return dampingFactorExit;
}
}
///
/// Gets the phreatic level at the exit point.
/// [m]
///
public double PhreaticLevelExit
{
get
{
return phreaticLevelExit;
}
}
///
/// Gets the critical exit gradient for heave.
///
public double CriticalHeaveGradient
{
get
{
return criticalHeaveGradient;
}
}
///
/// Gets the total thickness of the coverage layer at the exit point.
/// [m]
///
public double ThicknessCoverageLayer
{
get
{
return thicknessCoverageLayer;
}
}
///
/// Gets the calculation value used to account for uncertainty in the model for Sellmeijer.
///
public double SellmeijerModelFactor
{
get
{
return sellmeijerModelFactor;
}
}
///
/// Gets the reduction factor Sellmeijer.
///
public double SellmeijerReductionFactor
{
get
{
return sellmeijerReductionFactor;
}
}
///
/// Gets the horizontal distance between entry and exit point.
/// [m]
///
public double SeepageLength
{
get
{
return seepageLength;
}
}
///
/// Gets the (lowerbound) volumic weight of sand grain material of a sand layer under water.
/// [kN/m³]
///
public double SandParticlesVolumicWeight
{
get
{
return sandParticlesVolumicWeight;
}
}
///
/// Gets the White's drag coefficient.
///
public double WhitesDragCoefficient
{
get
{
return whitesDragCoefficient;
}
}
///
/// Gets the sieve size through which 70% fraction of the grains of the top part of the aquifer passes.
/// [m]
///
public double Diameter70
{
get
{
return diameter70;
}
}
///
/// Gets the Darcy-speed with which water flows through the aquifer layer.
/// [m/s]
///
public double DarcyPermeability
{
get
{
return darcyPermeability;
}
}
///
/// Gets the kinematic viscosity of water at 10 degrees Celsius.
/// [m²/s]
///
public double WaterKinematicViscosity
{
get
{
return waterKinematicViscosity;
}
}
///
/// Gets the gravitational acceleration.
/// [m/s²]
///
public double Gravity
{
get
{
return gravity;
}
}
///
/// Gets the thickness of the aquifer layer.
/// [m]
///
public double ThicknessAquiferLayer
{
get
{
return thicknessAquiferLayer;
}
}
///
/// Gets the mean diameter of small scale tests applied to different kinds of sand, on which the formula of Sellmeijer has been fit.
/// [m]
///
public double MeanDiameter70
{
get
{
return meanDiameter70;
}
}
///
/// Gets the angle of the force balance representing the amount in which sand grains resist rolling.
/// [°]
///
public double BeddingAngle
{
get
{
return beddingAngle;
}
}
///
/// Gets the x coordinate of the exit point.
/// [m]
///
public double ExitPointXCoordinate
{
get
{
return exitPointXCoordinate;
}
}
///
/// Gets the surface line.
///
public RingtoetsPipingSurfaceLine SurfaceLine
{
get
{
return surfaceLine;
}
}
///
/// Gets the profile which contains a 1 dimensional definition of soil layers with properties.
///
public PipingSoilProfile SoilProfile
{
get
{
return soilProfile;
}
}
///
/// Gets the volumic weight of the coverage layer when saturated.
///
public double SaturatedVolumicWeightOfCoverageLayer
{
get
{
return saturatedVolumicWeightOfCoverageLayer;
}
}
#endregion
}
}