コード例 #1
0
void TIntegration_Manager_Cstruct::DeleteResults(INT_RESULTS* pResults)
/* --------------------------
     * Author  : Gilles Orazi
 * Created : 06/2002
 * Purpose :
 * History :
 * -------------------------- */
{
    Free_Results(pResults);
}
コード例 #2
0
ファイル: exo_entity.C プロジェクト: jbcarleton/seacas
std::string Exo_Entity::Load_Results(int time_step, int var_index)
{
  SMART_ASSERT(Check_State());

  if (fileId < 0)
    return "exodiff: ERROR:  Invalid file id!";
  if (id_ == EX_INVALID_ID)
    return "exodiff: ERROR:  Must initialize block parameters first!";
  if (var_index < 0 || var_index >= numVars) {
    ERROR("Exo_Entity::Load_Results(): var_index is invalid. Aborting...\n");
    exit(1);
  }
  SMART_ASSERT(time_step >= 1 && time_step <= (int)get_num_timesteps(fileId));

  if (time_step != currentStep) {
    Free_Results();
    currentStep = time_step;
  }

  if (truth_ == nullptr) {
    get_truth_table();
  }

  if (truth_[var_index]) {
    if (!results_[var_index] && numEntity) {
      results_[var_index] = new double[numEntity];
      SMART_ASSERT(results_[var_index] != nullptr);
    }
    if (numEntity) {
      int err = 0;
      err     = ex_get_var(fileId, time_step, exodus_type(), var_index + 1, id_, numEntity,
                       results_[var_index]);

      if (err < 0) {
        ERROR("Exo_Entity::Load_Results(): Call to exodus routine"
              << " returned error value! " << label() << " id = " << id_ << '\n'
              << "Aborting...\n");
        exit(1);
      }
      else if (err > 0) {
        std::ostringstream oss;
        oss << "WARNING:  Number " << err << " returned from call to exodus get variable routine.";
        return oss.str();
      }
    }
    else
      return std::string("WARNING:  No items in this ") + label();
  }
  else {
    return std::string("WARNING: Variable not stored in this ") + label();
  }
  return "";
}
コード例 #3
0
ファイル: exo_entity.C プロジェクト: jbcarleton/seacas
std::string Exo_Entity::Load_Results(int t1, int t2, double proportion, int var_index)
{
  static std::vector<double> results2;

  SMART_ASSERT(Check_State());

  if (fileId < 0)
    return "exodiff: ERROR:  Invalid file id!";
  if (id_ == EX_INVALID_ID)
    return "exodiff: ERROR:  Must initialize block parameters first!";
  SMART_ASSERT(var_index >= 0 && var_index < numVars);
  SMART_ASSERT(t1 >= 1 && t1 <= (int)get_num_timesteps(fileId));
  SMART_ASSERT(t2 >= 1 && t2 <= (int)get_num_timesteps(fileId));

  if (t1 != currentStep) {
    Free_Results();
    currentStep = t1;
  }

  if (truth_ == nullptr) {
    get_truth_table();
  }

  if (truth_[var_index]) {
    if (!results_[var_index] && numEntity) {
      results_[var_index] = new double[numEntity];
      SMART_ASSERT(results_[var_index] != nullptr);
    }
    if (numEntity) {
      int err =
          ex_get_var(fileId, t1, exodus_type(), var_index + 1, id_, numEntity, results_[var_index]);

      if (err < 0) {
        ERROR("Exo_Entity::Load_Results(): Call to exodus routine"
              << " returned error value! " << label() << " id = " << id_ << '\n'
              << "Aborting...\n");
        exit(1);
      }
      else if (err > 0) {
        std::ostringstream oss;
        oss << "WARNING:  Number " << err << " returned from call to exodus get variable routine.";
        return oss.str();
      }

      if (t1 != t2) {
        results2.resize(numEntity);
        err = ex_get_var(fileId, t2, exodus_type(), var_index + 1, id_, numEntity, &results2[0]);

        if (err < 0) {
          ERROR("Exo_Entity::Load_Results(): Call to exodus routine"
                << " returned error value! " << label() << " id = " << id_ << '\n'
                << "Aborting...\n");
          exit(1);
        }

        double *results1 = results_[var_index];
        for (size_t i = 0; i < numEntity; i++) {
          results1[i] = (1.0 - proportion) * results1[i] + proportion * results2[i];
        }
      }
    }
    else
      return std::string("WARNING:  No items in this ") + label();
  }
  else {
    return std::string("WARNING: Variable not stored in this ") + label();
  }
  return "";
}