diff --git a/StructureHelperLogics/NdmCalculations/Cracking/CrackedSectionTriangulationLogic.cs b/StructureHelperLogics/NdmCalculations/Cracking/CrackedSectionTriangulationLogic.cs
index 90a266c..d25128a 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/CrackedSectionTriangulationLogic.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/CrackedSectionTriangulationLogic.cs
@@ -35,6 +35,10 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
CalcTerm = shortTerm,
TraceLogger = TraceLogger?.GetSimilarTraceLogger(50)
};
+ }
+ public CrackedSectionTriangulationLogic()
+ {
+
}
///
public List GetNdmCollection()
@@ -66,14 +70,14 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
}
///
- public List GetRebarPrimitives()
+ public List GetRebarPrimitives()
{
- TraceLogger?.AddMessage(LoggerStrings.CalculatorType(this), TraceLogStatuses.Service);
+ TraceLogger?.AddMessage(LoggerStrings.CalculatorType(this), TraceLogStatuses.Debug);
TraceLogger?.AddMessage(ndmPrimitiveCountMessage, TraceLogStatuses.Debug);
- List rebarPrimitives = new();
+ List rebarPrimitives = new();
foreach (var item in NdmPrimitives)
{
- if (item is RebarPrimitive rebar)
+ if (item is IRebarPrimitive rebar)
{
TraceLogger?.AddMessage($"Primitive {rebar.Name} is rebar primitive", TraceLogStatuses.Service);
rebarPrimitives.Add(rebar);
@@ -86,7 +90,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
///
public List GetElasticNdmCollection()
{
- TraceLogger?.AddMessage(LoggerStrings.CalculatorType(this), TraceLogStatuses.Service);
+ TraceLogger?.AddMessage(LoggerStrings.CalculatorType(this), TraceLogStatuses.Debug);
TraceLogger?.AddMessage(ndmPrimitiveCountMessage, TraceLogStatuses.Debug);
triangulateLogic = new TriangulatePrimitiveLogic(new MeshElasticLogic())
{
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/ICrackedSectionTriangulationLogic.cs b/StructureHelperLogics/NdmCalculations/Cracking/ICrackedSectionTriangulationLogic.cs
index 6511dc3..7ad87ed 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/ICrackedSectionTriangulationLogic.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/ICrackedSectionTriangulationLogic.cs
@@ -37,6 +37,6 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
/// Return collection of primitives which contain only rebars
///
///
- List GetRebarPrimitives();
+ List GetRebarPrimitives();
}
}
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/ILengthBetweenCracksLogic.cs b/StructureHelperLogics/NdmCalculations/Cracking/ILengthBetweenCracksLogic.cs
index 93fe5df..b3eec4a 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/ILengthBetweenCracksLogic.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/ILengthBetweenCracksLogic.cs
@@ -14,6 +14,8 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
///
public interface ILengthBetweenCracksLogic : ILogic
{
+#error
+ //to do change to primitive collection since it is required to gain difference rebar strain and concrete strain
///
/// Full collection of ndm parts of cross-section
///
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/IRebarCalulatorsFactory.cs b/StructureHelperLogics/NdmCalculations/Cracking/IRebarCalulatorsFactory.cs
index 737e14c..b3965a4 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/IRebarCalulatorsFactory.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/IRebarCalulatorsFactory.cs
@@ -7,7 +7,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
{
TupleCrackInputData InputData { get; set; }
double LongLength { get; set; }
- IEnumerable Rebars { get; set; }
+ IEnumerable Rebars { get; set; }
double ShortLength { get; set; }
List GetCalculators();
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/IRebarCrackInputDataFactory.cs b/StructureHelperLogics/NdmCalculations/Cracking/IRebarCrackInputDataFactory.cs
index 5e9de6a..4b0045a 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/IRebarCrackInputDataFactory.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/IRebarCrackInputDataFactory.cs
@@ -4,7 +4,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
{
public interface IRebarCrackInputDataFactory
{
- RebarPrimitive Rebar { get; set; }
+ IRebarPrimitive Rebar { get; set; }
TupleCrackInputData InputData { get; set; }
double LongLength { get; set; }
double ShortLength { get; set; }
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/ITupleRebarsCrackSolver.cs b/StructureHelperLogics/NdmCalculations/Cracking/ITupleRebarsCrackSolver.cs
index 6399d60..e8aac70 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/ITupleRebarsCrackSolver.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/ITupleRebarsCrackSolver.cs
@@ -9,7 +9,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
TupleCrackInputData InputData { get; set; }
bool IsResultValid { get; }
double LongLength { get; set; }
- IEnumerable Rebars { get; set; }
+ IEnumerable Rebars { get; set; }
List Result { get; }
double ShortLength { get; set; }
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/LengthBetweenCracksLogicSP63.cs b/StructureHelperLogics/NdmCalculations/Cracking/LengthBetweenCracksLogicSP63.cs
index 99d185f..f57433d 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/LengthBetweenCracksLogicSP63.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/LengthBetweenCracksLogicSP63.cs
@@ -35,7 +35,9 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
///
public IShiftTraceLogger? TraceLogger { get; set; }
- public LengthBetweenCracksLogicSP63(IAverageDiameterLogic diameterLogic, ITensileConcreteAreaLogic concreteAreaLogic, ITensionRebarAreaLogic rebarAreaLogic)
+ public LengthBetweenCracksLogicSP63(IAverageDiameterLogic diameterLogic,
+ ITensileConcreteAreaLogic concreteAreaLogic,
+ ITensionRebarAreaLogic rebarAreaLogic)
{
this.diameterLogic = diameterLogic;
this.concreteAreaLogic = concreteAreaLogic;
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/RebarCalulatorsFactory.cs b/StructureHelperLogics/NdmCalculations/Cracking/RebarCalulatorsFactory.cs
index c91438b..826ee86 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/RebarCalulatorsFactory.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/RebarCalulatorsFactory.cs
@@ -12,7 +12,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
{
private IRebarCrackInputDataFactory inputFactory;
- public IEnumerable Rebars { get; set; }
+ public IEnumerable Rebars { get; set; }
public TupleCrackInputData InputData { get; set; }
public double LongLength { get; set; }
public double ShortLength { get; set; }
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackInputDataFactory.cs b/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackInputDataFactory.cs
index 58cd808..753f9f0 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackInputDataFactory.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/RebarCrackInputDataFactory.cs
@@ -31,7 +31,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
}
- public RebarPrimitive Rebar { get; set; }
+ public IRebarPrimitive Rebar { get; set; }
public TupleCrackInputData InputData { get; set; }
public double LongLength { get; set; }
public double ShortLength { get; set; }
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/TensionRebarAreaByStrainLogic.cs b/StructureHelperLogics/NdmCalculations/Cracking/TensionRebarAreaByStrainLogic.cs
index 8303141..c6df88d 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/TensionRebarAreaByStrainLogic.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/TensionRebarAreaByStrainLogic.cs
@@ -29,7 +29,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
}
public double GetTensionRebarArea()
{
- TraceLogger?.AddMessage(LoggerStrings.CalculatorType(this), TraceLogStatuses.Service);
+ TraceLogger?.AddMessage(LoggerStrings.CalculatorType(this), TraceLogStatuses.Debug);
TraceLogger?.AddMessage("Method of obtaining of summary area of rebars in tension based on areas which are proportional by maximum strain");
var rebars = Rebars
.Where(x => stressLogic.GetSectionStrain(StrainMatrix, x) > 0d);
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackCalculator.cs b/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackCalculator.cs
index 8511f3e..fdc4567 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackCalculator.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/TupleCrackCalculator.cs
@@ -22,10 +22,11 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
{
private const CalcTerms crackingTerm = CalcTerms.ShortTerm;
private const LimitStates crackingLimitState = LimitStates.SLS;
- private static readonly ILengthBetweenCracksLogic lengthLogic = new LengthBetweenCracksLogicSP63();
+ private ILengthBetweenCracksLogic lengthLogic;
private TupleCrackResult result;
private ICrackedSectionTriangulationLogic triangulationLogic;
- private List? rebarPrimitives;
+ private ITupleRebarsCrackSolver solver;
+ private List? rebarPrimitives;
private IEnumerable crackableNdms;
private IEnumerable crackedNdms;
private IEnumerable elasticNdms;
@@ -42,12 +43,19 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
public IShiftTraceLogger? TraceLogger { get; set; }
- public TupleCrackCalculator(ICheckInputDataLogic checkInputDataLogic)
+ public TupleCrackCalculator(ICheckInputDataLogic checkInputDataLogic,
+ ILengthBetweenCracksLogic lengthLogic, ICrackedSectionTriangulationLogic triangulationLogic, ITupleRebarsCrackSolver solver)
{
this.checkInputDataLogic = checkInputDataLogic;
+ this.lengthLogic = lengthLogic;
+ this.triangulationLogic = triangulationLogic;
+ this.solver = solver;
}
- public TupleCrackCalculator() : this (new CheckTupleCalculatorInputDataLogic())
+ public TupleCrackCalculator() : this (new CheckTupleCalculatorInputDataLogic(),
+ new LengthBetweenCracksLogicSP63(),
+ new CrackedSectionTriangulationLogic(),
+ new TupleRebarsCrackSolver())
{
}
@@ -134,7 +142,6 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
private void SolveRebarResult()
{
result.RebarResults.Clear();
- ITupleRebarsCrackSolver solver = new TupleRebarsCrackSolver();
solver.Rebars = rebarPrimitives;
solver.InputData = InputData;
solver.LongLength = longLength;
@@ -177,13 +184,10 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
private double GetLengthBetweenCracks(StrainTuple strainTuple)
{
- var logic = new LengthBetweenCracksLogicSP63()
- {
- NdmCollection = elasticNdms,
- TraceLogger = TraceLogger
- };
- logic.StrainMatrix = TupleConverter.ConvertToLoaderStrainMatrix(strainTuple);
- return logic.GetLength();
+ lengthLogic.NdmCollection = elasticNdms;
+ lengthLogic.TraceLogger = TraceLogger;
+ lengthLogic.StrainMatrix = TupleConverter.ConvertToLoaderStrainMatrix(strainTuple);
+ return lengthLogic.GetLength();
}
private void Triangulate()
diff --git a/StructureHelperLogics/NdmCalculations/Cracking/TupleRebarsCrackSolver.cs b/StructureHelperLogics/NdmCalculations/Cracking/TupleRebarsCrackSolver.cs
index aaba861..53d3c35 100644
--- a/StructureHelperLogics/NdmCalculations/Cracking/TupleRebarsCrackSolver.cs
+++ b/StructureHelperLogics/NdmCalculations/Cracking/TupleRebarsCrackSolver.cs
@@ -14,7 +14,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
{
private IRebarCalulatorsFactory calculatorsFactory;
- public IEnumerable Rebars { get; set; }
+ public IEnumerable Rebars { get; set; }
public TupleCrackInputData InputData { get; set; }
public double LongLength { get; set; }
public double ShortLength { get; set; }