https://mooseframework.inl.gov
Public Member Functions | Private Attributes | List of all members
MooseVariableDependencyInterface Class Reference

#include <MooseVariableDependencyInterface.h>

Inheritance diagram for MooseVariableDependencyInterface:
[legend]

Public Member Functions

 MooseVariableDependencyInterface (const MooseObject *)
 
 MooseVariableDependencyInterface (const MooseVariableDependencyInterface &, const Moose::Kokkos::FunctorCopy &key)
 Special constructor used for Kokkos functor copy during parallel dispatch. More...
 
const std::set< MooseVariableFieldBase * > & getMooseVariableDependencies () const
 Retrieve the set of MooseVariableFieldBase that this object depends on. More...
 
template<typename DofObjectType >
std::set< MooseVariableFieldBase * > checkAllVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase *> &vars_to_omit={})
 Check whether all of the variable dependencies have degree of freedom indices on the supplied degree of freedom object. More...
 
template<typename DofObjectType >
std::set< MooseVariableFieldBase * > checkVariables (const DofObjectType &dof_object, const std::set< MooseVariableFieldBase *> &vars_to_check)
 Check whether all of the supplied variables have degree of freedom indices on the supplied degree of freedom object. More...
 
void addMooseVariableDependency (MooseVariableFieldBase *var)
 Call this function to add the passed in MooseVariableFieldBase as a variable that this object depends on. More...
 
void addMooseVariableDependency (const std::vector< MooseVariableFieldBase *> &vars)
 

Private Attributes

std::set< MooseVariableFieldBase * > _moose_variable_dependencies
 
std::vector< libMesh::dof_id_type_dof_indices
 A container for holding dof indices in order to avoid constant memory reallocation. More...
 

Detailed Description

Definition at line 27 of file MooseVariableDependencyInterface.h.

Constructor & Destructor Documentation

◆ MooseVariableDependencyInterface() [1/2]

MooseVariableDependencyInterface::MooseVariableDependencyInterface ( const MooseObject )

Definition at line 22 of file MooseVariableDependencyInterface.C.

22 {}

◆ MooseVariableDependencyInterface() [2/2]

MooseVariableDependencyInterface::MooseVariableDependencyInterface ( const MooseVariableDependencyInterface ,
const Moose::Kokkos::FunctorCopy key 
)

Special constructor used for Kokkos functor copy during parallel dispatch.

Definition at line 25 of file MooseVariableDependencyInterface.C.

27 {
28 }

Member Function Documentation

◆ addMooseVariableDependency() [1/2]

void MooseVariableDependencyInterface::addMooseVariableDependency ( MooseVariableFieldBase var)
inline

Call this function to add the passed in MooseVariableFieldBase as a variable that this object depends on.

Definition at line 82 of file MooseVariableDependencyInterface.h.

Referenced by ADDGKernel::ADDGKernel(), ADIntegratedBCTempl< T >::ADIntegratedBCTempl(), ADInterfaceKernelTempl< T >::ADInterfaceKernelTempl(), ADKernelTempl< T >::ADKernelTempl(), ArrayDGKernel::ArrayDGKernel(), ArrayIntegratedBC::ArrayIntegratedBC(), ArrayKernel::ArrayKernel(), ArrayNodalBC::ArrayNodalBC(), AuxKernelTempl< Real >::AuxKernelTempl(), AuxNodalScalarKernel::AuxNodalScalarKernel(), CoupleableMooseVariableDependencyIntermediateInterface::CoupleableMooseVariableDependencyIntermediateInterface(), CoupleableMooseVariableDependencyIntermediateInterface::coupledArrayValueByName(), CoupleableMooseVariableDependencyIntermediateInterface::coupledValueByName(), DGKernel::DGKernel(), DiffusionLHDGAssemblyHelper::DiffusionLHDGAssemblyHelper(), DiracKernelTempl< T >::DiracKernelTempl(), ElemElemConstraint::ElemElemConstraint(), ElementIndicator::ElementIndicator(), ElementIntegralArrayVariablePostprocessor::ElementIntegralArrayVariablePostprocessor(), ElementIntegralVariablePostprocessor::ElementIntegralVariablePostprocessor(), ElementIntegralVariableUserObject::ElementIntegralVariableUserObject(), ElementVariablePostprocessor::ElementVariablePostprocessor(), FVBoundaryCondition::FVBoundaryCondition(), FVElementalKernel::FVElementalKernel(), FVInterfaceKernel::FVInterfaceKernel(), IntegratedBC::IntegratedBC(), InterfaceIntegralVariableValuePostprocessor::InterfaceIntegralVariableValuePostprocessor(), InterfaceKernelTempl< T >::InterfaceKernelTempl(), InterfaceMaterial::InterfaceMaterial(), InternalSideIndicatorBase::InternalSideIndicatorBase(), InternalSideIndicatorTempl< ComputeValueType >::InternalSideIndicatorTempl(), InternalSideIntegralVariablePostprocessor::InternalSideIntegralVariablePostprocessor(), IPHDGAssemblyHelper::IPHDGAssemblyHelper(), Kernel::Kernel(), LinearFVBoundaryCondition::LinearFVBoundaryCondition(), LinearFVKernel::LinearFVKernel(), Marker::Marker(), Material::Material(), MortarConstraintBase::MortarConstraintBase(), NeighborCoupleableMooseVariableDependencyIntermediateInterface::NeighborCoupleableMooseVariableDependencyIntermediateInterface(), NodalBC::NodalBC(), NodalConstraint::NodalConstraint(), NodalKernel::NodalKernel(), NodalScalarKernel::NodalScalarKernel(), NodeElemConstraintBase::NodeElemConstraintBase(), NodeFaceConstraint::NodeFaceConstraint(), PointVariableSamplerBase::PointVariableSamplerBase(), QuadraturePointMarker::QuadraturePointMarker(), SideIntegralVariablePostprocessor::SideIntegralVariablePostprocessor(), SideIntegralVariableUserObject::SideIntegralVariableUserObject(), SideVariablePostprocessor::SideVariablePostprocessor(), VectorIntegratedBC::VectorIntegratedBC(), VectorKernel::VectorKernel(), and VectorNodalBC::VectorNodalBC().

83  {
84  _moose_variable_dependencies.insert(var);
85  }
std::set< MooseVariableFieldBase * > _moose_variable_dependencies

◆ addMooseVariableDependency() [2/2]

void MooseVariableDependencyInterface::addMooseVariableDependency ( const std::vector< MooseVariableFieldBase *> &  vars)
inline

Definition at line 86 of file MooseVariableDependencyInterface.h.

87  {
88  _moose_variable_dependencies.insert(vars.begin(), vars.end());
89  }
char ** vars
std::set< MooseVariableFieldBase * > _moose_variable_dependencies

◆ checkAllVariables()

template<typename DofObjectType >
std::set< MooseVariableFieldBase * > MooseVariableDependencyInterface::checkAllVariables ( const DofObjectType &  dof_object,
const std::set< MooseVariableFieldBase *> &  vars_to_omit = {} 
)

Check whether all of the variable dependencies have degree of freedom indices on the supplied degree of freedom object.

Parameters
dof_objectThe degree of freedom object (an element or node) that we want to check for existence of variable degrees of freedom on
vars_to_omitVariables that we can omit from checking
Returns
Any variables that do not have degrees of freedom on the supplied degree of freedom object

Definition at line 100 of file MooseVariableDependencyInterface.h.

102 {
103  if (vars_to_omit.empty())
104  return checkVariables(dof_object, _moose_variable_dependencies);
105 
106  std::set<MooseVariableFieldBase *> vars_to_check;
107  std::set_difference(_moose_variable_dependencies.begin(),
109  vars_to_omit.begin(),
110  vars_to_omit.end(),
111  std::inserter(vars_to_check, vars_to_check.begin()));
112  return checkVariables(dof_object, vars_to_check);
113 }
std::set< MooseVariableFieldBase * > checkVariables(const DofObjectType &dof_object, const std::set< MooseVariableFieldBase *> &vars_to_check)
Check whether all of the supplied variables have degree of freedom indices on the supplied degree of ...
std::set< MooseVariableFieldBase * > _moose_variable_dependencies

◆ checkVariables()

template<typename DofObjectType >
template std::set< MooseVariableFieldBase * > MooseVariableDependencyInterface::checkVariables ( const DofObjectType &  dof_object,
const std::set< MooseVariableFieldBase *> &  vars_to_check 
)

Check whether all of the supplied variables have degree of freedom indices on the supplied degree of freedom object.

Parameters
dof_objectThe degree of freedom object (an element or node) that we want to check for existence of variable degrees of freedom on
vars_to_checkthe variables to check
Returns
Any variables that do not have degrees of freedom on the supplied degree of freedom object

Definition at line 33 of file MooseVariableDependencyInterface.C.

Referenced by checkAllVariables().

35 {
36  std::set<MooseVariableFieldBase *> vars_without_indices;
37  for (auto * const var : vars_to_check)
38  {
39  var->sys().dofMap().dof_indices(&dof_object, _dof_indices, var->number());
40  if (_dof_indices.empty())
41  vars_without_indices.insert(var);
42  }
43 
44  return vars_without_indices;
45 }
std::vector< libMesh::dof_id_type > _dof_indices
A container for holding dof indices in order to avoid constant memory reallocation.

◆ getMooseVariableDependencies()

const std::set<MooseVariableFieldBase *>& MooseVariableDependencyInterface::getMooseVariableDependencies ( ) const
inline

Retrieve the set of MooseVariableFieldBase that this object depends on.

Returns
The MooseVariableFieldBase that MUST be reinited before evaluating this object

Definition at line 45 of file MooseVariableDependencyInterface.h.

Referenced by ComputeUserObjectsThread::subdomainChanged(), and MooseObjectWarehouseBase< Indicator >::updateVariableDependencyHelper().

46  {
48  }
std::set< MooseVariableFieldBase * > _moose_variable_dependencies

Member Data Documentation

◆ _dof_indices

std::vector<libMesh::dof_id_type> MooseVariableDependencyInterface::_dof_indices
private

A container for holding dof indices in order to avoid constant memory reallocation.

Definition at line 95 of file MooseVariableDependencyInterface.h.

◆ _moose_variable_dependencies

std::set<MooseVariableFieldBase *> MooseVariableDependencyInterface::_moose_variable_dependencies
private

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