Templates was added

This commit is contained in:
Evgeny Redikultsev
2022-11-13 15:46:50 +05:00
parent ba609091aa
commit 1e98e2cc57
20 changed files with 550 additions and 161 deletions

View File

@@ -14,6 +14,7 @@ using StructureHelperLogics.Models.Materials;
using StructureHelperLogics.Models.Materials.Factories;
using StructureHelperLogics.NdmCalculations.Triangulations;
using StructureHelperLogics.Services;
using StructureHelperLogics.Services.NdmCalculations;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
@@ -48,19 +49,21 @@ namespace StructureHelper.Windows.MainWindow
HeadMaterialRepository.LibMaterials = LibMaterialFactory.GetLibMaterials(code);
}
public IStrainMatrix Calculate(double mx, double my, double nz)
{
var unitSystem = unitSystemService.GetCurrentSystem();
return calculationService.GetPrimitiveStrainMatrix(primitiveRepository.Primitives.Select(x => x.GetNdmPrimitive(unitSystem)).ToArray(), mx, my, nz);
}
//public IStrainMatrix Calculate(double mx, double my, double nz)
//{
// var unitSystem = unitSystemService.GetCurrentSystem();
// return calculationService.GetPrimitiveStrainMatrix(primitiveRepository.Primitives.Select(x => x.GetNdmPrimitive(unitSystem)).ToArray(),
// mx, my, nz,
// CalculationProperty.LimitState, CalculationProperty.CalcTerm);
//}
public IEnumerable<INdm> GetNdms()
public IEnumerable<INdm> GetNdms(ICalculationProperty calculationProperty)
{
var unitSystem = unitSystemService.GetCurrentSystem();
var ndmPrimitives = primitiveRepository.Primitives.Select(x => x.GetNdmPrimitive(unitSystem)).ToArray();
//Настройки триангуляции, пока опции могут быть только такие
ITriangulationOptions options = new TriangulationOptions { LimiteState = LimitStates.Collapse, CalcTerm = CalcTerms.ShortTerm };
ITriangulationOptions options = new TriangulationOptions { LimiteState = calculationProperty.LimitState, CalcTerm = calculationProperty.CalcTerm };
//Формируем коллекцию элементарных участков для расчета в библитеке (т.е. выполняем триангуляцию)
List<INdm> ndmCollection = new List<INdm>();
@@ -69,21 +72,21 @@ namespace StructureHelper.Windows.MainWindow
return ndmCollection;
}
public ILoaderResults CalculateResult(IEnumerable<INdm> ndmCollection, IForceMatrix forceMatrix)
{
var loaderData = new LoaderOptions
{
Preconditions = new Preconditions
{
ConditionRate = 0.01,
MaxIterationCount = 100,
StartForceMatrix = forceMatrix
},
NdmCollection = ndmCollection
};
var calculator = new Calculator();
calculator.Run(loaderData, new CancellationToken());
return calculator.Result;
}
//public ILoaderResults CalculateResult(IEnumerable<INdm> ndmCollection, IForceMatrix forceMatrix)
//{
// var loaderData = new LoaderOptions
// {
// Preconditions = new Preconditions
// {
// ConditionRate = 0.01,
// MaxIterationCount = 100,
// StartForceMatrix = forceMatrix
// },
// NdmCollection = ndmCollection
// };
// var calculator = new Calculator();
// calculator.Run(loaderData, new CancellationToken());
// return calculator.Result;
//}
}
}