Options for primitive series in limit curves were added

This commit is contained in:
Evgeny Redikultsev
2024-01-20 15:12:07 +05:00
parent d0f3ead51f
commit 3a1cf5fa71
40 changed files with 480 additions and 328 deletions

View File

@@ -1,6 +1,7 @@
using StructureHelperCommon.Infrastructures.Enums;
using StructureHelperCommon.Models.Calculators;
using StructureHelperCommon.Models.Forces;
using StructureHelperCommon.Models.Parameters;
using StructureHelperCommon.Models.Shapes;
using StructureHelperLogics.NdmCalculations.Primitives;
using System;
@@ -18,7 +19,7 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces.LimitCurve
{
public List<LimitStates> LimitStates { get; }
public List<CalcTerms> CalcTerms { get; }
public List<INdmPrimitive> Primitives { get; set; }
public List<NamedCollection<INdmPrimitive>> PrimitiveSeries {get;}
public List<PredicateEntry> PredicateEntries { get; }
public SurroundData SurroundData { get; set; }
public int PointCount { get; set; }
@@ -26,10 +27,20 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces.LimitCurve
{
LimitStates = new();
CalcTerms = new();
Primitives = new();
PredicateEntries = new();
SurroundData = new();
PointCount = 80;
PrimitiveSeries = new List<NamedCollection<INdmPrimitive>>();
}
public LimitCurveInputData(IEnumerable<INdmPrimitive> primitives) : this()
{
PrimitiveSeries.Add
(new NamedCollection<INdmPrimitive>()
{
Name = "V1",
Collection = primitives.ToList()
}
);
}
}
}

View File

@@ -64,16 +64,19 @@ namespace StructureHelperLogics.NdmCalculations.Analyses.ByForces.LimitCurve
private List<ILimitCurveCalculator> GetCalulators()
{
List<ILimitCurveCalculator> calculators = new();
foreach (var limitState in InputData.LimitStates)
foreach (var primitiveSeries in InputData.PrimitiveSeries)
{
foreach (var calcTerm in InputData.CalcTerms)
foreach (var limitState in InputData.LimitStates)
{
var ndms = NdmPrimitivesService.GetNdms(InputData.Primitives, limitState, calcTerm);
foreach (var predicateEntry in InputData.PredicateEntries)
foreach (var calcTerm in InputData.CalcTerms)
{
string calcName = $"{predicateEntry.Name}_{limitState}_{calcTerm}";
LimitCurveCalculator calculator = GetCalculator(ndms, predicateEntry.PredicateType, calcName);
calculators.Add(calculator);
var ndms = NdmPrimitivesService.GetNdms(primitiveSeries.Collection, limitState, calcTerm);
foreach (var predicateEntry in InputData.PredicateEntries)
{
string calcName = $"{primitiveSeries.Name}_{predicateEntry.Name}_{limitState}_{calcTerm}";
LimitCurveCalculator calculator = GetCalculator(ndms, predicateEntry.PredicateType, calcName);
calculators.Add(calculator);
}
}
}
}