www.mooseframework.org
ComputeNodalKernelsThread.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 NodalKernel;
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 
43 
44  const std::set<TagID> & _tags;
45 
47 
49 
51  unsigned int _num_cached;
52 };
53 
MooseObjectWarehouse< NodalKernel > * _nkernel_warehouse
void join(const ComputeNodalKernelsThread &)
MooseObjectTagWarehouse< NodalKernel > & _nodal_kernels
virtual void onNode(ConstNodeRange::const_iterator &node_it) override
Called for each node.
ComputeNodalKernelsThread(FEProblemBase &fe_problem, MooseObjectTagWarehouse< NodalKernel > &nodal_kernels, const std::set< TagID > &tags)
static PetscErrorCode Vec x
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
std::vector< std::string > split(const std::string &str, const std::string &delimiter)
Python like split function for strings.
Definition: MooseUtils.C:736
const std::set< TagID > & _tags
virtual void pre() override
Called before the node range loop.
unsigned int _num_cached
Number of contributions cached up.
Base class for creating new types of boundary conditions.
Definition: NodalKernel.h:48
A system that holds auxiliary variables.