Add cylinders to 3dLogic

This commit is contained in:
Evgeny Redikultsev
2025-12-06 20:30:51 +05:00
parent 7594872a41
commit 70bfd065c4
32 changed files with 459 additions and 184 deletions

View File

@@ -5,7 +5,6 @@ using StructureHelperCommon.Models;
using StructureHelperCommon.Models.Calculators;
using StructureHelperCommon.Models.Forces;
using StructureHelperLogics.NdmCalculations.Analyses.ByForces;
using System.Diagnostics.Eventing.Reader;
namespace StructureHelperLogics.NdmCalculations.Cracking
{
@@ -46,7 +45,8 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
}
var strainMatrix = calcResult.LoaderResults.ForceStrainPair.StrainMatrix;
IEnumerable<INdm> checkedNdmCollection;
var isSectionCracked = stressLogic.IsSectionCracked(strainMatrix, CheckedNdmCollection);
var crackLogic = new CrackedSectionLogic();
var isSectionCracked = crackLogic.IsSectionCracked(strainMatrix, CheckedNdmCollection);
if (isSectionCracked == true)
{
TraceLogger?.AddMessage($"Cracks are appeared in cross-section for current force combination");

View File

@@ -1,4 +1,5 @@
using LoaderCalculator.Data.Ndms;
using LoaderCalculator;
using LoaderCalculator.Data.Ndms;
using LoaderCalculator.Logics;
using StructureHelperCommon.Infrastructures.Enums;
using StructureHelperCommon.Infrastructures.Exceptions;
@@ -9,6 +10,7 @@ using StructureHelperCommon.Services.Forces;
using StructureHelperLogics.NdmCalculations.Analyses.ByForces;
using StructureHelperLogics.NdmCalculations.Primitives;
using StructureHelperLogics.NdmCalculations.Triangulations;
using System.Runtime.Intrinsics.Arm;
namespace StructureHelperLogics.NdmCalculations.Cracking
{
@@ -63,7 +65,9 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
var strainMatrix = ForceTupleConverter.ConvertToLoaderStrainMatrix(strainTuple);
result.RebarStrain = stressLogic.GetSectionStrain(strainMatrix, rebarNdm);
result.RebarStress = stressLogic.GetStress(strainMatrix, rebarNdm);
result.ConcreteStrain = -concreteNdm.PrestrainLogic.GetAll().Sum(x => x.PrestrainValue);
var prestrainLogic = new GetNdmPrestrainLogic();
var prestrainValue = prestrainLogic.GetPrestrainValueAtCenter(concreteNdm);
result.ConcreteStrain = - prestrainValue;
}
private void PrepareNewResult()

View File

@@ -1,4 +1,5 @@
using LoaderCalculator.Data.Ndms;
using LoaderCalculator;
using LoaderCalculator.Data.Ndms;
using LoaderCalculator.Logics;
using StructureHelperCommon.Infrastructures.Enums;
using StructureHelperCommon.Infrastructures.Exceptions;
@@ -13,6 +14,7 @@ using StructureHelperLogics.NdmCalculations.Triangulations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Intrinsics.Arm;
using System.Text;
using System.Threading.Tasks;
@@ -107,10 +109,8 @@ namespace StructureHelperLogics.NdmCalculations.Cracking
rebarActualStrain = actualRebarResult.RebarStrain;
rebarActualStress = actualRebarResult.RebarStress;
TraceLogger?.AddMessage($"Actual strain of rebar EpsilonS = {rebarActualStrain}(dimensionless)");
concreteStrainActual = concreteNdm
.PrestrainLogic
.GetAll()
.Sum(x => x.PrestrainValue);
var prestrainLogic = new GetNdmPrestrainLogic();
concreteStrainActual = prestrainLogic.GetPrestrainValueAtCenter(concreteNdm);
TraceLogger?.AddMessage($"Actual strain of concrete on the axis of rebar EpsilonC = {concreteStrainActual}(dimensionless)");
if (crackResult.IsSectionCracked == false)
{