16#include "libmesh/threads.h"
20 :
ThreadedNodeLoop<ConstNodeRange, ConstNodeRange::const_iterator>(feproblem),
23 _nodal_dampers(_nl.getNodalDamperWarehouse())
30 :
ThreadedNodeLoop<ConstNodeRange, ConstNodeRange::const_iterator>(x, split),
33 _nodal_dampers(x._nodal_dampers)
42 const Node * node = *node_it;
45 std::set<MooseVariable *> damped_vars;
48 for (
const auto & damper : ndampers)
49 if (damper->variableDefinedOnNode(node))
50 damped_vars.insert(damper->getVariable());
52 if (!damped_vars.empty())
55 for (
const auto & damper : ndampers)
57 if (!damper->variableDefinedOnNode(node))
60 Real cur_damping = damper->computeDamping();
61 damper->checkMinDamping(cur_damping);
89 console <<
"[DBG] Executing nodal dampers on " << execute_on << std::endl;
90 console <<
"[DBG] Ordering of the dampers on the blocks they are defined on:" << std::endl;
92 console << damper_wh.activeObjectsToFormattedString() << std::endl;
void join(const ComputeNodalDampingThread &y)
void printGeneralExecutionInformation() const override
Print information about the loop, mostly order of execution of objects.
virtual void onNode(ConstNodeRange::const_iterator &node_it) override
const MooseObjectWarehouse< NodalDamper > & _nodal_dampers
ComputeNodalDampingThread(FEProblemBase &feproblem, NonlinearSystemBase &nl)
virtual ~ComputeNodalDampingThread()
NonlinearSystemBase & _nl
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual void reinitNode(const Node *node, const THREAD_ID tid) override
const ExecFlagType & getCurrentExecuteOnFlag() const
Return/set the current execution flag.
bool shouldPrintExecution(const THREAD_ID tid) const
Check whether the problem should output execution orders at this time.
const std::vector< std::shared_ptr< T > > & getActiveObjects(THREAD_ID tid=0) const
Retrieve complete vector to the active all/block/boundary restricted objects for a given thread.
Nonlinear system to be solved.
void reinitIncrementAtNodeForDampers(THREAD_ID tid, const std::set< MooseVariable * > &damped_vars)
Compute the incremental change in variables at nodes for dampers.
const MooseObjectWarehouse< NodalDamper > & getNodalDamperWarehouse() const
const ConsoleStream & console() const
Return console handle.
FEProblemBase & _fe_problem