29 #include "libmesh/parallel.h" 96 mooseError(
name(),
" does not satisfy the Spatial UserObject interface!");
107 mooseError(
"Spatial UserObject interface is not satisfied; spatialPoints() must be overridden");
124 template <
typename T>
136 template <
typename T>
148 template <
typename T>
160 template <
typename T1,
typename T2>
169 template <
typename T1,
typename T2>
236 template <
typename T1,
typename T2>
243 auto pair = std::make_pair(
value, proxy);
247 const auto it = std::max_element(all.begin(), all.end());
252 template <
typename T1,
typename T2>
258 auto pair = std::make_pair(
value, proxy);
262 const auto it = std::min_element(all.begin(), all.end());
const std::set< std::string > & getRequestedItems() override
Return a set containing the names of items requested by the object.
const bool _duplicate_initial_execution
void gatherProxyValueMax(T1 &value, T2 &proxy)
Gather the parallel value of a variable according to which process has the parallel maximum of the pr...
void allgather(const T &send_data, std::vector< T, A > &recv_data) const
A class for creating restricted objects.
void setPrimaryThreadCopy(UserObject *primary)
virtual ~UserObject()=default
Keeps track of stuff related to assembling.
virtual const std::vector< Point > spatialPoints() const
Optional interface function for providing the points at which a UserObject attains spatial values...
UserObject * primaryThreadCopy()
std::set< std::string > _supplied_uo
A name of the "supplied" user objects, which is just this object.
UserObject * _primary_thread_copy
void gatherMax(T &value)
Gather the parallel max of the variable passed in.
Interface for objects that need to use samplers.
const std::set< std::string > & getSuppliedItems() override
Return a set containing the names of items owned by the object.
void gatherMin(T &value)
Gather the parallel min of the variable passed in.
bool shouldDuplicateInitialExecution() const
Returns whether or not this user object should be executed twice during the initial condition when de...
const Parallel::Communicator & _communicator
Base class for a system (of equations)
virtual void addVectorPostprocessorDependencyHelper(const VectorPostprocessorName &name) const override
Helper for deriving classes to override to add dependencies when a VectorPostprocessor is requested...
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
virtual const std::string & name() const
Get the name of the class.
SubProblem & _subproblem
Reference to the Subproblem for this user object.
virtual void execute()=0
Execute method.
void gatherProxyValueMin(T1 &value, T2 &proxy)
Gather the parallel value of a variable according to which process has the parallel minimum of the pr...
virtual bool needThreadedCopy() const
Whether or not a threaded copy of this object is needed when obtaining it in another object...
processor_id_type n_processors() const
Interface for notifications that the mesh has changed.
void gatherSum(T &value)
Gather the parallel sum of the variable passed in.
Real value(unsigned n, unsigned alpha, unsigned beta, Real x)
void min(const T &r, T &o, Request &req) const
Every object that can be built by the factory should be derived from this class.
SubProblem & getSubProblem() const
Returns a reference to the subproblem that this postprocessor is tied to.
Interface for objects that need to use distributions.
Interface to allow object to consume Reporter values.
SystemBase & _sys
Reference to the system object for this user object.
Interface for objects that need to use UserObjects.
virtual void initialize()=0
Called before execute() is ever called so that data can be cleared.
std::set< UserObjectName > getDependObjects() const
Recursively return a set of user objects this user object depends on Note: this can be called only af...
Interface for objects interacting with the PerfGraph.
std::set< std::string > _depend_uo
Depend UserObjects that to be used both for determining user object sorting and by AuxKernel for find...
virtual void addUserObjectDependencyHelper(const UserObject &uo) const override
Helper for deriving classes to override to add dependencies when a UserObject is requested.
virtual Real spatialValue(const Point &) const
Optional interface function for "evaluating" a UserObject at a spatial position.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const Moose::CoordinateSystemType & _coord_sys
Coordinate system.
Generic class for solving transient nonlinear problems.
void max(const T &r, T &o, Request &req) const
FEProblemBase & _fe_problem
Reference to the FEProblemBase for this user object.
UserObject(const InputParameters ¶ms)
const THREAD_ID _tid
Thread ID of this postprocessor.
Interface for sorting dependent vectors of objects.
virtual void finalize()=0
Finalize.
Interface for objects that needs scalar coupling capabilities.
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
void addReporterDependencyHelper(const ReporterName &reporter_name) override
A method that can be overridden to update the UO dependencies.
virtual void addPostprocessorDependencyHelper(const PostprocessorName &name) const override
Helper for deriving classes to override to add dependencies when a Postprocessor is requested...
unsigned int systemNumber() const
Interface for objects that need to use functions.
Base class for user-specific data.
The Reporter system is comprised of objects that can contain any number of data values.
Interface class for classes which interact with Postprocessors.
virtual void threadJoin(const UserObject &uo)=0
Must override.
static InputParameters validParams()