Change force tuple calculator result

This commit is contained in:
Evgeny Redikultsev
2025-11-04 21:16:06 +05:00
parent b28606003a
commit 111b60a08d
52 changed files with 314 additions and 375 deletions

View File

@@ -18,7 +18,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
{
public class ForceTupleCalcLogic : IForceTupleCalcLogic
{
private IForcesTupleResult result;
private IForceTupleCalculatorResult result;
private ForceTupleTraceResultLogic forceTupleTraceResultLogic;
private LoaderOptions loaderData;
private Calculator calculator;
@@ -27,7 +27,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
public IForceTupleInputData InputData { get; set; }
public IForcesTupleResult Result => result;
public IForceTupleCalculatorResult Result => result;
public IShiftTraceLogger? TraceLogger { get; set; }
public Action<IResult> ActionToOutputResults { get; set; }
@@ -40,7 +40,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
private void PrepareNewResult()
{
result = new ForcesTupleResult()
result = new ForceTupleCalculatorResult()
{
IsValid = true,
Description = string.Empty,
@@ -117,6 +117,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
private void ProcessCorrectLoaderResult()
{
result.IsValid = true;
result.ForceTuple = InputData.ForceTuple;
result.Description = LoggerStrings.CalculationHasDone;
result.LoaderResults = calcResult;
forceTupleTraceResultLogic = new ForceTupleTraceResultLogic(InputData.NdmCollection)

View File

@@ -24,11 +24,11 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
public void TraceResult(IResult result)
{
if (result is not IForcesTupleResult)
if (result is not IForceTupleCalculatorResult)
{
throw new StructureHelperException(ErrorStrings.ObjectTypeIsUnknownObj(result));
}
calcResult = ((IForcesTupleResult)result).LoaderResults;
calcResult = ((IForceTupleCalculatorResult)result).LoaderResults;
TraceLogger?.AddMessage($"Analysis of internal forces is done succsesfully");
TraceLogger?.AddMessage($"Current accuracy {calcResult.AccuracyRate} has achieved in {calcResult.IterationCounter} iteration", TraceLogStatuses.Debug);
var strainMatrix = calcResult.ForceStrainPair.StrainMatrix;

View File

@@ -11,7 +11,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
public interface IForceTupleCalcLogic: ILogic, IHasActionByResult
{
IForceTupleInputData InputData { get; set; }
IForcesTupleResult Result { get; }
IForceTupleCalculatorResult Result { get; }
void Calculate();
}
}

View File

@@ -10,6 +10,6 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
public interface IProcessTupleLogic : ILogic
{
IForceTupleInputData InputData { get; set; }
IForcesTupleResult ProcessNdmResult();
IForceTupleCalculatorResult ProcessNdmResult();
}
}

View File

@@ -2,6 +2,7 @@
using StructureHelperCommon.Models;
using StructureHelperCommon.Models.Calculators;
using StructureHelperCommon.Models.Forces;
using StructureHelperCommon.Models.States;
using StructureHelperLogics.Services.NdmCalculations;
using System.ComponentModel;
@@ -9,12 +10,13 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces.Logics
{
public class InterpolationProgressLogic : ILongProcessLogic
{
private ForceCalculator forceCalculator;
private IForceCalculator forceCalculator;
private IStateCalcTermPair stateCalcTermPair;
private InterpolateTuplesResult interpolateTuplesResult;
public Action<int> SetProgress { get; set; }
public ForceCalculator InterpolateCalculator { get; private set; }
public IForceCalculator InterpolateCalculator { get; private set; }
public bool Result { get; set; }
public int StepCount => interpolateTuplesResult.StepCount + 1;
@@ -23,7 +25,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces.Logics
public void WorkerDoWork(object sender, DoWorkEventArgs e)
{
InterpolateCalculator = InterpolateService.InterpolateForceCalculator(forceCalculator, interpolateTuplesResult);
InterpolateCalculator = InterpolateService.InterpolateForceCalculator(forceCalculator, stateCalcTermPair, interpolateTuplesResult);
InterpolateCalculator.ActionToOutputResults = ShowProgressResult;
InterpolateCalculator.Run();
}
@@ -38,17 +40,18 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces.Logics
//nothing to do
}
public InterpolationProgressLogic(ForceCalculator forceCalculator, InterpolateTuplesResult interpolateTuplesResult)
public InterpolationProgressLogic(IForceCalculator forceCalculator, IStateCalcTermPair stateCalcTermPair, InterpolateTuplesResult interpolateTuplesResult)
{
this.forceCalculator = forceCalculator;
this.stateCalcTermPair = stateCalcTermPair;
this.interpolateTuplesResult = interpolateTuplesResult;
}
private void ShowProgressResult(IResult result)
{
if (result is ForcesResults)
if (result is ForceCalculatorResult)
{
var forceResult = result as ForcesResults;
var forceResult = result as ForceCalculatorResult;
SetProgress?.Invoke(forceResult.ForcesResultList.Count());
Result = forceResult.IsValid;
}

View File

@@ -12,7 +12,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces
public IShiftTraceLogger? TraceLogger { get; set; }
IForceTupleInputData IProcessTupleLogic.InputData { get; set; }
public IForcesTupleResult ProcessNdmResult()
public IForceTupleCalculatorResult ProcessNdmResult()
{
throw new NotImplementedException();
}