https://mooseframework.inl.gov
MaxVarNDofsPerNode.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"
13 // libMesh includes
14 #include "libmesh/node_range.h"
15 
16 class SolverSystem;
17 
18 class MaxVarNDofsPerNode : public ThreadedNodeLoop<ConstNodeRange, ConstNodeRange::const_iterator>
19 {
20 public:
21  MaxVarNDofsPerNode(FEProblemBase & feproblem, SolverSystem & sys);
22 
23  // Splitting Constructor
25 
26  virtual ~MaxVarNDofsPerNode();
27 
28  virtual void onNode(ConstNodeRange::const_iterator & node_it) override;
29 
30  void join(const MaxVarNDofsPerNode &);
31 
32  dof_id_type max() { return _max; }
33 
34 protected:
37 
39  size_t _max;
40 
42  const DofMap & _dof_map;
43 
45  std::vector<dof_id_type> _dof_indices;
46 };
const DofMap & _dof_map
DOF map.
void join(const MaxVarNDofsPerNode &)
SolverSystem & _system
The nonlinear system.
MaxVarNDofsPerNode(FEProblemBase &feproblem, SolverSystem &sys)
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
std::vector< dof_id_type > _dof_indices
Reusable storage.
tbb::split split
size_t _max
Maximum number of dofs for any one variable on any one node.
vec_type::const_iterator const_iterator
uint8_t dof_id_type
virtual void onNode(ConstNodeRange::const_iterator &node_it) override