Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillMacroStabilityWrapperInputFromEngine.cs =================================================================== diff -u -r3624 -r3630 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillMacroStabilityWrapperInputFromEngine.cs (.../FillMacroStabilityWrapperInputFromEngine.cs) (revision 3624) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/MacroStabilityCommon/MacroStabilityIo/FillMacroStabilityWrapperInputFromEngine.cs (.../FillMacroStabilityWrapperInputFromEngine.cs) (revision 3630) @@ -125,16 +125,36 @@ return macroStabilityInput; } - private static void TransferStabilityModelProperties(FailureMechanismParametersMStab damFailureMechanismParametersMStab, + private void TransferStabilityModelProperties(FailureMechanismParametersMStab damFailureMechanismParametersMStab, StabilityInput kernelStabilityInput) { kernelStabilityInput.MoveGrid = true; // is not in DamEngine but MUST be true as we use the brute force approach. kernelStabilityInput.MaximumSliceWidth = 1.0; // is not in DamEngine datamodel kernelStabilityInput.SearchAlgorithm = ConversionHelper.ConvertToMacroStabilitySearchMethod(damFailureMechanismParametersMStab.MStabParameters.SearchMethod); + if (kernelStabilityInput.SearchAlgorithm == SearchAlgorithm.Beeswarm) + { + CreateDefaultBeeSwarmOptions(kernelStabilityInput); + } kernelStabilityInput.ModelOption = ConversionHelper.ConvertToModelOptions(damFailureMechanismParametersMStab.MStabParameters.Model); kernelStabilityInput.Orientation = ConversionHelper.ConvertToGridOrientation(damFailureMechanismParametersMStab.MStabParameters.GridPosition); } + private void CreateDefaultBeeSwarmOptions(StabilityInput kernelStabilityInput) + { + kernelStabilityInput.BeeswarmAlgorithmOptions = new BeeSwarmAlgorithmOptions + { + EliteCount = 2, + Seed = 1, + CrossOver = 0.3, + Beta = 0.5, + Delta = 0.7, + DifferentialWeight = 0.3, + MaximumNonImprovingGenerations = 100, + PopulationCount = 125, + GenerationCount = 24 + }; + } + private void TransferSoils(SoilList damSoilList, ICollection kernelSoils) { // Transfer all soils @@ -329,7 +349,7 @@ } } - private static void TransferBishopCalculationCircle(BishopCalculationGrid damBishopCalculationGrid, + private void TransferBishopCalculationCircle(BishopCalculationGrid damBishopCalculationGrid, BishopCalculationCircle kernelBishopCalculationCircle, bool isAutoTangentLines) { if (damBishopCalculationGrid == null) throw new ArgumentNullException(nameof(damBishopCalculationGrid)); @@ -350,7 +370,7 @@ kernelBishopCalculationCircle.TangentLines = damBishopCalculationGrid.TangentLineLevels.ToArray(); } } - private static void TransferUpliftVanCalculationGrid(UpliftVanCalculationGrid damUpliftVanCalculationGrid, + private void TransferUpliftVanCalculationGrid(UpliftVanCalculationGrid damUpliftVanCalculationGrid, KernelUpliftVanCalculationGrid kernelUpliftVanCalculationGrid, bool isAutoTangentLines) { Index: DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/KernelWrapperHelper.cs =================================================================== diff -u -r3620 -r3630 --- DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/KernelWrapperHelper.cs (.../KernelWrapperHelper.cs) (revision 3620) +++ DamEngine/trunk/src/Deltares.DamEngine.Calculators/KernelWrappers/Common/KernelWrapperHelper.cs (.../KernelWrapperHelper.cs) (revision 3630) @@ -54,8 +54,8 @@ switch (currentSpecification.StabilityModelType) { case MStabModelType.Bishop: - case MStabModelType.UpliftVan: case MStabModelType.BishopUpliftVan: + case MStabModelType.UpliftVan: kernelWrapper = new MacroStabilityInwardsKernelWrapper(); var macroStabilityInwardsKernelWrapper = (MacroStabilityInwardsKernelWrapper)kernelWrapper; macroStabilityInwardsKernelWrapper.FailureMechanismParametersMStab = currentSpecification.FailureMechanismParametersMStab.Copy();