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 : // MOOSE includes 11 : #include "MultiAppFieldTransfer.h" 12 : #include "FEProblemBase.h" 13 : #include "DisplacedProblem.h" 14 : #include "MooseVariableFEBase.h" 15 : #include "MooseMesh.h" 16 : #include "SystemBase.h" 17 : #include "MooseAppCoordTransform.h" 18 : #include "MooseMeshUtils.h" 19 : 20 : #include "libmesh/system.h" 21 : 22 : InputParameters 23 190818 : MultiAppFieldTransfer::validParams() 24 : { 25 190818 : InputParameters params = MultiAppTransfer::validParams(); 26 190818 : return params; 27 : } 28 : 29 9827 : MultiAppFieldTransfer::MultiAppFieldTransfer(const InputParameters & parameters) 30 9827 : : MultiAppTransfer(parameters) 31 : { 32 9815 : } 33 : 34 : void 35 9591 : MultiAppFieldTransfer::initialSetup() 36 : { 37 9591 : MultiAppTransfer::initialSetup(); 38 : 39 9587 : if (_current_direction == TO_MULTIAPP) 40 8307 : for (auto & to_var : getToVarNames()) 41 8307 : variableIntegrityCheck(to_var, false); 42 5482 : else if (_current_direction == FROM_MULTIAPP) 43 8203 : for (auto & from_var : getFromVarNames()) 44 8203 : variableIntegrityCheck(from_var, true); 45 : else 46 : { 47 2168 : for (auto & to_var : getToVarNames()) 48 2168 : variableIntegrityCheck(to_var, false); 49 1908 : for (auto & from_var : getFromVarNames()) 50 1908 : variableIntegrityCheck(from_var, true); 51 : } 52 9583 : } 53 : 54 : EquationSystems & 55 138088 : MultiAppFieldTransfer::getEquationSystem(FEProblemBase & problem, bool use_displaced) const 56 : { 57 138088 : if (use_displaced) 58 : { 59 741 : if (!problem.getDisplacedProblem()) 60 0 : mooseError("No displaced problem to provide a displaced equation system"); 61 741 : return problem.getDisplacedProblem()->es(); 62 : } 63 : else 64 137347 : return problem.es(); 65 : }