https://mooseframework.inl.gov
ComputeIndicatorThread.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 
14 #include "libmesh/elem_range.h"
15 
16 // Forward declarations
17 class AuxiliarySystem;
19 
20 class ComputeIndicatorThread : public ThreadedElementLoop<ConstElemRange>
21 {
22 public:
29  ComputeIndicatorThread(FEProblemBase & fe_problem, bool finalize = false);
30 
31  // Splitting Constructor
33 
34  virtual ~ComputeIndicatorThread();
35 
36  virtual void subdomainChanged() override;
37  virtual void onElement(const Elem * elem) override;
38  virtual void onBoundary(const Elem * elem,
39  unsigned int side,
40  BoundaryID bnd_id,
41  const Elem * lower_d_elem = nullptr) override;
42  virtual void onInternalSide(const Elem * elem, unsigned int side) override;
43  virtual void postElement(const Elem * /*elem*/) override;
44  virtual void post() override;
45 
46  void join(const ComputeIndicatorThread & /*y*/);
47 
48 protected:
50  void printGeneralExecutionInformation() const override;
51 
53  void printBlockExecutionInformation() const override;
54 
57 
60 
63 
64  bool _finalize;
65 };
virtual void onBoundary(const Elem *elem, unsigned int side, BoundaryID bnd_id, const Elem *lower_d_elem=nullptr) override
Called when doing boundary assembling.
Base class for assembly-like calculations.
virtual void subdomainChanged() override
Called every time the current subdomain changes (i.e.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
const MooseObjectWarehouse< InternalSideIndicatorBase > & _internal_side_indicators
InternalSideIndicator Storage.
void printGeneralExecutionInformation() const override
Print general information about the loop when it executes.
virtual void postElement(const Elem *) override
Called after the element assembly is done (including surface assembling)
ComputeIndicatorThread(FEProblemBase &fe_problem, bool finalize=false)
boundary_id_type BoundaryID
virtual void onElement(const Elem *elem) override
Assembly of the element (not including surface assembly)
tbb::split split
const MooseObjectWarehouse< Indicator > & _indicator_whs
Indicator Storage.
void printBlockExecutionInformation() const override
Print list of specific objects executed and in which order.
void join(const ComputeIndicatorThread &)
virtual void onInternalSide(const Elem *elem, unsigned int side) override
Called when doing internal edge assembling.
virtual void post() override
Called after the element range loop.
A system that holds auxiliary variables.