www.mooseframework.org
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
MultiAppProjectionTransfer Class Reference

Project values from one domain to another. More...

#include <MultiAppProjectionTransfer.h>

Inheritance diagram for MultiAppProjectionTransfer:
[legend]

Public Types

enum  DIRECTION { TO_MULTIAPP, FROM_MULTIAPP }
 

Public Member Functions

 MultiAppProjectionTransfer (const InputParameters &parameters)
 
virtual void initialSetup () override
 Method called at the beginning of the simulation for checking integrity or doing one-time setup. More...
 
virtual void execute () override
 Execute the transfer. More...
 
int direction ()
 The direction this Transfer is going in. More...
 
void variableIntegrityCheck (const AuxVariableName &var_name) const
 Utility to verify that the vEariable in the destination system exists. More...
 
const std::shared_ptr< MultiAppgetMultiApp () const
 Return the MultiApp that this transfer belongs to. More...
 
virtual const std::vector< ExecFlagType > & execFlags () const
 Return the execution flags, handling "same_as_multiapp". More...
 
const std::string & type () const
 Get the type of this object. More...
 
const std::string & name () const
 Get the name of the object. More...
 
const InputParametersparameters () const
 Get the parameters of the object. More...
 
template<typename T >
const T & getParam (const std::string &name) const
 Retrieve a parameter for the object. More...
 
template<typename T >
getCheckedPointerParam (const std::string &name, const std::string &error_string="") const
 Verifies that the requested parameter exists and is not NULL and returns it to the caller. More...
 
bool isParamValid (const std::string &name) const
 Test if the supplied parameter is valid. More...
 
MooseAppgetMooseApp () const
 Get the MooseApp this object is associated with. More...
 
virtual bool enabled () const
 Return the enabled status of the object. More...
 
template<typename... Args>
void paramError (const std::string &param, Args... args)
 Emits an error prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void paramWarning (const std::string &param, Args... args)
 Emits a warning prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void paramInfo (const std::string &param, Args... args)
 Emits an informational message prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message. More...
 
template<typename... Args>
void mooseError (Args &&... args) const
 
template<typename... Args>
void mooseWarning (Args &&... args) const
 
template<typename... Args>
void mooseDeprecated (Args &&... args) const
 
template<typename... Args>
void mooseInfo (Args &&... args) const
 
virtual void timestepSetup ()
 Gets called at the beginning of the timestep before this object is asked to do its job. More...
 
virtual void jacobianSetup ()
 Gets called just before the Jacobian is computed and before this object is asked to do its job. More...
 
virtual void residualSetup ()
 Gets called just before the residual is computed and before this object is asked to do its job. More...
 
virtual void subdomainSetup ()
 Gets called when the subdomain changes (i.e. More...
 
const ExecFlagEnumgetExecuteOnEnum () const
 Return the execute on MultiMooseEnum for this object. More...
 
ExecFlagType execBitFlags () const
 (DEPRECATED) Build and return the execution flags as a bitfield TODO: ExecFlagType More...
 

Static Public Member Functions

static MooseEnum directions ()
 Used to construct InputParameters. More...
 
static System * find_sys (EquationSystems &es, const std::string &var_name)
 Small helper function for finding the system containing the variable. More...
 
static ExecFlagEnum getExecuteOptions ()
 (DEPRECATED) Returns the available options for the 'execute_on' input parameters TODO: ExecFlagType More...
 

Public Attributes

const ConsoleStream _console
 An instance of helper class to write streams to the Console objects. More...
 

Static Public Attributes

static const Number OutOfMeshValue = -999999
 

Protected Member Functions

void toMultiApp ()
 
void fromMultiApp ()
 
void assembleL2 (EquationSystems &es, const std::string &system_name)
 
void projectSolution (unsigned int to_problem)
 
void getAppInfo ()
 This method will fill information into the convenience member variables (_to_problems, _from_meshes, etc.) More...
 
std::vector< unsigned int > getFromsPerProc ()
 Return the number of "from" domains that each processor owns. More...
 
NumericVector< Real > & getTransferVector (unsigned int i_local, std::string var_name)
 If we are transferring to a multiapp, return the appropriate solution vector. More...
 
template<typename T >
T & declareRestartableData (std::string data_name)
 Declare a piece of data as "restartable". More...
 
template<typename T >
T & declareRestartableData (std::string data_name, const T &init_value)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T >
T & declareRestartableDataWithContext (std::string data_name, void *context)
 Declare a piece of data as "restartable". More...
 
template<typename T >
T & declareRestartableDataWithContext (std::string data_name, const T &init_value, void *context)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T >
T & declareRecoverableData (std::string data_name)
 Declare a piece of data as "recoverable". More...
 
template<typename T >
T & declareRecoverableData (std::string data_name, const T &init_value)
 Declare a piece of data as "restartable" and initialize it. More...
 
template<typename T >
T & declareRestartableDataWithObjectName (std::string data_name, std::string object_name)
 Declare a piece of data as "restartable". More...
 
template<typename T >
T & declareRestartableDataWithObjectNameWithContext (std::string data_name, std::string object_name, void *context)
 Declare a piece of data as "restartable". More...
 
std::vector< BoundingBox > getFromBoundingBoxes ()
 Return the bounding boxes of all the "from" domains, including all the domains not local to this processor. More...
 
std::vector< BoundingBox > getFromBoundingBoxes (BoundaryID boundary_id)
 

Protected Attributes

AuxVariableName _to_var_name
 
VariableName _from_var_name
 
MooseEnum _proj_type
 
bool _compute_matrix
 True, if we need to recompute the projection matrix. More...
 
std::vector< LinearImplicitSystem * > _proj_sys
 
unsigned int _proj_var_num
 Having one projection variable number seems weird, but there is always one variable in every system being used for projection, thus is always going to be 0 unless something changes in libMesh or we change the way we project variables. More...
 
bool _fixed_meshes
 
bool _qps_cached
 
std::vector< std::vector< Point > > _cached_qps
 
std::vector< std::map< std::pair< unsigned int, unsigned int >, unsigned int > > _cached_index_map
 
std::shared_ptr< MultiApp_multi_app
 The MultiApp this Transfer is transferring data to or from. More...
 
MooseEnum _direction
 Whether we're transferring to or from the MultiApp. More...
 
std::vector< FEProblemBase * > _to_problems
 
std::vector< FEProblemBase * > _from_problems
 
std::vector< EquationSystems * > _to_es
 
std::vector< EquationSystems * > _from_es
 
std::vector< MooseMesh * > _to_meshes
 
std::vector< MooseMesh * > _from_meshes
 
std::vector< Point > _to_positions
 
std::vector< Point > _from_positions
 
bool _displaced_source_mesh
 True if displaced mesh is used for the source mesh, otherwise false. More...
 
bool _displaced_target_mesh
 True if displaced mesh is used for the target mesh, otherwise false. More...
 
std::vector< unsigned int > _local2global_map
 
SubProblem_subproblem
 
FEProblemBase_fe_problem
 
SystemBase_sys
 
THREAD_ID _tid
 
const InputParameters_pars
 Parameters of this object, references the InputParameters stored in the InputParametersWarehouse. More...
 
MooseApp_app
 The MooseApp this object is associated with. More...
 
const std::string & _type
 The type of this object (the Class name) More...
 
const std::string & _name
 The name of this object, reference to value stored in InputParameters. More...
 
const bool & _enabled
 Reference to the "enable" InputParaemters, used by Controls for toggling on/off MooseObjects. More...
 
const ExecFlagEnum_execute_enum
 Execute settings for this oejct. More...
 
const std::vector< ExecFlagType_exec_flags
 (DEPRECATED) execution flag (when is the object executed/evaluated) TODO: ExecFlagType More...
 
const ExecFlagType_current_execute_flag
 Reference to FEProblemBase. More...
 

Friends

void assemble_l2 (EquationSystems &es, const std::string &system_name)
 

Detailed Description

Project values from one domain to another.

Definition at line 29 of file MultiAppProjectionTransfer.h.

Member Enumeration Documentation

◆ DIRECTION

Enumerator
TO_MULTIAPP 
FROM_MULTIAPP 

Definition at line 41 of file MultiAppTransfer.h.

Constructor & Destructor Documentation

◆ MultiAppProjectionTransfer()

MultiAppProjectionTransfer::MultiAppProjectionTransfer ( const InputParameters parameters)

Definition at line 60 of file MultiAppProjectionTransfer.C.

62  _to_var_name(getParam<AuxVariableName>("variable")),
63  _from_var_name(getParam<VariableName>("source_variable")),
64  _proj_type(getParam<MooseEnum>("proj_type")),
65  _compute_matrix(true),
66  _fixed_meshes(getParam<bool>("fixed_meshes")),
67  _qps_cached(false)
68 {
69 }
MultiAppTransfer(const InputParameters &parameters)
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:57
bool _compute_matrix
True, if we need to recompute the projection matrix.

Member Function Documentation

◆ assembleL2()

void MultiAppProjectionTransfer::assembleL2 ( EquationSystems &  es,
const std::string &  system_name 
)
protected

Definition at line 117 of file MultiAppProjectionTransfer.C.

Referenced by assemble_l2().

118 {
119  // Get the system and mesh from the input arguments.
120  LinearImplicitSystem & system = es.get_system<LinearImplicitSystem>(system_name);
121  MeshBase & to_mesh = es.get_mesh();
122 
123  // Get the meshfunction evaluations and the map that was stashed in the es.
124  std::vector<Real> & final_evals = *es.parameters.get<std::vector<Real> *>("final_evals");
125  std::map<dof_id_type, unsigned int> & element_map =
126  *es.parameters.get<std::map<dof_id_type, unsigned int> *>("element_map");
127 
128  // Setup system vectors and matrices.
129  FEType fe_type = system.variable_type(0);
130  std::unique_ptr<FEBase> fe(FEBase::build(to_mesh.mesh_dimension(), fe_type));
131  QGauss qrule(to_mesh.mesh_dimension(), fe_type.default_quadrature_order());
132  fe->attach_quadrature_rule(&qrule);
133  const DofMap & dof_map = system.get_dof_map();
134  DenseMatrix<Number> Ke;
135  DenseVector<Number> Fe;
136  std::vector<dof_id_type> dof_indices;
137  const std::vector<Real> & JxW = fe->get_JxW();
138  const std::vector<std::vector<Real>> & phi = fe->get_phi();
139 
140  for (const auto & elem : to_mesh.active_local_element_ptr_range())
141  {
142  fe->reinit(elem);
143 
144  dof_map.dof_indices(elem, dof_indices);
145  Ke.resize(dof_indices.size(), dof_indices.size());
146  Fe.resize(dof_indices.size());
147 
148  for (unsigned int qp = 0; qp < qrule.n_points(); qp++)
149  {
150  Real meshfun_eval = 0.;
151  if (element_map.find(elem->id()) != element_map.end())
152  {
153  // We have evaluations for this element.
154  meshfun_eval = final_evals[element_map[elem->id()] + qp];
155  }
156 
157  // Now compute the element matrix and RHS contributions.
158  for (unsigned int i = 0; i < phi.size(); i++)
159  {
160  // RHS
161  Fe(i) += JxW[qp] * (meshfun_eval * phi[i][qp]);
162 
163  if (_compute_matrix)
164  for (unsigned int j = 0; j < phi.size(); j++)
165  {
166  // The matrix contribution
167  Ke(i, j) += JxW[qp] * (phi[i][qp] * phi[j][qp]);
168  }
169  }
170  dof_map.constrain_element_matrix_and_vector(Ke, Fe, dof_indices);
171 
172  if (_compute_matrix)
173  system.matrix->add_matrix(Ke, dof_indices);
174  system.rhs->add_vector(Fe, dof_indices);
175  }
176  }
177 }
nl system()
bool _compute_matrix
True, if we need to recompute the projection matrix.
DofMap & dof_map

◆ declareRecoverableData() [1/2]

template<typename T >
T & Restartable::declareRecoverableData ( std::string  data_name)
protectedinherited

Declare a piece of data as "recoverable".

This means that in the event of a recovery this piece of data will be restored back to its previous value.

Note - this data will NOT be restored on Restart!

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)

Definition at line 269 of file Restartable.h.

270 {
271  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
272 
273  registerRecoverableDataOnApp(full_name);
274 
275  return declareRestartableDataWithContext<T>(data_name, nullptr);
276 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:194
std::string _restartable_name
The name of the object.
Definition: Restartable.h:191
void registerRecoverableDataOnApp(std::string name)
Helper function for actually registering the restartable data.
Definition: Restartable.C:54

◆ declareRecoverableData() [2/2]

template<typename T >
T & Restartable::declareRecoverableData ( std::string  data_name,
const T &  init_value 
)
protectedinherited

Declare a piece of data as "restartable" and initialize it.

This means that in the event of a restart this piece of data will be restored back to its previous value.

Note - this data will NOT be restored on Restart!

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
init_valueThe initial value of the data

Definition at line 280 of file Restartable.h.

281 {
282  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
283 
284  registerRecoverableDataOnApp(full_name);
285 
286  return declareRestartableDataWithContext<T>(data_name, init_value, nullptr);
287 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:194
std::string _restartable_name
The name of the object.
Definition: Restartable.h:191
void registerRecoverableDataOnApp(std::string name)
Helper function for actually registering the restartable data.
Definition: Restartable.C:54

◆ declareRestartableData() [1/2]

template<typename T >
T & Restartable::declareRestartableData ( std::string  data_name)
protectedinherited

Declare a piece of data as "restartable".

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)

Definition at line 202 of file Restartable.h.

203 {
204  return declareRestartableDataWithContext<T>(data_name, nullptr);
205 }

◆ declareRestartableData() [2/2]

template<typename T >
T & Restartable::declareRestartableData ( std::string  data_name,
const T &  init_value 
)
protectedinherited

Declare a piece of data as "restartable" and initialize it.

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
init_valueThe initial value of the data

Definition at line 209 of file Restartable.h.

210 {
211  return declareRestartableDataWithContext<T>(data_name, init_value, nullptr);
212 }

◆ declareRestartableDataWithContext() [1/2]

template<typename T >
T & Restartable::declareRestartableDataWithContext ( std::string  data_name,
void *  context 
)
protectedinherited

Declare a piece of data as "restartable".

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
contextContext pointer that will be passed to the load and store functions

Definition at line 216 of file Restartable.h.

217 {
218  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
219  auto data_ptr = libmesh_make_unique<RestartableData<T>>(full_name, context);
220  T & restartable_data_ref = data_ptr->get();
221 
222  registerRestartableDataOnApp(full_name, std::move(data_ptr), _restartable_tid);
223 
224  return restartable_data_ref;
225 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:194
std::string _restartable_name
The name of the object.
Definition: Restartable.h:191
THREAD_ID _restartable_tid
The thread ID for this object.
Definition: Restartable.h:197
void registerRestartableDataOnApp(std::string name, std::unique_ptr< RestartableDataValue > data, THREAD_ID tid)
Helper function for actually registering the restartable data.
Definition: Restartable.C:46

◆ declareRestartableDataWithContext() [2/2]

template<typename T >
T & Restartable::declareRestartableDataWithContext ( std::string  data_name,
const T &  init_value,
void *  context 
)
protectedinherited

Declare a piece of data as "restartable" and initialize it.

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
init_valueThe initial value of the data
contextContext pointer that will be passed to the load and store functions

Definition at line 229 of file Restartable.h.

232 {
233  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
234  auto data_ptr = libmesh_make_unique<RestartableData<T>>(full_name, context);
235  data_ptr->set() = init_value;
236 
237  T & restartable_data_ref = data_ptr->get();
238  registerRestartableDataOnApp(full_name, std::move(data_ptr), _restartable_tid);
239 
240  return restartable_data_ref;
241 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:194
std::string _restartable_name
The name of the object.
Definition: Restartable.h:191
THREAD_ID _restartable_tid
The thread ID for this object.
Definition: Restartable.h:197
void registerRestartableDataOnApp(std::string name, std::unique_ptr< RestartableDataValue > data, THREAD_ID tid)
Helper function for actually registering the restartable data.
Definition: Restartable.C:46

◆ declareRestartableDataWithObjectName()

template<typename T >
T & Restartable::declareRestartableDataWithObjectName ( std::string  data_name,
std::string  object_name 
)
protectedinherited

Declare a piece of data as "restartable".

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
object_nameA supplied name for the object that is declaring this data.

Definition at line 245 of file Restartable.h.

246 {
247  return declareRestartableDataWithObjectNameWithContext<T>(data_name, object_name, nullptr);
248 }

◆ declareRestartableDataWithObjectNameWithContext()

template<typename T >
T & Restartable::declareRestartableDataWithObjectNameWithContext ( std::string  data_name,
std::string  object_name,
void *  context 
)
protectedinherited

Declare a piece of data as "restartable".

This means that in the event of a restart this piece of data will be restored back to its previous value.

NOTE: This returns a reference! Make sure you store it in a reference!

Parameters
data_nameThe name of the data (usually just use the same name as the member variable)
object_nameA supplied name for the object that is declaring this data.
contextContext pointer that will be passed to the load and store functions

Definition at line 252 of file Restartable.h.

255 {
256  std::string old_name = _restartable_name;
257 
258  _restartable_name = object_name;
259 
260  T & value = declareRestartableDataWithContext<T>(data_name, context);
261 
262  _restartable_name = old_name;
263 
264  return value;
265 }
std::string _restartable_name
The name of the object.
Definition: Restartable.h:191

◆ direction()

int MultiAppTransfer::direction ( )
inlineinherited

The direction this Transfer is going in.

Definition at line 51 of file MultiAppTransfer.h.

51 { return _direction; }
MooseEnum _direction
Whether we&#39;re transferring to or from the MultiApp.

◆ directions()

static MooseEnum MultiAppTransfer::directions ( )
inlinestaticinherited

Used to construct InputParameters.

Definition at line 48 of file MultiAppTransfer.h.

Referenced by validParams< MultiAppTransfer >().

48 { return MooseEnum("to_multiapp from_multiapp"); }
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:32

◆ enabled()

virtual bool MooseObject::enabled ( ) const
inlinevirtualinherited

Return the enabled status of the object.

Reimplemented in EigenKernel.

Definition at line 91 of file MooseObject.h.

Referenced by EigenKernel::enabled().

91 { return _enabled; }
const bool & _enabled
Reference to the "enable" InputParaemters, used by Controls for toggling on/off MooseObjects.
Definition: MooseObject.h:180

◆ execBitFlags()

ExecFlagType SetupInterface::execBitFlags ( ) const
inherited

(DEPRECATED) Build and return the execution flags as a bitfield TODO: ExecFlagType

Definition at line 85 of file SetupInterface.C.

86 {
87  // TODO: ExecFlagType
88  mooseDeprecated("The execBitFlags method is being removed because MOOSE was updated to use a "
89  "ExecFlagEnum for execute flags. This method maintains the behavior of the "
90  "original method but the use of this method should be removed from your "
91  "application. The ExecFlagEnum should be inspected directly via the "
92  "getExecuteOnEnum() method.");
93 
94  unsigned int exec_bit_field = EXEC_NONE;
95  for (const auto & flag : _exec_flags)
96  exec_bit_field |= flag.id();
97  return ExecFlagType("deprecated", exec_bit_field);
98 }
MooseEnumItem ExecFlagType
Definition: Moose.h:85
const ExecFlagType EXEC_NONE
void mooseDeprecated(Args &&... args)
Emit a deprecated code/feature message with the given stringified, concatenated args.
Definition: MooseError.h:237
const int & id() const
Return the numeric, name, or raw name.
Definition: MooseEnumItem.h:37
const std::vector< ExecFlagType > _exec_flags
(DEPRECATED) execution flag (when is the object executed/evaluated) TODO: ExecFlagType ...

◆ execFlags()

const std::vector< ExecFlagType > & MultiAppTransfer::execFlags ( ) const
virtualinherited

Return the execution flags, handling "same_as_multiapp".

Reimplemented from SetupInterface.

Definition at line 76 of file MultiAppTransfer.C.

77 {
78  mooseDeprecated("The execFlags() methos is being removed because MOOSE has been updated to use a "
79  "ExecFlagEnum for execute flags. The current flags should be retrieved from "
80  "the \"exeucte_on\" parameters of your object or by using the \"_execute_enum\" "
81  "reference to the parameter or the getExecuteOnEnum() method.");
82  return _exec_flags;
83 }
void mooseDeprecated(Args &&... args) const
Definition: MooseObject.h:155
const std::vector< ExecFlagType > _exec_flags
(DEPRECATED) execution flag (when is the object executed/evaluated) TODO: ExecFlagType ...

◆ execute()

void MultiAppProjectionTransfer::execute ( )
overridevirtual

Execute the transfer.

Implements Transfer.

Definition at line 180 of file MultiAppProjectionTransfer.C.

181 {
182  _console << "Beginning projection transfer " << name() << std::endl;
183 
184  getAppInfo();
185 
187  // We are going to project the solutions by solving some linear systems. In
188  // order to assemble the systems, we need to evaluate the "from" domain
189  // solutions at quadrature points in the "to" domain. Some parallel
190  // communication is necessary because each processor doesn't necessarily have
191  // all the "from" information it needs to set its "to" values. We don't want
192  // to use a bunch of big all-to-all broadcasts, so we'll use bounding boxes to
193  // figure out which processors have the information we need and only
194  // communicate with those processors.
195  //
196  // Each processor will
197  // 1. Check its local quadrature points in the "to" domains to see which
198  // "from" domains they might be in.
199  // 2. Send quadrature points to the processors with "from" domains that might
200  // contain those points.
201  // 3. Recieve quadrature points from other processors, evaluate its mesh
202  // functions at those points, and send the values back to the proper
203  // processor
204  // 4. Recieve mesh function evaluations from all relevant processors and
205  // decide which one to use at every quadrature point (the lowest global app
206  // index always wins)
207  // 5. And use the mesh function evaluations to assemble and solve an L2
208  // projection system on its local elements.
210 
212  // For every combination of global "from" problem and local "to" problem, find
213  // which "from" bounding boxes overlap with which "to" elements. Keep track
214  // of which processors own bounding boxes that overlap with which elements.
215  // Build vectors of quadrature points to send to other processors for mesh
216  // function evaluations.
218 
219  // Get the bounding boxes for the "from" domains.
220  std::vector<BoundingBox> bboxes = getFromBoundingBoxes();
221 
222  // Figure out how many "from" domains each processor owns.
223  std::vector<unsigned int> froms_per_proc = getFromsPerProc();
224 
225  std::vector<std::vector<Point>> outgoing_qps(n_processors());
226  std::vector<std::map<std::pair<unsigned int, unsigned int>, unsigned int>> element_index_map(
227  n_processors());
228  // element_index_map[i_to, element_id] = index
229  // outgoing_qps[index] is the first quadrature point in element
230 
231  if (!_qps_cached)
232  {
233  for (unsigned int i_to = 0; i_to < _to_problems.size(); i_to++)
234  {
235  MeshBase & to_mesh = _to_meshes[i_to]->getMesh();
236 
237  LinearImplicitSystem & system = *_proj_sys[i_to];
238 
239  FEType fe_type = system.variable_type(0);
240  std::unique_ptr<FEBase> fe(FEBase::build(to_mesh.mesh_dimension(), fe_type));
241  QGauss qrule(to_mesh.mesh_dimension(), fe_type.default_quadrature_order());
242  fe->attach_quadrature_rule(&qrule);
243  const std::vector<Point> & xyz = fe->get_xyz();
244 
245  unsigned int from0 = 0;
246  for (processor_id_type i_proc = 0; i_proc < n_processors();
247  from0 += froms_per_proc[i_proc], i_proc++)
248  {
249  for (const auto & elem :
250  as_range(to_mesh.local_elements_begin(), to_mesh.local_elements_end()))
251  {
252  fe->reinit(elem);
253 
254  bool qp_hit = false;
255  for (unsigned int i_from = 0; i_from < froms_per_proc[i_proc] && !qp_hit; i_from++)
256  {
257  for (unsigned int qp = 0; qp < qrule.n_points() && !qp_hit; qp++)
258  {
259  Point qpt = xyz[qp];
260  if (bboxes[from0 + i_from].contains_point(qpt + _to_positions[i_to]))
261  qp_hit = true;
262  }
263  }
264 
265  if (qp_hit)
266  {
267  // The selected processor's bounding box contains at least one
268  // quadrature point from this element. Send all qps from this element
269  // and remember where they are in the array using the map.
270  std::pair<unsigned int, unsigned int> key(i_to, elem->id());
271  element_index_map[i_proc][key] = outgoing_qps[i_proc].size();
272  for (unsigned int qp = 0; qp < qrule.n_points(); qp++)
273  {
274  Point qpt = xyz[qp];
275  outgoing_qps[i_proc].push_back(qpt + _to_positions[i_to]);
276  }
277  }
278  }
279  }
280  }
281 
282  if (_fixed_meshes)
283  _cached_index_map = element_index_map;
284  }
285  else
286  {
287  element_index_map = _cached_index_map;
288  }
289 
291  // Request quadrature point evaluations from other processors and handle
292  // requests sent to this processor.
294 
295  // Non-blocking send quadrature points to other processors.
296  std::vector<Parallel::Request> send_qps(n_processors());
297  if (!_qps_cached)
298  for (processor_id_type i_proc = 0; i_proc < n_processors(); i_proc++)
299  if (i_proc != processor_id())
300  _communicator.send(i_proc, outgoing_qps[i_proc], send_qps[i_proc]);
301 
302  // Get the local bounding boxes.
303  std::vector<BoundingBox> local_bboxes(froms_per_proc[processor_id()]);
304  {
305  // Find the index to the first of this processor's local bounding boxes.
306  unsigned int local_start = 0;
307  for (processor_id_type i_proc = 0; i_proc < n_processors() && i_proc != processor_id();
308  i_proc++)
309  local_start += froms_per_proc[i_proc];
310 
311  // Extract the local bounding boxes.
312  for (unsigned int i_from = 0; i_from < froms_per_proc[processor_id()]; i_from++)
313  local_bboxes[i_from] = bboxes[local_start + i_from];
314  }
315 
316  // Setup the local mesh functions.
317  std::vector<MeshFunction *> local_meshfuns(froms_per_proc[processor_id()], NULL);
318  for (unsigned int i_from = 0; i_from < _from_problems.size(); i_from++)
319  {
320  FEProblemBase & from_problem = *_from_problems[i_from];
321  MooseVariableFEBase & from_var = from_problem.getVariable(
323  System & from_sys = from_var.sys().system();
324  unsigned int from_var_num = from_sys.variable_number(from_var.name());
325 
326  MeshFunction * from_func = new MeshFunction(
327  from_problem.es(), *from_sys.current_local_solution, from_sys.get_dof_map(), from_var_num);
328  from_func->init(Trees::ELEMENTS);
329  from_func->enable_out_of_mesh_mode(OutOfMeshValue);
330  local_meshfuns[i_from] = from_func;
331  }
332 
333  // Recieve quadrature points from other processors, evaluate mesh frunctions
334  // at those points, and send the values back.
335  std::vector<Parallel::Request> send_evals(n_processors());
336  std::vector<Parallel::Request> send_ids(n_processors());
337  std::vector<std::vector<Real>> outgoing_evals(n_processors());
338  std::vector<std::vector<unsigned int>> outgoing_ids(n_processors());
339  std::vector<std::vector<Real>> incoming_evals(n_processors());
340  std::vector<std::vector<unsigned int>> incoming_app_ids(n_processors());
341  for (processor_id_type i_proc = 0; i_proc < n_processors(); i_proc++)
342  {
343  // Use the cached qps if they're available.
344  std::vector<Point> incoming_qps;
345  if (!_qps_cached)
346  {
347  if (i_proc == processor_id())
348  incoming_qps = outgoing_qps[i_proc];
349  else
350  _communicator.receive(i_proc, incoming_qps);
351  // Cache these qps for later if _fixed_meshes
352  if (_fixed_meshes)
353  _cached_qps[i_proc] = incoming_qps;
354  }
355  else
356  {
357  incoming_qps = _cached_qps[i_proc];
358  }
359 
360  outgoing_evals[i_proc].resize(incoming_qps.size(), OutOfMeshValue);
361  if (_direction == FROM_MULTIAPP)
362  outgoing_ids[i_proc].resize(incoming_qps.size(), libMesh::invalid_uint);
363  for (unsigned int qp = 0; qp < incoming_qps.size(); qp++)
364  {
365  Point qpt = incoming_qps[qp];
366 
367  // Loop until we've found the lowest-ranked app that actually contains
368  // the quadrature point.
369  for (unsigned int i_from = 0; i_from < _from_problems.size(); i_from++)
370  {
371  if (local_bboxes[i_from].contains_point(qpt))
372  {
373  outgoing_evals[i_proc][qp] = (*local_meshfuns[i_from])(qpt - _from_positions[i_from]);
374  if (_direction == FROM_MULTIAPP)
375  outgoing_ids[i_proc][qp] = _local2global_map[i_from];
376  }
377  }
378  }
379 
380  if (i_proc == processor_id())
381  {
382  incoming_evals[i_proc] = outgoing_evals[i_proc];
383  if (_direction == FROM_MULTIAPP)
384  incoming_app_ids[i_proc] = outgoing_ids[i_proc];
385  }
386  else
387  {
388  _communicator.send(i_proc, outgoing_evals[i_proc], send_evals[i_proc]);
389  if (_direction == FROM_MULTIAPP)
390  _communicator.send(i_proc, outgoing_ids[i_proc], send_ids[i_proc]);
391  }
392  }
393 
395  // Gather all of the qp evaluations and pick out the best ones for each qp.
397  for (processor_id_type i_proc = 0; i_proc < n_processors(); i_proc++)
398  {
399  if (i_proc == processor_id())
400  continue;
401  _communicator.receive(i_proc, incoming_evals[i_proc]);
402  if (_direction == FROM_MULTIAPP)
403  _communicator.receive(i_proc, incoming_app_ids[i_proc]);
404  }
405 
406  std::vector<std::vector<Real>> final_evals(_to_problems.size());
407  std::vector<std::map<dof_id_type, unsigned int>> trimmed_element_maps(_to_problems.size());
408 
409  for (unsigned int i_to = 0; i_to < _to_problems.size(); i_to++)
410  {
411  MeshBase & to_mesh = _to_meshes[i_to]->getMesh();
412  LinearImplicitSystem & system = *_proj_sys[i_to];
413 
414  FEType fe_type = system.variable_type(0);
415  std::unique_ptr<FEBase> fe(FEBase::build(to_mesh.mesh_dimension(), fe_type));
416  QGauss qrule(to_mesh.mesh_dimension(), fe_type.default_quadrature_order());
417  fe->attach_quadrature_rule(&qrule);
418  const std::vector<Point> & xyz = fe->get_xyz();
419 
420  for (const auto & elem : to_mesh.active_local_element_ptr_range())
421  {
422  fe->reinit(elem);
423 
424  bool element_is_evaled = false;
425  std::vector<Real> evals(qrule.n_points(), 0.);
426 
427  for (unsigned int qp = 0; qp < qrule.n_points(); qp++)
428  {
429  Point qpt = xyz[qp];
430 
431  unsigned int lowest_app_rank = libMesh::invalid_uint;
432  for (unsigned int i_proc = 0; i_proc < n_processors(); i_proc++)
433  {
434  // Ignore the selected processor if the element wasn't found in it's
435  // bounding box.
436  std::map<std::pair<unsigned int, unsigned int>, unsigned int> & map =
437  element_index_map[i_proc];
438  std::pair<unsigned int, unsigned int> key(i_to, elem->id());
439  if (map.find(key) == map.end())
440  continue;
441  unsigned int qp0 = map[key];
442 
443  // Ignore the selected processor if it's app has a higher rank than the
444  // previously found lowest app rank.
445  if (_direction == FROM_MULTIAPP)
446  if (incoming_app_ids[i_proc][qp0 + qp] >= lowest_app_rank)
447  continue;
448 
449  // Ignore the selected processor if the qp was actually outside the
450  // processor's subapp's mesh.
451  if (incoming_evals[i_proc][qp0 + qp] == OutOfMeshValue)
452  continue;
453 
454  // This is the best meshfunction evaluation so far, save it.
455  element_is_evaled = true;
456  evals[qp] = incoming_evals[i_proc][qp0 + qp];
457  }
458  }
459 
460  // If we found good evaluations for any of the qps in this element, save
461  // those evaluations for later.
462  if (element_is_evaled)
463  {
464  trimmed_element_maps[i_to][elem->id()] = final_evals[i_to].size();
465  for (unsigned int qp = 0; qp < qrule.n_points(); qp++)
466  final_evals[i_to].push_back(evals[qp]);
467  }
468  }
469  }
470 
472  // We now have just one or zero mesh function values at all of our local
473  // quadrature points. Stash those values (and a map linking them to element
474  // ids) in the equation systems parameters and project the solution.
476 
477  for (unsigned int i_to = 0; i_to < _to_problems.size(); i_to++)
478  {
479  _to_es[i_to]->parameters.set<std::vector<Real> *>("final_evals") = &final_evals[i_to];
480  _to_es[i_to]->parameters.set<std::map<dof_id_type, unsigned int> *>("element_map") =
481  &trimmed_element_maps[i_to];
482  projectSolution(i_to);
483  _to_es[i_to]->parameters.set<std::vector<Real> *>("final_evals") = NULL;
484  _to_es[i_to]->parameters.set<std::map<dof_id_type, unsigned int> *>("element_map") = NULL;
485  }
486 
487  for (unsigned int i = 0; i < _from_problems.size(); i++)
488  delete local_meshfuns[i];
489 
490  // Make sure all our sends succeeded.
491  for (processor_id_type i_proc = 0; i_proc < n_processors(); i_proc++)
492  {
493  if (i_proc == processor_id())
494  continue;
495  if (!_qps_cached)
496  send_qps[i_proc].wait();
497  send_evals[i_proc].wait();
498  if (_direction == FROM_MULTIAPP)
499  send_ids[i_proc].wait();
500  }
501 
502  if (_fixed_meshes)
503  _qps_cached = true;
504 
505  _console << "Finished projection transfer " << name() << std::endl;
506 }
virtual MooseVariableFEBase & getVariable(THREAD_ID tid, const std::string &var_name, Moose::VarKindType expected_var_type=Moose::VarKindType::VAR_ANY, Moose::VarFieldType expected_var_field_type=Moose::VarFieldType::VAR_FIELD_ANY) override
Returns the variable reference for requested variable which must be of the expected_var_type (Nonline...
std::vector< std::map< std::pair< unsigned int, unsigned int >, unsigned int > > _cached_index_map
std::vector< EquationSystems * > _to_es
std::vector< BoundingBox > getFromBoundingBoxes()
Return the bounding boxes of all the "from" domains, including all the domains not local to this proc...
std::vector< FEProblemBase * > _to_problems
std::vector< Point > _from_positions
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual EquationSystems & es() override
nl system()
MooseEnum _direction
Whether we&#39;re transferring to or from the MultiApp.
std::vector< unsigned int > getFromsPerProc()
Return the number of "from" domains that each processor owns.
virtual System & system()=0
Get the reference to the libMesh system.
std::vector< unsigned int > _local2global_map
static const Number OutOfMeshValue
Definition: Transfer.h:76
std::vector< Point > _to_positions
const std::string & name() const
Get the variable name.
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51
void projectSolution(unsigned int to_problem)
std::vector< LinearImplicitSystem * > _proj_sys
const ConsoleStream _console
An instance of helper class to write streams to the Console objects.
void getAppInfo()
This method will fill information into the convenience member variables (_to_problems, _from_meshes, etc.)
SystemBase & sys()
Get the system this variable is part of.
std::vector< FEProblemBase * > _from_problems
std::vector< std::vector< Point > > _cached_qps
std::vector< MooseMesh * > _to_meshes

◆ find_sys()

System * Transfer::find_sys ( EquationSystems &  es,
const std::string &  var_name 
)
staticinherited

Small helper function for finding the system containing the variable.

Note that this implies that variable names are unique across all systems!

Parameters
esThe EquationSystems object to be searched.
var_nameThe name of the variable you are looking for.

Note that this implies that variable names are unique across all systems!

Definition at line 65 of file Transfer.C.

Referenced by MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), MultiAppDTKInterpolationTransfer::execute(), DTKInterpolationAdapter::get_values_to_fill(), DTKInterpolationAdapter::get_variable_evaluator(), MultiAppMeshFunctionTransfer::transferVariable(), DTKInterpolationAdapter::update_variable_values(), and MultiAppTransfer::variableIntegrityCheck().

66 {
67  // Find the system this variable is from
68  for (unsigned int i = 0; i < es.n_systems(); i++)
69  if (es.get_system(i).has_variable(var_name))
70  return &es.get_system(i);
71 
72  ::mooseError("Unable to find variable " + var_name + " in any system.");
73 
74  // Unreachable
75  return &es.get_system(0);
76 }
void mooseError(Args &&... args) const
Definition: MooseObject.h:140

◆ fromMultiApp()

void MultiAppProjectionTransfer::fromMultiApp ( )
protected

◆ getAppInfo()

void MultiAppTransfer::getAppInfo ( )
protectedinherited

This method will fill information into the convenience member variables (_to_problems, _from_meshes, etc.)

Definition at line 86 of file MultiAppTransfer.C.

Referenced by MultiAppNearestNodeTransfer::execute(), MultiAppMeshFunctionTransfer::execute(), execute(), and initialSetup().

87 {
88  // I would like to do all of this in initialSetup, but it will fail with
89  // multiapps that reset. A reset deletes and rebuilds the FEProblems so all
90  // of the pointers will be broken.
91 
92  // Clear the vectors since we've probably built them up from a previous call
93  _from_problems.clear();
94  _to_problems.clear();
95  _from_es.clear();
96  _to_es.clear();
97  _from_meshes.clear();
98  _to_meshes.clear();
99  _to_positions.clear();
100  _from_positions.clear();
101 
102  // Build the vectors for to problems, from problems, and subapps positions.
103  switch (_direction)
104  {
105  case TO_MULTIAPP:
106  _from_problems.push_back(&_multi_app->problemBase());
107  _from_positions.push_back(Point(0., 0., 0.));
108  for (unsigned int i_app = 0; i_app < _multi_app->numGlobalApps(); i_app++)
109  {
110  if (!_multi_app->hasLocalApp(i_app))
111  continue;
112  _local2global_map.push_back(i_app);
113  _to_problems.push_back(&_multi_app->appProblemBase(i_app));
114  _to_positions.push_back(_multi_app->position(i_app));
115  }
116  break;
117 
118  case FROM_MULTIAPP:
119  _to_problems.push_back(&_multi_app->problemBase());
120  _to_positions.push_back(Point(0., 0., 0.));
121  for (unsigned int i_app = 0; i_app < _multi_app->numGlobalApps(); i_app++)
122  {
123  if (!_multi_app->hasLocalApp(i_app))
124  continue;
125  _local2global_map.push_back(i_app);
126  _from_problems.push_back(&_multi_app->appProblemBase(i_app));
127  _from_positions.push_back(_multi_app->position(i_app));
128  }
129  break;
130  }
131 
132  // Build the from and to equation systems and mesh vectors.
133  for (unsigned int i = 0; i < _to_problems.size(); i++)
134  {
135  // TODO: Do I actually want es or displaced es?
136  _to_es.push_back(&_to_problems[i]->es());
137  if (_displaced_target_mesh && _to_problems[i]->getDisplacedProblem())
138  _to_meshes.push_back(&_to_problems[i]->getDisplacedProblem()->mesh());
139  else
140  _to_meshes.push_back(&_to_problems[i]->mesh());
141  }
142  for (unsigned int i = 0; i < _from_problems.size(); i++)
143  {
144  _from_es.push_back(&_from_problems[i]->es());
145  if (_displaced_source_mesh && _from_problems[i]->getDisplacedProblem())
146  _from_meshes.push_back(&_from_problems[i]->getDisplacedProblem()->mesh());
147  else
148  _from_meshes.push_back(&_from_problems[i]->mesh());
149  }
150 }
std::vector< EquationSystems * > _to_es
std::vector< FEProblemBase * > _to_problems
std::vector< Point > _from_positions
std::shared_ptr< MultiApp > _multi_app
The MultiApp this Transfer is transferring data to or from.
bool _displaced_target_mesh
True if displaced mesh is used for the target mesh, otherwise false.
std::vector< MooseMesh * > _from_meshes
MooseEnum _direction
Whether we&#39;re transferring to or from the MultiApp.
std::vector< unsigned int > _local2global_map
std::vector< Point > _to_positions
std::vector< EquationSystems * > _from_es
bool _displaced_source_mesh
True if displaced mesh is used for the source mesh, otherwise false.
std::vector< FEProblemBase * > _from_problems
std::vector< MooseMesh * > _to_meshes

◆ getCheckedPointerParam()

template<typename T >
T MooseObject::getCheckedPointerParam ( const std::string &  name,
const std::string &  error_string = "" 
) const
inlineinherited

Verifies that the requested parameter exists and is not NULL and returns it to the caller.

The template parameter must be a pointer or an error will be thrown.

Definition at line 72 of file MooseObject.h.

73  {
74  return parameters().getCheckedPointerParam<T>(name, error_string);
75  }
T getCheckedPointerParam(const std::string &name, const std::string &error_string="") const
Verifies that the requested parameter exists and is not NULL and returns it to the caller...
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:57
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51

◆ getExecuteOnEnum()

const ExecFlagEnum & SetupInterface::getExecuteOnEnum ( ) const
inherited

Return the execute on MultiMooseEnum for this object.

Definition at line 67 of file SetupInterface.C.

Referenced by ExecuteMooseObjectWarehouse< Transfer >::addObjectMask(), EigenExecutionerBase::init(), AttribExecOns::initFrom(), and MultiAppTransfer::MultiAppTransfer().

68 {
69  return _execute_enum;
70 }
const ExecFlagEnum & _execute_enum
Execute settings for this oejct.

◆ getExecuteOptions()

ExecFlagEnum SetupInterface::getExecuteOptions ( )
staticinherited

(DEPRECATED) Returns the available options for the 'execute_on' input parameters TODO: ExecFlagType

Returns
A MooseEnum with the available 'execute_on' options, the default is 'residual'

Definition at line 101 of file SetupInterface.C.

102 {
103  // TODO: ExecFlagType
104  ::mooseDeprecated("The 'getExecuteOptions' was replaced by the ExecFlagEnum class because MOOSE "
105  "was updated to use this for the execute flags and the new function provides "
106  "additional arguments for modification of the enum.");
108 }
ExecFlagEnum getDefaultExecFlagEnum()
Return the default ExecFlagEnum for MOOSE.
Definition: MooseUtils.C:724
void mooseDeprecated(Args &&... args)
Emit a deprecated code/feature message with the given stringified, concatenated args.
Definition: MooseError.h:237

◆ getFromBoundingBoxes() [1/2]

std::vector< BoundingBox > MultiAppTransfer::getFromBoundingBoxes ( )
protectedinherited

Return the bounding boxes of all the "from" domains, including all the domains not local to this processor.

The is a boundary restricted version which will return a degenerate minimum boundary box (min, min, min, min, min, min) in the case where the source domain doesn't have any active nodes on the boundary.

Definition at line 153 of file MultiAppTransfer.C.

Referenced by MultiAppNearestNodeTransfer::execute(), execute(), and MultiAppMeshFunctionTransfer::transferVariable().

154 {
155  std::vector<std::pair<Point, Point>> bb_points(_from_meshes.size());
156  for (unsigned int i = 0; i < _from_meshes.size(); i++)
157  {
158  // Get a bounding box around the mesh elements that are local to the current
159  // processor.
160  BoundingBox bbox = MeshTools::create_local_bounding_box(*_from_meshes[i]);
161 
162  // Translate the bounding box to the from domain's position.
163  bbox.first += _from_positions[i];
164  bbox.second += _from_positions[i];
165 
166  // Cast the bounding box into a pair of points (so it can be put through
167  // MPI communication).
168  bb_points[i] = static_cast<std::pair<Point, Point>>(bbox);
169  }
170 
171  // Serialize the bounding box points.
172  _communicator.allgather(bb_points);
173 
174  // Recast the points back into bounding boxes and return.
175  std::vector<BoundingBox> bboxes(bb_points.size());
176  for (unsigned int i = 0; i < bb_points.size(); i++)
177  bboxes[i] = static_cast<BoundingBox>(bb_points[i]);
178 
179  return bboxes;
180 }
std::vector< Point > _from_positions
std::vector< MooseMesh * > _from_meshes

◆ getFromBoundingBoxes() [2/2]

std::vector< BoundingBox > MultiAppTransfer::getFromBoundingBoxes ( BoundaryID  boundary_id)
protectedinherited

Definition at line 183 of file MultiAppTransfer.C.

184 {
185  std::vector<std::pair<Point, Point>> bb_points(_from_meshes.size());
186  const Real min_r = std::numeric_limits<Real>::lowest();
187  const Real max_r = std::numeric_limits<Real>::max();
188 
189  for (unsigned int i = 0; i < _from_meshes.size(); i++)
190  {
191 
192  Point min(max_r, max_r, max_r);
193  Point max(min_r, min_r, min_r);
194  bool at_least_one = false;
195 
196  // TODO: Factor this into mesh_tools after adding new boundary bounding box routine.
197  const ConstBndNodeRange & bnd_nodes = *_from_meshes[i]->getBoundaryNodeRange();
198  for (const auto & bnode : bnd_nodes)
199  {
200  if (bnode->_bnd_id == boundary_id && bnode->_node->processor_id() == processor_id())
201  {
202  const auto & node = *bnode->_node;
203  for (unsigned int i = 0; i < LIBMESH_DIM; ++i)
204  {
205  min = std::min(min(i), node(i));
206  max = std::max(max(i), node(i));
207  at_least_one = true;
208  }
209  }
210  }
211 
212  BoundingBox bbox(min, max);
213  if (!at_least_one)
214  bbox.min() = max; // If we didn't hit any nodes, this will be _the_ minimum bbox
215  else
216  {
217  // Translate the bounding box to the from domain's position.
218  bbox.first += _from_positions[i];
219  bbox.second += _from_positions[i];
220  }
221 
222  // Cast the bounding box into a pair of points (so it can be put through
223  // MPI communication).
224  bb_points[i] = static_cast<std::pair<Point, Point>>(bbox);
225  }
226 
227  // Serialize the bounding box points.
228  _communicator.allgather(bb_points);
229 
230  // Recast the points back into bounding boxes and return.
231  std::vector<BoundingBox> bboxes(bb_points.size());
232  for (unsigned int i = 0; i < bb_points.size(); i++)
233  bboxes[i] = static_cast<BoundingBox>(bb_points[i]);
234 
235  return bboxes;
236 }
std::vector< Point > _from_positions
std::vector< MooseMesh * > _from_meshes
StoredRange< MooseMesh::const_bnd_node_iterator, const BndNode * > ConstBndNodeRange
Some useful StoredRange typedefs.
Definition: MooseMesh.h:1243

◆ getFromsPerProc()

std::vector< unsigned int > MultiAppTransfer::getFromsPerProc ( )
protectedinherited

Return the number of "from" domains that each processor owns.

Definition at line 239 of file MultiAppTransfer.C.

Referenced by MultiAppNearestNodeTransfer::execute(), execute(), and MultiAppMeshFunctionTransfer::transferVariable().

240 {
241  std::vector<unsigned int> froms_per_proc;
242  switch (_direction)
243  {
244  case TO_MULTIAPP:
245  froms_per_proc.resize(n_processors(), 1);
246  break;
247  case FROM_MULTIAPP:
248  froms_per_proc.resize(n_processors());
249  _communicator.allgather(_multi_app->numLocalApps(), froms_per_proc);
250  break;
251  }
252  return froms_per_proc;
253 }
std::shared_ptr< MultiApp > _multi_app
The MultiApp this Transfer is transferring data to or from.
MooseEnum _direction
Whether we&#39;re transferring to or from the MultiApp.

◆ getMooseApp()

MooseApp& MooseObject::getMooseApp ( ) const
inlineinherited

Get the MooseApp this object is associated with.

Definition at line 86 of file MooseObject.h.

Referenced by RestartableDataIO::createBackup(), RestartableDataIO::deserializeRestartableData(), ConsoleUtils::outputMeshInformation(), Resurrector::restartRestartableData(), and RestartableDataIO::restoreBackup().

86 { return _app; }
MooseApp & _app
The MooseApp this object is associated with.
Definition: MooseObject.h:171

◆ getMultiApp()

const std::shared_ptr<MultiApp> MultiAppTransfer::getMultiApp ( ) const
inlineinherited

Return the MultiApp that this transfer belongs to.

Definition at line 59 of file MultiAppTransfer.h.

59 { return _multi_app; }
std::shared_ptr< MultiApp > _multi_app
The MultiApp this Transfer is transferring data to or from.

◆ getParam()

template<typename T >
const T & MooseObject::getParam ( const std::string &  name) const
inherited

Retrieve a parameter for the object.

Parameters
nameThe name of the parameter
Returns
The value of the parameter

Definition at line 185 of file MooseObject.h.

Referenced by FEProblemBase::addMaterialHelper(), ConstraintWarehouse::addObject(), BicubicSplineFunction::BicubicSplineFunction(), Piecewise::buildFromXandY(), DerivativeParsedMaterial::DerivativeParsedMaterial(), EigenKernel::EigenKernel(), FEProblemBase::FEProblemBase(), FieldSplitPreconditioner::FieldSplitPreconditioner(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), SideSetsBetweenSubdomainsGenerator::generate(), ExtraNodesetGenerator::generate(), MeshExtruderGenerator::generate(), SideSetsAroundSubdomainGenerator::generate(), GenericConstantRankTwoTensor::GenericConstantRankTwoTensor(), TimeSequenceStepper::init(), AttribThread::initFrom(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), Console::initialSetup(), AdvancedOutput::initialSetup(), SideSetsBetweenSubdomains::modify(), AddExtraNodeset::modify(), MeshExtruder::modify(), SideSetsAroundSubdomain::modify(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedMaterial::ParsedMaterial(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), SingleMatrixPreconditioner::SingleMatrixPreconditioner(), TimePeriod::TimePeriod(), and VectorOfPostprocessors::VectorOfPostprocessors().

186 {
187  return InputParameters::getParamHelper(name, _pars, static_cast<T *>(0));
188 }
static const T & getParamHelper(const std::string &name, const InputParameters &pars, const T *the_type)
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:168
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51

◆ getTransferVector()

NumericVector< Real > & MultiAppTransfer::getTransferVector ( unsigned int  i_local,
std::string  var_name 
)
protectedinherited

If we are transferring to a multiapp, return the appropriate solution vector.

Definition at line 256 of file MultiAppTransfer.C.

Referenced by MultiAppNearestNodeTransfer::execute(), and MultiAppMeshFunctionTransfer::transferVariable().

257 {
258  mooseAssert(_direction == TO_MULTIAPP, "getTransferVector only works for transfers to multiapps");
259 
260  return _multi_app->appTransferVector(_local2global_map[i_local], var_name);
261 }
std::shared_ptr< MultiApp > _multi_app
The MultiApp this Transfer is transferring data to or from.
MooseEnum _direction
Whether we&#39;re transferring to or from the MultiApp.
std::vector< unsigned int > _local2global_map

◆ initialSetup()

void MultiAppProjectionTransfer::initialSetup ( )
overridevirtual

Method called at the beginning of the simulation for checking integrity or doing one-time setup.

Reimplemented from Transfer.

Definition at line 72 of file MultiAppProjectionTransfer.C.

73 {
74  getAppInfo();
75 
76  _proj_sys.resize(_to_problems.size(), NULL);
77 
78  for (unsigned int i_to = 0; i_to < _to_problems.size(); i_to++)
79  {
80  FEProblemBase & to_problem = *_to_problems[i_to];
81  EquationSystems & to_es = to_problem.es();
82 
83  // Add the projection system.
84  FEType fe_type = to_problem
85  .getVariable(0,
89  .feType();
90  LinearImplicitSystem & proj_sys = to_es.add_system<LinearImplicitSystem>("proj-sys-" + name());
91  _proj_var_num = proj_sys.add_variable("var", fe_type);
92  proj_sys.attach_assemble_function(assemble_l2);
93  _proj_sys[i_to] = &proj_sys;
94 
95  // Prevent the projection system from being written to checkpoint
96  // files. In the event of a recover or restart, we'll read the checkpoint
97  // before this initialSetup method is called. As a result, we'll find
98  // systems in the checkpoint (the projection systems) that we don't know
99  // what to do with, and there will be a crash. We could fix this by making
100  // the systems in the constructor, except we don't know how many sub apps
101  // there are at the time of construction. So instead, we'll just nuke the
102  // projection system and rebuild it from scratch every recover/restart.
103  proj_sys.hide_output() = true;
104 
105  // Reinitialize EquationSystems since we added a system.
106  to_es.reinit();
107  }
108 
109  if (_fixed_meshes)
110  {
111  _cached_qps.resize(n_processors());
112  _cached_index_map.resize(n_processors());
113  }
114 }
virtual MooseVariableFEBase & getVariable(THREAD_ID tid, const std::string &var_name, Moose::VarKindType expected_var_type=Moose::VarKindType::VAR_ANY, Moose::VarFieldType expected_var_field_type=Moose::VarFieldType::VAR_FIELD_ANY) override
Returns the variable reference for requested variable which must be of the expected_var_type (Nonline...
std::vector< std::map< std::pair< unsigned int, unsigned int >, unsigned int > > _cached_index_map
std::vector< FEProblemBase * > _to_problems
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
const FEType & feType() const
Get the type of finite element object.
virtual EquationSystems & es() override
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51
std::vector< LinearImplicitSystem * > _proj_sys
unsigned int _proj_var_num
Having one projection variable number seems weird, but there is always one variable in every system b...
void getAppInfo()
This method will fill information into the convenience member variables (_to_problems, _from_meshes, etc.)
friend void assemble_l2(EquationSystems &es, const std::string &system_name)
std::vector< std::vector< Point > > _cached_qps

◆ isParamValid()

bool MooseObject::isParamValid ( const std::string &  name) const
inlineinherited

Test if the supplied parameter is valid.

Parameters
nameThe name of the parameter to test

Definition at line 81 of file MooseObject.h.

Referenced by AdvancedOutput::AdvancedOutput(), BicubicSplineFunction::BicubicSplineFunction(), Piecewise::buildFromFile(), Piecewise::buildFromXandY(), DistributedGeneratedMesh::buildMesh(), GeneratedMesh::buildMesh(), LibmeshPartitioner::clone(), OversampleOutput::cloneMesh(), CSVReader::CSVReader(), MultiAppNearestNodeTransfer::execute(), Exodus::Exodus(), FEProblemBase::FEProblemBase(), FileOutput::FileOutput(), MultiApp::fillPositions(), FunctionDT::FunctionDT(), RenameBoundaryGenerator::generate(), ElementSubdomainIDGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), ExtraNodesetGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), MeshSideSetGenerator::generate(), RenameBlockGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainMeshGenerator::generate(), MeshExtruderGenerator::generate(), SubdomainBoundingBoxGenerator::generate(), PatternedMeshGenerator::generate(), MultiAppNearestNodeTransfer::getLocalEntities(), MeshGenerator::getMesh(), MultiAppNearestNodeTransfer::getNearestNode(), IterationAdaptiveDT::init(), EigenExecutionerBase::init(), MooseMesh::init(), AdvancedOutput::initExecutionTypes(), BlockRestrictable::initializeBlockRestrictable(), BoundaryRestrictable::initializeBoundaryRestrictable(), SolutionAux::initialSetup(), MooseParsedVectorFunction::initialSetup(), Console::initialSetup(), Receiver::initialSetup(), SolutionFunction::initialSetup(), MooseParsedGradFunction::initialSetup(), MooseParsedFunction::initialSetup(), AdvancedOutput::initialSetup(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), IterationAdaptiveDT::IterationAdaptiveDT(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), BreakBoundaryOnSubdomain::modify(), MeshExtruder::modify(), MeshSideSet::modify(), LowerDBlockFromSideset::modify(), AssignElementSubdomainID::modify(), ParsedSubdomainMeshModifier::modify(), RenameBlock::modify(), SubdomainBoundingBox::modify(), MooseMesh::MooseMesh(), EigenExecutionerBase::normalizeSolution(), Output::Output(), PetscOutput::PetscOutput(), Piecewise::Piecewise(), SolutionUserObject::readExodusII(), RenameBlock::RenameBlock(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), SolutionUserObject::SolutionUserObject(), and TimePeriod::TimePeriod().

81 { return _pars.isParamValid(name); }
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:168
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51
bool isParamValid(const std::string &name) const
This method returns parameters that have been initialized in one fashion or another, i.e.

◆ jacobianSetup()

void SetupInterface::jacobianSetup ( )
virtualinherited

Gets called just before the Jacobian is computed and before this object is asked to do its job.

Reimplemented in EqualValueEmbeddedConstraint.

Definition at line 52 of file SetupInterface.C.

53 {
54 }

◆ mooseDeprecated()

template<typename... Args>
void MooseObject::mooseDeprecated ( Args &&...  args) const
inlineinherited

◆ mooseError()

template<typename... Args>
void MooseObject::mooseError ( Args &&...  args) const
inlineinherited

Definition at line 140 of file MooseObject.h.

Referenced by PetscExternalPartitioner::_do_partition(), GridPartitioner::_do_partition(), FEProblemBase::addConstraint(), FEProblemBase::addInitialCondition(), FEProblem::addLineSearch(), FEProblemBase::addLineSearch(), FEProblemBase::addOutput(), DiracKernel::addPointWithValidId(), FEProblemBase::addPostprocessor(), MooseMesh::addQuadratureNode(), FEProblemBase::addVectorPostprocessor(), Output::advancedExecuteOn(), AllSideSetsByNormalsGenerator::AllSideSetsByNormalsGenerator(), AnnularMesh::AnnularMesh(), AnnularMeshGenerator::AnnularMeshGenerator(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), DerivativeParsedMaterialHelper::assembleDerivatives(), Function::average(), Axisymmetric2D3DSolutionFunction::Axisymmetric2D3DSolutionFunction(), BicubicSplineFunction::BicubicSplineFunction(), BoundingValueElementDamper::BoundingValueElementDamper(), BoundingValueNodalDamper::BoundingValueNodalDamper(), BoundsAux::BoundsAux(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), BreakMeshByBlockGeneratorBase::BreakMeshByBlockGeneratorBase(), MooseMesh::buildCoarseningMap(), Piecewise::buildFromFile(), Piecewise::buildFromXandY(), Piecewise::buildFromXY(), TiledMesh::buildMesh(), FileMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), DistributedGeneratedMesh::buildMesh(), GeneratedMesh::buildMesh(), ImageMeshGenerator::buildMesh3D(), ImageMesh::buildMesh3D(), MooseMesh::buildRefinementMap(), MooseMesh::buildSideList(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), EigenExecutionerBase::chebyshev(), SubProblem::checkBlockMatProps(), SubProblem::checkBoundaryMatProps(), FEProblemBase::checkCoordinateSystems(), FEProblemBase::checkDependMaterialsHelper(), FEProblemBase::checkDisplacementOrders(), Material::checkExecutionStage(), BreakMeshByBlockBase::checkInputParameter(), Steady::checkIntegrity(), EigenExecutionerBase::checkIntegrity(), ActuallyExplicitEuler::checkLinearConvergence(), FEProblemBase::checkProblemIntegrity(), Material::checkStatefulSanity(), FEProblemBase::checkUserObjects(), LibmeshPartitioner::clone(), MooseMesh::clone(), ComparisonPostprocessor::comparisonIsTrue(), CompositeFunction::CompositeFunction(), ElementLpNormAux::compute(), ElementH1ErrorFunctionAux::compute(), NodalPatchRecovery::compute(), InterfaceKernel::computeElemNeighJacobian(), TimeSequenceStepperBase::computeFailedDT(), IterationAdaptiveDT::computeFailedDT(), TimeStepper::computeFailedDT(), HistogramVectorPostprocessor::computeHistogram(), EqualValueEmbeddedConstraint::computeQpJacobian(), EqualValueEmbeddedConstraint::computeQpOffDiagJacobian(), FEProblemBase::computeResidualInternal(), FEProblemBase::computeResidualTag(), FEProblemBase::computeResidualType(), StatisticsVectorPostprocessor::computeStatValue(), Material::computeSubdomainProperties(), BDF2::computeTimeDerivatives(), ExplicitEuler::computeTimeDerivatives(), ImplicitEuler::computeTimeDerivatives(), NewmarkBeta::computeTimeDerivatives(), CrankNicolson::computeTimeDerivatives(), ActuallyExplicitEuler::computeTimeDerivatives(), LStableDirk2::computeTimeDerivatives(), LStableDirk3::computeTimeDerivatives(), ImplicitMidpoint::computeTimeDerivatives(), ExplicitTVDRK2::computeTimeDerivatives(), AStableDirk4::computeTimeDerivatives(), LStableDirk4::computeTimeDerivatives(), ExplicitRK2::computeTimeDerivatives(), PenetrationAux::computeValue(), ConcentricCircleMesh::ConcentricCircleMesh(), ConcentricCircleMeshGenerator::ConcentricCircleMeshGenerator(), TimeStepper::constrainStep(), AuxKernel::coupledDot(), AuxKernel::coupledDotDu(), CoupledForce::CoupledForce(), DebugResidualAux::DebugResidualAux(), BicubicSplineFunction::derivative(), DerivativeSumMaterial::DerivativeSumMaterial(), DGKernel::DGKernel(), FEProblemBase::duplicateVariableCheck(), EigenProblem::EigenProblem(), Eigenvalues::Eigenvalues(), ElementalVariableValue::ElementalVariableValue(), ElementQualityAux::ElementQualityAux(), MooseMesh::errorIfDistributedMesh(), SolutionUserObject::evalMeshFunction(), SolutionUserObject::evalMeshFunctionGradient(), SolutionUserObject::evalMultiValuedMeshFunction(), SolutionUserObject::evalMultiValuedMeshFunctionGradient(), PerflogDumper::execute(), MultiAppPostprocessorTransfer::execute(), DiscreteElementUserObject::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), ElementQualityChecker::execute(), NodalValueSampler::execute(), MultiAppNearestNodeTransfer::execute(), PointValue::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), FindValueOnLine::execute(), TimeExtremeValue::execute(), VectorPostprocessorComparison::execute(), LeastSquaresFit::execute(), LeastSquaresFitHistory::execute(), FEProblemBase::executeControls(), MultiAppVectorPostprocessorTransfer::executeFromMultiapp(), MultiAppVectorPostprocessorTransfer::executeToMultiapp(), Exodus::Exodus(), FileOutput::FileOutput(), CentroidMultiApp::fillPositions(), MultiApp::fillPositions(), VerifyElementUniqueID::finalize(), VerifyNodalUniqueID::finalize(), DiscreteElementUserObject::finalize(), ElementQualityChecker::finalize(), MemoryUsage::finalize(), PointSamplerBase::finalize(), Transfer::find_sys(), BreakMeshByBlockBase::findFreeBoundaryId(), BreakMeshByBlockGeneratorBase::findFreeBoundaryId(), FunctionDT::FunctionDT(), FunctionMaterialBase::FunctionMaterialBase(), ParsedMaterialHelper::functionParse(), FunctionScalarAux::FunctionScalarAux(), FunctionScalarIC::FunctionScalarIC(), GapValueAux::GapValueAux(), ExtraNodesetGenerator::generate(), ElementSubdomainIDGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), StitchedMeshGenerator::generate(), GeneratedMeshGenerator::generate(), MeshExtruderGenerator::generate(), SpiralAnnularMeshGenerator::generate(), SideSetsFromBoundingBoxGenerator::generate(), BoundingBoxNodeSetGenerator::generate(), PatternedMeshGenerator::generate(), GeneratedMesh::GeneratedMesh(), GeneratedMeshGenerator::GeneratedMeshGenerator(), RandomICBase::generateRandom(), GenericConstantMaterial::GenericConstantMaterial(), GenericFunctionMaterial::GenericFunctionMaterial(), MooseMesh::getBoundaryID(), MultiApp::getBoundingBox(), MooseMesh::getCoarseningMap(), Control::getControllableParameterByName(), FEProblemBase::getCoordSystem(), PiecewiseConstant::getDirection(), FEProblemBase::getDistribution(), ElementGenerator::getElemType(), MultiApp::getExecutioner(), FEProblemBase::getFunction(), SolutionUserObject::getLocalVarIndex(), AuxKernel::getMaterialProperty(), AuxKernel::getMaterialPropertyOld(), AuxKernel::getMaterialPropertyOlder(), SubProblem::getMatrixTagID(), AnnularMesh::getMaxInDimension(), DistributedGeneratedMesh::getMaxInDimension(), GeneratedMesh::getMaxInDimension(), FEProblemBase::getMaxQps(), FEProblemBase::getMaxShapeFunctions(), AnnularMesh::getMinInDimension(), DistributedGeneratedMesh::getMinInDimension(), GeneratedMesh::getMinInDimension(), MooseMesh::getMortarInterface(), MooseMesh::getMortarInterfaceByName(), MooseMesh::getNodeBlockIds(), MooseMesh::getNodeList(), FEProblemBase::getNonlinearSystem(), MooseMesh::getPairedBoundaryMapping(), ImageMeshGenerator::GetPixelInfo(), ImageMesh::GetPixelInfo(), MaterialStdVectorAux::getRealValue(), MooseMesh::getRefinementMap(), FEProblemBase::getSampler(), DisplacedProblem::getScalarVariable(), FEProblemBase::getScalarVariable(), DisplacedProblem::getStandardVariable(), FEProblemBase::getStandardVariable(), MooseMesh::getSubdomainBoundaryIds(), MooseMesh::getSubdomainID(), DisplacedProblem::getSystem(), FEProblemBase::getSystem(), FEProblemBase::getUserObject(), FEProblemBase::getUserObjectBase(), PerformanceData::getValue(), Residual::getValue(), PerfGraphData::getValue(), LineValueSampler::getValue(), FindValueOnLine::getValueAtPoint(), SubProblem::getVariableHelper(), SubProblem::getVectorTagID(), DisplacedProblem::getVectorVariable(), FEProblemBase::getVectorVariable(), MultiApp::globalAppToLocal(), MooseParsedVectorFunction::gradient(), AdvancedOutput::hasOutputHelper(), CrankNicolson::init(), CSVTimeSequenceStepper::init(), IterationAdaptiveDT::init(), EigenExecutionerBase::init(), Transient::init(), MooseMesh::init(), FEProblemBase::init(), NumPicardIterations::initialize(), PiecewiseBase::initialSetup(), FullSolveMultiApp::initialSetup(), SolutionAux::initialSetup(), Axisymmetric2D3DSolutionFunction::initialSetup(), Exodus::initialSetup(), SolutionFunction::initialSetup(), SolutionUserObject::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initOutputList(), AdvancedOutput::initShowHideLists(), Material::initStatefulProperties(), Function::integral(), InterfaceKernel::InterfaceKernel(), InterfaceTimeKernel::InterfaceTimeKernel(), EigenExecutionerBase::inversePowerIteration(), InversePowerMethod::InversePowerMethod(), IterationAdaptiveDT::IterationAdaptiveDT(), LeastSquaresFit::LeastSquaresFit(), LibmeshPartitioner::LibmeshPartitioner(), LinearCombinationFunction::LinearCombinationFunction(), LinearCombinationPostprocessor::LinearCombinationPostprocessor(), LinearNodalConstraint::LinearNodalConstraint(), LineMaterialSamplerBase< Real >::LineMaterialSamplerBase(), LineSearch::lineSearch(), LineValueSampler::LineValueSampler(), MaterialRealTensorValueAux::MaterialRealTensorValueAux(), MaterialRealVectorValueAux::MaterialRealVectorValueAux(), MaterialStdVectorRealGradientAux::MaterialStdVectorRealGradientAux(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), Distribution::median(), SubProblem::meshChanged(), MeshExtruder::MeshExtruder(), MeshExtruderGenerator::MeshExtruderGenerator(), MeshSideSetGenerator::MeshSideSetGenerator(), SideSetsFromNormals::modify(), SideSetsFromPoints::modify(), BreakMeshByBlockBase::modify(), AddExtraNodeset::modify(), MeshExtruder::modify(), SmoothMesh::modify(), AssignElementSubdomainID::modify(), ElementDeleterBase::modify(), AddAllSideSetsByNormals::modify(), RenameBlock::modify(), ParsedSubdomainMeshModifier::modify(), ImageSubdomain::modify(), BoundingBoxNodeSet::modify(), OrientedSubdomainBoundingBox::modify(), AddSideSetsFromBoundingBox::modify(), SubdomainBoundingBox::modify(), MooseMesh::MooseMesh(), MultiAppMeshFunctionTransfer::MultiAppMeshFunctionTransfer(), MultiAppPostprocessorTransfer::MultiAppPostprocessorTransfer(), NearestNodeDistanceAux::NearestNodeDistanceAux(), NearestNodeValueAux::NearestNodeValueAux(), RenameBlockGenerator::newBlockID(), RenameBlock::newBlockID(), RenameBlockGenerator::newBlockName(), RenameBlock::newBlockName(), NewmarkBeta::NewmarkBeta(), NodalConstraint::NodalConstraint(), NodalScalarKernel::NodalScalarKernel(), NodalVariableValue::NodalVariableValue(), NumDOFs::NumDOFs(), NumNonlinearIterations::NumNonlinearIterations(), NumVars::NumVars(), ElementSideNeighborLayers::operator()(), ElementPointNeighbors::operator()(), RelationshipManager::operator==(), XDA::output(), SolutionHistory::output(), AdvancedOutput::outputElementalVariables(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), AdvancedOutput::outputPostprocessors(), AdvancedOutput::outputScalarVariables(), Exodus::outputSetup(), AdvancedOutput::outputSystemInformation(), Console::outputVectorPostprocessors(), AdvancedOutput::outputVectorPostprocessors(), MooseObject::paramError(), PiecewiseBilinear::parse(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), PatternedMesh::PatternedMesh(), PetscExternalPartitioner::PetscExternalPartitioner(), PhysicsBasedPreconditioner::PhysicsBasedPreconditioner(), Piecewise::Piecewise(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), PiecewiseMulticonstant::PiecewiseMulticonstant(), PiecewiseMultiInterpolation::PiecewiseMultiInterpolation(), SolutionUserObject::pointValueGradientWrapper(), SolutionUserObject::pointValueWrapper(), LStableDirk2::postResidual(), LStableDirk3::postResidual(), ImplicitMidpoint::postResidual(), ExplicitTVDRK2::postResidual(), AStableDirk4::postResidual(), LStableDirk4::postResidual(), ExplicitRK2::postResidual(), Predictor::Predictor(), SolutionUserObject::readExodusII(), SolutionUserObject::readXda(), EqualValueEmbeddedConstraint::reinitConstraint(), RelativeSolutionDifferenceNorm::RelativeSolutionDifferenceNorm(), RenameBlock::RenameBlock(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), RinglebMesh::RinglebMesh(), RinglebMeshGenerator::RinglebMeshGenerator(), ScalarComponentIC::ScalarComponentIC(), BicubicSplineFunction::secondDerivative(), FEProblemBase::setCoordSystem(), PiecewiseBase::setData(), EigenProblem::setEigenproblemType(), Sampler::setNumberOfRequiedRandomSeeds(), Exodus::setOutputDimension(), Split::setup(), TransientMultiApp::setupApp(), TimeSequenceStepperBase::setupSequence(), Transient::setupTimeIntegrator(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SideSetsFromNormals::SideSetsFromNormals(), SideSetsFromNormalsGenerator::SideSetsFromNormalsGenerator(), SideSetsFromPoints::SideSetsFromPoints(), SideSetsFromPointsGenerator::SideSetsFromPointsGenerator(), SolutionTimeAdaptiveDT::SolutionTimeAdaptiveDT(), SolutionUserObject::SolutionUserObject(), ActuallyExplicitEuler::solve(), FullSolveMultiApp::solveStep(), UserObject::spatialValue(), SphericalAverage::SphericalAverage(), SpiralAnnularMesh::SpiralAnnularMesh(), SpiralAnnularMeshGenerator::SpiralAnnularMeshGenerator(), StitchedMesh::StitchedMesh(), NodalUserObject::subdomainSetup(), GeneralUserObject::subdomainSetup(), Constraint::subdomainSetup(), Console::systemInfoFlags(), Terminator::Terminator(), TestSetupPostprocessorDataActionFunction::TestSetupPostprocessorDataActionFunction(), ThreadedGeneralUserObject::ThreadedGeneralUserObject(), ThreadedGeneralUserObject::threadJoin(), DiscreteElementUserObject::threadJoin(), GeneralUserObject::threadJoin(), TiledMeshGenerator::TiledMeshGenerator(), Function::timeDerivative(), TimeExtremeValue::TimeExtremeValue(), TimePeriod::TimePeriod(), VectorPostprocessorVisualizationAux::timestepSetup(), MultiAppCopyTransfer::transfer(), MultiAppMeshFunctionTransfer::transferVariable(), Transient::Transient(), TransientMultiApp::TransientMultiApp(), FEProblemBase::uDotDotOldRequested(), FEProblemBase::uDotOldRequested(), EqualValueBoundaryConstraint::updateConstrainedNodes(), SolutionUserObject::updateExodusBracketingTimeIndices(), Axisymmetric2D3DSolutionFunction::value(), ValueRangeMarker::ValueRangeMarker(), ValueThresholdMarker::ValueThresholdMarker(), MultiAppTransfer::variableIntegrityCheck(), VariableTimeIntegrationAux::VariableTimeIntegrationAux(), VectorNodalBC::VectorNodalBC(), VectorOfPostprocessors::VectorOfPostprocessors(), VectorPostprocessorFunction::VectorPostprocessorFunction(), MooseParsedGradFunction::vectorValue(), MooseParsedFunction::vectorValue(), VolumeHistogram::VolumeHistogram(), VTKOutput::VTKOutput(), DOFMapOutput::writeStreamToFile(), and Console::writeStreamToFile().

141  {
142  std::ostringstream oss;
143  moose::internal::mooseStreamAll(oss, std::forward<Args>(args)...);
144  std::string msg = oss.str();
145  callMooseErrorRaw(msg, &_app);
146  }
void mooseStreamAll(std::ostringstream &ss)
All of the following are not meant to be called directly - they are called by the normal macros (moos...
Definition: MooseError.C:87
void callMooseErrorRaw(std::string &msg, MooseApp *app)
Definition: MooseObject.C:57
MooseApp & _app
The MooseApp this object is associated with.
Definition: MooseObject.h:171

◆ mooseInfo()

template<typename... Args>
void MooseObject::mooseInfo ( Args &&...  args) const
inlineinherited

◆ mooseWarning()

template<typename... Args>
void MooseObject::mooseWarning ( Args &&...  args) const
inlineinherited

◆ name()

const std::string& MooseObject::name ( ) const
inlineinherited

Get the name of the object.

Returns
The name of the object

Definition at line 51 of file MooseObject.h.

Referenced by GridPartitioner::_do_partition(), FEProblemBase::addADJacobianMaterial(), FEProblemBase::addADResidualMaterial(), Executioner::addAttributeReporter(), DumpObjectsProblem::addAuxKernel(), FEProblemBase::addAuxKernel(), DumpObjectsProblem::addAuxScalarKernel(), FEProblemBase::addAuxScalarKernel(), DumpObjectsProblem::addBoundaryCondition(), FEProblemBase::addBoundaryCondition(), DumpObjectsProblem::addConstraint(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), DumpObjectsProblem::addDGKernel(), FEProblemBase::addDGKernel(), DumpObjectsProblem::addDiracKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), DumpObjectsProblem::addFunction(), FEProblemBase::addFunction(), FEProblemBase::addIndicator(), DumpObjectsProblem::addInitialCondition(), FEProblemBase::addInitialCondition(), DumpObjectsProblem::addInterfaceKernel(), FEProblemBase::addInterfaceKernel(), DumpObjectsProblem::addKernel(), FEProblemBase::addKernel(), FEProblemBase::addMarker(), DumpObjectsProblem::addMaterial(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), MooseMesh::addMortarInterface(), FEProblemBase::addMultiApp(), DumpObjectsProblem::addNodalKernel(), FEProblemBase::addNodalKernel(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), FEProblemBase::addVectorPostprocessor(), Output::advancedExecuteOn(), AllSideSetsByNormalsGenerator::AllSideSetsByNormalsGenerator(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), DerivativeParsedMaterialHelper::assembleDerivatives(), AStableDirk4::AStableDirk4(), Function::average(), BreakMeshByBlockGenerator::BreakMeshByBlockGenerator(), ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), FEProblemBase::checkDependMaterialsHelper(), Damper::checkMinDamping(), Material::checkStatefulSanity(), CompositeFunction::CompositeFunction(), Material::computeSubdomainProperties(), VectorPostprocessorVisualizationAux::computeValue(), AuxKernel::coupledCallback(), AuxKernel::coupledDot(), AuxKernel::coupledDotDu(), MultiApp::createApp(), FEProblemBase::declareVectorPostprocessorVector(), DOFMapOutput::demangle(), DerivativeSumMaterial::DerivativeSumMaterial(), DGKernel::DGKernel(), DumpObjectsProblem::dumpObjectHelper(), ElementValueSampler::ElementValueSampler(), MooseMesh::errorIfDistributedMesh(), AB2PredictorCorrector::estimateTimeError(), SolutionUserObject::evalMeshFunction(), SolutionUserObject::evalMeshFunctionGradient(), SolutionUserObject::evalMultiValuedMeshFunction(), SolutionUserObject::evalMultiValuedMeshFunctionGradient(), MultiAppPostprocessorTransfer::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), StatisticsVectorPostprocessor::execute(), MultiAppNearestNodeTransfer::execute(), PointValue::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppMeshFunctionTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), execute(), MultiAppVectorPostprocessorTransfer::execute(), HistogramVectorPostprocessor::execute(), MultiAppCopyTransfer::execute(), Exodus::Exodus(), FileOutput::FileOutput(), MultiApp::fillPositions(), PointSamplerBase::finalize(), DerivativeParsedMaterialHelper::findMatPropDerivative(), FunctionDT::FunctionDT(), GeneralUserObject::GeneralUserObject(), LowerDBlockFromSidesetGenerator::generate(), StitchedMeshGenerator::generate(), Material::getADMaterialProperty(), MultiApp::getBoundingBox(), MooseObject::getCheckedPointerParam(), Control::getControllableParameterByName(), Control::getControllableValue(), Control::getControllableValueByName(), FEProblemBase::getDistribution(), MultiApp::getExecutioner(), OutputWarehouse::getFileNumbers(), FEProblemBase::getFunction(), SolutionUserObject::getLocalVarIndex(), Marker::getMarkerValue(), FEProblemBase::getMaterial(), NodalPatchRecovery::getMaterialProperty(), AuxKernel::getMaterialProperty(), Material::getMaterialProperty(), SubProblem::getMaterialPropertyBlockNames(), SubProblem::getMaterialPropertyBoundaryNames(), NodalPatchRecovery::getMaterialPropertyOld(), AuxKernel::getMaterialPropertyOld(), Material::getMaterialPropertyOld(), NodalPatchRecovery::getMaterialPropertyOlder(), AuxKernel::getMaterialPropertyOlder(), Material::getMaterialPropertyOlder(), MeshGenerator::getMesh(), MooseMesh::getMortarInterfaceByName(), OutputWarehouse::getOutput(), MooseObject::getParam(), GeneralUserObject::getPostprocessorValue(), AuxKernel::getPostprocessorValue(), FEProblemBase::getPostprocessorValue(), GeneralUserObject::getPostprocessorValueByName(), AuxKernel::getPostprocessorValueByName(), FEProblemBase::getPostprocessorValueOld(), FEProblemBase::getPostprocessorValueOlder(), FEProblemBase::getSampler(), AuxKernel::getScatterVectorPostprocessorValue(), FEProblemBase::getScatterVectorPostprocessorValue(), AuxKernel::getScatterVectorPostprocessorValueByName(), FEProblemBase::getScatterVectorPostprocessorValueOld(), Transient::getTimeStepperName(), AuxKernel::getUserObject(), InitialConditionBase::getUserObject(), FEProblemBase::getUserObject(), InitialConditionBase::getUserObjectBase(), AuxKernel::getUserObjectBase(), FEProblemBase::getUserObjectBase(), AuxKernel::getUserObjectByName(), InitialConditionBase::getUserObjectByName(), GeneralUserObject::getVectorPostprocessorValue(), AuxKernel::getVectorPostprocessorValue(), FEProblemBase::getVectorPostprocessorValue(), GeneralUserObject::getVectorPostprocessorValueByName(), AuxKernel::getVectorPostprocessorValueByName(), FEProblemBase::getVectorPostprocessorValueOld(), FEProblemBase::hasFunction(), AdvancedOutput::hasOutputHelper(), FEProblemBase::hasPostprocessor(), FEProblemBase::hasUserObject(), FEProblemBase::hasVectorPostprocessor(), FEProblemBase::init(), AdvancedOutput::initExecutionTypes(), AttribName::initFrom(), CSVReader::initialize(), StatisticsVectorPostprocessor::initialize(), HistogramVectorPostprocessor::initialize(), initialSetup(), DerivativeFunctionMaterialBase::initialSetup(), SolutionUserObject::initialSetup(), AdvancedOutput::initOutputList(), FEProblemBase::initPostprocessorData(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), Material::initStatefulProperties(), FEProblemBase::initVectorPostprocessorData(), Function::integral(), InterfaceKernel::InterfaceKernel(), MooseObject::isParamValid(), LinearCombinationFunction::LinearCombinationFunction(), Marker::Marker(), MatDiffusionBase< Real >::MatDiffusionBase(), MaterialDerivativeTestKernelBase< Real >::MaterialDerivativeTestKernelBase(), MaterialVectorPostprocessor::MaterialVectorPostprocessor(), Distribution::median(), MemoryUsageReporter::MemoryUsageReporter(), MeshSideSetGenerator::MeshSideSetGenerator(), ElementDeleterBase::modify(), MooseVariableInterface< Real >::MooseVariableInterface(), NearestPointBase< LayeredAverage >::NearestPointBase(), NodalValueSampler::NodalValueSampler(), NodalVariableValue::NodalVariableValue(), DOFMapOutput::output(), Output::Output(), AdvancedOutput::outputElementalVariables(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), ConsoleUtils::outputOutputInformation(), Nemesis::outputPostprocessors(), Exodus::outputPostprocessors(), AdvancedOutput::outputPostprocessors(), AdvancedOutput::outputScalarVariables(), AdvancedOutput::outputSystemInformation(), AdvancedOutput::outputVectorPostprocessors(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), PointSamplerBase::PointSamplerBase(), Registry::registerObjectsTo(), FEProblemBase::registerRandomInterface(), Material::resetQpProperties(), Sampler::Sampler(), ScalarComponentIC::ScalarComponentIC(), MooseMesh::setBoundaryName(), Control::setControllableValue(), Control::setControllableValueByName(), OutputWarehouse::setFileNumbers(), Exodus::setOutputDimension(), MooseMesh::setSubdomainName(), Split::setup(), TransientMultiApp::setupApp(), SideSetsFromNormalsGenerator::SideSetsFromNormalsGenerator(), SideSetsFromPointsGenerator::SideSetsFromPointsGenerator(), SideValueSampler::SideValueSampler(), TransientMultiApp::solveStep(), UserObject::spatialValue(), SphericalAverage::SphericalAverage(), StitchedMesh::StitchedMesh(), SubProblem::storeBoundaryDelayedCheckMatProp(), SubProblem::storeBoundaryMatPropName(), SubProblem::storeBoundaryZeroMatProp(), SubProblem::storeSubdomainDelayedCheckMatProp(), SubProblem::storeSubdomainMatPropName(), SubProblem::storeSubdomainZeroMatProp(), TaggingInterface::TaggingInterface(), ThreadedGeneralUserObject::ThreadedGeneralUserObject(), TiledMeshGenerator::TiledMeshGenerator(), Function::timeDerivative(), VectorPostprocessorVisualizationAux::timestepSetup(), TransientMultiApp::TransientMultiApp(), MultiAppTransfer::variableIntegrityCheck(), and AdvancedOutput::wantOutput().

51 { return _name; }
const std::string & _name
The name of this object, reference to value stored in InputParameters.
Definition: MooseObject.h:177

◆ paramError()

template<typename... Args>
void MooseObject::paramError ( const std::string &  param,
Args...  args 
)
inlineinherited

Emits an error prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.

If this object's parameters were not created directly by the Parser, then this function falls back to the normal behavior of mooseError - only printing a message using the given args.

Definition at line 100 of file MooseObject.h.

Referenced by ADKernel< compute_stage >::ADKernel(), DGKernel::DGKernel(), ElementValueSampler::ElementValueSampler(), IntegratedBC::IntegratedBC(), Kernel::Kernel(), NodalBC::NodalBC(), NodalEqualValueConstraint::NodalEqualValueConstraint(), NodalKernel::NodalKernel(), NodalValueSampler::NodalValueSampler(), RandomIC::RandomIC(), and MultiAppCopyTransfer::transfer().

101  {
102  auto prefix = param + ": ";
103  if (!_pars.inputLocation(param).empty())
104  prefix = _pars.inputLocation(param) + ": (" + _pars.paramFullpath(param) + "):\n";
105  mooseError(prefix, args...);
106  }
void mooseError(Args &&... args) const
Definition: MooseObject.h:140
const std::string & inputLocation(const std::string &param) const
Get/set a string representing the location in the input text the parameter originated from (i...
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:168
const std::string & paramFullpath(const std::string &param) const
Get/set a string representing the full HIT parameter path from the input file (e.g.

◆ parameters()

const InputParameters& MooseObject::parameters ( ) const
inlineinherited

Get the parameters of the object.

Returns
The parameters of the object

Definition at line 57 of file MooseObject.h.

Referenced by FEProblemBase::addADJacobianMaterial(), FEProblemBase::addADResidualMaterial(), DumpObjectsProblem::addAuxKernel(), FEProblemBase::addAuxKernel(), DumpObjectsProblem::addAuxScalarKernel(), FEProblemBase::addAuxScalarKernel(), DumpObjectsProblem::addBoundaryCondition(), FEProblemBase::addBoundaryCondition(), DumpObjectsProblem::addConstraint(), FEProblemBase::addConstraint(), FEProblemBase::addDamper(), DumpObjectsProblem::addDGKernel(), FEProblemBase::addDGKernel(), DumpObjectsProblem::addDiracKernel(), FEProblemBase::addDiracKernel(), FEProblemBase::addDistribution(), DumpObjectsProblem::addFunction(), FEProblemBase::addFunction(), FEProblemBase::addIndicator(), DumpObjectsProblem::addInitialCondition(), FEProblemBase::addInitialCondition(), DumpObjectsProblem::addInterfaceKernel(), FEProblemBase::addInterfaceKernel(), DumpObjectsProblem::addKernel(), FEProblemBase::addKernel(), FEProblem::addLineSearch(), FEProblemBase::addMarker(), DumpObjectsProblem::addMaterial(), FEProblemBase::addMaterial(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMultiApp(), DumpObjectsProblem::addNodalKernel(), FEProblemBase::addNodalKernel(), FEProblemBase::addOutput(), FEProblemBase::addPostprocessor(), FEProblemBase::addPredictor(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), FEProblemBase::addVectorPostprocessor(), AdvancedOutput::AdvancedOutput(), assemble_l2(), Moose::assemble_matrix(), AuxKernel::AuxKernel(), AuxScalarKernel::AuxScalarKernel(), BoundsAux::BoundsAux(), LibmeshPartitioner::clone(), OversampleOutput::cloneMesh(), Moose::compute_bounds(), Moose::compute_jacobian(), Moose::compute_nearnullspace(), Moose::compute_nullspace(), Moose::compute_postcheck(), Moose::compute_transpose_nullspace(), Console::Console(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), EigenProblem::EigenProblem(), Eigenvalue::Eigenvalue(), Executioner::Executioner(), Exodus::Exodus(), FEProblem::FEProblem(), GapValueAux::GapValueAux(), MooseObject::getCheckedPointerParam(), MooseMesh::init(), BlockRestrictable::initializeBlockRestrictable(), FEProblemBase::initNullSpaceVectors(), InterfaceKernel::InterfaceKernel(), isValid(), MooseVariableInterface< Real >::MooseVariableInterface(), NearestPointBase< LayeredAverage >::NearestPointBase(), NodeFaceConstraint::NodeFaceConstraint(), PenetrationAux::PenetrationAux(), PiecewiseBilinear::PiecewiseBilinear(), PiecewiseLinearInterpolationMaterial::PiecewiseLinearInterpolationMaterial(), projectSolution(), RandomIC::RandomIC(), InputParameterWarehouse::removeInputParameters(), FEProblem::setInputParametersFEProblem(), FEProblemBase::setInputParametersFEProblem(), DumpObjectsProblem::stringifyParameters(), and Transient::Transient().

57 { return _pars; }
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:168

◆ paramInfo()

template<typename... Args>
void MooseObject::paramInfo ( const std::string &  param,
Args...  args 
)
inlineinherited

Emits an informational message prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.

If this object's parameters were not created directly by the Parser, then this function falls back to the normal behavior of mooseInfo - only printing a message using the given args.

Definition at line 131 of file MooseObject.h.

132  {
133  auto prefix = param + ": ";
134  if (!_pars.inputLocation(param).empty())
135  prefix = _pars.inputLocation(param) + ": (" + _pars.paramFullpath(param) + "):\n";
136  mooseInfo(prefix, args...);
137  }
const std::string & inputLocation(const std::string &param) const
Get/set a string representing the location in the input text the parameter originated from (i...
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:168
void mooseInfo(Args &&... args) const
Definition: MooseObject.h:161
const std::string & paramFullpath(const std::string &param) const
Get/set a string representing the full HIT parameter path from the input file (e.g.

◆ paramWarning()

template<typename... Args>
void MooseObject::paramWarning ( const std::string &  param,
Args...  args 
)
inlineinherited

Emits a warning prefixed with the file and line number of the given param (from the input file) along with the full parameter path+name followed by the given args as the message.

If this object's parameters were not created directly by the Parser, then this function falls back to the normal behavior of mooseWarning - only printing a message using the given args.

Definition at line 115 of file MooseObject.h.

116  {
117  auto prefix = param + ": ";
118  if (!_pars.inputLocation(param).empty())
119  prefix = _pars.inputLocation(param) + ": (" + _pars.paramFullpath(param) + "):\n";
120  mooseWarning(prefix, args...);
121  }
void mooseWarning(Args &&... args) const
Definition: MooseObject.h:149
const std::string & inputLocation(const std::string &param) const
Get/set a string representing the location in the input text the parameter originated from (i...
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:168
const std::string & paramFullpath(const std::string &param) const
Get/set a string representing the full HIT parameter path from the input file (e.g.

◆ projectSolution()

void MultiAppProjectionTransfer::projectSolution ( unsigned int  to_problem)
protected

Definition at line 509 of file MultiAppProjectionTransfer.C.

Referenced by execute().

510 {
511  FEProblemBase & to_problem = *_to_problems[i_to];
512  EquationSystems & proj_es = to_problem.es();
513  LinearImplicitSystem & ls = *_proj_sys[i_to];
514  // activate the current transfer
515  proj_es.parameters.set<MultiAppProjectionTransfer *>("transfer") = this;
516 
517  // TODO: specify solver params in an input file
518  // solver tolerance
519  Real tol = proj_es.parameters.get<Real>("linear solver tolerance");
520  proj_es.parameters.set<Real>("linear solver tolerance") = 1e-10; // set our tolerance
521  // solve it
522  ls.solve();
523  proj_es.parameters.set<Real>("linear solver tolerance") = tol; // restore the original tolerance
524 
525  // copy projected solution into target es
526  MeshBase & to_mesh = proj_es.get_mesh();
527 
528  MooseVariableFEBase & to_var = to_problem.getVariable(
530  System & to_sys = to_var.sys().system();
531  NumericVector<Number> * to_solution = to_sys.solution.get();
532 
533  for (const auto & node : to_mesh.local_node_ptr_range())
534  {
535  for (unsigned int comp = 0; comp < node->n_comp(to_sys.number(), to_var.number()); comp++)
536  {
537  const dof_id_type proj_index = node->dof_number(ls.number(), _proj_var_num, comp);
538  const dof_id_type to_index = node->dof_number(to_sys.number(), to_var.number(), comp);
539  to_solution->set(to_index, (*ls.solution)(proj_index));
540  }
541  }
542  for (const auto & elem : to_mesh.active_local_element_ptr_range())
543  for (unsigned int comp = 0; comp < elem->n_comp(to_sys.number(), to_var.number()); comp++)
544  {
545  const dof_id_type proj_index = elem->dof_number(ls.number(), _proj_var_num, comp);
546  const dof_id_type to_index = elem->dof_number(to_sys.number(), to_var.number(), comp);
547  to_solution->set(to_index, (*ls.solution)(proj_index));
548  }
549 
550  to_solution->close();
551  to_sys.update();
552 }
virtual MooseVariableFEBase & getVariable(THREAD_ID tid, const std::string &var_name, Moose::VarKindType expected_var_type=Moose::VarKindType::VAR_ANY, Moose::VarFieldType expected_var_field_type=Moose::VarFieldType::VAR_FIELD_ANY) override
Returns the variable reference for requested variable which must be of the expected_var_type (Nonline...
unsigned int number() const
Get variable number coming from libMesh.
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
std::vector< FEProblemBase * > _to_problems
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual EquationSystems & es() override
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:57
Project values from one domain to another.
virtual System & system()=0
Get the reference to the libMesh system.
std::vector< LinearImplicitSystem * > _proj_sys
unsigned int _proj_var_num
Having one projection variable number seems weird, but there is always one variable in every system b...
SystemBase & sys()
Get the system this variable is part of.

◆ residualSetup()

void SetupInterface::residualSetup ( )
virtualinherited

Gets called just before the residual is computed and before this object is asked to do its job.

Definition at line 57 of file SetupInterface.C.

58 {
59 }

◆ subdomainSetup()

void SetupInterface::subdomainSetup ( )
virtualinherited

Gets called when the subdomain changes (i.e.

in a Jacobian or residual loop) and before this object is asked to do its job

Reimplemented in Material, Constraint, GeneralUserObject, NodalUserObject, and ThreadedGeneralUserObject.

Definition at line 62 of file SetupInterface.C.

63 {
64 }

◆ timestepSetup()

void SetupInterface::timestepSetup ( )
virtualinherited

Gets called at the beginning of the timestep before this object is asked to do its job.

Reimplemented in SolutionUserObject, VectorPostprocessorVisualizationAux, NumNonlinearIterations, EqualValueEmbeddedConstraint, VectorMemoryUsage, and MemoryUsage.

Definition at line 47 of file SetupInterface.C.

48 {
49 }

◆ toMultiApp()

void MultiAppProjectionTransfer::toMultiApp ( )
protected

◆ type()

const std::string& MooseObject::type ( ) const
inlineinherited

Get the type of this object.

Returns
the name of the type of this object

Definition at line 45 of file MooseObject.h.

Referenced by DumpObjectsProblem::addAuxKernel(), DumpObjectsProblem::addAuxScalarKernel(), FEProblemBase::addAuxScalarVariable(), DumpObjectsProblem::addAuxVariable(), DisplacedProblem::addAuxVariable(), FEProblemBase::addAuxVariable(), DumpObjectsProblem::addBoundaryCondition(), DumpObjectsProblem::addConstraint(), DumpObjectsProblem::addDGKernel(), DumpObjectsProblem::addDiracKernel(), FEProblemBase::addDistribution(), DumpObjectsProblem::addFunction(), FEProblemBase::addFunction(), DumpObjectsProblem::addInitialCondition(), DumpObjectsProblem::addInterfaceKernel(), DumpObjectsProblem::addKernel(), DumpObjectsProblem::addMaterial(), DumpObjectsProblem::addNodalKernel(), FEProblemBase::addPredictor(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarVariable(), PhysicsBasedPreconditioner::addSystem(), FEProblemBase::addTimeIntegrator(), DumpObjectsProblem::addVariable(), DisplacedProblem::addVariable(), FEProblemBase::addVariable(), FEProblemBase::advanceMultiApps(), FEProblemBase::backupMultiApps(), MooseMesh::buildRefinementAndCoarseningMaps(), FEProblemBase::computeAuxiliaryKernels(), ElemElemConstraint::computeElemNeighJacobian(), InterfaceKernel::computeElemNeighJacobian(), DGKernel::computeElemNeighJacobian(), ElemElemConstraint::computeElemNeighResidual(), InterfaceKernel::computeElemNeighResidual(), DGKernel::computeElemNeighResidual(), FEProblemBase::computeMultiAppsDT(), InterfaceKernel::computeOffDiagElemNeighJacobian(), DGKernel::computeOffDiagElemNeighJacobian(), DGConvection::computeQpJacobian(), CoupledTiedValueConstraint::computeQpJacobian(), TiedValueConstraint::computeQpJacobian(), DGDiffusion::computeQpJacobian(), LinearNodalConstraint::computeQpJacobian(), EqualValueBoundaryConstraint::computeQpJacobian(), EqualValueEmbeddedConstraint::computeQpJacobian(), CoupledTiedValueConstraint::computeQpOffDiagJacobian(), EqualValueEmbeddedConstraint::computeQpOffDiagJacobian(), DGConvection::computeQpResidual(), CoupledTiedValueConstraint::computeQpResidual(), TiedValueConstraint::computeQpResidual(), LinearNodalConstraint::computeQpResidual(), DGDiffusion::computeQpResidual(), EqualValueBoundaryConstraint::computeQpResidual(), EqualValueEmbeddedConstraint::computeQpResidual(), FEProblemBase::computeUserObjects(), DisplacedProblem::createQRules(), FEProblemBase::createQRules(), DumpObjectsProblem::deduceNecessaryParameters(), DumpObjectsProblem::dumpObjectHelper(), FEProblemBase::duplicateVariableCheck(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), FEProblemBase::execTransfers(), FEProblemBase::finishMultiAppStep(), ElementSubdomainIDGenerator::generate(), ElementGenerator::getElemType(), FEProblemBase::getMaterial(), FEProblemBase::getMaterialData(), FEProblemBase::getTransfers(), AdvancedOutput::hasOutput(), FEProblemBase::incrementMultiAppTStep(), AdvancedOutput::initAvailableLists(), SolutionUserObject::initialSetup(), AdvancedOutput::initShowHideLists(), AssignElementSubdomainID::modify(), ControlOutput::output(), Gnuplot::output(), Exodus::output(), CSV::output(), Console::output(), Nemesis::output(), AdvancedOutput::output(), OversampleOutput::outputStep(), Output::outputStep(), FEProblemBase::outputStep(), FEProblemBase::restoreMultiApps(), FEProblemBase::setCoupling(), FileOutput::shouldOutput(), Output::shouldOutput(), AdvancedOutput::shouldOutput(), DisplacedProblem::updateGeomSearch(), FEProblemBase::updateGeomSearch(), and AdvancedOutput::wantOutput().

45 { return _type; }
const std::string & _type
The type of this object (the Class name)
Definition: MooseObject.h:174

◆ variableIntegrityCheck()

void MultiAppTransfer::variableIntegrityCheck ( const AuxVariableName &  var_name) const
inherited

Utility to verify that the vEariable in the destination system exists.

Definition at line 68 of file MultiAppTransfer.C.

Referenced by MultiAppNearestNodeTransfer::initialSetup(), MultiAppVariableValueSampleTransfer::initialSetup(), MultiAppMeshFunctionTransfer::initialSetup(), MultiAppInterpolationTransfer::initialSetup(), MultiAppUserObjectTransfer::initialSetup(), and MultiAppCopyTransfer::initialSetup().

69 {
70  for (unsigned int i = 0; i < _multi_app->numGlobalApps(); i++)
71  if (_multi_app->hasLocalApp(i) && !find_sys(_multi_app->appProblemBase(i).es(), var_name))
72  mooseError("Cannot find variable ", var_name, " for ", name(), " Transfer");
73 }
void mooseError(Args &&... args) const
Definition: MooseObject.h:140
std::shared_ptr< MultiApp > _multi_app
The MultiApp this Transfer is transferring data to or from.
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:51
static System * find_sys(EquationSystems &es, const std::string &var_name)
Small helper function for finding the system containing the variable.
Definition: Transfer.C:65

Friends And Related Function Documentation

◆ assemble_l2

void assemble_l2 ( EquationSystems &  es,
const std::string &  system_name 
)
friend

Definition at line 30 of file MultiAppProjectionTransfer.C.

Referenced by initialSetup().

31 {
32  MultiAppProjectionTransfer * transfer =
33  es.parameters.get<MultiAppProjectionTransfer *>("transfer");
34  transfer->assembleL2(es, system_name);
35 }
void assembleL2(EquationSystems &es, const std::string &system_name)
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:57
Project values from one domain to another.

Member Data Documentation

◆ _app

MooseApp& MooseObject::_app
protectedinherited

The MooseApp this object is associated with.

Definition at line 171 of file MooseObject.h.

Referenced by GridPartitioner::_do_partition(), AB2PredictorCorrector::AB2PredictorCorrector(), Executioner::addAttributeReporter(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMultiApp(), FEProblemBase::addOutput(), FEProblemBase::allowOutput(), AStableDirk4::AStableDirk4(), AlgebraicRelationshipManager::attachAlgebraicFunctorHelper(), RelationshipManager::attachRelationshipManagers(), ElementSideNeighborLayers::attachRelationshipManagersInternal(), ElementPointNeighbors::attachRelationshipManagersInternal(), FileMesh::buildMesh(), MeshGeneratorMesh::buildMesh(), FEProblemBase::checkNonlinearConvergence(), OversampleOutput::cloneMesh(), FEProblemBase::computeJacobianTags(), FEProblemBase::computeResidualTags(), Console::Console(), TimeStepper::constrainStep(), MultiApp::createApp(), DumpObjectsProblem::dumpObjectHelper(), DumpObjectsProblem::dumpVariableHelper(), EigenExecutionerBase::EigenExecutionerBase(), EigenKernel::EigenKernel(), NonlinearEigen::execute(), InversePowerMethod::execute(), Transient::execute(), Steady::execute(), FileOutput::FileOutput(), FEProblemBase::forceOutput(), MeshGenerator::getMesh(), MeshGenerator::getMeshByName(), MooseObject::getMooseApp(), InversePowerMethod::init(), NonlinearEigen::init(), Transient::init(), Steady::init(), MooseMesh::init(), NumPicardIterations::initialize(), TimePeriod::initialSetup(), Console::initialSetup(), MultiApp::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initOutputList(), FEProblemBase::initPetscOutput(), AdvancedOutput::initPostprocessorOrVectorPostprocessorLists(), InversePowerMethod::InversePowerMethod(), MooseObject::mooseError(), MooseMesh::MooseMesh(), NonlinearEigen::NonlinearEigen(), EigenExecutionerBase::normalizeSolution(), PerfGraphOutput::output(), Tecplot::output(), Exodus::output(), Nemesis::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Exodus::outputEmptyTimestep(), Console::outputInput(), Exodus::outputInput(), Exodus::outputNodalVariables(), OversampleOutput::outputStep(), Output::outputStep(), FEProblemBase::outputStep(), Console::outputSystemInformation(), MultiApp::parentOutputPositionChanged(), PerformanceData::PerformanceData(), PetscOutput::petscLinearOutput(), PetscOutput::petscNonlinearOutput(), FEProblemBase::projectSolution(), FEProblemBase::setRestartFile(), TransientMultiApp::setupApp(), TimeSequenceStepperBase::setupSequence(), Transient::setupTimeIntegrator(), TransientMultiApp::solveStep(), FEProblemBase::subdomainSetup(), FEProblemBase::theWarehouse(), TimeExtremeValue::TimeExtremeValue(), TimePeriod::TimePeriod(), FEProblemBase::timestepSetup(), Transient::Transient(), and Console::write().

◆ _cached_index_map

std::vector<std::map<std::pair<unsigned int, unsigned int>, unsigned int> > MultiAppProjectionTransfer::_cached_index_map
protected

Definition at line 64 of file MultiAppProjectionTransfer.h.

Referenced by execute(), and initialSetup().

◆ _cached_qps

std::vector<std::vector<Point> > MultiAppProjectionTransfer::_cached_qps
protected

Definition at line 63 of file MultiAppProjectionTransfer.h.

Referenced by execute(), and initialSetup().

◆ _compute_matrix

bool MultiAppProjectionTransfer::_compute_matrix
protected

True, if we need to recompute the projection matrix.

Definition at line 52 of file MultiAppProjectionTransfer.h.

Referenced by assembleL2().

◆ _console

const ConsoleStream ConsoleStreamInterface::_console
inherited

An instance of helper class to write streams to the Console objects.

Definition at line 32 of file ConsoleStreamInterface.h.

Referenced by IterationAdaptiveDT::acceptStep(), SetupRecoverFileBaseAction::act(), Adaptivity::adaptMesh(), FEProblemBase::adaptMesh(), SimplePredictor::apply(), FEProblemBase::backupMultiApps(), FEProblemBase::checkProblemIntegrity(), IterationAdaptiveDT::computeAdaptiveDT(), Transient::computeConstrainedDT(), NonlinearSystemBase::computeDamping(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInterpolationDT(), FEProblemBase::computeResidualTags(), IterationAdaptiveDT::constrainStep(), TimeStepper::constrainStep(), AB2PredictorCorrector::converged(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), MultiAppPostprocessorTransfer::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), MultiAppNearestNodeTransfer::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppMeshFunctionTransfer::execute(), MultiAppUserObjectTransfer::execute(), execute(), MultiAppVectorPostprocessorTransfer::execute(), MultiAppCopyTransfer::execute(), Steady::execute(), MultiAppDTKUserObjectTransfer::execute(), ActionWarehouse::executeActionsWithAction(), ActionWarehouse::executeAllActions(), FEProblemBase::FEProblemBase(), ElementQualityChecker::finalize(), FEProblemBase::finishMultiAppStep(), MultiApp::globalAppToLocal(), InversePowerMethod::init(), NonlinearEigen::init(), Steady::init(), FEProblemBase::initialAdaptMesh(), FEProblemBase::initialSetup(), EigenExecutionerBase::inversePowerIteration(), Transient::keepGoing(), IterationAdaptiveDT::limitDTByFunction(), IterationAdaptiveDT::limitDTToPostprocessorValue(), EigenExecutionerBase::makeBXConsistent(), Console::meshChanged(), MooseObject::mooseDeprecated(), MooseObject::mooseInfo(), MooseObject::mooseWarning(), PerfGraphOutput::output(), DOFMapOutput::output(), VariableResidualNormsDebugOutput::output(), Console::output(), ControlOutput::outputActiveObjects(), ControlOutput::outputChangedControls(), ControlOutput::outputControls(), Console::outputInput(), Console::outputPostprocessors(), Console::outputScalarVariables(), Console::outputSystemInformation(), FEProblemBase::possiblyRebuildGeomSearchPatches(), EigenExecutionerBase::postExecute(), ActionWarehouse::printActionDependencySets(), EigenExecutionerBase::printEigenvalue(), MaterialPropertyDebugOutput::printMaterialMap(), SolutionTimeAdaptiveDT::rejectStep(), DT2::rejectStep(), FEProblemBase::restoreMultiApps(), SimplePredictor::shouldApply(), NonlinearSystem::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), AStableDirk4::solve(), LStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), Transient::solveStep(), DT2::step(), AB2PredictorCorrector::step(), NonlinearEigen::takeStep(), Console::writeTimestepInformation(), Console::writeVariableNorms(), and FEProblemBase::~FEProblemBase().

◆ _current_execute_flag

const ExecFlagType& SetupInterface::_current_execute_flag
protectedinherited

Reference to FEProblemBase.

Definition at line 98 of file SetupInterface.h.

◆ _direction

MooseEnum MultiAppTransfer::_direction
protectedinherited

◆ _displaced_source_mesh

bool MultiAppTransfer::_displaced_source_mesh
protectedinherited

True if displaced mesh is used for the source mesh, otherwise false.

Definition at line 87 of file MultiAppTransfer.h.

Referenced by MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), MultiAppTransfer::getAppInfo(), and MultiAppMeshFunctionTransfer::transferVariable().

◆ _displaced_target_mesh

bool MultiAppTransfer::_displaced_target_mesh
protectedinherited

True if displaced mesh is used for the target mesh, otherwise false.

Definition at line 89 of file MultiAppTransfer.h.

Referenced by MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), and MultiAppTransfer::getAppInfo().

◆ _enabled

const bool& MooseObject::_enabled
protectedinherited

Reference to the "enable" InputParaemters, used by Controls for toggling on/off MooseObjects.

Definition at line 180 of file MooseObject.h.

Referenced by MooseObject::enabled().

◆ _exec_flags

const std::vector<ExecFlagType> SetupInterface::_exec_flags
protectedinherited

(DEPRECATED) execution flag (when is the object executed/evaluated) TODO: ExecFlagType

Definition at line 95 of file SetupInterface.h.

Referenced by SetupInterface::execBitFlags(), MultiAppTransfer::execFlags(), and SetupInterface::execFlags().

◆ _execute_enum

const ExecFlagEnum& SetupInterface::_execute_enum
protectedinherited

Execute settings for this oejct.

Definition at line 92 of file SetupInterface.h.

Referenced by ChangeOverTimePostprocessor::ChangeOverTimePostprocessor(), and SetupInterface::getExecuteOnEnum().

◆ _fe_problem

FEProblemBase& Transfer::_fe_problem
protectedinherited

◆ _fixed_meshes

bool MultiAppProjectionTransfer::_fixed_meshes
protected

Definition at line 61 of file MultiAppProjectionTransfer.h.

Referenced by execute(), and initialSetup().

◆ _from_es

std::vector<EquationSystems *> MultiAppTransfer::_from_es
protectedinherited

Definition at line 80 of file MultiAppTransfer.h.

Referenced by MultiAppTransfer::getAppInfo().

◆ _from_meshes

std::vector<MooseMesh *> MultiAppTransfer::_from_meshes
protectedinherited

◆ _from_positions

std::vector<Point> MultiAppTransfer::_from_positions
protectedinherited

◆ _from_problems

std::vector<FEProblemBase *> MultiAppTransfer::_from_problems
protectedinherited

◆ _from_var_name

VariableName MultiAppProjectionTransfer::_from_var_name
protected

Definition at line 47 of file MultiAppProjectionTransfer.h.

Referenced by execute().

◆ _local2global_map

std::vector<unsigned int> MultiAppTransfer::_local2global_map
protectedinherited

◆ _multi_app

std::shared_ptr<MultiApp> MultiAppTransfer::_multi_app
protectedinherited

◆ _name

const std::string& MooseObject::_name
protectedinherited

◆ _pars

const InputParameters& MooseObject::_pars
protectedinherited

◆ _proj_sys

std::vector<LinearImplicitSystem *> MultiAppProjectionTransfer::_proj_sys
protected

Definition at line 53 of file MultiAppProjectionTransfer.h.

Referenced by execute(), initialSetup(), and projectSolution().

◆ _proj_type

MooseEnum MultiAppProjectionTransfer::_proj_type
protected

Definition at line 49 of file MultiAppProjectionTransfer.h.

◆ _proj_var_num

unsigned int MultiAppProjectionTransfer::_proj_var_num
protected

Having one projection variable number seems weird, but there is always one variable in every system being used for projection, thus is always going to be 0 unless something changes in libMesh or we change the way we project variables.

Definition at line 56 of file MultiAppProjectionTransfer.h.

Referenced by initialSetup(), and projectSolution().

◆ _qps_cached

bool MultiAppProjectionTransfer::_qps_cached
protected

Definition at line 62 of file MultiAppProjectionTransfer.h.

Referenced by execute().

◆ _subproblem

SubProblem& Transfer::_subproblem
protectedinherited

Definition at line 69 of file Transfer.h.

◆ _sys

SystemBase& Transfer::_sys
protectedinherited

Definition at line 71 of file Transfer.h.

◆ _tid

THREAD_ID Transfer::_tid
protectedinherited

◆ _to_es

std::vector<EquationSystems *> MultiAppTransfer::_to_es
protectedinherited

◆ _to_meshes

std::vector<MooseMesh *> MultiAppTransfer::_to_meshes
protectedinherited

◆ _to_positions

std::vector<Point> MultiAppTransfer::_to_positions
protectedinherited

◆ _to_problems

std::vector<FEProblemBase *> MultiAppTransfer::_to_problems
protectedinherited

◆ _to_var_name

AuxVariableName MultiAppProjectionTransfer::_to_var_name
protected

Definition at line 46 of file MultiAppProjectionTransfer.h.

Referenced by initialSetup(), and projectSolution().

◆ _type

const std::string& MooseObject::_type
protectedinherited

The type of this object (the Class name)

Definition at line 174 of file MooseObject.h.

Referenced by FEProblemBase::init(), and MooseObject::type().

◆ OutOfMeshValue

const Number Transfer::OutOfMeshValue = -999999
staticinherited

Definition at line 76 of file Transfer.h.

Referenced by execute(), and MultiAppMeshFunctionTransfer::transferVariable().


The documentation for this class was generated from the following files: