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

A class that gathers body force data from elemental kernels contributing to the Navier-Stokes momentum residuals. More...

#include <GatherRCDataElementThread.h>

Inheritance diagram for GatherRCDataElementThread:
[legend]

Public Member Functions

 GatherRCDataElementThread (FEProblemBase &fe_problem, const unsigned int _nl_sys_number, const std::vector< unsigned int > &vars)
 
 GatherRCDataElementThread (GatherRCDataElementThread &x, Threads::split split)
 
void join (const GatherRCDataElementThread &)
 
virtual void caughtMooseException (MooseException &e) override
 
virtual bool keepGoing () override
 
virtual void preElement (const Elem *elem) override
 
virtual void preInternalSide (const Elem *elem, unsigned int side) override
 
virtual void preBoundary (const Elem *elem, unsigned int side, BoundaryID bnd_id, const Elem *lower_d_elem=nullptr) override
 
virtual void neighborSubdomainChanged () override
 
virtual void operator() (const ConstElemRange &range, bool bypass_threading=false)
 
virtual void pre ()
 
virtual void post ()
 
virtual void postElement (const Elem *elem)
 
virtual void onBoundary (const Elem *elem, unsigned int side, BoundaryID bnd_id, const Elem *lower_d_elem=nullptr)
 
virtual void postInternalSide (const Elem *elem, unsigned int side)
 
virtual void onInternalSide (const Elem *elem, unsigned int side)
 
virtual void onExternalSide (const Elem *elem, unsigned int side)
 
virtual void onInterface (const Elem *elem, unsigned int side, BoundaryID bnd_id)
 

Protected Member Functions

void subdomainChanged () override final
 
void onElement (const Elem *elem) override final
 
void prepareElement (const Elem *elem)
 
void clearVarsAndMaterials ()
 
void printExecutionOrdering (const std::vector< T *> &objs, const bool print_header=true, const std::string &line_prefix="[DBG]") const
 
void printExecutionOrdering (const std::vector< std::shared_ptr< T >> &objs_ptrs, const bool print_header=true, const std::string &line_prefix="[DBG]") const
 
virtual void printGeneralExecutionInformation () const
 
virtual void printBlockExecutionInformation () const
 
virtual void printBoundaryExecutionInformation (const unsigned int) const
 
void resetExecPrintedSets () const
 
virtual bool shouldComputeInternalSide (const Elem &elem, const Elem &neighbor) const
 

Protected Attributes

const unsigned int _nl_system_num
 
FEProblemBase_fe_problem
 
MooseMesh_mesh
 
THREAD_ID _tid
 
SubdomainID _subdomain
 
SubdomainID _old_subdomain
 
SubdomainID _neighbor_subdomain
 
SubdomainID _old_neighbor_subdomain
 
std::set< SubdomainID_blocks_exec_printed
 
std::set< BoundaryID_boundaries_exec_printed
 

Private Attributes

const std::vector< unsigned int > & _vars
 The velocity variable numbers. More...
 
std::vector< INSFVMomentumResidualObject * > _insfv_elemental_kernels
 The collection of elemental kernels that contributive to the momentum equation residuals. More...
 

Detailed Description

A class that gathers body force data from elemental kernels contributing to the Navier-Stokes momentum residuals.

We loop over each active, local element and call the gatherRCData method on each kernel with the current element as an argument

Definition at line 23 of file GatherRCDataElementThread.h.

Constructor & Destructor Documentation

◆ GatherRCDataElementThread() [1/2]

GatherRCDataElementThread::GatherRCDataElementThread ( FEProblemBase fe_problem,
const unsigned int  _nl_sys_number,
const std::vector< unsigned int > &  vars 
)

Definition at line 16 of file GatherRCDataElementThread.C.

19  : ThreadedElementLoop<ConstElemRange>(fe_problem), _nl_system_num(nl_sys_number), _vars(vars)
20 {
21 }
const std::vector< unsigned int > & _vars
The velocity variable numbers.

◆ GatherRCDataElementThread() [2/2]

GatherRCDataElementThread::GatherRCDataElementThread ( GatherRCDataElementThread x,
Threads::split  split 
)

Definition at line 24 of file GatherRCDataElementThread.C.

27 {
28 }
const std::vector< unsigned int > & _vars
The velocity variable numbers.
const std::vector< double > x
tbb::split split

Member Function Documentation

◆ join()

void GatherRCDataElementThread::join ( const GatherRCDataElementThread )
inline

Definition at line 33 of file GatherRCDataElementThread.h.

33 {}

◆ onElement()

void GatherRCDataElementThread::onElement ( const Elem *  elem)
finaloverrideprotectedvirtual

Reimplemented from ThreadedElementLoop< ConstElemRange >.

Definition at line 59 of file GatherRCDataElementThread.C.

60 {
61  mooseAssert(elem && elem->subdomain_id() == _subdomain, "sub ids don't match");
62 
63  for (auto * const insfv_ek : _insfv_elemental_kernels)
64  insfv_ek->gatherRCData(*elem);
65 }
std::vector< INSFVMomentumResidualObject * > _insfv_elemental_kernels
The collection of elemental kernels that contributive to the momentum equation residuals.

◆ subdomainChanged()

void GatherRCDataElementThread::subdomainChanged ( )
finaloverrideprotectedvirtual

Reimplemented from ThreadedElementLoop< ConstElemRange >.

Definition at line 31 of file GatherRCDataElementThread.C.

32 {
34 
36 
37  auto queries = _fe_problem.theWarehouse()
38  .query()
39  .template condition<AttribSystem>("FVElementalKernel")
40  .template condition<AttribSysNum>(this->_nl_system_num)
41  .template condition<AttribThread>(_tid)
42  .template condition<AttribSubdomains>(_subdomain);
43 
44  for (const auto var_num : _vars)
45  {
46  // We don't want to do cascading var num attributes or else the second time around we won't get
47  // any results out of the query (e.g. an object cannot have a variable that simultaneously has
48  // both var number 0 and 1)
49  auto copied_queries = queries;
50  std::vector<FVElementalKernel *> var_eks;
51  copied_queries.template condition<AttribVar>(static_cast<int>(var_num)).queryInto(var_eks);
52  for (auto var_ek : var_eks)
53  if (auto insfv_ek = dynamic_cast<INSFVMomentumResidualObject *>(var_ek))
54  _insfv_elemental_kernels.push_back(insfv_ek);
55  }
56 }
virtual void subdomainChanged()
std::vector< INSFVMomentumResidualObject * > _insfv_elemental_kernels
The collection of elemental kernels that contributive to the momentum equation residuals.
const std::vector< unsigned int > & _vars
The velocity variable numbers.
TheWarehouse & theWarehouse() const
Query query()

Member Data Documentation

◆ _insfv_elemental_kernels

std::vector<INSFVMomentumResidualObject *> GatherRCDataElementThread::_insfv_elemental_kernels
private

The collection of elemental kernels that contributive to the momentum equation residuals.

Definition at line 46 of file GatherRCDataElementThread.h.

Referenced by onElement(), and subdomainChanged().

◆ _nl_system_num

const unsigned int GatherRCDataElementThread::_nl_system_num
protected

Definition at line 39 of file GatherRCDataElementThread.h.

Referenced by subdomainChanged().

◆ _vars

const std::vector<unsigned int>& GatherRCDataElementThread::_vars
private

The velocity variable numbers.

Definition at line 43 of file GatherRCDataElementThread.h.

Referenced by subdomainChanged().


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