Line data Source code
1 : //* This file is part of the MOOSE framework 2 : //* https://mooseframework.inl.gov 3 : //* 4 : //* All rights reserved, see COPYRIGHT for full restrictions 5 : //* https://github.com/idaholab/moose/blob/master/COPYRIGHT 6 : //* 7 : //* Licensed under LGPL 2.1, please see LICENSE for details 8 : //* https://www.gnu.org/licenses/lgpl-2.1.html 9 : 10 : #include "ScalarInitialCondition.h" 11 : #include "MooseVariableScalar.h" 12 : #include "FEProblem.h" 13 : #include "SystemBase.h" 14 : 15 : InputParameters 16 88826 : ScalarInitialCondition::validParams() 17 : { 18 88826 : InputParameters params = MooseObject::validParams(); 19 88826 : params += InitialConditionInterface::validParams(); 20 88826 : params.addParam<VariableName>( 21 : "variable", "The variable this initial condition is supposed to provide values for."); 22 : 23 88826 : params.registerBase("ScalarInitialCondition"); 24 : 25 88826 : return params; 26 0 : } 27 : 28 1619 : ScalarInitialCondition::ScalarInitialCondition(const InputParameters & parameters) 29 : : MooseObject(parameters), 30 : InitialConditionInterface(parameters), 31 : ScalarCoupleable(this), 32 : FunctionInterface(this), 33 : UserObjectInterface(this), 34 : DependencyResolverInterface(), 35 1619 : _fe_problem(*getCheckedPointerParam<FEProblemBase *>("_fe_problem_base")), 36 1619 : _sys(*getCheckedPointerParam<SystemBase *>("_sys")), 37 1619 : _tid(parameters.get<THREAD_ID>("_tid")), 38 1619 : _t(_fe_problem.time()), 39 1619 : _var(_sys.getScalarVariable(_tid, getParam<VariableName>("variable"))), 40 1619 : _assembly( 41 3238 : _fe_problem.assembly(_tid, _var.kind() == Moose::VAR_SOLVER ? _var.sys().number() : 0)) 42 : { 43 1619 : _supplied_vars.insert(getParam<VariableName>("variable")); 44 : 45 1619 : const std::vector<MooseVariableScalar *> & coupled_vars = getCoupledMooseScalarVars(); 46 1619 : for (const auto & var : coupled_vars) 47 0 : _depend_vars.insert(var->name()); 48 1619 : } 49 : 50 1527 : ScalarInitialCondition::~ScalarInitialCondition() {} 51 : 52 : const std::set<std::string> & 53 1074 : ScalarInitialCondition::getRequestedItems() 54 : { 55 1074 : return _depend_vars; 56 : } 57 : 58 : const std::set<std::string> & 59 1074 : ScalarInitialCondition::getSuppliedItems() 60 : { 61 1074 : return _supplied_vars; 62 : } 63 : 64 : void 65 1073 : ScalarInitialCondition::compute(DenseVector<Number> & vals) 66 : { 67 2496 : for (_i = 0; _i < _var.order(); ++_i) 68 1423 : vals(_i) = value(); 69 1073 : }