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...
 
const 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 65 of file MultiAppProjectionTransfer.C.

67  _to_var_name(getParam<AuxVariableName>("variable")),
68  _from_var_name(getParam<VariableName>("source_variable")),
69  _proj_type(getParam<MooseEnum>("proj_type")),
70  _compute_matrix(true),
71  _fixed_meshes(getParam<bool>("fixed_meshes")),
72  _qps_cached(false)
73 {
74 }
MultiAppTransfer(const InputParameters &parameters)
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:62
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 128 of file MultiAppProjectionTransfer.C.

Referenced by assemble_l2().

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

272 {
273  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
274 
275  registerRecoverableDataOnApp(full_name);
276 
277  return declareRestartableDataWithContext<T>(data_name, nullptr);
278 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:196
std::string _restartable_name
The name of the object.
Definition: Restartable.h:193
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 282 of file Restartable.h.

283 {
284  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
285 
286  registerRecoverableDataOnApp(full_name);
287 
288  return declareRestartableDataWithContext<T>(data_name, init_value, nullptr);
289 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:196
std::string _restartable_name
The name of the object.
Definition: Restartable.h:193
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 204 of file Restartable.h.

205 {
206  return declareRestartableDataWithContext<T>(data_name, nullptr);
207 }

◆ 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 211 of file Restartable.h.

212 {
213  return declareRestartableDataWithContext<T>(data_name, init_value, nullptr);
214 }

◆ 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 218 of file Restartable.h.

219 {
220  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
221  auto data_ptr = libmesh_make_unique<RestartableData<T>>(full_name, context);
222  T & restartable_data_ref = data_ptr->get();
223 
224  registerRestartableDataOnApp(full_name, std::move(data_ptr), _restartable_tid);
225 
226  return restartable_data_ref;
227 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:196
std::string _restartable_name
The name of the object.
Definition: Restartable.h:193
THREAD_ID _restartable_tid
The thread ID for this object.
Definition: Restartable.h:199
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 231 of file Restartable.h.

234 {
235  std::string full_name = _restartable_system_name + "/" + _restartable_name + "/" + data_name;
236  auto data_ptr = libmesh_make_unique<RestartableData<T>>(full_name, context);
237  data_ptr->set() = init_value;
238 
239  T & restartable_data_ref = data_ptr->get();
240  registerRestartableDataOnApp(full_name, std::move(data_ptr), _restartable_tid);
241 
242  return restartable_data_ref;
243 }
std::string _restartable_system_name
The system name this object is in.
Definition: Restartable.h:196
std::string _restartable_name
The name of the object.
Definition: Restartable.h:193
THREAD_ID _restartable_tid
The thread ID for this object.
Definition: Restartable.h:199
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 247 of file Restartable.h.

248 {
249  return declareRestartableDataWithObjectNameWithContext<T>(data_name, object_name, nullptr);
250 }

◆ 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 254 of file Restartable.h.

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

◆ direction()

int MultiAppTransfer::direction ( )
inlineinherited

The direction this Transfer is going in.

Definition at line 51 of file MultiAppTransfer.h.

51 { return _direction; }
const 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 96 of file MooseObject.h.

Referenced by EigenKernel::enabled().

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

◆ 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:158
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 191 of file MultiAppProjectionTransfer.C.

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

◆ 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 MultiAppMeshFunctionTransfer::execute(), execute(), MultiAppNearestNodeTransfer::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
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.
const MooseEnum _direction
Whether we&#39;re transferring to or from the MultiApp.
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 77 of file MooseObject.h.

78  {
79  return parameters().getCheckedPointerParam<T>(name, error_string);
80  }
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:62
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:56

◆ 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:715
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:1292

◆ 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.
const 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 91 of file MooseObject.h.

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

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

◆ 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 188 of file MooseObject.h.

Referenced by FEProblemBase::addMaterialHelper(), ConstraintWarehouse::addObject(), BicubicSplineFunction::BicubicSplineFunction(), Piecewise::buildFromXandY(), MultiApp::createApp(), DerivativeParsedMaterial::DerivativeParsedMaterial(), EigenKernel::EigenKernel(), FEProblemBase::FEProblemBase(), FieldSplitPreconditioner::FieldSplitPreconditioner(), FiniteDifferencePreconditioner::FiniteDifferencePreconditioner(), SideSetsBetweenSubdomainsGenerator::generate(), ExtraNodesetGenerator::generate(), MeshExtruderGenerator::generate(), SideSetsAroundSubdomainGenerator::generate(), GenericConstantRankTwoTensor::GenericConstantRankTwoTensor(), GhostingUserObject::GhostingUserObject(), 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().

189 {
190  return InputParameters::getParamHelper(name, _pars, static_cast<T *>(0));
191 }
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:171
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:56

◆ 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.
std::vector< unsigned int > _local2global_map
const MooseEnum _direction
Whether we&#39;re transferring to or from the MultiApp.

◆ 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 77 of file MultiAppProjectionTransfer.C.

78 {
79  getAppInfo();
80 
81  _proj_sys.resize(_to_problems.size(), NULL);
82 
83  for (unsigned int i_to = 0; i_to < _to_problems.size(); i_to++)
84  {
85  FEProblemBase & to_problem = *_to_problems[i_to];
86  EquationSystems & to_es = to_problem.es();
87 
88  // Add the projection system.
89  FEType fe_type = to_problem
90  .getVariable(0,
94  .feType();
95 
96  LinearImplicitSystem & proj_sys = to_es.add_system<LinearImplicitSystem>("proj-sys-" + name());
97 
98  proj_sys.get_dof_map().add_coupling_functor(
99  proj_sys.get_dof_map().default_coupling(),
100  false); // The false keeps it from getting added to the mesh
101 
102  _proj_var_num = proj_sys.add_variable("var", fe_type);
103  proj_sys.attach_assemble_function(assemble_l2);
104  _proj_sys[i_to] = &proj_sys;
105 
106  // Prevent the projection system from being written to checkpoint
107  // files. In the event of a recover or restart, we'll read the checkpoint
108  // before this initialSetup method is called. As a result, we'll find
109  // systems in the checkpoint (the projection systems) that we don't know
110  // what to do with, and there will be a crash. We could fix this by making
111  // the systems in the constructor, except we don't know how many sub apps
112  // there are at the time of construction. So instead, we'll just nuke the
113  // projection system and rebuild it from scratch every recover/restart.
114  proj_sys.hide_output() = true;
115 
116  // Reinitialize EquationSystems since we added a system.
117  to_es.reinit();
118  }
119 
120  if (_fixed_meshes)
121  {
122  _cached_qps.resize(n_processors());
123  _cached_index_map.resize(n_processors());
124  }
125 }
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:56
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 86 of file MooseObject.h.

Referenced by AdvancedOutput::AdvancedOutput(), BicubicSplineFunction::BicubicSplineFunction(), Piecewise::buildFromFile(), Piecewise::buildFromXandY(), DistributedGeneratedMesh::buildMesh(), GeneratedMesh::buildMesh(), CartesianMeshGenerator::CartesianMeshGenerator(), LibmeshPartitioner::clone(), OversampleOutput::cloneMesh(), CSVReader::CSVReader(), MultiAppNearestNodeTransfer::execute(), Exodus::Exodus(), FEProblemBase::FEProblemBase(), FileOutput::FileOutput(), MultiApp::fillPositions(), FunctionDT::FunctionDT(), RenameBoundaryGenerator::generate(), BreakBoundaryOnSubdomainGenerator::generate(), ElementSubdomainIDGenerator::generate(), ExtraNodesetGenerator::generate(), LowerDBlockFromSidesetGenerator::generate(), MeshSideSetGenerator::generate(), RenameBlockGenerator::generate(), GeneratedMeshGenerator::generate(), ParsedSubdomainMeshGenerator::generate(), MeshExtruderGenerator::generate(), SubdomainBoundingBoxGenerator::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().

86 { return _pars.isParamValid(name); }
const InputParameters & _pars
Parameters of this object, references the InputParameters stored in the InputParametersWarehouse.
Definition: MooseObject.h:171
const std::string & name() const
Get the name of the object.
Definition: MooseObject.h:56
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 144 of file MooseObject.h.

Referenced by GridPartitioner::_do_partition(), PetscExternalPartitioner::_do_partition(), FEProblemBase::addConstraint(), FEProblemBase::addInitialCondition(), FEProblem::addLineSearch(), FEProblemBase::addLineSearch(), FEProblemBase::addOutput(), DiracKernel::addPointWithValidId(), FEProblemBase::addPostprocessor(), MooseMesh::addQuadratureNode(), FEProblemBase::addVectorPostprocessor(), ADPiecewiseLinearInterpolationMaterial< compute_stage >::ADPiecewiseLinearInterpolationMaterial(), Output::advancedExecuteOn(), 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(), GeneratedMesh::buildMesh(), SpiralAnnularMesh::buildMesh(), DistributedGeneratedMesh::buildMesh(), ImageMeshGenerator::buildMesh3D(), ImageMesh::buildMesh3D(), MooseMesh::buildMeshBaseObject(), MooseMesh::buildRefinementMap(), MooseMesh::buildSideList(), CartesianMeshGenerator::CartesianMeshGenerator(), 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(), KernelBase::computeADOffDiagJacobian(), InterfaceKernel::computeElemNeighJacobian(), TimeSequenceStepperBase::computeFailedDT(), IterationAdaptiveDT::computeFailedDT(), TimeStepper::computeFailedDT(), HistogramVectorPostprocessor::computeHistogram(), EqualValueEmbeddedConstraint::computeQpJacobian(), EqualValueEmbeddedConstraint::computeQpOffDiagJacobian(), KernelValue::computeQpResidual(), FEProblemBase::computeResidualInternal(), FEProblemBase::computeResidualTag(), FEProblemBase::computeResidualType(), StatisticsVectorPostprocessor::computeStatValue(), Material::computeSubdomainProperties(), ExplicitEuler::computeTimeDerivatives(), ImplicitEuler::computeTimeDerivatives(), BDF2::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(), TimeStepper::constrainStep(), AuxKernel::coupledDot(), AuxKernel::coupledDotDu(), CoupledForce::CoupledForce(), DebugResidualAux::DebugResidualAux(), FunctorRelationshipManager::delete_remote_elements(), BicubicSplineFunction::derivative(), DerivativeSumMaterial::DerivativeSumMaterial(), DGKernelBase::DGKernelBase(), FunctorRelationshipManager::dofmap_reinit(), FEProblemBase::duplicateVariableCheck(), EigenProblem::EigenProblem(), Eigenvalues::Eigenvalues(), ElementalVariableValue::ElementalVariableValue(), ElementQualityAux::ElementQualityAux(), MooseMesh::errorIfDistributedMesh(), SolutionUserObject::evalMeshFunction(), SolutionUserObject::evalMeshFunctionGradient(), SolutionUserObject::evalMultiValuedMeshFunction(), SolutionUserObject::evalMultiValuedMeshFunctionGradient(), MultiAppPostprocessorTransfer::execute(), DiscreteElementUserObject::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), ElementQualityChecker::execute(), NodalValueSampler::execute(), InterfaceQpValueUserObject::execute(), PointValue::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppUserObjectTransfer::execute(), FindValueOnLine::execute(), MultiAppNearestNodeTransfer::execute(), TimeExtremeValue::execute(), VectorPostprocessorComparison::execute(), LeastSquaresFit::execute(), LeastSquaresFitHistory::execute(), FEProblemBase::executeControls(), MultiAppVectorPostprocessorTransfer::executeFromMultiapp(), MultiAppVectorPostprocessorTransfer::executeToMultiapp(), Exodus::Exodus(), FileOutput::FileOutput(), CentroidMultiApp::fillPositions(), MultiApp::fillPositions(), VerifyNodalUniqueID::finalize(), VerifyElementUniqueID::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(), ElementSubdomainIDGenerator::generate(), ExtraNodesetGenerator::generate(), RenameBlockGenerator::generate(), RenameBoundaryGenerator::generate(), GeneratedMeshGenerator::generate(), SideSetsFromBoundingBoxGenerator::generate(), StackGenerator::generate(), MeshExtruderGenerator::generate(), SpiralAnnularMeshGenerator::generate(), PatternedMeshGenerator::generate(), BoundingBoxNodeSetGenerator::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(), GhostingUserObject::getElementalValue(), 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(), ImageMesh::GetPixelInfo(), ImageMeshGenerator::GetPixelInfo(), InterfaceQpValueUserObject::getQpValue(), 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(), Residual::getValue(), PerformanceData::getValue(), PerfGraphData::getValue(), LineValueSampler::getValue(), FindValueOnLine::getValueAtPoint(), SubProblem::getVariableHelper(), SubProblem::getVectorTagID(), DisplacedProblem::getVectorVariable(), FEProblemBase::getVectorVariable(), GhostingAux::GhostingAux(), MultiApp::globalAppToLocal(), MooseParsedVectorFunction::gradient(), AdvancedOutput::hasOutputHelper(), CrankNicolson::init(), CSVTimeSequenceStepper::init(), IterationAdaptiveDT::init(), EigenExecutionerBase::init(), Transient::init(), MooseMesh::init(), FEProblemBase::init(), NumPicardIterations::initialize(), FullSolveMultiApp::initialSetup(), PiecewiseBase::initialSetup(), SolutionAux::initialSetup(), Axisymmetric2D3DSolutionFunction::initialSetup(), SolutionFunction::initialSetup(), Exodus::initialSetup(), SolutionUserObject::initialSetup(), FEProblemBase::initialSetup(), AdvancedOutput::initOutputList(), AdvancedOutput::initShowHideLists(), Material::initStatefulProperties(), Function::integral(), InterfaceKernel::InterfaceKernel(), InterfaceTimeKernel::InterfaceTimeKernel(), EigenExecutionerBase::inversePowerIteration(), InversePowerMethod::InversePowerMethod(), IterationAdaptiveDT::IterationAdaptiveDT(), LayeredSideIntegral::LayeredSideIntegral(), 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(), FunctorRelationshipManager::mesh_reinit(), SubProblem::meshChanged(), MeshExtruder::MeshExtruder(), MeshExtruderGenerator::MeshExtruderGenerator(), MeshSideSetGenerator::MeshSideSetGenerator(), SideSetsFromNormals::modify(), SideSetsFromPoints::modify(), MeshExtruder::modify(), AddExtraNodeset::modify(), BreakMeshByBlockBase::modify(), AssignElementSubdomainID::modify(), SmoothMesh::modify(), ElementDeleterBase::modify(), AddAllSideSetsByNormals::modify(), ParsedSubdomainMeshModifier::modify(), RenameBlock::modify(), ImageSubdomain::modify(), OrientedSubdomainBoundingBox::modify(), BoundingBoxNodeSet::modify(), SubdomainBoundingBox::modify(), AddSideSetsFromBoundingBox::modify(), MooseGhostPointNeighbors::MooseGhostPointNeighbors(), 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(), FunctorRelationshipManager::operator()(), RelationshipManager::operator==(), XDA::output(), SolutionHistory::output(), Exodus::output(), AdvancedOutput::outputElementalVariables(), AdvancedOutput::outputInput(), AdvancedOutput::outputNodalVariables(), AdvancedOutput::outputPostprocessors(), AdvancedOutput::outputScalarVariables(), AdvancedOutput::outputSystemInformation(), Console::outputVectorPostprocessors(), AdvancedOutput::outputVectorPostprocessors(), MooseObject::paramError(), PiecewiseBilinear::parse(), ParsedAddSideset::ParsedAddSideset(), ParsedAux::ParsedAux(), ParsedGenerateSideset::ParsedGenerateSideset(), ParsedODEKernel::ParsedODEKernel(), ParsedSubdomainMeshGenerator::ParsedSubdomainMeshGenerator(), ParsedSubdomainMeshModifier::ParsedSubdomainMeshModifier(), 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(), LStableDirk4::postResidual(), AStableDirk4::postResidual(), ExplicitRK2::postResidual(), Predictor::Predictor(), Transient::preExecute(), SolutionUserObject::readExodusII(), SolutionUserObject::readXda(), FunctorRelationshipManager::redistribute(), EqualValueEmbeddedConstraint::reinitConstraint(), RelativeSolutionDifferenceNorm::RelativeSolutionDifferenceNorm(), RenameBlock::RenameBlock(), RenameBlockGenerator::RenameBlockGenerator(), RenameBoundaryGenerator::RenameBoundaryGenerator(), RinglebMesh::RinglebMesh(), RinglebMeshGenerator::RinglebMeshGenerator(), ScalarComponentIC::ScalarComponentIC(), BicubicSplineFunction::secondDerivative(), FEProblemBase::setCoordSystem(), PiecewiseBase::setData(), EigenProblem::setEigenproblemType(), FEProblemSolve::setInnerSolve(), Sampler::setNumberOfRequiedRandomSeeds(), Exodus::setOutputDimensionInExodusWriter(), Split::setup(), TransientMultiApp::setupApp(), TimeSequenceStepperBase::setupSequence(), Transient::setupTimeIntegrator(), SideSetsFromBoundingBoxGenerator::SideSetsFromBoundingBoxGenerator(), SideSetsFromNormals::SideSetsFromNormals(), SideSetsFromNormalsGenerator::SideSetsFromNormalsGenerator(), SideSetsFromPoints::SideSetsFromPoints(), SideSetsFromPointsGenerator::SideSetsFromPointsGenerator(), SolutionTimeAdaptiveDT::SolutionTimeAdaptiveDT(), SolutionUserObject::SolutionUserObject(), PicardSolve::solve(), ActuallyExplicitEuler::solve(), FullSolveMultiApp::solveStep(), SpatialAverageBase::SpatialAverageBase(), UserObject::spatialValue(), 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(), 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(), VectorVariableComponentAux::VectorVariableComponentAux(), VolumeHistogram::VolumeHistogram(), VTKOutput::VTKOutput(), DOFMapOutput::writeStreamToFile(), and Console::writeStreamToFile().

144  {
145  std::ostringstream oss;
146  moose::internal::mooseStreamAll(oss, std::forward<Args>(args)...);
147  std::string msg = oss.str();
148  callMooseErrorRaw(msg, &_app);
149  }
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:174

◆ 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 56 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(), CreateDisplacedProblemAction::addProxyAlgebraicRelationshipManagers(), CreateDisplacedProblemAction::addProxyGeometricRelationshipManagers(), FEProblemBase::addSampler(), DumpObjectsProblem::addScalarKernel(), FEProblemBase::addScalarKernel(), FEProblemBase::addTimeIntegrator(), FEProblemBase::addTransfer(), FEProblemBase::addUserObject(), FEProblemBase::addVectorPostprocessor(), Output::advancedExecuteOn(), MultiApp::appPostprocessorValue(), MultiApp::appProblem(), MultiApp::appProblemBase(), MultiApp::appUserObjectBase(), DerivativeParsedMaterialHelper::assembleDerivatives(), AStableDirk4::AStableDirk4(), Function::average(), MultiApp::backup(), 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(), DGKernelBase::DGKernelBase(), DumpObjectsProblem::dumpObjectHelper(), ElementValueSampler::ElementValueSampler(), MooseMesh::errorIfDistributedMesh(), AB2PredictorCorrector::estimateTimeError(), SolutionUserObject::evalMeshFunction(), SolutionUserObject::evalMeshFunctionGradient(), SolutionUserObject::evalMultiValuedMeshFunction(), SolutionUserObject::evalMultiValuedMeshFunctionGradient(), MultiAppPostprocessorTransfer::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), StatisticsVectorPostprocessor::execute(), PointValue::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppMeshFunctionTransfer::execute(), MultiAppUserObjectTransfer::execute(), MultiAppNearestNodeTransfer::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(), DistributionInterface::getDistribution(), FEProblemBase::getDistribution(), DistributionInterface::getDistributionByName(), 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(), Registry::isADObj(), MooseObject::isParamValid(), Registry::isRegisteredObj(), 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(), Registry::objData(), 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(), MultiApp::restore(), Sampler::Sampler(), ScalarComponentIC::ScalarComponentIC(), MooseMesh::setBoundaryName(), Control::setControllableValue(), Control::setControllableValueByName(), OutputWarehouse::setFileNumbers(), MooseMesh::setSubdomainName(), Split::setup(), TransientMultiApp::setupApp(), SideSetsFromNormalsGenerator::SideSetsFromNormalsGenerator(), SideSetsFromPointsGenerator::SideSetsFromPointsGenerator(), SideValueSampler::SideValueSampler(), TransientMultiApp::solveStep(), SpatialAverageBase::SpatialAverageBase(), UserObject::spatialValue(), StitchedMesh::StitchedMesh(), SubProblem::storeBoundaryDelayedCheckMatProp(), SubProblem::storeBoundaryMatPropName(), SubProblem::storeBoundaryZeroMatProp(), SubProblem::storeSubdomainDelayedCheckMatProp(), SubProblem::storeSubdomainMatPropName(), SubProblem::storeSubdomainZeroMatProp(), TaggingInterface::TaggingInterface(), ThreadedGeneralUserObject::ThreadedGeneralUserObject(), Function::timeDerivative(), VectorPostprocessorVisualizationAux::timestepSetup(), TransientMultiApp::TransientMultiApp(), MultiAppTransfer::variableIntegrityCheck(), and AdvancedOutput::wantOutput().

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

◆ 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 105 of file MooseObject.h.

Referenced by ADIntegratedBCTempl< T, compute_stage >::ADIntegratedBCTempl(), ADKernelTempl< T, compute_stage >::ADKernelTempl(), ConcentricCircleMeshGenerator::ConcentricCircleMeshGenerator(), DGKernelBase::DGKernelBase(), ElementValueSampler::ElementValueSampler(), StackGenerator::generate(), StitchedMeshGenerator::generate(), MeshCollectionGenerator::generate(), MultiApp::init(), IntegratedBC::IntegratedBC(), Kernel::Kernel(), MeshCollectionGenerator::MeshCollectionGenerator(), NodalBC::NodalBC(), NodalEqualValueConstraint::NodalEqualValueConstraint(), NodalKernel::NodalKernel(), NodalValueSampler::NodalValueSampler(), RandomIC::RandomIC(), MultiAppCopyTransfer::transfer(), and TransientMultiApp::TransientMultiApp().

105  {
106  auto prefix = param + ": ";
107  if (!_pars.inputLocation(param).empty())
108  prefix = _pars.inputLocation(param) + ": (" + _pars.paramFullpath(param) + "):\n";
109  mooseError(prefix, args...);
110  }
void mooseError(Args &&... args) const
Definition: MooseObject.h:144
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:171
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 62 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(), ADPiecewiseLinearInterpolationMaterial< compute_stage >::ADPiecewiseLinearInterpolationMaterial(), 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(), Exodus::Exodus(), FEProblem::FEProblem(), GapValueAux::GapValueAux(), MooseObject::getCheckedPointerParam(), GhostingUserObject::GhostingUserObject(), MooseMesh::init(), BlockRestrictable::initializeBlockRestrictable(), FEProblemBase::initNullSpaceVectors(), InterfaceKernel::InterfaceKernel(), isValid(), LayeredSideIntegral::LayeredSideIntegral(), 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().

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

◆ 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 135 of file MooseObject.h.

Referenced by TransientMultiApp::TransientMultiApp().

136  {
137  auto prefix = param + ": ";
138  if (!_pars.inputLocation(param).empty())
139  prefix = _pars.inputLocation(param) + ": (" + _pars.paramFullpath(param) + "):\n";
140  mooseInfo(prefix, args...);
141  }
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:171
void mooseInfo(Args &&... args) const
Definition: MooseObject.h:164
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 119 of file MooseObject.h.

120  {
121  auto prefix = param + ": ";
122  if (!_pars.inputLocation(param).empty())
123  prefix = _pars.inputLocation(param) + ": (" + _pars.paramFullpath(param) + "):\n";
124  mooseWarning(prefix, args...);
125  }
void mooseWarning(Args &&... args) const
Definition: MooseObject.h:152
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:171
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 520 of file MultiAppProjectionTransfer.C.

Referenced by execute().

521 {
522  FEProblemBase & to_problem = *_to_problems[i_to];
523  EquationSystems & proj_es = to_problem.es();
524  LinearImplicitSystem & ls = *_proj_sys[i_to];
525  // activate the current transfer
526  proj_es.parameters.set<MultiAppProjectionTransfer *>("transfer") = this;
527 
528  // TODO: specify solver params in an input file
529  // solver tolerance
530  Real tol = proj_es.parameters.get<Real>("linear solver tolerance");
531  proj_es.parameters.set<Real>("linear solver tolerance") = 1e-10; // set our tolerance
532  // solve it
533  ls.solve();
534  proj_es.parameters.set<Real>("linear solver tolerance") = tol; // restore the original tolerance
535 
536  // copy projected solution into target es
537  MeshBase & to_mesh = proj_es.get_mesh();
538 
539  MooseVariableFEBase & to_var = to_problem.getVariable(
541  System & to_sys = to_var.sys().system();
542  NumericVector<Number> * to_solution = to_sys.solution.get();
543 
544  for (const auto & node : to_mesh.local_node_ptr_range())
545  {
546  for (unsigned int comp = 0; comp < node->n_comp(to_sys.number(), to_var.number()); comp++)
547  {
548  const dof_id_type proj_index = node->dof_number(ls.number(), _proj_var_num, comp);
549  const dof_id_type to_index = node->dof_number(to_sys.number(), to_var.number(), comp);
550  to_solution->set(to_index, (*ls.solution)(proj_index));
551  }
552  }
553  for (const auto & elem : to_mesh.active_local_element_ptr_range())
554  for (unsigned int comp = 0; comp < elem->n_comp(to_sys.number(), to_var.number()); comp++)
555  {
556  const dof_id_type proj_index = elem->dof_number(ls.number(), _proj_var_num, comp);
557  const dof_id_type to_index = elem->dof_number(to_sys.number(), to_var.number(), comp);
558  to_solution->set(to_index, (*ls.solution)(proj_index));
559  }
560 
561  to_solution->close();
562  to_sys.update();
563 }
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:62
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, Console, 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 50 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(), DGKernel::computeElemNeighJacobian(), ElemElemConstraint::computeElemNeighJacobian(), InterfaceKernel::computeElemNeighJacobian(), DGKernel::computeElemNeighResidual(), ElemElemConstraint::computeElemNeighResidual(), InterfaceKernel::computeElemNeighResidual(), FEProblemBase::computeMultiAppsDT(), DGKernel::computeOffDiagElemNeighJacobian(), InterfaceKernel::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(), FEProblemBase::hasMultiApps(), AdvancedOutput::hasOutput(), FEProblemBase::incrementMultiAppTStep(), AdvancedOutput::initAvailableLists(), SolutionUserObject::initialSetup(), AdvancedOutput::initShowHideLists(), RelationshipManager::isType(), AssignElementSubdomainID::modify(), ControlOutput::output(), Gnuplot::output(), CSV::output(), Exodus::output(), Console::output(), Nemesis::output(), AdvancedOutput::output(), OversampleOutput::outputStep(), Output::outputStep(), FEProblemBase::outputStep(), FEProblemBase::restoreMultiApps(), FEProblemBase::setCoupling(), PerfGraphOutput::shouldOutput(), FileOutput::shouldOutput(), Output::shouldOutput(), AdvancedOutput::shouldOutput(), DisplacedProblem::updateGeomSearch(), FEProblemBase::updateGeomSearch(), and AdvancedOutput::wantOutput().

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

◆ 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 MultiAppVariableValueSampleTransfer::initialSetup(), MultiAppMeshFunctionTransfer::initialSetup(), MultiAppInterpolationTransfer::initialSetup(), MultiAppUserObjectTransfer::initialSetup(), MultiAppNearestNodeTransfer::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:144
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:56
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 31 of file MultiAppProjectionTransfer.C.

Referenced by initialSetup().

32 {
33  MultiAppProjectionTransfer * transfer =
34  es.parameters.get<MultiAppProjectionTransfer *>("transfer");
35  transfer->assembleL2(es, system_name);
36 }
void assembleL2(EquationSystems &es, const std::string &system_name)
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseObject.h:62
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 174 of file MooseObject.h.

Referenced by GridPartitioner::_do_partition(), AB2PredictorCorrector::AB2PredictorCorrector(), Executioner::addAttributeReporter(), FEProblemBase::addMaterialHelper(), FEProblemBase::addMultiApp(), FEProblemBase::addOutput(), FEProblemBase::allowOutput(), AStableDirk4::AStableDirk4(), FileMesh::buildMesh(), MeshGeneratorMesh::buildMesh(), MooseMesh::buildMeshBaseObject(), 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(), GhostingUserObject::GhostingUserObject(), 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(), ElementSideNeighborLayers::internalInit(), InversePowerMethod::InversePowerMethod(), MooseObject::mooseError(), 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(), Transient::preExecute(), 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(), MultiApp::backup(), FEProblemBase::backupMultiApps(), FEProblemBase::checkProblemIntegrity(), IterationAdaptiveDT::computeAdaptiveDT(), Transient::computeConstrainedDT(), NonlinearSystemBase::computeDamping(), IterationAdaptiveDT::computeDT(), IterationAdaptiveDT::computeFailedDT(), IterationAdaptiveDT::computeInterpolationDT(), FEProblemBase::computeResidualTags(), IterationAdaptiveDT::constrainStep(), TimeStepper::constrainStep(), MultiApp::createApp(), FEProblemBase::execMultiApps(), FEProblemBase::execMultiAppTransfers(), MultiAppPostprocessorTransfer::execute(), MultiAppPostprocessorInterpolationTransfer::execute(), MultiAppVariableValueSamplePostprocessorTransfer::execute(), MultiAppPostprocessorToAuxScalarTransfer::execute(), MultiAppScalarToAuxScalarTransfer::execute(), MultiAppVariableValueSampleTransfer::execute(), MultiAppInterpolationTransfer::execute(), MultiAppMeshFunctionTransfer::execute(), MultiAppUserObjectTransfer::execute(), execute(), MultiAppVectorPostprocessorTransfer::execute(), MultiAppNearestNodeTransfer::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(), AB2PredictorCorrector::postSolve(), ActionWarehouse::printActionDependencySets(), EigenExecutionerBase::printEigenvalue(), MaterialPropertyDebugOutput::printMaterialMap(), SolutionTimeAdaptiveDT::rejectStep(), DT2::rejectStep(), MultiApp::restore(), FEProblemBase::restoreMultiApps(), SimplePredictor::shouldApply(), NonlinearSystem::solve(), PicardSolve::solve(), LStableDirk2::solve(), LStableDirk3::solve(), ImplicitMidpoint::solve(), ExplicitTVDRK2::solve(), LStableDirk4::solve(), AStableDirk4::solve(), ExplicitRK2::solve(), TransientMultiApp::solveStep(), PicardSolve::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

const 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 183 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 177 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: