Add curvature calculator DTOs
This commit is contained in:
@@ -28,7 +28,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
this.checkPrimitiveCollectionLogic = checkPrimitiveCollectionLogic;
|
||||
}
|
||||
|
||||
public CheckCrackCalculatorInputDataLogic() : this (new CheckPrimitiveCollectionLogic())
|
||||
public CheckCrackCalculatorInputDataLogic() : this (new HasPrimitivesCheckLogic())
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
forceTupleCalculator.Run();
|
||||
var result = forceTupleCalculator.Result as IForceTupleCalculatorResult;
|
||||
var loaderStrainMatrix = result.LoaderResults.ForceStrainPair.StrainMatrix;
|
||||
StrainTuple strainTuple = TupleConverter.ConvertToStrainTuple(loaderStrainMatrix);
|
||||
StrainTuple strainTuple = ForceTupleConverter.ConvertToStrainTuple(loaderStrainMatrix);
|
||||
return strainTuple;
|
||||
}
|
||||
private bool CheckInputData()
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
/// <inheritdoc/>
|
||||
public INdm ConcreteNdm { get; set; }
|
||||
/// <inheritdoc/>
|
||||
public IForceTuple Tuple { get; set; }
|
||||
public IForceTuple ForceTuple { get; set; }
|
||||
/// <inheritdoc/>
|
||||
public IEnumerable<INdm> CheckedNdmCollection { get; set; }
|
||||
/// <inheritdoc/>
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
|
||||
namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
public interface IIsSectionCracked : ILogic
|
||||
{
|
||||
/// <summary>
|
||||
/// Returns result of checking of cracks appearence
|
||||
/// </summary>
|
||||
/// <returns>True if Checked collectition contains cracked elements</returns>
|
||||
bool IsSectionCracked();
|
||||
}
|
||||
}
|
||||
@@ -1,23 +1,17 @@
|
||||
using LoaderCalculator.Data.Ndms;
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using StructureHelperCommon.Models.Forces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
/// <summary>
|
||||
/// Logic for checking collection of ndms for appearance of crack
|
||||
/// </summary>
|
||||
public interface IIsSectionCrackedByForceLogic : ILogic
|
||||
public interface IIsSectionCrackedByForceLogic : IIsSectionCracked
|
||||
{
|
||||
/// <summary>
|
||||
/// Force tuple for checking of cracks appearence
|
||||
/// </summary>
|
||||
IForceTuple Tuple { get; set; }
|
||||
IForceTuple ForceTuple { get; set; }
|
||||
/// <summary>
|
||||
/// Collection of ndms which is checking for cracking
|
||||
/// </summary>
|
||||
@@ -26,10 +20,5 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
/// Full ndms collection of cross-section
|
||||
/// </summary>
|
||||
IEnumerable<INdm> SectionNdmCollection { get; set; }
|
||||
/// <summary>
|
||||
/// Returns result of checking of cracks appearence
|
||||
/// </summary>
|
||||
/// <returns>True if Checked collectition contains cracked elements</returns>
|
||||
bool IsSectionCracked();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
IsSectionCrackedByForceLogic.TraceLogger ??= TraceLogger?.GetSimilarTraceLogger(50);
|
||||
var actualTuple = ForceTupleService.InterpolateTuples(StartTuple, EndTuple, factor);
|
||||
IsSectionCrackedByForceLogic.Tuple = actualTuple;
|
||||
IsSectionCrackedByForceLogic.ForceTuple = actualTuple;
|
||||
return IsSectionCrackedByForceLogic.IsSectionCracked();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,33 +14,22 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
static readonly IStressLogic stressLogic = new StressLogic();
|
||||
/// <inheritdoc/>
|
||||
public IForceTuple Tuple { get; set; }
|
||||
public IForceTuple ForceTuple { get; set; }
|
||||
public IEnumerable<INdm> CheckedNdmCollection { get; set; }
|
||||
public IEnumerable<INdm> SectionNdmCollection { get; set; }
|
||||
public Accuracy Accuracy { get; set; }
|
||||
public Accuracy Accuracy { get; set; } = new Accuracy() { IterationAccuracy = 0.001d, MaxIterationCount = 10000};
|
||||
public IShiftTraceLogger? TraceLogger { get; set; }
|
||||
|
||||
public IsSectionCrackedByForceLogic()
|
||||
{
|
||||
if (Accuracy is null)
|
||||
{
|
||||
Accuracy = new Accuracy()
|
||||
{
|
||||
IterationAccuracy = 0.001d,
|
||||
MaxIterationCount = 10000
|
||||
};
|
||||
}
|
||||
}
|
||||
public bool IsSectionCracked()
|
||||
{
|
||||
TraceLogger?.AddMessage($"Calculator type: {GetType()}", TraceLogStatuses.Service);
|
||||
TraceLogger?.AddMessage($"It is assumed, that cracks appearence if: cross-section has elementary parts of concrete and strain of concrete greater than limit value");
|
||||
TraceLogger?.AddMessage($"Force combination for cracking check");
|
||||
TraceLogger?.AddEntry(new TraceTablesFactory().GetByForceTuple(Tuple));
|
||||
TraceLogger?.AddEntry(new TraceTablesFactory().GetByForceTuple(ForceTuple));
|
||||
var inputData = new ForceTupleInputData()
|
||||
{
|
||||
Accuracy = Accuracy,
|
||||
ForceTuple = Tuple,
|
||||
ForceTuple = ForceTuple,
|
||||
NdmCollection = SectionNdmCollection
|
||||
};
|
||||
var calculator = new ForceTupleCalculator() { InputData = inputData };
|
||||
|
||||
@@ -60,7 +60,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
var strainTuple = GetStrainTuple();
|
||||
result.StrainTuple = strainTuple;
|
||||
var strainMatrix = TupleConverter.ConvertToLoaderStrainMatrix(strainTuple);
|
||||
var strainMatrix = ForceTupleConverter.ConvertToLoaderStrainMatrix(strainTuple);
|
||||
result.RebarStrain = stressLogic.GetSectionStrain(strainMatrix, rebarNdm);
|
||||
result.RebarStress = stressLogic.GetStress(strainMatrix, rebarNdm);
|
||||
result.ConcreteStrain = -concreteNdm.PrestrainLogic.GetAll().Sum(x => x.PrestrainValue);
|
||||
@@ -94,7 +94,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
//TraceLogger?.AddMessage(LoggerStrings.CalculationError + $": {forceResult.Description}", TraceLogStatuses.Error);
|
||||
throw new StructureHelperException(ErrorStrings.CalculationError);
|
||||
}
|
||||
var strain = TupleConverter.ConvertToStrainTuple(forceResult.LoaderResults.StrainMatrix);
|
||||
var strain = ForceTupleConverter.ConvertToStrainTuple(forceResult.LoaderResults.StrainMatrix);
|
||||
return strain;
|
||||
}
|
||||
|
||||
|
||||
@@ -175,7 +175,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
TraceLogger?.AddMessage("Bearing capacity of cross-section is not enough for action", TraceLogStatuses.Error);
|
||||
return null;
|
||||
}
|
||||
var strain = TupleConverter.ConvertToStrainTuple(forceResult.LoaderResults.StrainMatrix);
|
||||
var strain = ForceTupleConverter.ConvertToStrainTuple(forceResult.LoaderResults.StrainMatrix);
|
||||
return strain;
|
||||
}
|
||||
|
||||
@@ -183,7 +183,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
lengthLogic.NdmCollection = elasticNdms;
|
||||
lengthLogic.TraceLogger = TraceLogger;
|
||||
lengthLogic.StrainMatrix = TupleConverter.ConvertToLoaderStrainMatrix(strainTuple);
|
||||
lengthLogic.StrainMatrix = ForceTupleConverter.ConvertToLoaderStrainMatrix(strainTuple);
|
||||
return lengthLogic.GetLength();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user