https://mooseframework.inl.gov
ComputeMarkerThread.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 class AuxiliarySystem;
17 
18 class ComputeMarkerThread : public ThreadedElementLoop<ConstElemRange>
19 {
20 public:
21  ComputeMarkerThread(FEProblemBase & fe_problem);
22 
23  // Splitting Constructor
25 
26  virtual ~ComputeMarkerThread();
27 
28  virtual void subdomainChanged() override;
29  virtual void onElement(const Elem * elem) override;
30  virtual void onBoundary(const Elem * elem,
31  unsigned int side,
32  BoundaryID bnd_id,
33  const Elem * lower_d_elem = nullptr) override;
34  virtual void onInternalSide(const Elem * elem, unsigned int side) override;
35  virtual void postElement(const Elem * /*elem*/) override;
36  virtual void post() override;
37 
38  void join(const ComputeMarkerThread & /*y*/);
39 
40 protected:
42  void printGeneralExecutionInformation() const override;
43 
45  void printBlockExecutionInformation() const override;
46 
49 
52 };
virtual void onBoundary(const Elem *elem, unsigned int side, BoundaryID bnd_id, const Elem *lower_d_elem=nullptr) override
Called when doing boundary assembling.
FEProblemBase & _fe_problem
Base class for assembly-like calculations.
virtual void onElement(const Elem *elem) override
Assembly of the element (not including surface assembly)
const MooseObjectWarehouse< Marker > & _marker_whs
Reference to the Marker warhouse in FEProblemBase.
void printGeneralExecutionInformation() const override
Print information about the loop.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual void postElement(const Elem *) override
Called after the element assembly is done (including surface assembling)
virtual void onInternalSide(const Elem *elem, unsigned int side) override
Called when doing internal edge assembling.
virtual void subdomainChanged() override
Called every time the current subdomain changes (i.e.
virtual void post() override
Called after the element range loop.
AuxiliarySystem & _aux_sys
boundary_id_type BoundaryID
void printBlockExecutionInformation() const override
Print information about ordering of objects on each block.
ComputeMarkerThread(FEProblemBase &fe_problem)
void join(const ComputeMarkerThread &)
tbb::split split
A system that holds auxiliary variables.