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
95protected:
99
101
108
111
112public:
114};
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:105
@ FROM_MULTIAPP
Definition Transfer.h:71
@ TO_MULTIAPP
Definition Transfer.h:70
@ BETWEEN_MULTIAPP
Definition Transfer.h:72
static InputParameters validParams()
Definition Transfer.C:27
MultiMooseEnum _directions
The directions this Transfer is to be executed on.
Definition Transfer.h:110
const MultiMooseEnum & directions()
The directions this Transfer should be executed on.
Definition Transfer.h:79
static const libMesh::Number OutOfMeshValue
Definition Transfer.h:113
THREAD_ID _tid
Definition Transfer.h:100
FEProblemBase & _fe_problem
Definition Transfer.h:97
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:106
SystemBase & _sys
Definition Transfer.h:98
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
MooseEnum currentDirection()
Definition Transfer.h:85
SubProblem & _subproblem
Definition Transfer.h:96
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:91
virtual void execute()=0
Execute the transfer.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Real Number