Table log Entry was added

This commit is contained in:
Evgeny Redikultsev
2024-01-27 13:39:48 +05:00
parent 236c7928a0
commit a9ffd8b903
39 changed files with 675 additions and 64 deletions

View File

@@ -26,7 +26,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
public IAccuracy Accuracy { get; set; }
public List<IForceCombinationList> ForceCombinationLists { get; private set; }
public Action<IResult> ActionToOutputResults { get; set; }
public ITraceLogger? TraceLogger { get; set; }
public IShiftTraceLogger? TraceLogger { get; set; }
public void Run()
{

View File

@@ -14,7 +14,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
public IResult Result { get; private set; }
public Action<IResult> ActionToOutputResults { get; set; }
public ITraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public IShiftTraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public ForceTupleCalculator(IForceTupleInputData inputData)
{

View File

@@ -23,6 +23,6 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
/// <param name="points"></param>
/// <returns></returns>
List<IPoint2D> GetPoints(IEnumerable<IPoint2D> points);
ITraceLogger? TraceLogger { get; set; }
IShiftTraceLogger? TraceLogger { get; set; }
}
}

View File

@@ -17,6 +17,6 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
Predicate<Point2D> LimitPredicate { get; set; }
IPoint2D CurrentPoint { get; set; }
double GetParameter();
ITraceLogger? TraceLogger { get; set; }
IShiftTraceLogger? TraceLogger { get; set; }
}
}

View File

@@ -26,7 +26,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
public IResult Result => result;
public Action<IResult> ActionToOutputResults { get; set; }
public ITraceLogger? TraceLogger { get; set; }
public IShiftTraceLogger? TraceLogger { get; set; }
public LimitCurveCalculator(ILimitCurveLogic limitCurveLogic)
{
@@ -47,7 +47,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
public void Run()
{
if (TraceLogger is not null) { limitCurveLogic.TraceLogger = TraceLogger; }
if (TraceLogger is not null) { limitCurveLogic.TraceLogger = TraceLogger.GetSimilarTraceLogger(50); }
TraceLogger?.AddMessage($"Calculator type: {GetType()}", TraceLoggerStatuses.Service);
TraceLogger?.AddMessage($"Start solution in calculator {Name}");
result = new LimitCurveResult();
@@ -58,11 +58,19 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
TraceLogger?.AddMessage($"Point count {PointCount}");
surroundList = SurroundProcLogic.GetPoints();
TraceLogger?.AddMessage($"There are {surroundList.Count()} point prepared for calculation");
if (TraceLogger is not null)
{
AddTAbleToTraceLoggerByPoints(surroundList);
}
try
{
limitCurveLogic.ActionToOutputResults = GetCurrentStepNumber;
factoredList = limitCurveLogic.GetPoints(surroundList);
TraceLogger?.AddMessage($"Solution was successfully obtained for {factoredList.Count()} point");
if (TraceLogger is not null)
{
AddTAbleToTraceLoggerByPoints(factoredList);
}
result.Points = factoredList;
}
catch (Exception ex)
@@ -73,6 +81,13 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
}
}
private void AddTAbleToTraceLoggerByPoints(IEnumerable<IPoint2D> pointList)
{
var table = TraceLoggerTableByPointsFactory.GetTableByPoint2D(pointList);
table.Priority = LoggerService.GetPriorityByStatus(TraceLoggerStatuses.Info) + TraceLogger.ShiftPriority;
TraceLogger.AddEntry(table);
}
private void GetCurrentStepNumber(IResult calcResult)
{
if (calcResult is not FindParameterResult)

View File

@@ -18,7 +18,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
private object lockObject = new object();
public Action<IResult> ActionToOutputResults { get; set; }
public ITraceLogger? TraceLogger { get; set; }
public IShiftTraceLogger? TraceLogger { get; set; }
public LimitCurveLogic(ILimitCurveParameterLogic parameterLogic)
{
@@ -89,7 +89,10 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
{
var localCurrentPoint = point.Clone() as IPoint2D;
var logic = ParameterLogic.Clone() as ILimitCurveParameterLogic;
logic.TraceLogger = new TraceLogger();
logic.TraceLogger = new ShiftTraceLogger()
{
ShiftPriority=100
};
logic.CurrentPoint = localCurrentPoint;
logic.LimitPredicate = limitPredicate;
double parameter;

View File

@@ -16,7 +16,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
public Predicate<Point2D> LimitPredicate { get; set; }
public IPoint2D CurrentPoint { get; set; }
public Action<IResult> ActionToOutputResults { get; set; }
public ITraceLogger? TraceLogger { get; set; }
public IShiftTraceLogger? TraceLogger { get; set; }
public LimitCurveParameterLogic()
{
@@ -29,7 +29,10 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
{
Predicate = GetFactorPredicate,
};
if (TraceLogger is not null) { parameterCalculator.TraceLogger = TraceLogger; }
if (TraceLogger is not null)
{
parameterCalculator.TraceLogger = TraceLogger;
}
parameterCalculator.Accuracy.IterationAccuracy = 0.001d;
parameterCalculator.Run();
if (parameterCalculator.Result.IsValid == false)
@@ -38,8 +41,11 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
}
result = parameterCalculator.Result as FindParameterResult;
var parameter = result.Parameter;
if (parameter < 0.1d)
var limitparamValue = 0.1d;
if (parameter < limitparamValue)
{
var newAccuracy = limitparamValue / 10d;
TraceLogger?.AddMessage($"Since current parameter value {parameter} has a low accuracy (less than {limitparamValue}) new parameter calculatin is started", TraceLoggerStatuses.Warning);
parameterCalculator.Accuracy.IterationAccuracy = 0.0001d;
parameterCalculator.Run();
result = parameterCalculator.Result as FindParameterResult;

View File

@@ -30,7 +30,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
public IResult Result => result;
public Action<IResult> ActionToOutputResults { get; set; }
public ITraceLogger? TraceLogger { get; set; }
public IShiftTraceLogger? TraceLogger { get; set; }
public LimitCurvesCalculator()
{
@@ -90,7 +90,10 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
{
string calcName = $"{primitiveSeries.Name}_{predicateEntry.Name}_{limitState}_{calcTerm}";
LimitCurveCalculator calculator = GetCalculator(ndms, predicateEntry.PredicateType, calcName);
if (TraceLogger is not null) { calculator.TraceLogger = TraceLogger; }
if (TraceLogger is not null)
{
calculator.TraceLogger = TraceLogger.GetSimilarTraceLogger(50);
}
calculators.Add(calculator);
}
}

View File

@@ -12,7 +12,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
public class StabLimitCurveLogic : ILimitCurveLogic
{
public Action<IResult> ActionToOutputResults { get; set; }
public ITraceLogger? TraceLogger { get; set; }
public IShiftTraceLogger? TraceLogger { get; set; }
public List<IPoint2D> GetPoints(IEnumerable<IPoint2D> points)
{

View File

@@ -24,7 +24,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces.Logics
public int StepCount => interpolateTuplesResult.StepCount + 1;
public ITraceLogger? TraceLogger { get; set; }
public IShiftTraceLogger? TraceLogger { get; set; }
public void WorkerDoWork(object sender, DoWorkEventArgs e)
{

View File

@@ -20,7 +20,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.Geometry
public IResult Result => geometryResult;
public Action<IResult> ActionToOutputResults { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public ITraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public IShiftTraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public GeometryCalculator(IEnumerable<INdm> ndms, IStrainMatrix strainMatrix)
{

View File

@@ -29,7 +29,7 @@ namespace StructureHelperLogics.NdmCalculations.Buckling
public IAccuracy Accuracy { get; set; }
public Action<IResult> ActionToOutputResults { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public ITraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public IShiftTraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
private (double EtaAlongX, double EtaAlongY) GetBucklingCoefficients()
{

View File

@@ -31,7 +31,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
public Accuracy Accuracy {get;set; }
public IResult Result => result;
public ITraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public IShiftTraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public CrackForceCalculator(IForceTupleCalculator forceTupleCalculator)
{

View File

@@ -25,7 +25,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
public CrackWidthCalculatorInputData InputData { get; set; }
public IResult Result => result;
public ITraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public IShiftTraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public void Run()
{

View File

@@ -17,7 +17,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
public IResult Result => result;
public Action<IResult> ActionToOutputResults { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public ITraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public IShiftTraceLogger? TraceLogger { get => throw new NotImplementedException(); set => throw new NotImplementedException(); }
public void Run()
{