From f5deffd2376348dc6d70c76725188755a47ef500 Mon Sep 17 00:00:00 2001 From: Evgeny Redikultsev Date: Mon, 26 Aug 2024 22:25:49 +0500 Subject: [PATCH] Ndm prestrain logic was changed --- .../Libraries/LoaderCalculator.dll | Bin 88576 -> 91648 bytes StructureHelper/StructureHelper.csproj.user | 4 +-- .../ValuePointDiagramLogic.cs | 3 ++- .../{AnalisesLogic.cs => AnalysesLogic.cs} | 0 ...agerView.xaml => AnalysesManagerView.xaml} | 6 ++--- ...ew.xaml.cs => AnalysesManagerView.xaml.cs} | 4 +-- ...ewModel.cs => AnalysesManagerViewModel.cs} | 4 +-- .../Windows/MainWindow/CrossSectionView.xaml | 2 +- .../CrossSections/RCs/RectGeometryLogic.cs | 12 ++++----- .../Analyses/RC/InputDataFactory.cs | 2 +- .../Cracking/CrackWidthCalculationLogic.cs | 25 ++++++++++++------ .../Cracking/CrackWidthLogicSP63.cs | 2 +- .../Cracking/RebarStressCalculator.cs | 2 +- .../SofteningLogics/ExpSofteningLogic.cs | 3 ++- .../RebarStressSofteningLogic.cs | 8 +++--- .../NdmPrimitives/MeshElasticLogic.cs | 5 ++-- 16 files changed, 48 insertions(+), 34 deletions(-) rename StructureHelper/Windows/MainWindow/{AnalisesLogic.cs => AnalysesLogic.cs} (100%) rename StructureHelper/Windows/MainWindow/{AnalisesManagerView.xaml => AnalysesManagerView.xaml} (96%) rename StructureHelper/Windows/MainWindow/{AnalisesManagerView.xaml.cs => AnalysesManagerView.xaml.cs} (86%) rename StructureHelper/Windows/MainWindow/{AnalisesManagerViewModel.cs => AnalysesManagerViewModel.cs} (82%) diff --git a/StructureHelper/Libraries/LoaderCalculator.dll b/StructureHelper/Libraries/LoaderCalculator.dll index fd7ba77b6e79046c913cff9b4f40c6eee696c556..083e55c038f159aa35ffe7fbed8134464309a0d7 100644 GIT binary patch literal 91648 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 a$MrYr@f~GmIsH)aamD!m1N~nlf&Uj!!UY8Y literal 88576 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 diff --git a/StructureHelper/StructureHelper.csproj.user b/StructureHelper/StructureHelper.csproj.user index 3cd5c70..a9d2d08 100644 --- a/StructureHelper/StructureHelper.csproj.user +++ b/StructureHelper/StructureHelper.csproj.user @@ -60,7 +60,7 @@ Code - + Code @@ -155,7 +155,7 @@ Designer - + Designer diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceResultLogic/ValuePointDiagramLogic.cs b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceResultLogic/ValuePointDiagramLogic.cs index b08bb5c..008312e 100644 --- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceResultLogic/ValuePointDiagramLogic.cs +++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/ForceCalculatorViews/ForceResultLogic/ValuePointDiagramLogic.cs @@ -149,9 +149,10 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews.ForceCalcu CenterY = valuePoint.areaPoint.Point.Y, Material = material, }; - ndm.Prestrain = (userPrestrain.Mx + autoPrestrain.Mx) * valuePoint.areaPoint.Point.Y + var prestrain = (userPrestrain.Mx + autoPrestrain.Mx) * valuePoint.areaPoint.Point.Y + (userPrestrain.My + autoPrestrain.My) * valuePoint.areaPoint.Point.X + userPrestrain.Nz + autoPrestrain.Nz; + ndm.PrestrainLogic.Add(PrestrainTypes.Prestrain, prestrain); return ndm; } private List GetValueLabels(IEnumerable selectedDelegates) diff --git a/StructureHelper/Windows/MainWindow/AnalisesLogic.cs b/StructureHelper/Windows/MainWindow/AnalysesLogic.cs similarity index 100% rename from StructureHelper/Windows/MainWindow/AnalisesLogic.cs rename to StructureHelper/Windows/MainWindow/AnalysesLogic.cs diff --git a/StructureHelper/Windows/MainWindow/AnalisesManagerView.xaml b/StructureHelper/Windows/MainWindow/AnalysesManagerView.xaml similarity index 96% rename from StructureHelper/Windows/MainWindow/AnalisesManagerView.xaml rename to StructureHelper/Windows/MainWindow/AnalysesManagerView.xaml index 6e9bd6b..8913400 100644 --- a/StructureHelper/Windows/MainWindow/AnalisesManagerView.xaml +++ b/StructureHelper/Windows/MainWindow/AnalysesManagerView.xaml @@ -1,12 +1,12 @@ - + d:DataContext="{d:DesignInstance local:AnalysesManagerViewModel}" + Title="Analyses Manager" Height="450" Width="800" MinHeight="400" MinWidth="600"> diff --git a/StructureHelper/Windows/MainWindow/AnalisesManagerView.xaml.cs b/StructureHelper/Windows/MainWindow/AnalysesManagerView.xaml.cs similarity index 86% rename from StructureHelper/Windows/MainWindow/AnalisesManagerView.xaml.cs rename to StructureHelper/Windows/MainWindow/AnalysesManagerView.xaml.cs index 81cfe06..af11edd 100644 --- a/StructureHelper/Windows/MainWindow/AnalisesManagerView.xaml.cs +++ b/StructureHelper/Windows/MainWindow/AnalysesManagerView.xaml.cs @@ -17,9 +17,9 @@ namespace StructureHelper.Windows.MainWindow /// /// Логика взаимодействия для AnalisesManagerView.xaml /// - public partial class AnalisesManagerView : Window + public partial class AnalysesManagerView : Window { - public AnalisesManagerView() + public AnalysesManagerView() { InitializeComponent(); } diff --git a/StructureHelper/Windows/MainWindow/AnalisesManagerViewModel.cs b/StructureHelper/Windows/MainWindow/AnalysesManagerViewModel.cs similarity index 82% rename from StructureHelper/Windows/MainWindow/AnalisesManagerViewModel.cs rename to StructureHelper/Windows/MainWindow/AnalysesManagerViewModel.cs index 7fe72f8..bec1f79 100644 --- a/StructureHelper/Windows/MainWindow/AnalisesManagerViewModel.cs +++ b/StructureHelper/Windows/MainWindow/AnalysesManagerViewModel.cs @@ -7,13 +7,13 @@ using System.Threading.Tasks; namespace StructureHelper.Windows.MainWindow { - public class AnalisesManagerViewModel : ViewModelBase + public class AnalysesManagerViewModel : ViewModelBase { public FileLogic FileLogic { get; } public DiagramLogic DiagramLogic { get; } public AnalisesLogic AnalisesLogic { get; } - public AnalisesManagerViewModel() + public AnalysesManagerViewModel() { FileLogic = new(); DiagramLogic = new(); diff --git a/StructureHelper/Windows/MainWindow/CrossSectionView.xaml b/StructureHelper/Windows/MainWindow/CrossSectionView.xaml index ac8b107..8f9e094 100644 --- a/StructureHelper/Windows/MainWindow/CrossSectionView.xaml +++ b/StructureHelper/Windows/MainWindow/CrossSectionView.xaml @@ -339,7 +339,7 @@ - + diff --git a/StructureHelperLogics/Models/Templates/CrossSections/RCs/RectGeometryLogic.cs b/StructureHelperLogics/Models/Templates/CrossSections/RCs/RectGeometryLogic.cs index 93f7330..b62e2a2 100644 --- a/StructureHelperLogics/Models/Templates/CrossSections/RCs/RectGeometryLogic.cs +++ b/StructureHelperLogics/Models/Templates/CrossSections/RCs/RectGeometryLogic.cs @@ -62,7 +62,7 @@ namespace StructureHelperLogics.Models.Templates.CrossSections.RCs var point = new RebarPrimitive() { Area = area1, - Name = "Left bottom point", + Name = "Left bottom rebar", HeadMaterial = reinforcement, HostPrimitive=concreteBlock }; @@ -72,7 +72,7 @@ namespace StructureHelperLogics.Models.Templates.CrossSections.RCs point = new RebarPrimitive() { Area = area1, - Name = "Right bottom point", + Name = "Right bottom rebar", HeadMaterial = reinforcement, HostPrimitive = concreteBlock }; @@ -82,7 +82,7 @@ namespace StructureHelperLogics.Models.Templates.CrossSections.RCs point = new RebarPrimitive() { Area = area2, - Name = "Left top point", + Name = "Left top rebar", HeadMaterial = reinforcement, HostPrimitive = concreteBlock }; @@ -92,7 +92,7 @@ namespace StructureHelperLogics.Models.Templates.CrossSections.RCs point = new RebarPrimitive() { Area = area2, - Name = "Right top point", + Name = "Right top rebar", HeadMaterial = reinforcement, HostPrimitive = concreteBlock }; @@ -115,11 +115,11 @@ namespace StructureHelperLogics.Models.Templates.CrossSections.RCs double dist = (xs[1] - xs[0]) / count; for (int i = 1; i < count; i++) { - point = new RebarPrimitive() { Area = area1, Name = $"Bottom point {i}", HeadMaterial = reinforcement, HostPrimitive = concreteBlock }; + point = new RebarPrimitive() { Area = area1, Name = $"Bottom rebar {i}", HeadMaterial = reinforcement, HostPrimitive = concreteBlock }; point.Center.X = xs[0] + dist * i; point.Center.Y = ys[0]; primitives.Add(point); - point = new RebarPrimitive() {Area = area2, Name = $"Top point {i}", HeadMaterial = reinforcement, HostPrimitive = concreteBlock }; + point = new RebarPrimitive() {Area = area2, Name = $"Top rebar {i}", HeadMaterial = reinforcement, HostPrimitive = concreteBlock }; point.Center.X = xs[0] + dist * i; point.Center.Y = ys[1]; primitives.Add(point); diff --git a/StructureHelperLogics/NdmCalculations/Analyses/RC/InputDataFactory.cs b/StructureHelperLogics/NdmCalculations/Analyses/RC/InputDataFactory.cs index fff657b..64e18a0 100644 --- a/StructureHelperLogics/NdmCalculations/Analyses/RC/InputDataFactory.cs +++ b/StructureHelperLogics/NdmCalculations/Analyses/RC/InputDataFactory.cs @@ -42,7 +42,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.RC { inputData.ReinforcementStress = inputData.ReinforcementStrength; } - inputData.IsPrestressed = ndm.Prestrain > 0.0005d ? true : false; + inputData.IsPrestressed = ndm.PrestrainLogic.GetByType(PrestrainTypes.Prestrain).Sum(x => x.PrestrainValue) > 0.0005d ? true : false; inputData.LappedCountRate = lappedCountRate; return inputData; } diff --git a/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthCalculationLogic.cs b/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthCalculationLogic.cs index 89e66f2..faab256 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthCalculationLogic.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthCalculationLogic.cs @@ -32,7 +32,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking /// /// Width of crack from long term loads with short term properties of concrete /// - private double longTermLoadShortConcreteWidth; + private double longTermLoadShortConcreteCrackWidth; private IRebarStressCalculator rebarStressCalculator; public IRebarCrackCalculatorInputData InputData { get; set; } @@ -54,6 +54,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking public void Run() { + TraceLogger?.AddMessage(LoggerStrings.CalculatorType(this), TraceLogStatuses.Debug); PrepareNewResult(); ProcessCrackWidthCalculation(); } @@ -69,25 +70,31 @@ namespace StructureHelperLogics.NdmCalculations.Cracking private void ProcessCrackWidthCalculation() { + crackWidthLogic.TraceLogger = TraceLogger; CrackWidthRebarTupleResult longRebarResult = ProcessLongTermCalculations(); CrackWidthRebarTupleResult shortRebarResult = ProcessShortTermCalculations(); result.LongTermResult = longRebarResult; + TraceLogger?.AddMessage("Long term result has been obtained succesfully", TraceLogStatuses.Debug); result.ShortTermResult = shortRebarResult; + TraceLogger?.AddMessage("Short term result has been obtained succesfully", TraceLogStatuses.Debug); } private CrackWidthRebarTupleResult ProcessShortTermCalculations() { + TraceLogger?.AddMessage($"Short term softening factor calculation"); crackSofteningLogic = GetSofteningLogic(InputData.ShortRebarData); rebarStressResult = GetRebarStressResult(InputData.ShortRebarData); - acrc2InputData = GetCrackWidthInputData(crackSofteningLogic, InputData.ShortRebarData, CalcTerms.ShortTerm); - + acrc3InputData = GetCrackWidthInputData(crackSofteningLogic, InputData.LongRebarData, CalcTerms.ShortTerm); crackWidthLogic.InputData = acrc3InputData; - longTermLoadShortConcreteWidth = crackWidthLogic.GetCrackWidth(); + longTermLoadShortConcreteCrackWidth = crackWidthLogic.GetCrackWidth(); + TraceLogger?.AddMessage($"Crack width from long term load with short term factor of concrete acrc,3 = {longTermLoadShortConcreteCrackWidth}(m)", TraceLogStatuses.Debug); + acrc2InputData = GetCrackWidthInputData(crackSofteningLogic, InputData.ShortRebarData, CalcTerms.ShortTerm); crackWidthLogic.InputData = acrc2InputData; fullLoadShortConcreteCrackWidth = crackWidthLogic.GetCrackWidth(); + TraceLogger?.AddMessage($"Crack width from full load with short term factor of concrete acrc,2 = {fullLoadShortConcreteCrackWidth}(m)", TraceLogStatuses.Debug); - double acrcShort = longTermLoadLongTermConcreteCrackWidth + fullLoadShortConcreteCrackWidth - longTermLoadShortConcreteWidth; - TraceLogger?.AddMessage($"Short crack width acrc = acrc,1 + acrc,2 - acrc,3 = {longTermLoadLongTermConcreteCrackWidth} + {fullLoadShortConcreteCrackWidth} - {longTermLoadShortConcreteWidth} = {acrcShort}(m)"); + double acrcShort = longTermLoadLongTermConcreteCrackWidth + fullLoadShortConcreteCrackWidth - longTermLoadShortConcreteCrackWidth; + TraceLogger?.AddMessage($"Short crack width acrc = acrc,1 + acrc,2 - acrc,3 = {longTermLoadLongTermConcreteCrackWidth} + {fullLoadShortConcreteCrackWidth} - {longTermLoadShortConcreteCrackWidth} = {acrcShort}(m)"); var shortRebarResult = new CrackWidthRebarTupleResult() { CrackWidth = acrcShort, @@ -101,12 +108,13 @@ namespace StructureHelperLogics.NdmCalculations.Cracking private CrackWidthRebarTupleResult ProcessLongTermCalculations() { + TraceLogger?.AddMessage($"Long term softening factor calculation"); crackSofteningLogic = GetSofteningLogic(InputData.LongRebarData); rebarStressResult = GetRebarStressResult(InputData.LongRebarData); acrc1InputData = GetCrackWidthInputData(crackSofteningLogic, InputData.LongRebarData, CalcTerms.LongTerm); - acrc3InputData = GetCrackWidthInputData(crackSofteningLogic, InputData.LongRebarData, CalcTerms.ShortTerm); crackWidthLogic.InputData = acrc1InputData; longTermLoadLongTermConcreteCrackWidth = crackWidthLogic.GetCrackWidth(); + TraceLogger?.AddMessage($"Crack width from long term load with long term factor of concrete acrc,1 = {longTermLoadLongTermConcreteCrackWidth}(m)", TraceLogStatuses.Debug); var longRebarResult = new CrackWidthRebarTupleResult() { CrackWidth = longTermLoadLongTermConcreteCrackWidth, @@ -137,6 +145,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking ICrackSofteningLogic crackSofteningLogic; if (InputData.UserCrackInputData.SetSofteningFactor == true) { + TraceLogger?.AddMessage("User value of softening factor is assigned"); crackSofteningLogic = new StabSoftetingLogic(InputData.UserCrackInputData.SofteningFactor) { TraceLogger = TraceLogger?.GetSimilarTraceLogger(50) @@ -144,6 +153,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking } else { + TraceLogger?.AddMessage("Exact value of softening factor is calculated"); crackSofteningLogic = new RebarStressSofteningLogic() { RebarPrimitive = InputData.RebarPrimitive, @@ -156,7 +166,6 @@ namespace StructureHelperLogics.NdmCalculations.Cracking private ICrackWidthLogicInputData GetCrackWidthInputData(ICrackSofteningLogic crackSofteningLogic, IRebarCrackInputData inputData, CalcTerms calcTerm) { - var factoryInputData = new CrackWidthLogicInputDataFactory(crackSofteningLogic) { CalcTerm = calcTerm, diff --git a/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthLogicSP63.cs b/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthLogicSP63.cs index f0e7a14..9c6cf87 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthLogicSP63.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthLogicSP63.cs @@ -52,7 +52,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking } else { - TraceLogger?.AddMessage($"Rebar elongation Epsilon = {inputData.RebarStrain} - {inputData.ConcreteStrain} = {rebarElongation}(dimensionless)"); + TraceLogger?.AddMessage($"Rebar elongation Epsilon = {inputData.RebarStrain} - ({inputData.ConcreteStrain}) = {rebarElongation}(dimensionless)"); widthOfCrack = rebarElongation * inputData.LengthBetweenCracks; widthOfCrack *= inputData.TermFactor * inputData.BondFactor * inputData.StressStateFactor * inputData.PsiSFactor; TraceLogger?.AddMessage($"Width of crack a,crc = {inputData.TermFactor} * {inputData.BondFactor} * {inputData.StressStateFactor} * {inputData.PsiSFactor} * {rebarElongation} * {inputData.LengthBetweenCracks}(m) = {widthOfCrack}(m)"); diff --git a/StructureHelperLogics/NdmCalculations/Cracking/RebarStressCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/RebarStressCalculator.cs index 4c8358d..0614ccc 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/RebarStressCalculator.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/RebarStressCalculator.cs @@ -63,7 +63,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking var strainMatrix = TupleConverter.ConvertToLoaderStrainMatrix(strainTuple); result.RebarStrain = stressLogic.GetSectionStrain(strainMatrix, rebarNdm); result.RebarStress = stressLogic.GetStress(strainMatrix, rebarNdm); - result.ConcreteStrain = -concreteNdm.Prestrain; + result.ConcreteStrain = -concreteNdm.PrestrainLogic.GetAll().Sum(x => x.PrestrainValue); } private void PrepareNewResult() diff --git a/StructureHelperLogics/NdmCalculations/Cracking/SofteningLogics/ExpSofteningLogic.cs b/StructureHelperLogics/NdmCalculations/Cracking/SofteningLogics/ExpSofteningLogic.cs index 22b42e0..026776b 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/SofteningLogics/ExpSofteningLogic.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/SofteningLogics/ExpSofteningLogic.cs @@ -1,5 +1,6 @@ using StructureHelperCommon.Infrastructures.Exceptions; using StructureHelperCommon.Models; +using StructureHelperCommon.Models.Loggers; using System; using System.Collections.Generic; using System.Linq; @@ -64,7 +65,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking /// public double GetSofteningFactor() { - TraceLogger?.AddMessage($"Calculator type: {GetType()}", TraceLogStatuses.Service); + TraceLogger?.AddMessage(LoggerStrings.CalculatorType(this), TraceLogStatuses.Debug); TraceLogger?.AddMessage($"Logic of calculation of psi_s factor based on exponential softening model"); TraceLogger?.AddMessage($"psi_s = 1 - BettaFactor * ForceRatio ^ PowerFactor"); TraceLogger?.AddMessage($"But not less than psi_s_min = {PsiSMin}"); diff --git a/StructureHelperLogics/NdmCalculations/Cracking/SofteningLogics/RebarStressSofteningLogic.cs b/StructureHelperLogics/NdmCalculations/Cracking/SofteningLogics/RebarStressSofteningLogic.cs index 1997c14..675001e 100644 --- a/StructureHelperLogics/NdmCalculations/Cracking/SofteningLogics/RebarStressSofteningLogic.cs +++ b/StructureHelperLogics/NdmCalculations/Cracking/SofteningLogics/RebarStressSofteningLogic.cs @@ -69,6 +69,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking public double GetSofteningFactor() { + TraceLogger?.AddMessage(LoggerStrings.CalculatorType(this), TraceLogStatuses.Debug); if (IsResultActual == false) { GetRebarAndConcreteNdms(); @@ -106,8 +107,10 @@ namespace StructureHelperLogics.NdmCalculations.Cracking rebarActualStrain = actualRebarResult.RebarStrain; rebarActualStress = actualRebarResult.RebarStress; TraceLogger?.AddMessage($"Actual strain of rebar EpsilonS = {rebarActualStrain}(dimensionless)"); - concreteStrainActual = concreteNdm.Prestrain; - //concreteStrainActual = stressLogic.GetTotalStrain(TupleConverter.ConvertToLoaderStrainMatrix(strainTupleActual), concreteNdm); + concreteStrainActual = concreteNdm + .PrestrainLogic + .GetAll() + .Sum(x => x.PrestrainValue); TraceLogger?.AddMessage($"Actual strain of concrete on the axis of rebar EpsilonC = {concreteStrainActual}(dimensionless)"); if (crackResult.IsSectionCracked == false) { @@ -126,7 +129,6 @@ namespace StructureHelperLogics.NdmCalculations.Cracking TraceLogger?.AddMessage($"Actual stress in rebar Sigma,s = {rebarActualStress}(Pa)"); double psiS = GetExponentialSofteningFactor(stressInCracking); TraceLogger?.AddMessage($"PsiS = {psiS}"); - //return 0.94d; return psiS; } diff --git a/StructureHelperLogics/Services/NdmPrimitives/MeshElasticLogic.cs b/StructureHelperLogics/Services/NdmPrimitives/MeshElasticLogic.cs index 694c4bc..e99425b 100644 --- a/StructureHelperLogics/Services/NdmPrimitives/MeshElasticLogic.cs +++ b/StructureHelperLogics/Services/NdmPrimitives/MeshElasticLogic.cs @@ -38,10 +38,11 @@ namespace StructureHelperLogics.Services.NdmPrimitives var material = ndm.Material; var materialFunc = material.Diagram; var newMaterialFunc = (IEnumerable parameters, double strain) => strain * material.InitModulus; - var existingPrestrain = ndm.Prestrain; + var existingPrestrain = ndm.PrestrainLogic.GetAll().Sum(x => x.PrestrainValue); var newPrestrain = materialFunc(null, existingPrestrain) / material.InitModulus; ndm.Material.Diagram = newMaterialFunc; - ndm.Prestrain = newPrestrain; + ndm.PrestrainLogic.DeleteAll(); + ndm.PrestrainLogic.Add(PrestrainTypes.Prestrain, newPrestrain); } return ndms; }