Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }