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 "CoupleableMooseVariableDependencyIntermediateInterface.h" 11 : 12 : #include "FEProblemBase.h" 13 : 14 278411 : CoupleableMooseVariableDependencyIntermediateInterface:: 15 : CoupleableMooseVariableDependencyIntermediateInterface(const MooseObject * moose_object, 16 : bool nodal, 17 278411 : bool is_fv) 18 : : Coupleable(moose_object, nodal, is_fv), 19 : ScalarCoupleable(moose_object), 20 278411 : MooseVariableDependencyInterface(moose_object) 21 : { 22 335303 : for (MooseVariableFEBase * coupled_var : getCoupledMooseVars()) 23 56900 : addMooseVariableDependency(coupled_var); 24 278403 : } 25 : 26 : const VariableValue & 27 13 : CoupleableMooseVariableDependencyIntermediateInterface::coupledValueByName( 28 : const std::string & var_name) 29 : { 30 13 : MooseVariableFieldBase * moose_var = &_c_fe_problem.getVariable( 31 13 : _c_tid, var_name, Moose::VarKindType::VAR_ANY, Moose::VarFieldType::VAR_FIELD_ANY); 32 13 : _coupled_moose_vars.push_back(moose_var); 33 13 : MooseVariable * var = &_c_fe_problem.getStandardVariable(_c_tid, var_name); 34 13 : _coupled_standard_moose_vars.push_back(var); 35 : 36 13 : addMooseVariableDependency(moose_var); 37 : 38 13 : if (!_coupleable_neighbor) 39 : { 40 13 : if (_c_nodal) 41 0 : return (_c_is_implicit) ? var->dofValues() : var->dofValuesOld(); 42 : else 43 13 : return (_c_is_implicit) ? var->sln() : var->slnOld(); 44 : } 45 : else 46 : { 47 0 : if (_c_nodal) 48 0 : return (_c_is_implicit) ? var->dofValuesNeighbor() : var->dofValuesOldNeighbor(); 49 : else 50 0 : return (_c_is_implicit) ? var->slnNeighbor() : var->slnOldNeighbor(); 51 : } 52 : } 53 : 54 : const ArrayVariableValue & 55 13 : CoupleableMooseVariableDependencyIntermediateInterface::coupledArrayValueByName( 56 : const std::string & var_name) 57 : { 58 13 : MooseVariableFieldBase * moose_var = &_c_fe_problem.getVariable( 59 13 : _c_tid, var_name, Moose::VarKindType::VAR_ANY, Moose::VarFieldType::VAR_FIELD_ANY); 60 13 : _coupled_moose_vars.push_back(moose_var); 61 13 : ArrayMooseVariable * var = &_c_fe_problem.getArrayVariable(_c_tid, var_name); 62 13 : _coupled_array_moose_vars.push_back(var); 63 : 64 13 : addMooseVariableDependency(moose_var); 65 : 66 13 : if (!_coupleable_neighbor) 67 : { 68 13 : if (_c_nodal) 69 0 : return (_c_is_implicit) ? var->dofValues() : var->dofValuesOld(); 70 : else 71 13 : return (_c_is_implicit) ? var->sln() : var->slnOld(); 72 : } 73 : else 74 : { 75 0 : if (_c_nodal) 76 0 : return (_c_is_implicit) ? var->dofValuesNeighbor() : var->dofValuesOldNeighbor(); 77 : else 78 0 : return (_c_is_implicit) ? var->slnNeighbor() : var->slnOldNeighbor(); 79 : } 80 : }