https://mooseframework.inl.gov
Loading...
Searching...
No Matches
GhostingFromUOAux.C
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#include "GhostingFromUOAux.h"
11#include "GhostingUserObject.h"
12
14registerMooseObjectRenamed("MooseApp", GhostingAux, "04/01/2025 00:00", GhostingFromUOAux);
15
18{
20
21 params.addRequiredParam<processor_id_type>("pid", "The PID to see the ghosting for");
22
23 MooseEnum functor_type("geometric algebraic", "geometric");
24 params.addParam<MooseEnum>("functor_type", functor_type, "The type of ghosting functor to use");
25
26 params.addParam<bool>("include_local_elements",
27 false,
28 "Whether or not to include local elements as part of the ghosting set");
29
30 params.addRequiredParam<UserObjectName>(
31 "ghost_uo", "The GhostUserObject from which to obtain ghosting information from.");
32
33 params.set<ExecFlagEnum>("execute_on") = {EXEC_INITIAL, EXEC_TIMESTEP_END};
34
35 params.addClassDescription("Colors the elements ghosted to the chosen PID.");
36 return params;
37}
38
40 : AuxKernel(parameters),
41 _pid(getParam<processor_id_type>("pid")),
42 _rm_type(getParam<MooseEnum>("functor_type") == "geometric"
43 ? Moose::RelationshipManagerType::GEOMETRIC
44 : Moose::RelationshipManagerType::ALGEBRAIC),
45 _include_local(getParam<bool>("include_local_elements")),
46 _value(0.),
47 _ghost_uo(getUserObject<GhostingUserObject>("ghost_uo"))
48{
49 if (isNodal())
50 mooseError("GhostingFromUOAux only works on elemental fields.");
51}
52
53void
55{
56 if (_current_elem->processor_id() == _pid && _include_local)
57 _value = 1;
58 else if (_current_elem->processor_id() != _pid)
60 else
61 _value = 0.;
62}
63
64Real
registerMooseObject("MooseApp", GhostingFromUOAux)
registerMooseObjectRenamed("MooseApp", GhostingAux, "04/01/2025 00:00", GhostingFromUOAux)
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application.
Definition MooseError.h:311
const ExecFlagType EXEC_TIMESTEP_END
Definition Moose.C:36
const ExecFlagType EXEC_INITIAL
Definition Moose.C:30
bool isNodal() const
Nodal or elemental kernel?
Definition AuxKernel.h:43
const Elem *const & _current_elem
Current element (valid only for elemental kernels)
Definition AuxKernel.h:133
static InputParameters validParams()
Definition AuxKernel.C:27
A MultiMooseEnum object to hold "execute_on" flags.
Outputs to an auxiliary variable the ghosting of a GhostingUserObject.
Moose::RelationshipManagerType _rm_type
The type of ghosting functor to get.
static InputParameters validParams()
GhostingFromUOAux(const InputParameters &parameters)
const GhostingUserObject & _ghost_uo
The reference to the ghosting user object.
virtual void precalculateValue() override
This callback is used for AuxKernelTempls that need to perform a per-element calculation.
bool _include_local
Whether or not to include local elements in the display field.
processor_id_type _pid
The PID to show the ghosting for.
virtual Real computeValue() override
Compute and return the value of the aux variable.
Real _value
precalculated element value
This object loops over all of the underlying ghosting functors added by libMesh or MOOSE through Rela...
Real getElementalValue(const Elem *elem, Moose::RelationshipManagerType rm_type, processor_id_type pid) const
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object.
void addRequiredParam(const std::string &name, const std::string &doc_string)
This method adds a parameter and documentation string to the InputParameters object that will be extr...
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump.
T & set(const std::string &name, bool quiet_mode=false)
Returns a writable reference to the named parameters.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition MooseEnum.h:55
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...