// Copyright (C) Stichting Deltares 2017. 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 System.Collections.Generic; using Deltares.DamEngine.Data.General; using Deltares.DamEngine.Data.Geotechnics; using Deltares.DamEngine.Data.Standard.Calculation; using Deltares.DamEngine.Data.Standard.Logging; using Deltares.DamEngine.Io.XmlInput; using Deltares.DamEngine.Io.XmlOutput; namespace Deltares.DamEngine.Interface { /// /// Converts types from Dam class to Input serializer class and vice versa /// public static class ConversionHelper { /// /// Converts the type DamProjectType from input object type to Dam Engine type. /// /// Type of the input object. /// Dam Engine type public static DamProjectType ConvertToDamProjectType(InputDamProjectType inputDamProjectType) { var translationTable = new Dictionary() { { InputDamProjectType.Assessment, DamProjectType.Assessment }, { InputDamProjectType.AssessmentRegional, DamProjectType.AssessmentRegional }, { InputDamProjectType.Design, DamProjectType.Design }, { InputDamProjectType.Operational, DamProjectType.Operational } }; return translationTable[inputDamProjectType]; } /// /// Converts the type DamProjectType from Dam Engine type to input object type. /// /// Type of the dam project. /// Type of the input object. public static InputDamProjectType ConvertToInputDamProjectType(DamProjectType damProjectType) { var translationTable = new Dictionary() { { DamProjectType.Assessment, InputDamProjectType.Assessment }, { DamProjectType.AssessmentRegional, InputDamProjectType.AssessmentRegional }, { DamProjectType.Design, InputDamProjectType.Design }, { DamProjectType.Operational, InputDamProjectType.Operational } }; return translationTable[damProjectType]; } /// /// Converts the type PLLineCreationMethod from Dam Engine type to input object type. /// /// Type of the dam project. /// /// Type of the input object. /// public static LocationWaternetOptionsPhreaticLineCreationMethod ConvertToInputPhreaticLineCreationMethod(PLLineCreationMethod plLineCreationMethod) { var translationTable = new Dictionary() { { PLLineCreationMethod.ExpertKnowledgeLinearInDike, LocationWaternetOptionsPhreaticLineCreationMethod.ExpertKnowledgeLinearInDike }, { PLLineCreationMethod.ExpertKnowledgeRRD, LocationWaternetOptionsPhreaticLineCreationMethod.ExpertKnowledgeRRD }, { PLLineCreationMethod.GaugesWithFallbackToExpertKnowledgeRRD, LocationWaternetOptionsPhreaticLineCreationMethod.GaugesWithFallbackToExpertKnowledgeRRD }, { PLLineCreationMethod.Sensors, LocationWaternetOptionsPhreaticLineCreationMethod.Sensors }, { PLLineCreationMethod.None, LocationWaternetOptionsPhreaticLineCreationMethod.None } }; return translationTable[plLineCreationMethod]; } /// /// Converts the type PLLineCreationMethod from input object type to Dam Engine type. /// /// Type of the input object. /// /// Type of the dam object. /// public static PLLineCreationMethod ConvertToPhreaticLineCreationMethod(LocationWaternetOptionsPhreaticLineCreationMethod inputPhreaticLineCreationMethod) { var translationTable = new Dictionary() { { LocationWaternetOptionsPhreaticLineCreationMethod.ExpertKnowledgeLinearInDike, PLLineCreationMethod.ExpertKnowledgeLinearInDike }, { LocationWaternetOptionsPhreaticLineCreationMethod.ExpertKnowledgeRRD, PLLineCreationMethod.ExpertKnowledgeRRD }, { LocationWaternetOptionsPhreaticLineCreationMethod.GaugesWithFallbackToExpertKnowledgeRRD, PLLineCreationMethod.GaugesWithFallbackToExpertKnowledgeRRD }, { LocationWaternetOptionsPhreaticLineCreationMethod.Sensors, PLLineCreationMethod.Sensors }, { LocationWaternetOptionsPhreaticLineCreationMethod.None, PLLineCreationMethod.None } }; return translationTable[inputPhreaticLineCreationMethod]; } /// /// Converts the type IntrusionVerticalWaterPressureType from Dam Engine type to input object type. /// /// Type of the dam project. /// /// Type of the input object. /// public static LocationWaternetOptionsIntrusionVerticalWaterPressure ConvertToInputIntrusionVerticalWaterPressure(IntrusionVerticalWaterPressureType intrusionVerticalWaterPressureType) { var translationTable = new Dictionary() { { IntrusionVerticalWaterPressureType.FullHydroStatic, LocationWaternetOptionsIntrusionVerticalWaterPressure.FullHydroStatic }, { IntrusionVerticalWaterPressureType.HydroStatic, LocationWaternetOptionsIntrusionVerticalWaterPressure.HydroStatic }, { IntrusionVerticalWaterPressureType.Linear, LocationWaternetOptionsIntrusionVerticalWaterPressure.Linear }, { IntrusionVerticalWaterPressureType.SemiTimeDependent, LocationWaternetOptionsIntrusionVerticalWaterPressure.SemiTimeDependent }, { IntrusionVerticalWaterPressureType.Standard, LocationWaternetOptionsIntrusionVerticalWaterPressure.Standard } }; return translationTable[intrusionVerticalWaterPressureType]; } /// /// Converts the type IntrusionVerticalWaterPressureType from input object type to Dam Engine type. /// /// Type of the input object. /// /// Type of the dam object. /// public static IntrusionVerticalWaterPressureType ConvertToIntrusionVerticalWaterPressure(LocationWaternetOptionsIntrusionVerticalWaterPressure inputIntrusionVerticalWaterPressure) { var translationTable = new Dictionary() { { LocationWaternetOptionsIntrusionVerticalWaterPressure.FullHydroStatic, IntrusionVerticalWaterPressureType.FullHydroStatic }, { LocationWaternetOptionsIntrusionVerticalWaterPressure.HydroStatic, IntrusionVerticalWaterPressureType.HydroStatic }, { LocationWaternetOptionsIntrusionVerticalWaterPressure.Linear, IntrusionVerticalWaterPressureType.Linear }, { LocationWaternetOptionsIntrusionVerticalWaterPressure.SemiTimeDependent, IntrusionVerticalWaterPressureType.SemiTimeDependent }, { LocationWaternetOptionsIntrusionVerticalWaterPressure.Standard, IntrusionVerticalWaterPressureType.Standard } }; return translationTable[inputIntrusionVerticalWaterPressure]; } /// /// Converts to output calculation result. /// /// Type of the dam project. /// public static int ConvertToOutputCalculationResult(CalculationResult calculationResult) { var translationTable = new Dictionary() { { CalculationResult.NoRun, 0 }, { CalculationResult.Succeeded, 1 }, { CalculationResult.NoInput, 2 }, { CalculationResult.NoLicense, 3 }, { CalculationResult.UserAbort, 4 }, { CalculationResult.InvalidInputStructure, 5 }, { CalculationResult.InvalidInputData, 6 }, { CalculationResult.RunFailed, 7 }, { CalculationResult.UnexpectedError, 8 } }; return translationTable[calculationResult]; } /// /// Converts to calculation result. /// /// The calculation result. /// public static CalculationResult ConvertToCalculationResult(int calculationResult) { var translationTable = new Dictionary() { { 0, CalculationResult.NoRun }, { 1, CalculationResult.Succeeded }, { 2, CalculationResult.NoInput }, { 3, CalculationResult.NoLicense }, { 4, CalculationResult.UserAbort }, { 5, CalculationResult.InvalidInputStructure }, { 6, CalculationResult.InvalidInputData }, { 7, CalculationResult.RunFailed }, { 8, CalculationResult.UnexpectedError } }; return translationTable[calculationResult]; } public const int CpNone = 0; // public const int CpSurfaceLevelOutside = 1; // Maaiveld buitenwaarts public const int CpDikeToeAtRiver = 5; // Teen dijk buitenwaarts public const int CpShoulderTopOutside = 6; // Kruin buitenberm public const int CpShoulderBaseOutside = 7; // Insteek buitenberm public const int CpDikeTopAtRiver = 8; // Kruin buitentalud public const int CpDikeLine = 9; // referentielijn public const int CpTrafficLoadOutside = 10; // Verkeersbelasting kant buitenwaarts public const int CpTrafficLoadInside = 11; // Verkeersbelasting kant binnenwaarts public const int CpDikeTopAtPolder = 12; // Kruin binnentalud public const int CpShoulderBaseInside = 13; // Insteek binnenberm public const int CpShoulderTopInside = 14; // Kruin binnenberm public const int CpDikeToeAtPolder = 15; // Teen dijk binnenwaarts public const int CpDitchDikeSide = 16; // Insteek sloot dijkzijde public const int CpBottomDitchDikeSide = 17; // Slootbodem dijkzijde public const int CpBottomDitchPolderSide = 18; // Slootbodem polderzijde public const int CpDitchPolderSide = 19; // Insteek sloot polderzijde public const int CpSurfaceLevelInside = 25; // Maaiveld binnenwaarts /// /// Converts the input characteristic point type to the Dam characteristic point type /// /// Type of the input point. /// public static CharacteristicPointType ConvertToDamPointType(int inputPointType) { var translationTable = new Dictionary() { { CpNone, CharacteristicPointType.None }, { CpSurfaceLevelOutside, CharacteristicPointType.SurfaceLevelOutside }, { CpDikeToeAtRiver, CharacteristicPointType.DikeToeAtRiver }, { CpShoulderTopOutside, CharacteristicPointType.ShoulderTopOutside }, { CpShoulderBaseOutside, CharacteristicPointType.ShoulderBaseOutside }, { CpDikeTopAtRiver, CharacteristicPointType.DikeTopAtRiver }, { CpDikeLine, CharacteristicPointType.DikeLine }, { CpTrafficLoadOutside, CharacteristicPointType.TrafficLoadOutside }, { CpTrafficLoadInside, CharacteristicPointType.TrafficLoadInside }, { CpDikeTopAtPolder, CharacteristicPointType.DikeTopAtPolder }, { CpShoulderBaseInside, CharacteristicPointType.ShoulderBaseInside }, { CpShoulderTopInside, CharacteristicPointType.ShoulderTopInside }, { CpDikeToeAtPolder, CharacteristicPointType.DikeToeAtPolder }, { CpDitchDikeSide, CharacteristicPointType.DitchDikeSide }, { CpBottomDitchDikeSide, CharacteristicPointType.BottomDitchDikeSide }, { CpBottomDitchPolderSide, CharacteristicPointType.BottomDitchPolderSide }, { CpDitchPolderSide, CharacteristicPointType.DitchPolderSide }, { CpSurfaceLevelInside, CharacteristicPointType.SurfaceLevelInside } }; return translationTable[inputPointType]; } /// /// Converts the Dam characteristic point type to the input characteristic point type /// /// Type of the characteristic point. /// public static int ConvertToInputPointType(CharacteristicPointType characteristicPointType) { var translationTable = new Dictionary() { { CharacteristicPointType.None, CpNone }, { CharacteristicPointType.SurfaceLevelOutside, CpSurfaceLevelOutside }, { CharacteristicPointType.DikeToeAtRiver, CpDikeToeAtRiver }, { CharacteristicPointType.ShoulderTopOutside, CpShoulderTopOutside }, { CharacteristicPointType.ShoulderBaseOutside, CpShoulderBaseOutside }, { CharacteristicPointType.DikeTopAtRiver, CpDikeTopAtRiver }, { CharacteristicPointType.DikeLine, CpDikeLine }, { CharacteristicPointType.TrafficLoadOutside, CpTrafficLoadOutside }, { CharacteristicPointType.TrafficLoadInside, CpTrafficLoadInside }, { CharacteristicPointType.DikeTopAtPolder, CpDikeTopAtPolder }, { CharacteristicPointType.ShoulderBaseInside, CpShoulderBaseInside }, { CharacteristicPointType.ShoulderTopInside, CpShoulderTopInside }, { CharacteristicPointType.DikeToeAtPolder, CpDikeToeAtPolder }, { CharacteristicPointType.DitchDikeSide, CpDitchDikeSide }, { CharacteristicPointType.BottomDitchDikeSide, CpBottomDitchDikeSide }, { CharacteristicPointType.BottomDitchPolderSide, CpBottomDitchPolderSide }, { CharacteristicPointType.DitchPolderSide, CpDitchPolderSide }, { CharacteristicPointType.SurfaceLevelInside, CpSurfaceLevelInside } }; return translationTable[characteristicPointType]; } /// /// Converts to waterpressure interpolation model. /// /// The input waterpressure interpolation model. /// public static WaterpressureInterpolationModel ConvertToWaterpressureInterpolationModel(int inputWaterpressureInterpolationModel) { var translationTable = new Dictionary() { { 0, WaterpressureInterpolationModel.Automatic }, { 1, WaterpressureInterpolationModel.Hydrostatic } }; return translationTable[inputWaterpressureInterpolationModel]; } /// /// Converts to input waterpressure interpolation model. /// /// The waterpressure interpolation model. /// public static int ConvertToInputWaterpressureInterpolationModel(WaterpressureInterpolationModel waterpressureInterpolationModel) { var translationTable = new Dictionary() { { WaterpressureInterpolationModel.Automatic, 0 }, { WaterpressureInterpolationModel.Hydrostatic, 1 } }; return translationTable[waterpressureInterpolationModel]; } /// /// Converts the Dam profile type to the input profile type /// /// Type of the soil geometry. /// public static int ConvertToInputSoilGeometryType(SoilProfileType soilProfileType) { var translationTable = new Dictionary() { { SoilProfileType.ProfileType1D, 0 }, { SoilProfileType.ProfileType2D, 1 }, { SoilProfileType.ProfileTypeStiFile, 2 } }; return translationTable[soilProfileType]; } /// /// Converts the input profile type to the Dam profile type /// /// Type of the soil geometry. /// public static SoilProfileType ConvertToSoilGeometryType(int soilGeometryType) { var translationTable = new Dictionary() { { 0, SoilProfileType.ProfileType1D }, { 1, SoilProfileType.ProfileType2D }, { 2, SoilProfileType.ProfileTypeStiFile } }; return translationTable[soilGeometryType]; } public const int InputFailureMechanismStabilityInside = 0; public const int InputFailureMechanismStabilityOutside = 1; public const int InputFailureMechanismPiping = 2; public const int InputFailureMechanismHorizontalBalance = 3; /// /// Converts the Dam failure mechanism type to the input failure mechanism type . /// /// Type of the segment failure mechanism. /// public static int ConvertToInputFailureMechanismSystemType(FailureMechanismSystemType segmentFailureMechanismType) { var translationTable = new Dictionary() { { FailureMechanismSystemType.StabilityInside, InputFailureMechanismStabilityInside }, { FailureMechanismSystemType.StabilityOutside, InputFailureMechanismStabilityOutside }, { FailureMechanismSystemType.Piping, InputFailureMechanismPiping }, { FailureMechanismSystemType.HorizontalBalance, InputFailureMechanismHorizontalBalance } }; return translationTable[segmentFailureMechanismType]; } /// /// Converts the input failure mechanism type to the Dam failure mechanism type . /// /// Type of the failure mechanism system. /// public static FailureMechanismSystemType ConvertToFailureMechanismSystemType(int failureMechanismSystemType) { var translationTable = new Dictionary() { { InputFailureMechanismStabilityInside, FailureMechanismSystemType.StabilityInside }, { InputFailureMechanismStabilityOutside, FailureMechanismSystemType.StabilityOutside }, { InputFailureMechanismPiping, FailureMechanismSystemType.Piping }, { InputFailureMechanismHorizontalBalance, FailureMechanismSystemType.HorizontalBalance } }; return translationTable[failureMechanismSystemType]; } /// /// Converts the Dam piping model to the input piping model. /// /// Type of the piping model. /// public static InputPipingModelType ConvertToInputPipingModelType(PipingModelType pipingModelType) { var translationTable = new Dictionary() { { PipingModelType.Bligh, InputPipingModelType.Bligh }, { PipingModelType.SellmeijerVnk, InputPipingModelType.SellmeijerVnk }, { PipingModelType.Sellmeijer4Forces, InputPipingModelType.Sellmeijer4Forces } }; return translationTable[pipingModelType]; } /// /// Converts the input piping model to the Dam piping model. /// /// Type of the input piping model. /// public static PipingModelType ConvertToPipingModelType(InputPipingModelType inputPipingModelType) { var translationTable = new Dictionary() { { InputPipingModelType.Bligh, PipingModelType.Bligh }, { InputPipingModelType.SellmeijerVnk, PipingModelType.SellmeijerVnk }, { InputPipingModelType.Sellmeijer4Forces, PipingModelType.Sellmeijer4Forces } }; return translationTable[inputPipingModelType]; } /// /// Converts the Dam stability model to the input stability model. /// /// Type of the stability model. /// public static InputStabilityModelType ConvertToInputStabilityModelType(MStabModelType stabilityModelType) { var translationTable = new Dictionary() { { MStabModelType.Bishop, InputStabilityModelType.Bishop }, { MStabModelType.UpliftVan, InputStabilityModelType.UpliftVan }, { MStabModelType.BishopUpliftVan, InputStabilityModelType.BishopUpliftVan } }; return translationTable[stabilityModelType]; } /// /// Converts the input stability model to the Dam stability model. /// /// Type of the input stability model. /// public static MStabModelType ConvertToStabilityModelType(InputStabilityModelType inputStabilityModelType) { var translationTable = new Dictionary() { { InputStabilityModelType.Bishop, MStabModelType.Bishop }, { InputStabilityModelType.UpliftVan, MStabModelType.UpliftVan }, { InputStabilityModelType.BishopUpliftVan, MStabModelType.BishopUpliftVan } }; return translationTable[inputStabilityModelType]; } /// /// Converts the Dam analysis type to the input analysis type. /// /// Type of the analysis. /// public static InputAnalysisType ConvertToInputAnalysisType(AnalysisType analysisType) { var translationTable = new Dictionary() { { AnalysisType.NoAdaption, InputAnalysisType.NoAdaption }, { AnalysisType.AdaptGeometry, InputAnalysisType.AdaptGeometry } }; return translationTable[analysisType]; } /// /// Converts the input analysis type to the Dam analysis type. /// /// Type of the input analysis. /// public static AnalysisType ConvertToAnalysisType(InputAnalysisType inputAnalysisType) { var translationTable = new Dictionary() { { InputAnalysisType.NoAdaption, AnalysisType.NoAdaption }, { InputAnalysisType.AdaptGeometry, AnalysisType.AdaptGeometry } }; return translationTable[inputAnalysisType]; } /// /// The input zone type no zones /// public const int InputZoneTypeNoZones = 0; /// /// The input zone type zone areas /// public const int InputZoneTypeZoneAreas = 1; /// /// The input zone types forbidden zones /// public const int InputZoneTypesForbiddenZones = 2; /// /// Converts the type of to input zone. /// /// Type of the zone. /// public static int ConvertToInputZoneType(MStabZonesType zoneType) { var translationTable = new Dictionary() { { MStabZonesType.NoZones, InputZoneTypeNoZones }, { MStabZonesType.ZoneAreas, InputZoneTypeZoneAreas }, { MStabZonesType.ForbiddenZone, InputZoneTypesForbiddenZones } }; return translationTable[zoneType]; } /// /// Converts the type of to zone. /// /// Type of the input zone. /// public static MStabZonesType ConvertToZoneType(int inputZoneType) { var translationTable = new Dictionary() { { InputZoneTypeNoZones, MStabZonesType.NoZones }, { InputZoneTypeZoneAreas, MStabZonesType.ZoneAreas }, { InputZoneTypesForbiddenZones, MStabZonesType.ForbiddenZone } }; return translationTable[inputZoneType]; } /// /// The input search method grid /// public const int InputSearchMethodGrid = 0; /// /// The input search method genetic /// public const int InputSearchMethodGenetic = 1; /// /// Converts to input search method. /// /// The search method. /// public static int ConvertToInputSearchMethod(MStabSearchMethod searchMethod) { var translationTable = new Dictionary() { { MStabSearchMethod.Grid, InputSearchMethodGrid }, { MStabSearchMethod.GeneticAlgorithm, InputSearchMethodGenetic } }; return translationTable[searchMethod]; } /// /// Converts to search method. /// /// The search method. /// public static MStabSearchMethod ConvertToSearchMethod(int searchMethod) { var translationTable = new Dictionary() { { InputSearchMethodGrid, MStabSearchMethod.Grid }, { InputSearchMethodGenetic, MStabSearchMethod.GeneticAlgorithm } }; return translationTable[searchMethod]; } /// /// Converts the type of to input message. /// /// Type of the message. /// public static MessageMessageType ConvertToInputMessageType(LogMessageType messageType) { var translationTable = new Dictionary() { { LogMessageType.Warning, MessageMessageType.Warning }, { LogMessageType.Debug, MessageMessageType.Info }, { LogMessageType.Error, MessageMessageType.Error }, { LogMessageType.FatalError, MessageMessageType.Error }, { LogMessageType.Info, MessageMessageType.Info }, { LogMessageType.Trace, MessageMessageType.Info } }; return translationTable[messageType]; } /// /// Converts the type of to message. /// /// Type of the validation result message. /// public static LogMessageType ConvertToMessageType(MessageMessageType validationResultMessageType) { var translationTable = new Dictionary() { { MessageMessageType.Warning, LogMessageType.Warning }, { MessageMessageType.Error, LogMessageType.Error }, { MessageMessageType.Info, LogMessageType.Info } }; return translationTable[validationResultMessageType]; } /// /// The input grid type automatic /// public const int InputGridTypeAutomatic = 0; /// /// The input grid type specified /// public const int InputGridTypeSpecified = 1; /// /// Converts to input grid determination. /// /// Type of the grid. /// public static int ConvertToInputGridDetermination(GridSizeDetermination gridType) { var translationTable = new Dictionary() { { GridSizeDetermination.Automatic, InputGridTypeAutomatic }, { GridSizeDetermination.Specified, InputGridTypeSpecified } }; return translationTable[gridType]; } /// /// Converts the shear strength model to soil shear strength model. /// /// The shear strength model. /// public static SoilShearStrengthModel ConvertToSoilShearStrengthModel(ShearStrengthModel shearStrengthModel) { var translationTable = new Dictionary() { {ShearStrengthModel.None, SoilShearStrengthModel.None}, {ShearStrengthModel.CPhi, SoilShearStrengthModel.CPhi}, {ShearStrengthModel.StressTable, SoilShearStrengthModel.StressTable}, {ShearStrengthModel.PseudoValues, SoilShearStrengthModel.PseudoValues}, {ShearStrengthModel.SuMeasured, SoilShearStrengthModel.SuMeasured}, {ShearStrengthModel.SuCalculated, SoilShearStrengthModel.SuCalculated}, {ShearStrengthModel.SuGradient, SoilShearStrengthModel.SuGradient}, {ShearStrengthModel.SuCalculatedWithYield, SoilShearStrengthModel.SuCalculatedWithYield}, {ShearStrengthModel.CPhiOrSuCalculated, SoilShearStrengthModel.CPhiOrSuCalculated}, }; return translationTable[shearStrengthModel]; } /// /// Converts to grid determination. /// /// Type of the grid. /// public static GridSizeDetermination ConvertToGridDetermination(int gridType) { var translationTable = new Dictionary() { { InputGridTypeAutomatic, GridSizeDetermination.Automatic }, { InputGridTypeSpecified, GridSizeDetermination.Specified } }; return translationTable[gridType]; } /// /// The input tangent lines on boundaty lines /// public const int InputTangentLinesOnBoundatyLines = 0; /// /// The input tangent lines specified /// public const int InputTangentLinesSpecified = 1; /// /// Converts to input tangent lines definition. /// /// Type of the tangent line. /// public static int ConvertToInputTangentLinesDefinition(TangentLinesDefinition tangentLineType) { var translationTable = new Dictionary() { { TangentLinesDefinition.OnBoundaryLines, InputGridTypeAutomatic }, { TangentLinesDefinition.Specified, InputGridTypeSpecified } }; return translationTable[tangentLineType]; } /// /// Converts to tangent lines definition. /// /// Type of the tangent line. /// public static TangentLinesDefinition ConvertToTangentLinesDefinition(int tangentLineType) { var translationTable = new Dictionary() { { InputGridTypeAutomatic, TangentLinesDefinition.OnBoundaryLines }, { InputGridTypeSpecified, TangentLinesDefinition.Specified } }; return translationTable[tangentLineType]; } /// /// Converts the soil shear strength model to shear strength model. /// /// The soil shear strength model. /// public static ShearStrengthModel ConvertToShearStrengthModel(SoilShearStrengthModel soilShearStrengthModel) { var translationTable = new Dictionary() { {SoilShearStrengthModel.None, ShearStrengthModel.None}, {SoilShearStrengthModel.CPhi, ShearStrengthModel.CPhi}, {SoilShearStrengthModel.StressTable, ShearStrengthModel.StressTable}, {SoilShearStrengthModel.PseudoValues, ShearStrengthModel.PseudoValues}, {SoilShearStrengthModel.SuMeasured, ShearStrengthModel.SuMeasured}, {SoilShearStrengthModel.SuCalculated, ShearStrengthModel.SuCalculated}, {SoilShearStrengthModel.SuGradient, ShearStrengthModel.SuGradient}, {SoilShearStrengthModel.SuCalculatedWithYield, ShearStrengthModel.SuCalculatedWithYield}, {SoilShearStrengthModel.CPhiOrSuCalculated, ShearStrengthModel.CPhiOrSuCalculated}, }; return translationTable[soilShearStrengthModel]; } /// /// Converts the dilatancy type to soil dilatancy dilatancy. /// /// Type of the dilatancy. /// public static SoilDilatancyType ConvertToSoilDilatancyType(DilatancyType dilatancyType) { var translationTable = new Dictionary() { {DilatancyType.Zero, SoilDilatancyType.Zero}, {DilatancyType.Phi, SoilDilatancyType.Phi}, {DilatancyType.MinusPhi, SoilDilatancyType.MinusPhi}, }; return translationTable[dilatancyType]; } /// /// Converts the soil dilatancy type to dilatancy type. /// /// Type of the soil dilatancy. /// public static DilatancyType ConvertToDilatancyType(SoilDilatancyType soilDilatancyType) { var translationTable = new Dictionary() { {SoilDilatancyType.Zero, DilatancyType.Zero}, {SoilDilatancyType.Phi, DilatancyType.Phi}, {SoilDilatancyType.MinusPhi, DilatancyType.MinusPhi}, }; return translationTable[soilDilatancyType]; } } }