LCOV - code coverage report
Current view: top level - src/transfers - MultiAppFieldTransfer.C (source / functions) Hit Total Coverage
Test: idaholab/moose framework: 419b9d Lines: 24 25 96.0 %
Date: 2025-08-08 20:01:16 Functions: 4 4 100.0 %
Legend: Lines: hit not hit

          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             : }

Generated by: LCOV version 1.14