diff --git a/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml b/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml
index 698806b..7e48c6e 100644
--- a/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml
+++ b/StructureHelper/Infrastructure/UI/Resources/ButtonStyles.xaml
@@ -207,4 +207,15 @@
+
+
+
+
\ No newline at end of file
diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataView.xaml b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataView.xaml
index 4d7aec7..471acfc 100644
--- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataView.xaml
+++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataView.xaml
@@ -6,7 +6,7 @@
xmlns:local="clr-namespace:StructureHelper.Windows.CalculationWindows.CalculatorsViews"
d:DataContext="{d:DesignInstance local:CrackCalculatorInputDataViewModel}"
mc:Ignorable="d"
- Title="CrackCalculatorInputDataView" Height="390" Width="400" MinHeight="300" MinWidth="400" ResizeMode="NoResize" WindowStartupLocation="CenterScreen">
+ Title="CrackCalculatorInputDataView" Height="390" Width="400" MinHeight="300" MinWidth="400" ResizeMode="NoResize" WindowStartupLocation="CenterScreen" Closing="Window_Closing">
diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataView.xaml.cs b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataView.xaml.cs
index 8a7e902..d720440 100644
--- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataView.xaml.cs
+++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackCalculatorInputDataView.xaml.cs
@@ -30,5 +30,10 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews
DataContext = viewModel;
InitializeComponent();
}
+
+ private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e)
+ {
+ viewModel.Refresh();
+ }
}
}
diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackResultView.xaml b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackResultView.xaml
index 6961290..1577c78 100644
--- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackResultView.xaml
+++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackResultView.xaml
@@ -4,11 +4,17 @@
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:StructureHelper.Windows.CalculationWindows.CalculatorsViews"
+ d:DataContext="{d:DesignInstance local:CrackResultViewModel}"
mc:Ignorable="d"
- Title="CrackResultView" Height="450" Width="800">
+ Title="Result of calculations of crack" Height="450" Width="800" MinHeight="300" MinWidth="600" MaxHeight="800" MaxWidth="1000">
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackResultView.xaml.cs b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackResultView.xaml.cs
index ac76ff0..1bd09b0 100644
--- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackResultView.xaml.cs
+++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackResultView.xaml.cs
@@ -1,4 +1,5 @@
-using System;
+using StructureHelperLogics.NdmCalculations.Cracking;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -19,9 +20,17 @@ namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews
///
public partial class CrackResultView : Window
{
- public CrackResultView()
+ private readonly CrackResultViewModel viewModel;
+
+ public CrackResultView(CrackResultViewModel viewModel)
{
+ this.viewModel = viewModel;
InitializeComponent();
+ this.DataContext = this.viewModel;
+ }
+ public CrackResultView(CrackResult result) : this(new CrackResultViewModel(result))
+ {
+
}
}
}
diff --git a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackResultViewModel.cs b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackResultViewModel.cs
index ba77f18..cbeed50 100644
--- a/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackResultViewModel.cs
+++ b/StructureHelper/Windows/CalculationWindows/CalculatorsViews/Cracks/CrackResultViewModel.cs
@@ -1,4 +1,6 @@
-using System;
+using StructureHelper.Infrastructure;
+using StructureHelperLogics.NdmCalculations.Cracking;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -6,7 +8,17 @@ using System.Threading.Tasks;
namespace StructureHelper.Windows.CalculationWindows.CalculatorsViews
{
- public class CrackResultViewModel
+ public class CrackResultViewModel : ViewModelBase
{
+ CrackResult crackResult;
+ public TupleCrackResult SelectedResult { get; set; }
+ public List TupleResults => CrackResult.TupleResults;
+
+ public CrackResult CrackResult => crackResult;
+
+ public CrackResultViewModel(CrackResult crackResult)
+ {
+ this.crackResult = crackResult;
+ }
}
}
diff --git a/StructureHelper/Windows/ViewModels/NdmCrossSections/AnalysisViewModelLogic.cs b/StructureHelper/Windows/ViewModels/NdmCrossSections/AnalysisViewModelLogic.cs
index 748cd55..cb8e637 100644
--- a/StructureHelper/Windows/ViewModels/NdmCrossSections/AnalysisViewModelLogic.cs
+++ b/StructureHelper/Windows/ViewModels/NdmCrossSections/AnalysisViewModelLogic.cs
@@ -230,7 +230,8 @@ namespace StructureHelper.Windows.ViewModels.NdmCrossSections
}
else if (SelectedItem is CrackCalculator crackCalculator)
{
-
+ var wnd = new CrackResultView(crackCalculator.Result as CrackResult);
+ wnd.ShowDialog();
}
else
{
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/CrackCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/CrackCalculator.cs
index 2dda3cf..a024b92 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/CrackCalculator.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/CrackCalculator.cs
@@ -19,7 +19,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
const LimitStates limitState = LimitStates.SLS;
const CalcTerms longTerm = CalcTerms.LongTerm;
const CalcTerms shortTerm = CalcTerms.ShortTerm;
-
+ private const double maxSizeOfCrossSection = 1d;
private CrackResult result;
private IGetTupleInputDatasLogic datasLogic;
private CrackCalculatorUpdateStrategy updateStrategy = new();
@@ -67,6 +67,14 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
ShortTerm = shortTerm,
TraceLogger = TraceLogger?.GetSimilarTraceLogger(50)
};
+ var dx = InputData.Primitives.Max(x => x.GetValuePoints().Max(y => y.Point.X)) - InputData.Primitives.Min(x => x.GetValuePoints().Min(y => y.Point.X));
+ var dy = InputData.Primitives.Max(x => x.GetValuePoints().Max(y => y.Point.Y)) - InputData.Primitives.Min(x => x.GetValuePoints().Min(y => y.Point.Y));
+ if (dx > maxSizeOfCrossSection || dy > maxSizeOfCrossSection)
+ {
+ string message = $"At least one of size of cross-section is greater than ultimate size MaxSize = {maxSizeOfCrossSection}(m)";
+ result.Description += "Warning! " + message;
+ TraceLogger?.AddMessage(message, TraceLogStatuses.Warning);
+ }
var datas = datasLogic.GetTupleInputDatas();
foreach (var data in datas)
{
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/CrackResult.cs b/StructureHelperLogics/NdmCalculations/Cracking/CrackResult.cs
index 066d0ab..7775cbf 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/CrackResult.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/CrackResult.cs
@@ -5,6 +5,9 @@ using System.Linq;
using System.Text;
using System.Threading.Tasks;
+//Copyright (c) 2023 Redikultsev Evgeny, Ekaterinburg, Russia
+//All rights reserved.
+
namespace StructureHelperLogics.NdmCalculations.Cracking
{
public class CrackResult : IResult
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthRebarTupleResult.cs b/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthRebarTupleResult.cs
new file mode 100644
index 0000000..409f295
--- /dev/null
+++ b/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthRebarTupleResult.cs
@@ -0,0 +1,18 @@
+using StructureHelperCommon.Models.Forces;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StructureHelperLogics.NdmCalculations.Cracking
+{
+ public class CrackWidthRebarTupleResult : ICrackWidthTupleResult
+ {
+ public double CrackWidth { get; set; }
+ public double UltimateCrackWidth { get; set; }
+ public bool IsCrackLessThanUltimate => CrackWidth <= UltimateCrackWidth;
+ public RebarStressResult RebarStressResult { get; set; }
+ public double SofteningFactor { get; set; }
+ }
+}
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthTupleResult.cs b/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthTupleResult.cs
index 221fb5f..895de46 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthTupleResult.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/CrackWidthTupleResult.cs
@@ -1,5 +1,4 @@
-using StructureHelperCommon.Models.Forces;
-using System;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -7,13 +6,10 @@ using System.Threading.Tasks;
namespace StructureHelperLogics.NdmCalculations.Cracking
{
- public class CrackWidthTupleResult
+ public class CrackWidthTupleResult : ICrackWidthTupleResult
{
- public IForceTuple? ForceTuple { get; set; }
public double CrackWidth { get; set; }
public double UltimateCrackWidth { get; set; }
public bool IsCrackLessThanUltimate => CrackWidth <= UltimateCrackWidth;
- public RebarStressResult RebarStressResult { get; set; }
- public double SofteningFactor { get; set; }
}
}
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/Factories/CrackWidthLogicInputDataFactory.cs b/StructureHelperLogics/NdmCalculations/Cracking/Factories/CrackWidthLogicInputDataFactory.cs
index 5ab2b8f..08bed13 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/Factories/CrackWidthLogicInputDataFactory.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/Factories/CrackWidthLogicInputDataFactory.cs
@@ -24,6 +24,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
{
private const double longTermFactor = 1.4d;
private const double shortTermFactor = 1d;
+ private IStressStateFactorLogic stressStateFactorLogic;
private ICrackSofteningLogic softeningLogic;
public double RebarStrain { get; set; }
@@ -40,7 +41,11 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
public ICrackWidthLogicInputData GetCrackWidthLogicInputData()
{
-
+ stressStateFactorLogic = new StressStateFactorLogic()
+ {
+ ForceTuple = InputData.ForceTuple,
+ TraceLogger = TraceLogger?.GetSimilarTraceLogger(50)
+ };
CrackWidthLogicInputDataSP63 data = new();
if (CalcTerm == CalcTerms.LongTerm)
{
@@ -51,7 +56,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
data.TermFactor = shortTermFactor;
}
data.PsiSFactor = softeningLogic.GetSofteningFactor();
- data.StressStateFactor = 1.0d;
+ data.StressStateFactor = stressStateFactorLogic.GetStressStateFactor();
data.BondFactor = 0.5d;
data.Length = InputData.Length;
data.ConcreteStrain = ConcreteStrain;
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/ICrackWidthTupleResult.cs b/StructureHelperLogics/NdmCalculations/Cracking/ICrackWidthTupleResult.cs
new file mode 100644
index 0000000..7404778
--- /dev/null
+++ b/StructureHelperLogics/NdmCalculations/Cracking/ICrackWidthTupleResult.cs
@@ -0,0 +1,9 @@
+namespace StructureHelperLogics.NdmCalculations.Cracking
+{
+ public interface ICrackWidthTupleResult
+ {
+ double CrackWidth { get; set; }
+ bool IsCrackLessThanUltimate { get; }
+ double UltimateCrackWidth { get; set; }
+ }
+}
\ No newline at end of file
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/IStressStateFactorLogic.cs b/StructureHelperLogics/NdmCalculations/Cracking/IStressStateFactorLogic.cs
new file mode 100644
index 0000000..bce3680
--- /dev/null
+++ b/StructureHelperLogics/NdmCalculations/Cracking/IStressStateFactorLogic.cs
@@ -0,0 +1,14 @@
+using StructureHelperCommon.Infrastructures.Interfaces;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StructureHelperLogics.NdmCalculations.Cracking
+{
+ public interface IStressStateFactorLogic : ILogic
+ {
+ double GetStressStateFactor();
+ }
+}
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackCalculator.cs
index 247c169..b69dc5f 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackCalculator.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackCalculator.cs
@@ -40,10 +40,10 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
GetSofteningLogic(InputData.LongRebarData);
rebarStressResult = GetRebarStressResult(InputData.LongRebarData);
var dataAcrc1 = GetCrackWidthInputData(InputData.LongRebarData, CalcTerms.LongTerm);
- var dataAcrc2 = GetCrackWidthInputData(InputData.LongRebarData, CalcTerms.ShortTerm);
+ var dataAcrc3 = GetCrackWidthInputData(InputData.LongRebarData, CalcTerms.ShortTerm);
crackWidthLogic.InputData = dataAcrc1;
var acrc1 = crackWidthLogic.GetCrackWidth();
- var longRebarResult = new CrackWidthTupleResult()
+ var longRebarResult = new CrackWidthRebarTupleResult()
{
CrackWidth = acrc1,
UltimateCrackWidth = InputData.UserCrackInputData.UltimateLongCrackWidth,
@@ -56,16 +56,16 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
GetSofteningLogic(InputData.ShortRebarData);
rebarStressResult = GetRebarStressResult(InputData.ShortRebarData);
- var dataAcrc3 = GetCrackWidthInputData(InputData.ShortRebarData, CalcTerms.ShortTerm);
+ var dataAcrc2 = GetCrackWidthInputData(InputData.ShortRebarData, CalcTerms.ShortTerm);
- crackWidthLogic.InputData = dataAcrc2;
- var acrc2 = crackWidthLogic.GetCrackWidth();
crackWidthLogic.InputData = dataAcrc3;
var acrc3 = crackWidthLogic.GetCrackWidth();
+ crackWidthLogic.InputData = dataAcrc2;
+ var acrc2 = crackWidthLogic.GetCrackWidth();
- double acrcShort = acrc1 - acrc2 + acrc3;
- TraceLogger?.AddMessage($"Short crack width acrc = acrc,1 - acrc,2 + acrc,3 = {acrc1} - {acrc2} + {acrc3} = {acrcShort}(m)");
- var shortRebarResult = new CrackWidthTupleResult()
+ double acrcShort = acrc1 + acrc2 - acrc3;
+ TraceLogger?.AddMessage($"Short crack width acrc = acrc,1 + acrc,2 - acrc,3 = {acrc1} + {acrc2} - {acrc3} = {acrcShort}(m)");
+ var shortRebarResult = new CrackWidthRebarTupleResult()
{
CrackWidth = acrcShort,
UltimateCrackWidth = InputData.UserCrackInputData.UltimateShortCrackWidth,
@@ -83,7 +83,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
result.RebarPrimitive = InputData.RebarPrimitive;
}
- private void TraceCrackResult(CrackWidthTupleResult rebarResult)
+ private void TraceCrackResult(CrackWidthRebarTupleResult rebarResult)
{
if (rebarResult.IsCrackLessThanUltimate == false)
{
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackResult.cs b/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackResult.cs
index 42180bf..c3eb9bc 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackResult.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackResult.cs
@@ -13,7 +13,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
public bool IsValid { get; set; }
public string Description { get; set; }
public RebarPrimitive RebarPrimitive { get; set; }
- public CrackWidthTupleResult LongTermResult { get; set; }
- public CrackWidthTupleResult ShortTermResult { get; set; }
+ public CrackWidthRebarTupleResult LongTermResult { get; set; }
+ public CrackWidthRebarTupleResult ShortTermResult { get; set; }
}
}
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/RebarStressCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/RebarStressCalculator.cs
index 49e88ae..86dc758 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/RebarStressCalculator.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/RebarStressCalculator.cs
@@ -1,20 +1,14 @@
using LoaderCalculator.Data.Ndms;
+using LoaderCalculator.Logics;
+using StructureHelperCommon.Infrastructures.Enums;
using StructureHelperCommon.Infrastructures.Exceptions;
-using StructureHelperCommon.Models.Forces;
-using StructureHelperCommon.Models.Loggers;
using StructureHelperCommon.Models;
+using StructureHelperCommon.Models.Calculators;
+using StructureHelperCommon.Models.Forces;
using StructureHelperCommon.Services.Forces;
using StructureHelperLogics.NdmCalculations.Analyses.ByForces;
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using LoaderCalculator.Logics;
using StructureHelperLogics.NdmCalculations.Primitives;
-using StructureHelperCommon.Infrastructures.Enums;
using StructureHelperLogics.NdmCalculations.Triangulations;
-using StructureHelperCommon.Models.Calculators;
namespace StructureHelperLogics.NdmCalculations.Cracking
{
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/StressStateFactorLogic.cs b/StructureHelperLogics/NdmCalculations/Cracking/StressStateFactorLogic.cs
new file mode 100644
index 0000000..2e1b915
--- /dev/null
+++ b/StructureHelperLogics/NdmCalculations/Cracking/StressStateFactorLogic.cs
@@ -0,0 +1,30 @@
+using StructureHelperCommon.Models;
+using StructureHelperCommon.Models.Forces;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace StructureHelperLogics.NdmCalculations.Cracking
+{
+ public class StressStateFactorLogic : IStressStateFactorLogic
+ {
+ public ForceTuple ForceTuple { get; set; }
+ public IShiftTraceLogger? TraceLogger { get; set; }
+
+ public double GetStressStateFactor()
+ {
+ if (ForceTuple.Nz > 0d)
+ {
+ TraceLogger.AddMessage($"Cross-section is tensioned since Nz = {ForceTuple.Nz}(N)");
+ return 1.2d;
+ }
+ else
+ {
+ TraceLogger.AddMessage($"Cross-section is bent or compressed since Nz = {ForceTuple.Nz}(N)");
+ return 1d;
+ }
+ }
+ }
+}
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackCalculator.cs
index 7590c30..81d44b3 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackCalculator.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackCalculator.cs
@@ -59,7 +59,8 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
result = new()
{
IsValid = true,
- Description = string.Empty
+ Description = string.Empty,
+ InputData = InputData
};
}
@@ -96,6 +97,16 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
var rebarResult = calculator.Result as RebarCrackResult;
result.RebarResults.Add(rebarResult);
}
+ result.LongTermResult = new()
+ {
+ CrackWidth = result.RebarResults.Max(x => x.LongTermResult.CrackWidth),
+ UltimateCrackWidth = InputData.UserCrackInputData.UltimateLongCrackWidth
+ };
+ result.ShortTermResult = new()
+ {
+ CrackWidth = result.RebarResults.Max(x => x.ShortTermResult.CrackWidth),
+ UltimateCrackWidth = InputData.UserCrackInputData.UltimateShortCrackWidth
+ };
}
private RebarCrackCalculatorInputData GetRebarCalculatorInputData(RebarPrimitive rebar)
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackResult.cs b/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackResult.cs
index be69b92..89e3b0b 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackResult.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackResult.cs
@@ -12,12 +12,15 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
{
public bool IsValid { get; set; }
public string Description { get; set; }
- public IForceTuple LongTermTuple { get; set; }
- public IForceTuple ShortTermTuple { get; set; }
+ public TupleCrackInputData InputData { get; set; }
public bool IsCracked { get; set; }
public List RebarResults { get; private set; }
- public double MaxLongTermCrackWidth => IsCracked? RebarResults.Select(x => x.LongTermResult.CrackWidth).Max() : 0d;
- public double MaxShortTermCrackWidth => IsCracked? RebarResults.Select(x => x.ShortTermResult.CrackWidth).Max() : 0d;
+ public CrackWidthRebarTupleResult LongTermResult { get; set; }
+ public CrackWidthRebarTupleResult ShortTermResult { get; set; }
+ //public double MaxLongTermCrackWidth => RebarResults.Select(x => x.LongTermResult.CrackWidth).Max();
+ //public double MaxShortTermCrackWidth => RebarResults.Select(x => x.ShortTermResult.CrackWidth).Max();
+ //public bool IsLongCrackLessThanUltimate => MaxLongTermCrackWidth <= InputData.UserCrackInputData.UltimateLongCrackWidth;
+ //public bool IsShortCrackLessThanUltimate => MaxShortTermCrackWidth <= InputData.UserCrackInputData.UltimateShortCrackWidth;
public TupleCrackResult()
{