Logics of accidental eccentricity were separated and tested

This commit is contained in:
Evgeny Redikultsev
2024-03-10 19:20:01 +05:00
parent 0a453c5a95
commit b81b7a0929
30 changed files with 885 additions and 331 deletions

View File

@@ -0,0 +1,57 @@
using LoaderCalculator.Data.Ndms;
using StructureHelperCommon.Models.Forces;
using StructureHelperCommon.Models.Sections;
using StructureHelperCommon.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using StructureHelperCommon.Models.Loggers;
namespace StructureHelperLogics.NdmCalculations.Buckling
{
public class ProcessEccentricity : IProcessorLogic<IForceTuple>
{
private IProcessorLogic<IForceTuple> eccentricityLogic;
public ICompressedMember CompressedMember { get; private set; }
public IEnumerable<INdm> Ndms { get; private set; }
public IShiftTraceLogger? TraceLogger { get; set; }
public IForceTuple InputForceTuple { get; set; }
private double sizeX;
private double sizeY;
public ProcessEccentricity(IProcessorLogic<IForceTuple> eccentricityLogic)
{
this.eccentricityLogic = eccentricityLogic;
}
public ProcessEccentricity(ICompressedMember compressedMember, IEnumerable<INdm> ndms, IForceTuple initialForceTuple)
{
CompressedMember = compressedMember;
Ndms = ndms;
InputForceTuple = initialForceTuple;
sizeX = ndms.Max(x => x.CenterX) - ndms.Min(x => x.CenterX);
sizeY = ndms.Max(x => x.CenterY) - ndms.Min(x => x.CenterY);
eccentricityLogic = new RcEccentricityLogic()
{
InputForceTuple = InputForceTuple,
Length = CompressedMember.GeometryLength,
SizeX = sizeX,
SizeY = sizeY,
};
}
public IForceTuple GetValue()
{
TraceLogger?.AddMessage(LoggerStrings.CalculatorType(this), TraceLogStatuses.Service);
TraceLogger?.AddMessage("Get eccentricity taking into account accidental eccentricity");
TraceLogger?.AddMessage(string.Format("Cross-section size along x-axis dx = {0}, along y-axis dy = {1}", sizeX, sizeY));
eccentricityLogic.TraceLogger = TraceLogger?.GetSimilarTraceLogger(50);
var newTuple = eccentricityLogic.GetValue();
return newTuple;
}
}
}