https://mooseframework.inl.gov
MaxVarNDofsPerElem.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 "ThreadedElementLoop.h"
13 // libMesh includes
14 #include "libmesh/elem_range.h"
15 
16 class SolverSystem;
17 
18 class MaxVarNDofsPerElem : public ThreadedElementLoop<ConstElemRange>
19 {
20 public:
21  MaxVarNDofsPerElem(FEProblemBase & feproblem, SolverSystem & sys);
22 
23  // Splitting Constructor
25 
26  virtual ~MaxVarNDofsPerElem();
27 
28  virtual void onElement(const Elem * elem);
29 
30  void join(const MaxVarNDofsPerElem &);
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 };
Base class for assembly-like calculations.
size_t _max
Maximum number of dofs for any one variable on any one element.
SolverSystem & _system
The nonlinear system.
const DofMap & _dof_map
DOF map.
std::vector< dof_id_type > _dof_indices
Reusable storage.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual void onElement(const Elem *elem)
Assembly of the element (not including surface assembly)
void join(const MaxVarNDofsPerElem &)
tbb::split split
MaxVarNDofsPerElem(FEProblemBase &feproblem, SolverSystem &sys)
uint8_t dof_id_type