www.mooseframework.org
ComputeIndicatorThread.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 "ThreadedElementLoop.h"
13 
14 #include "libmesh/elem_range.h"
15 
16 // Forward declarations
17 class AuxiliarySystem;
18 class InternalSideIndicators;
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.
const MooseObjectWarehouse< InternalSideIndicator > & _internal_side_indicators
InternalSideIndicator Storage.
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.
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.