https://mooseframework.inl.gov
ComputeNodalKernelJacobiansThread.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;
20 class AuxiliarySystem;
21 class NodalKernelBase;
22 
23 // libMesh forward declarations
24 namespace libMesh
25 {
26 template <typename T>
27 class SparseMatrix;
28 }
29 
31  : public ThreadedNodeLoop<ConstNodeRange, ConstNodeRange::const_iterator>
32 {
33 public:
37  const std::set<TagID> & tags);
38 
39  // Splitting Constructor
41 
42  virtual void pre() override;
43 
44  virtual void onNode(ConstNodeRange::const_iterator & node_it) override;
45 
46  void join(const ComputeNodalKernelJacobiansThread & /*y*/);
47 
48 protected:
50  void printGeneralExecutionInformation() const override;
51 
55 
56  const std::set<TagID> & _tags;
57 
59 
61 
63  unsigned int _num_cached;
64 };
void join(const ComputeNodalKernelJacobiansThread &)
virtual void onNode(ConstNodeRange::const_iterator &node_it) override
ComputeNodalKernelJacobiansThread(FEProblemBase &fe_problem, NonlinearSystemBase &nl, MooseObjectTagWarehouse< NodalKernelBase > &nodal_kernels, const std::set< TagID > &tags)
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
MooseObjectWarehouse< NodalKernelBase > * _nkernel_warehouse
Nonlinear system to be solved.
void printGeneralExecutionInformation() const override
Print information about the loop, mostly order of execution of objects.
tbb::split split
Base class for creating new types of nodal kernels.
vec_type::const_iterator const_iterator
MooseObjectTagWarehouse< NodalKernelBase > & _nodal_kernels
virtual void pre() override
Called before the node range loop.
A system that holds auxiliary variables.
unsigned int _num_cached
Number of contributions cached up.