33template <
typename RangeType>
54 const Elem * lower_d_elem =
nullptr)
override;
77 const bool print_header =
true,
78 const std::string & line_prefix =
"[DBG]")
const;
81 const bool print_header =
true,
82 const std::string & line_prefix =
"[DBG]")
const;
85template <
typename RangeType>
91template <
typename RangeType>
98template <
typename RangeType>
103template <
typename RangeType>
109 std::string what(e.
what());
110 _fe_problem.setException(what);
113template <
typename RangeType>
120template <
typename RangeType>
127template <
typename RangeType>
137template <
typename RangeType>
145template <
typename RangeType>
149 const bool print_header,
150 const std::string & line_prefix)
const
155 auto & console = _fe_problem.console();
157 std::vector<MooseObject *> moose_objs;
158 for (
auto obj_ptr : objs)
159 moose_objs.push_back(
dynamic_cast<MooseObject *
>(obj_ptr));
163 std::string message = print_header ?
"Executing " + objects_type +
" on " +
164 _fe_problem.getCurrentExecuteOnFlag().name() +
"\n"
166 message += (print_header ?
"Order of execution:\n" :
"") + names;
170template <
typename RangeType>
174 const std::vector<std::shared_ptr<T>> & objs_ptrs,
175 const bool print_header,
176 const std::string & line_prefix)
const
178 std::vector<T *> regular_ptrs;
179 for (
auto shared_ptr : objs_ptrs)
180 regular_ptrs.push_back(shared_ptr.get());
181 printExecutionOrdering<T>(regular_ptrs, print_header, line_prefix);
184template <
typename RangeType>
188 _fe_problem.prepare(elem, this->_tid);
189 _fe_problem.reinitElem(elem, this->_tid);
190 _fe_problem.reinitMaterials(this->_subdomain, this->_tid);
193template <
typename RangeType>
197 _fe_problem.clearActiveElementalMooseVariables(this->_tid);
198 _fe_problem.clearActiveMaterialProperties(this->_tid);
boundary_id_type BoundaryID
static Threads::spin_mutex threaded_element_mutex
This mutex is used by all derived classes of the ThreadedElementLoop.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual bool hasException()
Whether or not an exception has occurred.
Provides a way for users to bail out of the current solve.
virtual const char * what() const
Get out the error message.
Every object that can be built by the factory should be derived from this class.
Base class for a system (of equations)
Base class for assembly-like calculations.
Base class for assembly-like calculations.
virtual void caughtMooseException(MooseException &e) override
Called if a MooseException is caught anywhere during the computation.
ThreadedElementLoop(ThreadedElementLoop &x, Threads::split split)
virtual void preInternalSide(const Elem *elem, unsigned int side) override
Called before evaluations on an element internal side.
virtual ~ThreadedElementLoop()
virtual void neighborSubdomainChanged() override
Called every time the neighbor subdomain changes (i.e.
void clearVarsAndMaterials()
ThreadedElementLoop(FEProblemBase &feproblem)
virtual bool keepGoing() override
Whether or not the loop should continue.
void printExecutionOrdering(const std::vector< std::shared_ptr< T > > &objs_ptrs, const bool print_header=true, const std::string &line_prefix="[DBG]") const
void prepareElement(const Elem *elem)
FEProblemBase & _fe_problem
virtual void preElement(const Elem *elem) override
Called before the element 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 void preBoundary(const Elem *elem, unsigned int side, BoundaryID bnd_id, const Elem *lower_d_elem=nullptr) override
Called before the boundary assembly.
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...
std::string mooseObjectVectorToString(const std::vector< MooseObject * > &objs, const std::string &sep=" ")
Routine to output the name of MooseObjects in a string.
std::string prettyCppType(const std::string &cpp_type)