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 : #pragma once 11 : 12 : // MOOSE includes 13 : #include "MultiAppTransfer.h" 14 : 15 : /** 16 : * Transfers from postprocessors in child apps of a MultiApp in different locations in parent app 17 : * mesh, interpolates the values between the app locations then fills a field variable 18 : * in the parent app system. 19 : */ 20 : class MultiAppPostprocessorInterpolationTransfer : public MultiAppTransfer 21 : { 22 : public: 23 : static InputParameters validParams(); 24 : 25 : MultiAppPostprocessorInterpolationTransfer(const InputParameters & parameters); 26 : 27 : virtual void execute() override; 28 : 29 : protected: 30 : /// Postprocessor in the child apps to transfer the data from 31 : PostprocessorName _postprocessor; 32 : /// Variable in the main application to fill with the interpolation of the postprocessors 33 : AuxVariableName _to_var_name; 34 : 35 : /// Number of points to consider for the interpolation 36 : unsigned int _num_points; 37 : /// Exponent for power-law decrease of the interpolation coefficients 38 : Real _power; 39 : /// Type of interpolation method 40 : MooseEnum _interp_type; 41 : /// Radius to consider for inverse interpolation 42 : Real _radius; 43 : 44 : /// Whether the target variable is nodal or elemental 45 : bool _nodal; 46 : 47 : private: 48 0 : bool usesMooseAppCoordTransform() const override { return true; } 49 : };