public static async Task <List <ResultsEnvelope> > GetDeflectionPredictions(List <PredictionInput> predictionInputList) { var predictionJson = PredictionInput.GetPredictionsObjectForSending(predictionInputList); var deflectionPredictionList = GetPredictionsFromServer(predictionJson, MachineLearningConstants.PredictionServerDeflection); var resultsEnvelopesList = new List <ResultsEnvelope>(); for (int i = 0; i < predictionInputList.Count; i++) { if (predictionInputList[i].UniformLoadMagnitude > MachineLearningConstants.MaxUdlLoadAllowedInMachineLearning) { throw new ArgumentOutOfRangeException( $"Udl larger than allowed for machine learning model, actual {predictionInputList[i].UniformLoadMagnitude}"); } var envelope = new ResultsEnvelope() { TotalDisplacement = deflectionPredictionList.predictions[i] * Constants.Conversion.MmToM, TotalDisplacementEnvelopeCase = predictionInputList[i].CombinationNo, TotalDisplacementEnvelopeElement = predictionInputList[i].SurfaceNo, }; resultsEnvelopesList.Add(envelope); } return(resultsEnvelopesList); }
public static async Task <List <ResultsEnvelope> > GetStressPredictions(List <PredictionInput> predictionInputList) { var predictionJson = PredictionInput.GetPredictionsObjectForSending(predictionInputList); var stressPredictionList = GetPredictionsFromServer(predictionJson, MachineLearningConstants.PredictionServerStress); var resultsEnvelopesList = new List <ResultsEnvelope>(); for (int i = 0; i < predictionInputList.Count; i++) { var envelope = new ResultsEnvelope() { Stress = stressPredictionList.predictions[i] * Constants.Conversion.MpaToPa, StressEnvelopeCase = predictionInputList[i].CombinationNo, StressEnvelopeElement = predictionInputList[i].SurfaceNo, }; resultsEnvelopesList.Add(envelope); } return(resultsEnvelopesList); }