void
AddAuxVariableAction::act()
{
  // Name of variable being added
  std::string var_name = name();

  // Blocks from the input
  std::set<SubdomainID> blocks = getSubdomainIDs();

  // Scalar variable
  if (_scalar_var)
    _problem->addAuxScalarVariable(var_name, _fe_type.order);

  // Non-scalar variable
  else
  {
    // Check that the order is valid (CONSTANT, FIRST, or SECOND)
    if (_fe_type.order > 9)
      mooseError("Non-scalar AuxVariables must be CONSTANT, FIRST, SECOND, THIRD, FOURTH, FIFTH, "
                 "SIXTH, SEVENTH, EIGHTH or NINTH order (",
                 _fe_type.order,
                 " supplied)");

    if (blocks.empty())
      _problem->addAuxVariable(var_name, _fe_type);
    else
      _problem->addAuxVariable(var_name, _fe_type, &blocks);
  }

  // Create the initial condition
  if (isParamValid("initial_condition"))
    createInitialConditionAction();
}
Exemple #2
0
void
AddVariableAction::act()
{
  // Get necessary data for creating a variable
  std::string var_name = getShortName();
  addVariable(var_name);

  // Set the initial condition
  if (isParamValid("initial_condition"))
    createInitialConditionAction();
}