32 template <
typename RangeType>
46 virtual void preElement(
const Elem * elem)
override;
48 virtual void preInternalSide(
const Elem * elem,
unsigned int side)
override;
53 const Elem * lower_d_elem =
nullptr)
override;
73 const bool print_header =
true,
74 const std::string & line_prefix =
"[DBG]")
const;
77 const bool print_header =
true,
78 const std::string & line_prefix =
"[DBG]")
const;
81 template <
typename RangeType>
87 template <
typename RangeType>
94 template <
typename RangeType>
99 template <
typename RangeType>
105 std::string what(e.
what());
106 _fe_problem.setException(what);
109 template <
typename RangeType>
116 template <
typename RangeType>
123 template <
typename RangeType>
133 template <
typename RangeType>
141 template <
typename RangeType>
142 template <
typename T>
145 const bool print_header,
146 const std::string & line_prefix)
const 151 auto & console = _fe_problem.console();
153 std::vector<MooseObject *> moose_objs;
154 for (
auto obj_ptr : objs)
155 moose_objs.push_back(dynamic_cast<MooseObject *>(obj_ptr));
159 std::string message = print_header ?
"Executing " + objects_type +
" on " +
160 _fe_problem.getCurrentExecuteOnFlag().name() +
"\n" 162 message += (print_header ?
"Order of execution:\n" :
"") + names;
166 template <
typename RangeType>
167 template <
typename T>
170 const std::vector<std::shared_ptr<T>> & objs_ptrs,
171 const bool print_header,
172 const std::string & line_prefix)
const 174 std::vector<T *> regular_ptrs;
175 for (
auto shared_ptr : objs_ptrs)
176 regular_ptrs.push_back(shared_ptr.get());
177 printExecutionOrdering<T>(regular_ptrs, print_header, line_prefix);
std::string mooseObjectVectorToString(const std::vector< MooseObject *> &objs, const std::string &sep=" ")
Routine to output the name of MooseObjects in a string.
Base class for assembly-like calculations.
virtual const char * what() const
Get out the error message.
FEProblemBase & _fe_problem
virtual void neighborSubdomainChanged() override
Called every time the neighbor subdomain changes (i.e.
virtual void preInternalSide(const Elem *elem, unsigned int side) override
Called before evaluations on an element internal side.
virtual void preElement(const Elem *elem) override
Called before the element assembly.
Base class for a system (of equations)
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual void preBoundary(const Elem *elem, unsigned int side, BoundaryID bnd_id, const Elem *lower_d_elem=nullptr) override
Called before the boundary assembly.
void printExecutionOrdering(const std::vector< T *> &objs, const bool print_header=true, const std::string &line_prefix="[DBG]") const
Routine to output the ordering of objects within a vector of pointers to these objects.
virtual bool keepGoing() override
Whether or not the loop should continue.
std::string formatString(std::string message, const std::string &prefix)
Add new lines and prefixes to a string for pretty display in output NOTE: This makes a copy of the st...
boundary_id_type BoundaryID
ThreadedElementLoop(FEProblemBase &feproblem)
Provides a way for users to bail out of the current solve.
Base class for assembly-like calculations.
static Threads::spin_mutex threaded_element_mutex
This mutex is used by all derived classes of the ThreadedElementLoop.
virtual void caughtMooseException(MooseException &e) override
Called if a MooseException is caught anywhere during the computation.
virtual bool hasException()
Whether or not an exception has occurred.
virtual ~ThreadedElementLoop()
std::string prettyCppType(const std::string &cpp_type)