Change curvature calculator
This commit is contained in:
@@ -11,18 +11,24 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
public class CrackForceBynarySearchCalculator : ICrackForceCalculator
|
||||
{
|
||||
private CrackForceResult result;
|
||||
private IIsSectionCrackedByFactorLogic crackedByFactorLogic;
|
||||
private ICheckInputDataLogic<ICrackForceCalculatorInputData> checkInputDataLogic;
|
||||
ExpSofteningLogic softeningLogic = new();
|
||||
static readonly CrackStrainLogic crackStrainLogic = new();
|
||||
static readonly SofteningFactorLogic softeningFactorLogic = new();
|
||||
IForceTupleCalculator forceTupleCalculator;
|
||||
private CrackForceResult result;
|
||||
private ExpSofteningLogic softeningLogic = new();
|
||||
private readonly CrackStrainLogic crackStrainLogic = new();
|
||||
private readonly SofteningFactorLogic softeningFactorLogic = new();
|
||||
private IForceTupleCalculator forceTupleCalculator = new ForceTupleCalculator();
|
||||
private FindParameterCalculator parameterCalculator;
|
||||
private IForceTupleServiceLogic forceTupleServiceLogic;
|
||||
private IForceTupleServiceLogic ForceTupleServiceLogic => forceTupleServiceLogic ??= new ForceTupleServiceLogic();
|
||||
|
||||
public string Name { get; set; }
|
||||
public ICrackForceCalculatorInputData InputData { get; set; }
|
||||
public Accuracy Accuracy { get; set; }
|
||||
public Accuracy Accuracy { get; set; } = new Accuracy()
|
||||
{
|
||||
IterationAccuracy = 0.0001d,
|
||||
MaxIterationCount = 10000
|
||||
};
|
||||
public IResult Result => result;
|
||||
|
||||
public IShiftTraceLogger? TraceLogger { get; set; }
|
||||
@@ -36,15 +42,11 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
this.crackedByFactorLogic = crackedByFactorLogic;
|
||||
this.checkInputDataLogic = checkInputDataLogic;
|
||||
Accuracy ??= new Accuracy()
|
||||
{
|
||||
IterationAccuracy = 0.0001d,
|
||||
MaxIterationCount = 10000
|
||||
};
|
||||
forceTupleCalculator = new ForceTupleCalculator();
|
||||
InputData = new CrackForceCalculatorInputData();
|
||||
}
|
||||
public CrackForceBynarySearchCalculator() : this(new IsSectionCrackedByFactorLogic(), new CheckCrackForceCalculatorInputDataLogic())
|
||||
public CrackForceBynarySearchCalculator() : this(
|
||||
new IsSectionCrackedByFactorLogic(),
|
||||
new CheckCrackForceCalculatorInputDataLogic())
|
||||
{
|
||||
|
||||
}
|
||||
@@ -54,17 +56,8 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
if (CheckInputData() == false) { return; }
|
||||
parameterCalculator = new FindParameterCalculator();
|
||||
parameterCalculator.InputData.Predicate = crackedByFactorLogic.IsSectionCracked;
|
||||
if (TraceLogger is not null)
|
||||
{
|
||||
forceTupleCalculator.TraceLogger = TraceLogger.GetSimilarTraceLogger(100);
|
||||
parameterCalculator.TraceLogger = TraceLogger.GetSimilarTraceLogger(50);
|
||||
crackedByFactorLogic.TraceLogger = TraceLogger.GetSimilarTraceLogger(150);
|
||||
}
|
||||
TraceLogger?.AddMessage($"Calculator type: {GetType()}", TraceLogStatuses.Service);
|
||||
TraceLogger?.AddMessage($"Start force combination");
|
||||
TraceLogger?.AddEntry(new TraceTablesFactory().GetByForceTuple(InputData.StartTuple));
|
||||
TraceLogger?.AddMessage($"Actual (end) force combination");
|
||||
TraceLogger?.AddEntry(new TraceTablesFactory().GetByForceTuple(InputData.EndTuple));
|
||||
SetCalculatorsTraceLoggers();
|
||||
TraceInputData();
|
||||
crackedByFactorLogic.IsSectionCrackedByForceLogic = new IsSectionCrackedByForceLogic()
|
||||
{
|
||||
CheckedNdmCollection = InputData.CheckedNdmCollection,
|
||||
@@ -74,24 +67,34 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
crackedByFactorLogic.EndTuple = InputData.EndTuple;
|
||||
try
|
||||
{
|
||||
CheckInputData();
|
||||
bool IsSectionCrackedInZeroForce = crackedByFactorLogic.IsSectionCracked(0d);
|
||||
if (IsSectionCrackedInZeroForce == true)
|
||||
{
|
||||
TraceLogger?.AddMessage($"Crack is appeared in start force combination", TraceLogStatuses.Warning);
|
||||
SectionCrackedAtStart();
|
||||
return;
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
result.IsValid = false;
|
||||
result.Description += ex;
|
||||
result.Description +="\n" + ex.Message;
|
||||
return;
|
||||
}
|
||||
if (crackedByFactorLogic.IsSectionCracked(0d) == true)
|
||||
try
|
||||
{
|
||||
TraceLogger?.AddMessage($"Crack is appeared in start force combination", TraceLogStatuses.Warning);
|
||||
SectionCrackedAtStart();
|
||||
return;
|
||||
bool isSectionCrackedUndefFullForce = crackedByFactorLogic.IsSectionCracked(1d);
|
||||
if (isSectionCrackedUndefFullForce == false)
|
||||
{
|
||||
TraceLogger?.AddMessage($"Crack is not appeared from actual (end) force combination", TraceLogStatuses.Warning);
|
||||
SectionIsNotCracked();
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (crackedByFactorLogic.IsSectionCracked(1d) == false)
|
||||
catch (Exception ex)
|
||||
{
|
||||
TraceLogger?.AddMessage($"Crack is not appeared from actual (end) force combination", TraceLogStatuses.Warning);
|
||||
SectionIsNotCracked();
|
||||
result.IsValid = false;
|
||||
result.Description += "\n" + ex.Message;
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -109,6 +112,22 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
}
|
||||
}
|
||||
|
||||
private void TraceInputData()
|
||||
{
|
||||
TraceLogger?.AddMessage($"Calculator type: {GetType()}", TraceLogStatuses.Service);
|
||||
TraceLogger?.AddMessage($"Start force combination");
|
||||
TraceLogger?.AddEntry(new TraceTablesFactory().GetByForceTuple(InputData.StartTuple));
|
||||
TraceLogger?.AddMessage($"Actual (end) force combination");
|
||||
TraceLogger?.AddEntry(new TraceTablesFactory().GetByForceTuple(InputData.EndTuple));
|
||||
}
|
||||
|
||||
private void SetCalculatorsTraceLoggers()
|
||||
{
|
||||
forceTupleCalculator.TraceLogger = TraceLogger?.GetSimilarTraceLogger(100);
|
||||
parameterCalculator.TraceLogger = TraceLogger?.GetSimilarTraceLogger(50);
|
||||
crackedByFactorLogic.TraceLogger = TraceLogger?.GetSimilarTraceLogger(150);
|
||||
}
|
||||
|
||||
private void PrepareNewResult()
|
||||
{
|
||||
result = new CrackForceResult();
|
||||
@@ -125,7 +144,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
}
|
||||
softeningLogic.ForceRatio = factorOfCrackAppearance;
|
||||
var psiS = softeningLogic.GetSofteningFactor();
|
||||
var tupleOfCrackApeearence = ForceTupleService.InterpolateTuples(InputData.StartTuple, InputData.EndTuple, factorOfCrackAppearance);
|
||||
var tupleOfCrackApeearence = ForceTupleServiceLogic.InterpolateTuples(InputData.StartTuple, InputData.EndTuple, factorOfCrackAppearance);
|
||||
TraceLogger?.AddMessage($"Crack is appeared in force combination");
|
||||
TraceLogger?.AddEntry(new TraceTablesFactory().GetByForceTuple(tupleOfCrackApeearence));
|
||||
var reducedStrainTuple = GetReducedStrainTuple(factorOfCrackAppearance, psiS);
|
||||
@@ -158,7 +177,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
private IForceTuple GetReducedStrainTuple(double factorOfCrackAppearance, double softeningFactor)
|
||||
{
|
||||
const double notCrackedForceFactor = 0.99d;
|
||||
var notCrackedForceTuple = ForceTupleService.InterpolateTuples(InputData.StartTuple, InputData.EndTuple, factorOfCrackAppearance * notCrackedForceFactor) as ForceTuple;
|
||||
var notCrackedForceTuple = ForceTupleServiceLogic.InterpolateTuples(InputData.StartTuple, InputData.EndTuple, factorOfCrackAppearance * notCrackedForceFactor) as ForceTuple;
|
||||
var crackAppearanceStrainTuple = GetStrainTuple(notCrackedForceTuple);
|
||||
var actualStrainTuple = GetStrainTuple(InputData.EndTuple);
|
||||
crackStrainLogic.BeforeCrackingTuple = crackAppearanceStrainTuple;
|
||||
|
||||
@@ -1,24 +1,18 @@
|
||||
using LoaderCalculator.Data.Ndms;
|
||||
using StructureHelperCommon.Models.Forces;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
/// <inheritdoc/>
|
||||
public class CrackForceCalculatorInputData : ICrackForceCalculatorInputData
|
||||
{
|
||||
public IForceTuple StartTuple { get; set; }
|
||||
public IForceTuple EndTuple { get; set; }
|
||||
/// <inheritdoc/>
|
||||
public IForceTuple StartTuple { get; set; } = new ForceTuple();
|
||||
/// <inheritdoc/>
|
||||
public IForceTuple EndTuple { get; set; } = new ForceTuple();
|
||||
/// <inheritdoc/>
|
||||
public IEnumerable<INdm> CheckedNdmCollection { get; set; }
|
||||
/// <inheritdoc/>
|
||||
public IEnumerable<INdm> SectionNdmCollection { get; set; }
|
||||
|
||||
public CrackForceCalculatorInputData()
|
||||
{
|
||||
StartTuple = new ForceTuple();
|
||||
EndTuple = new ForceTuple();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,13 +10,15 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
internal class CrackStrainLogic : ICrackStrainLogic
|
||||
{
|
||||
private IForceTupleServiceLogic forceTupleServiceLogic;
|
||||
private IForceTupleServiceLogic ForceTupleServiceLogic => forceTupleServiceLogic ??= new ForceTupleServiceLogic();
|
||||
public IForceTuple BeforeCrackingTuple { get; set; }
|
||||
public IForceTuple AfterCrackingTuple { get; set; }
|
||||
public double SofteningFactor { get; set; }
|
||||
|
||||
public IForceTuple GetCrackedStrainTuple()
|
||||
{
|
||||
var strainTuple = ForceTupleService.InterpolateTuples(BeforeCrackingTuple, AfterCrackingTuple, SofteningFactor) as StrainTuple;
|
||||
var strainTuple = ForceTupleServiceLogic.InterpolateTuples(BeforeCrackingTuple, AfterCrackingTuple, SofteningFactor) as StrainTuple;
|
||||
return strainTuple;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,14 +2,8 @@
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using StructureHelperCommon.Models;
|
||||
using StructureHelperCommon.Models.Loggers;
|
||||
using StructureHelperLogics.Models.Primitives;
|
||||
using StructureHelperLogics.NdmCalculations.Primitives;
|
||||
using StructureHelperLogics.Services.NdmPrimitives;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
@@ -17,29 +11,26 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
public class CrackedSectionTriangulationLogic : ICrackedSectionTriangulationLogic
|
||||
{
|
||||
const LimitStates limitState = LimitStates.SLS;
|
||||
const CalcTerms shortTerm = CalcTerms.ShortTerm;
|
||||
|
||||
private ITriangulatePrimitiveLogic triangulateLogic;
|
||||
private string ndmPrimitiveCountMessage;
|
||||
|
||||
public CalcTerms CalcTerm { get; set; }
|
||||
public IEnumerable<INdmPrimitive> NdmPrimitives { get; private set; }
|
||||
public IShiftTraceLogger? TraceLogger { get; set; }
|
||||
public CrackedSectionTriangulationLogic(IEnumerable<INdmPrimitive> ndmPrimitives)
|
||||
public CrackedSectionTriangulationLogic(IEnumerable<INdmPrimitive> ndmPrimitives, CalcTerms calcTerm)
|
||||
{
|
||||
NdmPrimitives = ndmPrimitives;
|
||||
CalcTerm = calcTerm;
|
||||
ndmPrimitiveCountMessage = $"Source collection containes {NdmPrimitives.Count()} primitives";
|
||||
triangulateLogic = new TriangulatePrimitiveLogic
|
||||
{
|
||||
Primitives = NdmPrimitives,
|
||||
LimitState = limitState,
|
||||
CalcTerm = shortTerm,
|
||||
CalcTerm = CalcTerm,
|
||||
TraceLogger = TraceLogger?.GetSimilarTraceLogger(50)
|
||||
};
|
||||
}
|
||||
public CrackedSectionTriangulationLogic()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/// <inheritdoc/>
|
||||
public List<INdm> GetNdmCollection()
|
||||
{
|
||||
@@ -48,7 +39,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
triangulateLogic = new TriangulatePrimitiveLogic()
|
||||
{
|
||||
LimitState = limitState,
|
||||
CalcTerm = shortTerm,
|
||||
CalcTerm = CalcTerm,
|
||||
Primitives = NdmPrimitives,
|
||||
TraceLogger = TraceLogger?.GetSimilarTraceLogger(50)
|
||||
};
|
||||
@@ -62,7 +53,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
triangulateLogic = new TriangulatePrimitiveLogic(new MeshCrackedConcreteLogic())
|
||||
{
|
||||
LimitState = limitState,
|
||||
CalcTerm = shortTerm,
|
||||
CalcTerm = CalcTerm,
|
||||
Primitives = NdmPrimitives,
|
||||
TraceLogger = TraceLogger?.GetSimilarTraceLogger(50)
|
||||
};
|
||||
@@ -95,7 +86,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
triangulateLogic = new TriangulatePrimitiveLogic(new MeshElasticLogic())
|
||||
{
|
||||
LimitState = limitState,
|
||||
CalcTerm = shortTerm,
|
||||
CalcTerm = CalcTerm,
|
||||
Primitives = NdmPrimitives,
|
||||
TraceLogger = TraceLogger?.GetSimilarTraceLogger(50)
|
||||
};
|
||||
|
||||
@@ -13,6 +13,8 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
public class IsSectionCrackedByFactorLogic : IIsSectionCrackedByFactorLogic
|
||||
{
|
||||
private IForceTupleServiceLogic forceTupleServiceLogic;
|
||||
private IForceTupleServiceLogic ForceTupleServiceLogic => forceTupleServiceLogic ??= new ForceTupleServiceLogic();
|
||||
public IIsSectionCrackedByForceLogic IsSectionCrackedByForceLogic { get; set; }
|
||||
public IForceTuple StartTuple { get; set; }
|
||||
public IForceTuple EndTuple { get; set; }
|
||||
@@ -31,7 +33,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
public bool IsSectionCracked(double factor)
|
||||
{
|
||||
IsSectionCrackedByForceLogic.TraceLogger ??= TraceLogger?.GetSimilarTraceLogger(50);
|
||||
var actualTuple = ForceTupleService.InterpolateTuples(StartTuple, EndTuple, factor);
|
||||
var actualTuple = ForceTupleServiceLogic.InterpolateTuples(StartTuple, EndTuple, factor);
|
||||
IsSectionCrackedByForceLogic.ForceTuple = actualTuple;
|
||||
return IsSectionCrackedByForceLogic.IsSectionCracked();
|
||||
}
|
||||
|
||||
@@ -1,14 +1,8 @@
|
||||
using LoaderCalculator.Data.Ndms;
|
||||
using StructureHelper.Models.Materials;
|
||||
using StructureHelperCommon.Models.Calculators;
|
||||
using StructureHelperCommon.Infrastructures.Enums;
|
||||
using StructureHelperCommon.Models.Forces;
|
||||
using StructureHelperLogics.NdmCalculations.Primitives;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
|
||||
|
||||
namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
@@ -21,10 +15,10 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
this.triangulationLogicLoc = triangulationLogicLoc;
|
||||
}
|
||||
|
||||
public RebarCrackInputDataFactory(TupleCrackInputData inputData) : this (new CrackedSectionTriangulationLogic(inputData.Primitives))
|
||||
{
|
||||
//public RebarCrackInputDataFactory(TupleCrackInputData inputData) : this (new CrackedSectionTriangulationLogic(inputData.Primitives))
|
||||
//{
|
||||
|
||||
}
|
||||
//}
|
||||
|
||||
public RebarCrackInputDataFactory()
|
||||
{
|
||||
@@ -45,7 +39,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
|
||||
rebarCopy = Rebar.Clone() as RebarNdmPrimitive;
|
||||
rebarCopy.NdmElement.HeadMaterial = rebarCopy.NdmElement.HeadMaterial.Clone() as IHeadMaterial;
|
||||
triangulationLogicLoc = new CrackedSectionTriangulationLogic(InputData.Primitives);
|
||||
triangulationLogicLoc = new CrackedSectionTriangulationLogic(InputData.Primitives, CalcTerms.ShortTerm);
|
||||
crackableNdmsLoc = triangulationLogicLoc.GetNdmCollection();
|
||||
crackedNdmsLoc = triangulationLogicLoc.GetCrackedNdmCollection();
|
||||
|
||||
|
||||
@@ -18,10 +18,8 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
{
|
||||
private const CalcTerms crackingTerm = CalcTerms.ShortTerm;
|
||||
private const LimitStates crackingLimitState = LimitStates.SLS;
|
||||
private ILengthBetweenCracksLogic lengthLogic;
|
||||
private TupleCrackResult result;
|
||||
private ICrackedSectionTriangulationLogic triangulationLogic;
|
||||
private ITupleRebarsCrackSolver solver;
|
||||
private List<IRebarNdmPrimitive>? rebarPrimitives;
|
||||
private IEnumerable<INdm> crackableNdms;
|
||||
private IEnumerable<INdm> crackedNdms;
|
||||
@@ -32,6 +30,11 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
private double longLength;
|
||||
private double shortLength;
|
||||
private ICheckInputDataLogic<TupleCrackInputData> checkInputDataLogic;
|
||||
private ILengthBetweenCracksLogic lengthLogic;
|
||||
private ITupleRebarsCrackSolver crackSolver;
|
||||
private ICheckInputDataLogic<TupleCrackInputData> CheckInputDataLogic => checkInputDataLogic ??= new CheckTupleCalculatorInputDataLogic();
|
||||
private ILengthBetweenCracksLogic LengthLogic => lengthLogic ??= new LengthBetweenCracksLogicSP63();
|
||||
private ITupleRebarsCrackSolver CrackSolver => crackSolver ??= new TupleRebarsCrackSolver();
|
||||
|
||||
public TupleCrackInputData InputData { get; set; }
|
||||
public IResult Result => result;
|
||||
@@ -46,16 +49,10 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
this.checkInputDataLogic = checkInputDataLogic;
|
||||
this.lengthLogic = lengthLogic;
|
||||
this.triangulationLogic = triangulationLogic;
|
||||
this.solver = solver;
|
||||
this.crackSolver = solver;
|
||||
}
|
||||
|
||||
public TupleCrackCalculator() : this (new CheckTupleCalculatorInputDataLogic(),
|
||||
new LengthBetweenCracksLogicSP63(),
|
||||
new CrackedSectionTriangulationLogic(),
|
||||
new TupleRebarsCrackSolver())
|
||||
{
|
||||
|
||||
}
|
||||
public TupleCrackCalculator() { }
|
||||
|
||||
public void Run()
|
||||
{
|
||||
@@ -139,19 +136,19 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
private void SolveRebarResult()
|
||||
{
|
||||
result.RebarResults.Clear();
|
||||
solver.Rebars = rebarPrimitives;
|
||||
solver.InputData = InputData;
|
||||
solver.LongLength = longLength;
|
||||
solver.ShortLength = shortLength;
|
||||
solver.TraceLogger = TraceLogger?.GetSimilarTraceLogger(0);
|
||||
solver.Run();
|
||||
if (solver.IsResultValid == false)
|
||||
CrackSolver.Rebars = rebarPrimitives;
|
||||
CrackSolver.InputData = InputData;
|
||||
CrackSolver.LongLength = longLength;
|
||||
CrackSolver.ShortLength = shortLength;
|
||||
CrackSolver.TraceLogger = TraceLogger?.GetSimilarTraceLogger(0);
|
||||
CrackSolver.Run();
|
||||
if (CrackSolver.IsResultValid == false)
|
||||
{
|
||||
result.IsValid = false;
|
||||
result.Description += solver.Description;
|
||||
result.Description += CrackSolver.Description;
|
||||
return;
|
||||
}
|
||||
result.RebarResults.AddRange(solver.Result);
|
||||
result.RebarResults.AddRange(CrackSolver.Result);
|
||||
}
|
||||
|
||||
private StrainTuple CalcStrainMatrix(ForceTuple forceTuple, IEnumerable<INdm> ndms)
|
||||
@@ -181,15 +178,15 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
|
||||
private double GetLengthBetweenCracks(StrainTuple strainTuple)
|
||||
{
|
||||
lengthLogic.NdmCollection = elasticNdms;
|
||||
lengthLogic.TraceLogger = TraceLogger;
|
||||
lengthLogic.StrainMatrix = ForceTupleConverter.ConvertToLoaderStrainMatrix(strainTuple);
|
||||
return lengthLogic.GetLength();
|
||||
LengthLogic.NdmCollection = elasticNdms;
|
||||
LengthLogic.TraceLogger = TraceLogger;
|
||||
LengthLogic.StrainMatrix = ForceTupleConverter.ConvertToLoaderStrainMatrix(strainTuple);
|
||||
return LengthLogic.GetLength();
|
||||
}
|
||||
|
||||
private void Triangulate()
|
||||
{
|
||||
triangulationLogic = new CrackedSectionTriangulationLogic(InputData.Primitives)
|
||||
triangulationLogic = new CrackedSectionTriangulationLogic(InputData.Primitives, crackingTerm)
|
||||
{
|
||||
//TraceLogger = TraceLogger?.GetSimilarTraceLogger(50)
|
||||
};
|
||||
@@ -201,12 +198,12 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
|
||||
|
||||
private bool CheckInputData()
|
||||
{
|
||||
checkInputDataLogic.InputData = InputData;
|
||||
if (checkInputDataLogic.Check() == false)
|
||||
CheckInputDataLogic.InputData = InputData;
|
||||
if (CheckInputDataLogic.Check() == false)
|
||||
{
|
||||
result.IsValid = false;
|
||||
result.Description += checkInputDataLogic.CheckResult;
|
||||
TraceLogger?.AddMessage($"Input data is not correct: {checkInputDataLogic.CheckResult}", TraceLogStatuses.Error);
|
||||
result.Description += CheckInputDataLogic.CheckResult;
|
||||
TraceLogger?.AddMessage($"Input data is not correct: {CheckInputDataLogic.CheckResult}", TraceLogStatuses.Error);
|
||||
return false;
|
||||
};
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user