Beispiel #1
0
void
MaterialOutputAction::act()
{
  // Error if _problem is NULL, I don't know how this would happen
  if (_problem.get() == NULL)
    mooseError("FEProblem pointer is NULL, it is needed for auto material property output");

  buildMaterialOutputObjects(_problem.get());
}
void
MaterialOutputAction::act()
{
  // If running a coupled problem, loop through all the FEProblem objects
  CoupledExecutioner * exec_ptr = dynamic_cast<CoupledExecutioner *>(_executioner.get());
  if (exec_ptr != NULL)
  {
    std::vector<FEProblem *> & problems = exec_ptr->getProblems();
    for (std::vector<FEProblem *>::iterator it = problems.begin(); it != problems.end(); ++it)
      buildMaterialOutputObjects(*it);
  }

  // Error if _problem is NULL, I don't know how this would happen
  else if (_problem.get() == NULL)
    mooseError("FEProblem pointer is NULL, it is needed for auto material property output");

  // Build on the problem for this action, this is what should happend for everything except coupled problems
  else
    buildMaterialOutputObjects(_problem.get());
}