https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Transfer.h
Go to the documentation of this file.
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
13#include "MooseObject.h"
14#include "MooseTypes.h"
15#include "SetupInterface.h"
16#include "Restartable.h"
17#include "PerfGraphInterface.h"
18
19class SubProblem;
20class FEProblemBase;
21class FEProblem;
22class SystemBase;
23
24namespace libMesh
25{
26class System;
27class EquationSystems;
28}
29
36class Transfer : public MooseObject,
37 public SetupInterface,
38 public Restartable,
40{
41public:
43 virtual ~Transfer() = default;
44
46
50 virtual void execute() = 0;
51
56 virtual void initialSetup() {}
57
66 static libMesh::System * find_sys(libMesh::EquationSystems & es, const std::string & var_name);
67
74
76 static std::string possibleDirections() { return "to_multiapp from_multiapp between_multiapp"; }
77
80
87
94
97
98protected:
102
104
111
114
119
120public:
122};
unsigned int THREAD_ID
Definition MooseTypes.h:237
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Definition FEProblem.h:21
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition MooseEnum.h:55
Every object that can be built by the factory should be derived from this class.
Definition MooseObject.h:31
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type.
Interface for objects interacting with the PerfGraph.
A class for creating restricted objects.
Definition Restartable.h:29
Generic class for solving transient nonlinear problems.
Definition SubProblem.h:79
Base class for a system (of equations)
Definition SystemBase.h:87
Base class for all Transfer objects.
Definition Transfer.h:40
MooseEnum _direction
Definition Transfer.h:108
@ FROM_MULTIAPP
Definition Transfer.h:71
@ TO_MULTIAPP
Definition Transfer.h:70
@ BETWEEN_MULTIAPP
Definition Transfer.h:72
static InputParameters validParams()
Definition Transfer.C:25
MultiMooseEnum _directions
The directions this Transfer is to be executed on.
Definition Transfer.h:113
const MultiMooseEnum & directions()
The directions this Transfer should be executed on.
Definition Transfer.h:79
static const libMesh::Number OutOfMeshValue
Definition Transfer.h:121
THREAD_ID _tid
Definition Transfer.h:103
FEProblemBase & _fe_problem
Definition Transfer.h:100
virtual void initialSetup()
Method called at the beginning of the simulation for checking integrity or doing one-time setup.
Definition Transfer.h:56
MooseEnum _current_direction
Definition Transfer.h:109
SystemBase & _sys
Definition Transfer.h:101
static std::string possibleDirections()
Used to construct InputParameters.
Definition Transfer.h:76
MooseEnum direction()
Definition Transfer.h:84
virtual ~Transfer()=default
void setCurrentDirection(const int direction)
Set this Transfer to be executed in a given direction.
Definition Transfer.h:89
const bool _exec_after_source_app_exec
Whether a transfer executing on BETWEEN_MULTIAPPS and on the same execute_on flag should execute befo...
Definition Transfer.h:118
MooseEnum currentDirection()
Definition Transfer.h:85
SubProblem & _subproblem
Definition Transfer.h:99
static libMesh::System * find_sys(libMesh::EquationSystems &es, const std::string &var_name)
Small helper function for finding the system containing the variable.
Definition Transfer.C:99
bool executeAfterSiblingSourceApp() const
Whether the transfer should be executed after its source application.
Definition Transfer.h:96
virtual void execute()=0
Execute the transfer.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Real Number