// Copyright (C) Stichting Deltares 2024. All rights reserved.
//
// This file is part of the Dam Engine.
//
// The Dam Engine is free software: you can redistribute it and/or modify
// it under the terms of the GNU Affero 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 Affero General Public License for more details.
//
// You should have received a copy of the GNU Affero 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 Deltares.DamEngine.Calculators.KernelWrappers.Interfaces;
using Deltares.DamEngine.Data.General;
using Deltares.WTIPiping;
namespace Deltares.DamEngine.Calculators.KernelWrappers.WtiPipingSellmeijerRevised;
///
/// Input parameters for Wti Piping SellmeijerRevised
///
public class WtiPipingSellmeijerRevisedInput : IKernelDataInput
{
// For now, Ich is just used with a default value (see MWDAM-1299)
private const double cIch = 0.3;
///
/// Gets or sets the model factor piping.
///
///
/// The model factor piping.
///
public double ModelFactorPiping { get; set; } = 1.0;
///
/// Gets or sets the River level .
///
///
/// The h river.
///
public double HRiver { get; set; }
///
/// Gets or sets the head at exitpoint.
///
///
/// The h exit.
///
public double HExit { get; set; }
///
/// Gets or sets the reduction factor.
///
///
/// The rc.
///
public double Rc { get; set; } = WTIPipingConstants.RcDefault;
///
/// Gets or sets the total thickness of cover layer .
///
///
/// The d total.
///
public double DTotal { get; set; }
///
/// Gets or sets the ich (critical Heave gradient).
///
///
/// The ich.
///
public double Ich { get; set; } = cIch;
///
/// The bottom level of the aquitard layer which is on a level above the exit point's
/// z-coordinate. A value of indicates that no such aquitard
/// layer exists.
///
public double BottomLevelAquitardAboveExitPointZ { get; set; } = double.NaN;
///
/// Gets or sets the whites drag coefficient.
///
///
/// The whites drag coefficient.
///
public double WhitesDragCoefficient = WTIPipingConstants.WhitesDragCoefficient;
///
/// Gets or sets the bedding angle.
///
///
/// The bedding angle.
///
public double BeddingAngle = WTIPipingConstants.BeddingAngleSellmeijerRevised;
///
/// Gets or sets the gamma sub particles.
///
///
/// The gamma sub particles.
///
public double GammaSubParticles { get; set; } = WTIPipingConstants.GammaSubParticles;
///
/// Gets or sets the volumetric weight of water.
///
///
/// The volumetric weight of water.
///
public double VolumetricWeightOfWater { get; set; } = Physics.UnitWeightOfwater;
///
/// Gets or sets the kinematic viscosity of water.
///
///
/// The kinematic viscosity water.
///
public double KinematicViscosityWater { get; set; } = Physics.WaterViscosity;
///
/// Gets or sets the gravity.
///
///
/// The gravity.
///
public double Gravity { get; set; } = Physics.GravityConstant;
///
/// Gets or sets the D70.
///
///
/// The D70.
///
public double D70 { get; set; }
///
/// Gets or sets the D70 mean.
///
///
/// The D70 mean.
///
public double D70Mean { get; set; } = WTIPipingConstants.D70Mean;
///
/// Gets or sets the seepagelength.
///
///
/// The length of the seepage.
///
public double SeepageLength { get; set; }
///
/// Gets or sets the darcy permeability.
///
///
/// The darcy permeability.
///
public double DarcyPermeability { get; set; }
///
/// Gets or sets the height of the aquifer.
///
///
/// The height of the aquifer.
///
public double DAquifer { get; set; }
///
/// Gets or sets the model factor uplift.
///
///
/// The model factor uplift.
///
public double ModelFactorUplift { get; set; }
///
/// Gets or sets the effective stress.
///
///
/// The effective stress.
///
public double EffectiveStress { get; set; }
///
/// Gets or sets the phi exit.
///
///
/// The phi exit.
///
public double PhiExit { get; set; }
///
/// Gets or sets the r exit.
///
///
/// The r exit.
///
public double RExit { get; set; }
///
/// Gets or sets the phi polder.
///
///
/// The phi polder.
///
public double PhiPolder { get; set; }
}