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 189354 : MultiAppFieldTransfer::validParams() 24 : { 25 189354 : InputParameters params = MultiAppTransfer::validParams(); 26 189354 : return params; 27 : } 28 : 29 9095 : MultiAppFieldTransfer::MultiAppFieldTransfer(const InputParameters & parameters) 30 9095 : : MultiAppTransfer(parameters) 31 : { 32 9083 : } 33 : 34 : void 35 8859 : MultiAppFieldTransfer::initialSetup() 36 : { 37 8859 : MultiAppTransfer::initialSetup(); 38 : 39 8855 : if (_current_direction == TO_MULTIAPP) 40 7682 : for (auto & to_var : getToVarNames()) 41 7682 : variableIntegrityCheck(to_var, false); 42 5060 : else if (_current_direction == FROM_MULTIAPP) 43 7570 : for (auto & from_var : getFromVarNames()) 44 7570 : variableIntegrityCheck(from_var, true); 45 : else 46 : { 47 2002 : for (auto & to_var : getToVarNames()) 48 2002 : variableIntegrityCheck(to_var, false); 49 1762 : for (auto & from_var : getFromVarNames()) 50 1762 : variableIntegrityCheck(from_var, true); 51 : } 52 8851 : } 53 : 54 : EquationSystems & 55 129246 : MultiAppFieldTransfer::getEquationSystem(FEProblemBase & problem, bool use_displaced) const 56 : { 57 129246 : if (use_displaced) 58 : { 59 645 : if (!problem.getDisplacedProblem()) 60 0 : mooseError("No displaced problem to provide a displaced equation system"); 61 645 : return problem.getDisplacedProblem()->es(); 62 : } 63 : else 64 128601 : return problem.es(); 65 : }