Change curvature calculator
This commit is contained in:
@@ -20,6 +20,8 @@ namespace StructureHelperLogics.Models.BeamShears
|
||||
private IDirectShearForceLogicInputData inputData;
|
||||
private ISumForceByShearLoadLogic summaryForceLogic;
|
||||
private ICheckInputDataLogic<IDirectShearForceLogicInputData> checkInputDataLogic;
|
||||
private IForceTupleServiceLogic forceTupleServiceLogic;
|
||||
private IForceTupleServiceLogic ForceTupleServiceLogic => forceTupleServiceLogic ??= new ForceTupleServiceLogic();
|
||||
|
||||
/// <inheritdoc/>
|
||||
public IShiftTraceLogger? TraceLogger { get; set; }
|
||||
@@ -38,7 +40,7 @@ namespace StructureHelperLogics.Models.BeamShears
|
||||
Check();
|
||||
IForceTuple externalTuple = CalculateExternalForceTuple();
|
||||
IForceTuple internalTuple = CalculateInternalForceTuple();
|
||||
IForceTuple totalTuple = ForceTupleService.SumTuples(internalTuple, externalTuple);
|
||||
IForceTuple totalTuple = ForceTupleServiceLogic.SumTuples(internalTuple, externalTuple);
|
||||
TraceLogger?.AddMessage($"Total longitudinal force = {totalTuple.Nz}(N)");
|
||||
TraceLogger?.AddMessage($"Total shear force = {totalTuple.Qy}(N)");
|
||||
return totalTuple;
|
||||
@@ -83,7 +85,7 @@ namespace StructureHelperLogics.Models.BeamShears
|
||||
TraceLogger?.AddMessage($"End of inclined section a,end = {inputData.InclinedSection.EndCoord}(m)");
|
||||
ForceTuple summarySpanShearForce = GetSummarySpanShearForce(beamShearAxisAction.ShearLoads);
|
||||
TraceLogger?.AddMessage($"Summary span shear force deltaQ = {summarySpanShearForce.Qy}(N)");
|
||||
IForceTuple shearForce = ForceTupleService.SumTuples(supportShearForce, summarySpanShearForce);
|
||||
IForceTuple shearForce = ForceTupleServiceLogic.SumTuples(supportShearForce, summarySpanShearForce);
|
||||
TraceLogger?.AddMessage($"Summary shear force at the end of inclined section Q = {shearForce.Qy}(N)");
|
||||
return shearForce;
|
||||
}
|
||||
@@ -94,7 +96,7 @@ namespace StructureHelperLogics.Models.BeamShears
|
||||
foreach (var spanLoad in spanLoads)
|
||||
{
|
||||
IForceTuple summarySpanLoad = summaryForceLogic.GetSumShearForce(spanLoad, inputData.InclinedSection.StartCoord, inputData.InclinedSection.EndCoord);
|
||||
ForceTupleService.SumTupleToTarget(summarySpanLoad, summarySpanShearForce);
|
||||
ForceTupleServiceLogic.SumTupleToTarget(summarySpanLoad, summarySpanShearForce);
|
||||
}
|
||||
return summarySpanShearForce;
|
||||
}
|
||||
|
||||
@@ -10,7 +10,9 @@ namespace StructureHelperLogics.Models.BeamShears
|
||||
{
|
||||
private IGetLoadFactor getFactorLogic;
|
||||
private IGetDirectShearForceLogic getDirectShearForceLogic;
|
||||
|
||||
private IForceTupleServiceLogic forceTupleServiceLogic;
|
||||
private IForceTupleServiceLogic ForceTupleServiceLogic => forceTupleServiceLogic ??= new ForceTupleServiceLogic();
|
||||
|
||||
public IShearForceLogicInputData InputData { get;}
|
||||
public IShiftTraceLogger? TraceLogger { get; set; }
|
||||
|
||||
@@ -38,7 +40,7 @@ namespace StructureHelperLogics.Models.BeamShears
|
||||
InitializeStrategies();
|
||||
double factor = getFactorLogic.GetFactor();
|
||||
IForceTuple directShearForce = getDirectShearForceLogic.CalculateShearForceTuple();
|
||||
IForceTuple shearForce = ForceTupleService.MultiplyTupleByFactor(directShearForce,factor);
|
||||
IForceTuple shearForce = ForceTupleServiceLogic.MultiplyTupleByFactor(directShearForce,factor);
|
||||
return shearForce;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,6 +11,8 @@ namespace StructureHelperLogics.Models.BeamShears
|
||||
public class SumConcentratedForceLogic : ISumForceByShearLoadLogic
|
||||
{
|
||||
private ICoordinateByLevelLogic coordinateByLevelLogic;
|
||||
private IForceTupleServiceLogic forceTupleServiceLogic;
|
||||
private IForceTupleServiceLogic ForceTupleServiceLogic => forceTupleServiceLogic ??= new ForceTupleServiceLogic();
|
||||
public IShiftTraceLogger? TraceLogger { get; set; }
|
||||
public LimitStates LimitState { get; set; }
|
||||
public CalcTerms CalcTerm { get; set; }
|
||||
@@ -70,7 +72,7 @@ namespace StructureHelperLogics.Models.BeamShears
|
||||
{
|
||||
double loadFactor = GetLoadFactor(concentratedForce);
|
||||
double sumFactor = concentratedForce.LoadRatio * loadFactor;
|
||||
totalLoad = ForceTupleService.MultiplyTupleByFactor(concentratedForce.ForceValue, sumFactor);
|
||||
totalLoad = ForceTupleServiceLogic.MultiplyTupleByFactor(concentratedForce.ForceValue, sumFactor);
|
||||
TraceLogger?.AddMessage($"Total load Q,tot = {concentratedForce.ForceValue.Qy}(N) * {concentratedForce.LoadRatio} * {loadFactor} = {totalLoad}(N)");
|
||||
}
|
||||
else
|
||||
|
||||
@@ -11,6 +11,8 @@ namespace StructureHelperLogics.Models.BeamShears
|
||||
public class SumDistributedLoadLogic : ISumForceByShearLoadLogic
|
||||
{
|
||||
private ICoordinateByLevelLogic coordinateByLevelLogic;
|
||||
private IForceTupleServiceLogic forceTupleServiceLogic;
|
||||
private IForceTupleServiceLogic ForceTupleServiceLogic => forceTupleServiceLogic ??= new ForceTupleServiceLogic();
|
||||
public IShiftTraceLogger? TraceLogger { get; set; }
|
||||
public LimitStates LimitState { get; set; }
|
||||
public CalcTerms CalcTerm { get; set; }
|
||||
@@ -61,7 +63,7 @@ namespace StructureHelperLogics.Models.BeamShears
|
||||
TraceLogger?.AddMessage($"Total length L,tot = {loadEndCoord}(m) - {loadStartCoord}(m) = {loadLength}(m)");
|
||||
double loadFactor = GetLoadFactor(distributedLoad);
|
||||
double sumFactor = distributedLoad.LoadRatio * loadLength * loadFactor;
|
||||
IForceTuple totalLoad = ForceTupleService.MultiplyTupleByFactor(distributedLoad.LoadValue, sumFactor);
|
||||
IForceTuple totalLoad = ForceTupleServiceLogic.MultiplyTupleByFactor(distributedLoad.LoadValue, sumFactor);
|
||||
TraceLogger?.AddMessage($"Total load Q,tot = {distributedLoad.LoadValue.Qy}(N/m) * {distributedLoad.LoadRatio} * {loadLength}(m) * {loadFactor} = {totalLoad.Qy}(N)");
|
||||
return totalLoad;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user