https://mooseframework.inl.gov
Loading...
Searching...
No Matches
PointInSubdomainTestAux.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
12
13registerMooseObject("ShiftedBoundaryMethodTestApp", PointInSubdomainTestAux);
14
17{
19
20 params.addRequiredParam<UserObjectName>("subdomain_checker",
21 "PointInSubdomainCheckUO user object to query.");
22
23 MooseEnum methods("which_subdomain if_inside");
25 "method",
26 methods,
27 "Which PointInSubdomainCheckUO accessor to call at each element centroid.");
28
29 params.addClassDescription("Test-only AuxKernel that exposes the PointInSubdomainCheckUO "
30 "whichSubdomain and ifInside accessors for coverage testing.");
31
32 return params;
33}
34
36 : AuxKernel(parameters),
37 _subdomain_checker(getUserObject<PointInSubdomainCheckUO>("subdomain_checker")),
38 _method(getParam<MooseEnum>("method"))
39{
40 if (isNodal())
41 paramError("variable", "This AuxKernel only supports Elemental fields");
42}
43
44Real
46{
47 const Point pt = _current_elem->vertex_average();
48
49 if (_method == "which_subdomain")
50 return static_cast<Real>(_subdomain_checker.whichSubdomain(pt));
51
52 return _subdomain_checker.ifInside(pt) ? 1.0 : 0.0;
53}
registerMooseObject("ShiftedBoundaryMethodTestApp", PointInSubdomainTestAux)
const Elem *const & _current_elem
static InputParameters validParams()
void addRequiredParam(const std::string &name, const std::string &doc_string)
void addClassDescription(const std::string &doc_string)
void paramError(const std::string &param, Args... args) const
Performs in-out testing and identifies the subdomain containing a point.
virtual subdomain_id_type whichSubdomain(const Point &p) const
Determine which subdomain the point belongs to (returns "OUTSIDE" if none)
virtual bool ifInside(const Point &p) const
Check if the point is inside any subdomain.
Test-only AuxKernel that exposes the PointInSubdomainCheckUO point-query accessors (whichSubdomain,...
PointInSubdomainTestAux(const InputParameters &parameters)
const PointInSubdomainCheckUO & _subdomain_checker
The in-out test whose per-subdomain point queries are exercised.
virtual Real computeValue() override
static InputParameters validParams()
const MooseEnum _method
Which accessor to call: "which_subdomain" or "if_inside".