// 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];
}
}
}