コード例 #1
0
 /// <summary>
 /// Adds or modifies one load case or response combination in the list of cases included in the load combination.
 /// </summary>
 /// <param name="loadCase">The load case included within the load combination.</param>
 /// <param name="scaleFactor">The scale factor multiplying the case.</param>
 /// <exception cref="CSiException"><see cref="CSiApiBase.API_DEFAULT_ERROR_CODE" /></exception>
 public void SetCaseList(
     LoadCase loadCase,
     double scaleFactor)
 {
     _loadCombinations.SetCaseList(Name, eCaseComboType.LoadCase, loadCase.Name, scaleFactor);
     if (Cases.Any(c => c.Load == loadCase))
     {
         var cases = new List <LoadTuple <LoadCase> >(Cases.Where(c => c.Load == loadCase));
         cases[0].Scale = scaleFactor;
     }
     else
     {
         Cases.Add(new LoadTuple <LoadCase>(loadCase, scaleFactor));
     }
 }
コード例 #2
0
        private List <string> CreateCases()
        {
            var    bodyLines    = new List <string>();
            string curentIndent = Indent + JavaCodeGenerator.IndentSingle;

            if (Cases.Any())
            {
                foreach (var currentCase in Cases)
                {
                    bodyLines.Add($"{JavaCodeGenerator.IndentSingle}case \"{currentCase.Condition}\":");
                    bodyLines.Add($"{curentIndent}{currentCase.Body}");
                    bodyLines.Add($"{curentIndent}break;");
                }
            }
            return(bodyLines);
        }
コード例 #3
0
 /// <summary>
 /// Adds or modifies one load case or response combination in the list of cases included in the load combination.
 /// </summary>
 /// <param name="loadCase">The load case included within the load combination.</param>
 /// <param name="scaleFactor">The scale factor multiplying the case.</param>
 public void SetCaseList(
     LoadCase loadCase,
     double scaleFactor)
 {
     if (Cases.Any(c => c.Load == loadCase))
     {
         var cases = Cases.Where(c => c.Load == loadCase);
         foreach (var loadTuple in cases)
         {
             loadTuple.Scale = scaleFactor;
         }
     }
     else
     {
         Cases.Add(new LoadTuple <LoadCase>(loadCase, scaleFactor));
     }
 }
コード例 #4
0
 /// <summary>
 /// Adds or modifies one load case or response combination in the list of cases included in the load combination.
 /// </summary>
 /// <param name="loadCase">The load case included within the load combination.</param>
 /// <param name="scaleFactor">The scale factor multiplying the case.</param>
 /// <exception cref="CSiException"><see cref="CSiApiBase.API_DEFAULT_ERROR_CODE" /></exception>
 public void SetCaseList(
     LoadCase loadCase,
     double scaleFactor)
 {
     _apiLoadCombinations.SetCaseList(Name, eCaseComboType.LoadCase, loadCase.Name, scaleFactor);
     if (Cases.Any(c => c.Load == loadCase))
     {
         var cases = Cases.Where(c => c.Load == loadCase);
         foreach (var loadTuple in cases)
         {
             loadTuple.Scale = scaleFactor;
         }
     }
     else
     {
         Cases.Add(new LoadTuple <LoadCase>(loadCase, scaleFactor));
     }
 }
コード例 #5
0
        /// <summary>
        /// signals that training is done
        /// </summary>
        public void TrainingDone()
        {
            trainingDone = true;

            //background thread to stop session db workers when done
            Task.Run(() =>
            {
                while (true)
                {
                    bool processing = Sessions.Any(a => a.Value.CreatedToDb == false || a.Value.UpdatedToDb == false);
                    if (!processing && Sessions.Count > 0 && trainingDone)
                    {
                        StopRlmDbWorkersSessions();
                        System.Diagnostics.Debug.WriteLine("Worker Session done");
                        break;
                    }

                    Task.Delay(5 * 1000).Wait();
                }
            });

            //background thread to stop case db workers when done
            Task.Run(() =>
            {
                while (true)
                {
                    bool processing = Cases.Any(a => a.SavedToDb == false);
                    if (!processing && Cases.Count > 0 && trainingDone && sessionsDone && rlmDb.DistinctCaseSessionsCount() == totalSessionsCount)
                    {
                        StopRlmDbWorkersCases();
                        System.Diagnostics.Debug.WriteLine("Worker Cases done");
                        break;
                    }

                    Task.Delay(5 * 1000).Wait();
                }
            });
        }