void AddAuxVariableAction::act() { if (_current_task == "add_aux_variable") { // Name of variable being added std::string var_name = getShortName(); // 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 (_current_task == "add_ic") setInitialCondition(); }
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(); }
void AddVariableAction::act() { if (_current_action == "add_variable") { // Get necessary data for creating a variable std::string var_name = getShortName(); std::set<SubdomainID> blocks = getSubdomainIDs(); Real scale_factor = isParamValid("scaling") ? getParam<Real>("scaling") : 1; // Scalar variable if (_scalar_var) _problem->addScalarVariable(var_name, _fe_type.order, scale_factor); // Block restricted variable else if (blocks.empty()) _problem->addVariable(var_name, _fe_type, scale_factor); // Non-block restricted variable else _problem->addVariable(var_name, _fe_type, scale_factor, &blocks); if (getParam<bool>("eigen")) { EigenSystem & esys(static_cast<EigenSystem &>(_problem->getNonlinearSystem())); esys.markEigenVariable(var_name); } } // Set the initial condition if (_current_action == "add_ic") setInitialCondition(); }
void AddVariableAction::addVariable(std::string & var_name) { std::set<SubdomainID> blocks = getSubdomainIDs(); Real scale_factor = isParamValid("scaling") ? getParam<Real>("scaling") : 1; // Scalar variable if (_scalar_var) _problem->addScalarVariable(var_name, _fe_type.order, scale_factor); // Block restricted variable else if (blocks.empty()) _problem->addVariable(var_name, _fe_type, scale_factor); // Non-block restricted variable else _problem->addVariable(var_name, _fe_type, scale_factor, &blocks); if (getParam<bool>("eigen")) { EigenSystem & esys(static_cast<EigenSystem &>(_problem->getNonlinearSystem())); esys.markEigenVariable(var_name); } }