Add curvature calculator DTOs
This commit is contained in:
@@ -69,7 +69,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
|
||||
|
||||
private void CheckPrimitives()
|
||||
{
|
||||
checkPrimitiveCollectionLogic ??= new CheckPrimitiveCollectionLogic(
|
||||
checkPrimitiveCollectionLogic ??= new HasPrimitivesCheckLogic(
|
||||
TraceLogger,
|
||||
new CheckRebarPrimitiveLogic()
|
||||
{
|
||||
|
||||
@@ -12,12 +12,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
|
||||
/// <inheritdoc/>
|
||||
public IForceTuple ForceTuple { get; set; }
|
||||
/// <inheritdoc/>
|
||||
public IAccuracy Accuracy { get; set; }
|
||||
public bool CheckStrainLimit { get; set; }
|
||||
|
||||
public ForceTupleInputData()
|
||||
{
|
||||
Accuracy ??= new Accuracy() { IterationAccuracy = 0.01d, MaxIterationCount = 1000 };
|
||||
}
|
||||
public IAccuracy Accuracy { get; set; } = new Accuracy() { IterationAccuracy = 0.01d, MaxIterationCount = 1000 };
|
||||
public bool CheckStrainLimit { get; set; } = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -91,7 +91,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
|
||||
Mx = point3D.X,
|
||||
My = point3D.Y
|
||||
};
|
||||
logic.Tuple = tuple;
|
||||
logic.ForceTuple = tuple;
|
||||
logic.SectionNdmCollection = Ndms;
|
||||
try
|
||||
{
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.ByForces.LimitCurve;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.Curvatures;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.ValueDiagrams;
|
||||
using StructureHelperLogics.NdmCalculations.Cracking;
|
||||
using System;
|
||||
@@ -11,7 +12,8 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces.Logics
|
||||
public class CalculatorCloningStrategyContainer : ICalculatorCloningStrategyContainer
|
||||
{
|
||||
private ICloningStrategy cloningStrategy;
|
||||
|
||||
private IUpdateStrategy<IValueDiagramCalculator> valueDiagramCalculatorStrategy;
|
||||
private IUpdateStrategy<ICurvatureCalculator> curvatureCalculatorStrategy;
|
||||
|
||||
public IUpdateStrategy<IForceCalculator> ForceCalculatorStrategy => new ForceCalculatorUpdateCloningStrategy(cloningStrategy);
|
||||
|
||||
@@ -19,7 +21,8 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces.Logics
|
||||
|
||||
public IUpdateStrategy<ILimitCurvesCalculator> LimitCurvesCalculatorStrategy => new LimitCurvesCalculatorUpdateCloningStrategy(cloningStrategy);
|
||||
|
||||
public IUpdateStrategy<IValueDiagramCalculator> ValueDiagramCalculatorStrategy => new ValueDiagramCalculatorUpdateCloningStrategy(cloningStrategy);
|
||||
public IUpdateStrategy<IValueDiagramCalculator> ValueDiagramCalculatorStrategy => valueDiagramCalculatorStrategy ??= new ValueDiagramCalculatorUpdateCloningStrategy(cloningStrategy);
|
||||
public IUpdateStrategy<ICurvatureCalculator> CurvatureCalculatorStrategy => curvatureCalculatorStrategy ??= new CurvatureCalculatorUpdateCloningStrategy(cloningStrategy);
|
||||
public CalculatorCloningStrategyContainer(ICloningStrategy cloningStrategy)
|
||||
{
|
||||
this.cloningStrategy = cloningStrategy;
|
||||
|
||||
@@ -6,6 +6,7 @@ using StructureHelperCommon.Models.Parameters;
|
||||
using StructureHelperCommon.Services;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.ByForces.LimitCurve;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.ByForces.Logics;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.Curvatures;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.ValueDiagrams;
|
||||
using StructureHelperLogics.NdmCalculations.Cracking;
|
||||
using StructureHelperLogics.NdmCalculations.Primitives;
|
||||
@@ -65,6 +66,10 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
|
||||
{
|
||||
cloningStrategyContainer.ValueDiagramCalculatorStrategy.Update(newCalculator as IValueDiagramCalculator, valueDiagramCalculator);
|
||||
}
|
||||
else if (calculator is ICurvatureCalculator curvatureCalculator)
|
||||
{
|
||||
cloningStrategyContainer.CurvatureCalculatorStrategy.Update(newCalculator as ICurvatureCalculator, curvatureCalculator);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(calculator));
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using StructureHelperCommon.Infrastructures.Interfaces;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.Curvatures;
|
||||
using StructureHelperLogics.NdmCalculations.Analyses.ValueDiagrams;
|
||||
using StructureHelperLogics.NdmCalculations.Cracking;
|
||||
|
||||
@@ -10,5 +11,6 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
|
||||
IUpdateStrategy<ICrackCalculator> CrackCalculatorStrategy { get; }
|
||||
IUpdateStrategy<ILimitCurvesCalculator> LimitCurvesCalculatorStrategy { get; }
|
||||
IUpdateStrategy<IValueDiagramCalculator> ValueDiagramCalculatorStrategy { get; }
|
||||
IUpdateStrategy<ICurvatureCalculator> CurvatureCalculatorStrategy { get; }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,7 +27,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces.Logics
|
||||
TraceLogger?.AddMessage($"Logic of analisys based on calculating sum of secant stifness of elementary parts EA,i = A,i * Esec,i");
|
||||
TraceLogger?.AddMessage($"Calculating geometry properties for strains");
|
||||
TraceLogger?.AddEntry(new TraceTablesFactory().GetByForceTuple(StrainTuple));
|
||||
var loaderStainMatrix = TupleConverter.ConvertToLoaderStrainMatrix(StrainTuple);
|
||||
var loaderStainMatrix = ForceTupleConverter.ConvertToLoaderStrainMatrix(StrainTuple);
|
||||
var (MxFactor, MyFactor, NzFactor) = GeometryOperations.GetSofteningsFactors(NdmCollection, loaderStainMatrix);
|
||||
TraceLogger?.AddMessage($"Reducing of stiffness in {ProgramSetting.GeometryNames.SndAxisName}-plane: EIx_cracked / EIx_uncracked = {MxFactor}");
|
||||
TraceLogger?.AddMessage($"Reducing of stiffness in {ProgramSetting.GeometryNames.FstAxisName}-plane: EIy_cracked / EIy_uncracked = {MyFactor}");
|
||||
|
||||
Reference in New Issue
Block a user