Settting for prestress has been fixed

This commit is contained in:
Evgeny Redikultsev
2023-03-23 21:04:27 +05:00
parent 9e7962fc3f
commit a88fa40f29
23 changed files with 286 additions and 120 deletions

View File

@@ -0,0 +1,50 @@
using LoaderCalculator.Logics.ConcreteCalculations;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StructureHelperLogics.NdmCalculations.Analyses.RC
{
public class AnchorageCalculator : IAnchorageCalculator
{
private IAnchorageInputData inputData;
private IAnchorage anchorage;
public string Name { get; set; }
public AnchorageCalculator(IAnchorageInputData inputData)
{
this.inputData = inputData;
IAnchorageOptions anchorageOptions = GetAnchorageOptions();
anchorage = new AnchorageSP632018Rev3(anchorageOptions);
}
public double GetBaseDevLength()
{
return anchorage.GetBaseDevLength();
}
public double GetDevLength()
{
return anchorage.GetDevLength();
}
public double GetLapLength()
{
return anchorage.GetLapLength();
}
private IAnchorageOptions GetAnchorageOptions()
{
var anchorageOptions = new AnchorageOptionsSP63();
anchorageOptions.ConcreteStrength = inputData.ConcreteStrength;
anchorageOptions.ReinforcementStrength = inputData.ReinforcementStrength;
anchorageOptions.ReinforcementStress = inputData.ReinforcementStress;
anchorageOptions.CrossSectionArea = inputData.CrossSectionArea;
anchorageOptions.CrossSectionPerimeter = inputData.CrossSectionPerimeter;
anchorageOptions.LappedCountRate = inputData.LappedCountRate;
return anchorageOptions;
}
}
}

View File

@@ -0,0 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StructureHelperLogics.NdmCalculations.Analyses.RC
{
public class AnchorageInputData : IAnchorageInputData
{
public double ConcreteStrength { get; set; }
public double ReinforcementStrength { get; set; }
public double CrossSectionArea { get; set; }
public double CrossSectionPerimeter { get; set; }
public double ReinforcementStress { get; set; }
public double LappedCountRate { get; set; }
}
}

View File

@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StructureHelperLogics.NdmCalculations.Analyses.RC
{
public interface IAnchorageCalculator
{
double GetBaseDevLength();
double GetDevLength();
double GetLapLength();
}
}

View File

@@ -0,0 +1,19 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StructureHelperLogics.NdmCalculations.Analyses.RC
{
public interface IAnchorageInputData
{
double ConcreteStrength { get; set; }
double ReinforcementStrength { get; set; }
double CrossSectionArea { get; set; }
double CrossSectionPerimeter { get; set; }
double ReinforcementStress { get; set; }
double LappedCountRate { get; set; }
}
}

View File

@@ -6,8 +6,8 @@ using System.Threading.Tasks;
namespace StructureHelperLogics.NdmCalculations.Primitives
{
public interface IHasSurroundingPrimitive
public interface IHasHostPrimitive
{
INdmPrimitive? SurroundingPrimitive { get; set; }
INdmPrimitive? HostPrimitive { get; set; }
}
}

View File

@@ -16,7 +16,7 @@ using System.Windows.Media.Media3D;
namespace StructureHelperLogics.NdmCalculations.Primitives
{
/// <inheritdoc/>
public class ReinforcementPrimitive : IPointPrimitive, IHasSurroundingPrimitive
public class ReinforcementPrimitive : IPointPrimitive, IHasHostPrimitive
{
/// <inheritdoc/>
public string Name { get; set; }
@@ -36,7 +36,7 @@ namespace StructureHelperLogics.NdmCalculations.Primitives
public int Id { get; set; }
public double Area { get; set; }
public INdmPrimitive SurroundingPrimitive { get; set; }
public INdmPrimitive HostPrimitive { get; set; }
public ICrossSection? CrossSection { get; set; }
public ReinforcementPrimitive()
@@ -54,7 +54,7 @@ namespace StructureHelperLogics.NdmCalculations.Primitives
var primitive = new ReinforcementPrimitive();
NdmPrimitivesService.CopyNdmProperties(this, primitive);
primitive.Area = Area;
primitive.SurroundingPrimitive = SurroundingPrimitive;
primitive.HostPrimitive = HostPrimitive;
return primitive;
}

View File

@@ -15,7 +15,7 @@ namespace StructureHelperLogics.NdmCalculations.Triangulations
{
public static void SetPrestrain(IEnumerable<INdm> ndmCollection, IStrainTuple strainTuple)
{
NdmTransform.SetPrestrain(ndmCollection, new StrainMatrix() { Kx = strainTuple.Kx, Ky = strainTuple.Kx, EpsZ = strainTuple.Kx });
NdmTransform.SetPrestrain(ndmCollection, new StrainMatrix() { Kx = strainTuple.Kx, Ky = strainTuple.Ky, EpsZ = strainTuple.EpsZ });
}
public static void CommonTransform(IEnumerable<INdm> ndmCollection, IShapeTriangulationLogicOptions options)