View of tuple crack result was changed

This commit is contained in:
Evgeny Redikultsev
2024-05-26 14:05:02 +05:00
parent d13304fe06
commit 0913ca85b7
13 changed files with 92 additions and 23 deletions

View File

@@ -16,7 +16,9 @@ namespace StructureHelperLogics.Models.Templates.CrossSections
TraceLogger = new ShiftTraceLogger()
};
calculators.Add(forceCalculator);
var crackCalculator = new CrackCalculator(new CrackInputData())
CrackInputData newInputData = new CrackInputData();
var checkLogic = new CheckCrackCalculatorInputDataLogic(newInputData);
var crackCalculator = new CrackCalculator(newInputData, checkLogic)
{
Name = "New Crack Calculator",
TraceLogger = new ShiftTraceLogger()

View File

@@ -30,14 +30,17 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
public IResult Result => result;
public IShiftTraceLogger? TraceLogger { get; set; }
public CrackCalculator(CrackInputData inputData)
public CrackCalculator(CrackInputData inputData, ICheckInputDataLogic checkInputDataLogic)
{
InputData = inputData;
this.checkInputDataLogic = checkInputDataLogic;
}
public object Clone()
{
var newItem = new CrackCalculator(new CrackInputData());
CrackInputData crackInputData = new CrackInputData();
var checkDataLogic = new CheckCrackCalculatorInputDataLogic(InputData);
var newItem = new CrackCalculator(crackInputData, checkDataLogic);
updateStrategy.Update(newItem, this);
return newItem;
}
@@ -62,10 +65,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
private void CheckInputData()
{
checkInputDataLogic = new CheckCrackCalculatorInputDataLogic(InputData)
{
TraceLogger = TraceLogger?.GetSimilarTraceLogger(50)
};
checkInputDataLogic.TraceLogger = TraceLogger?.GetSimilarTraceLogger(50);
if (checkInputDataLogic.Check() == false)
{
result.IsValid = false;

View File

@@ -20,10 +20,10 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
TraceLogger?.AddMessage(LoggerStrings.CalculatorType(this), TraceLogStatuses.Service);
TraceLogger?.AddMessage("Method of crack width calculation based on SP 63.13330.2018");
CheckOptions();
TraceLogger?.AddMessage($"Term factor fi1= {inputData.TermFactor}", TraceLogStatuses.Service);
TraceLogger?.AddMessage($"Bond factor fi2= {inputData.BondFactor}", TraceLogStatuses.Service);
TraceLogger?.AddMessage($"Stress state factor fi3= {inputData.StressStateFactor}", TraceLogStatuses.Service);
TraceLogger?.AddMessage($"PsiS factor PsiS= {inputData.PsiSFactor}", TraceLogStatuses.Service);
TraceLogger?.AddMessage($"Term factor fi1 = {inputData.TermFactor}", TraceLogStatuses.Service);
TraceLogger?.AddMessage($"Bond factor fi2 = {inputData.BondFactor}", TraceLogStatuses.Service);
TraceLogger?.AddMessage($"Stress state factor fi3 = {inputData.StressStateFactor}", TraceLogStatuses.Service);
TraceLogger?.AddMessage($"PsiS factor PsiS = {inputData.PsiSFactor}", TraceLogStatuses.Service);
TraceLogger?.AddMessage($"Length between cracks Ls = {inputData.Length}", TraceLogStatuses.Service);
//check if strain of concrete greater than strain of rebar
double rebarElongation = inputData.RebarStrain - inputData.ConcreteStrain;
@@ -49,26 +49,26 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
inputData = InputData as CrackWidthLogicInputDataSP63;
if (inputData.Length <=0d)
{
errorString = ErrorStrings.DataIsInCorrect + $": length between cracks Ls={inputData.Length} must be greate than zero";
errorString = ErrorStrings.DataIsInCorrect + $": length between cracks Lcrc={inputData.Length} must be greater than zero";
}
if (inputData.TermFactor <= 0d)
{
errorString = ErrorStrings.DataIsInCorrect + $": Term factor fi1 {inputData.TermFactor} must be greate than zero";
errorString = ErrorStrings.DataIsInCorrect + $": Term factor fi1 {inputData.TermFactor} must be greater than zero";
}
if (inputData.BondFactor <= 0d)
{
errorString = ErrorStrings.DataIsInCorrect + $": Bond factor fi2 {inputData.BondFactor} must be greate than zero";
errorString = ErrorStrings.DataIsInCorrect + $": Bond factor fi2 {inputData.BondFactor} must be greater than zero";
}
if (inputData.StressStateFactor <= 0d)
{
errorString = ErrorStrings.DataIsInCorrect + $": Stress factor fi3 factor {inputData.StressStateFactor} must be greate than zero";
errorString = ErrorStrings.DataIsInCorrect + $": Stress factor fi3 factor {inputData.StressStateFactor} must be greater than zero";
}
if (inputData.PsiSFactor <= 0d)
{
errorString = ErrorStrings.DataIsInCorrect + $": PsiS factor {inputData.PsiSFactor} must be greate than zero";
errorString = ErrorStrings.DataIsInCorrect + $": PsiS factor {inputData.PsiSFactor} must be greater than zero";
}
if (errorString != string.Empty)
{

View File

@@ -47,7 +47,8 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
{
CrackWidth = acrc1,
UltimateCrackWidth = InputData.UserCrackInputData.UltimateLongCrackWidth,
RebarStressResult = rebarStressResult
RebarStressResult = rebarStressResult,
SofteningFactor = crackSofteningLogic.GetSofteningFactor()
};
TraceLogger?.AddMessage($"Long crack width acrc = acrc,1 = {acrc1}(m)");
TraceLogger?.AddMessage($"Ultimate long crack width acrc,ult = {longRebarResult.UltimateCrackWidth}(m)");
@@ -69,7 +70,8 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
{
CrackWidth = acrcShort,
UltimateCrackWidth = InputData.UserCrackInputData.UltimateShortCrackWidth,
RebarStressResult = rebarStressResult
RebarStressResult = rebarStressResult,
SofteningFactor = crackSofteningLogic.GetSofteningFactor()
};
TraceCrackResult(shortRebarResult);
result.LongTermResult = longRebarResult;

View File

@@ -39,7 +39,7 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
.Sum(x => x.Area * x.StressScale);
TraceLogger?.AddMessage($"Concrete area Ac = {concreteArea}");
var concreteTensileArea = concreteCollection
.Where(x => stressLogic.GetTotalStrainWithPrestrain(StrainMatrix, x) > 0d)
.Where(x => stressLogic.GetTotalStrain(StrainMatrix, x) > 0d)
.Sum(x => x.Area * x.StressScale);
TraceLogger?.AddMessage($"Concrete tensile area Ac,t = {concreteTensileArea}");