https://mooseframework.inl.gov
ComputeElemAuxVarsThread.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 "libmesh/elem_range.h"
13 
14 // MOOSE includes
15 #include "ThreadedElementLoop.h"
16 #include "MooseObjectWarehouse.h"
17 
18 // Forward declarations
19 class FEProblemBase;
20 class AuxiliarySystem;
21 
22 template <typename AuxKernelType>
23 class ComputeElemAuxVarsThread : public ThreadedElementLoop<ConstElemRange>
24 {
25 public:
28  bool need_materials);
29  // Splitting Constructor
31 
32  virtual ~ComputeElemAuxVarsThread();
33 
34  virtual void subdomainChanged() override;
35  virtual void onElement(const Elem * elem) override;
36  virtual void post() override;
37 
38  void join(const ComputeElemAuxVarsThread & /*y*/);
39 
40 protected:
42  void printGeneralExecutionInformation() const override;
43 
45  void printBlockExecutionInformation() const override;
46 
48 
51 
53 };
Base class for assembly-like calculations.
const MooseObjectWarehouse< AuxKernelType > & _aux_kernels
Storage object containing active AuxKernel objects.
void printGeneralExecutionInformation() const override
Print list of object types executed and in which order.
void join(const ComputeElemAuxVarsThread &)
ComputeElemAuxVarsThread(FEProblemBase &problem, const MooseObjectWarehouse< AuxKernelType > &storage, bool need_materials)
void printBlockExecutionInformation() const override
Print list of specific objects executed and in which order.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual void subdomainChanged() override
Called every time the current subdomain changes (i.e.
virtual void onElement(const Elem *elem) override
Assembly of the element (not including surface assembly)
tbb::split split
virtual void post() override
Called after the element range loop.
A system that holds auxiliary variables.