https://mooseframework.inl.gov
ComputeNodalKernelsThread.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 #include "ThreadedNodeLoop.h"
14 
15 #include "libmesh/node_range.h"
16 
17 // Forward declarations
18 class FEProblemBase;
19 class AuxiliarySystem;
20 class NodalKernelBase;
21 
23  : public ThreadedNodeLoop<ConstNodeRange, ConstNodeRange::const_iterator>
24 {
25 public:
28  const std::set<TagID> & tags);
29 
30  // Splitting Constructor
32 
33  virtual void pre() override;
34 
35  virtual void onNode(ConstNodeRange::const_iterator & node_it) override;
36 
37  void join(const ComputeNodalKernelsThread & /*y*/);
38 
39 protected:
41  void printGeneralExecutionInformation() const override;
42 
44 
46 
47  const std::set<TagID> & _tags;
48 
50 
52 
54  unsigned int _num_cached;
55 };
void join(const ComputeNodalKernelsThread &)
virtual void onNode(ConstNodeRange::const_iterator &node_it) override
MooseObjectWarehouse< NodalKernelBase > * _nkernel_warehouse
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
const std::set< TagID > & _tags
ComputeNodalKernelsThread(FEProblemBase &fe_problem, MooseObjectTagWarehouse< NodalKernelBase > &nodal_kernels, const std::set< TagID > &tags)
tbb::split split
virtual void pre() override
Called before the node range loop.
Base class for creating new types of nodal kernels.
vec_type::const_iterator const_iterator
unsigned int _num_cached
Number of contributions cached up.
void printGeneralExecutionInformation() const override
Print execution order of object types in the loop.
A system that holds auxiliary variables.
MooseObjectTagWarehouse< NodalKernelBase > & _nodal_kernels