https://mooseframework.inl.gov
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
GeometricSearchInterface Class Reference

#include <GeometricSearchInterface.h>

Inheritance diagram for GeometricSearchInterface:
[legend]

Public Member Functions

 GeometricSearchInterface (const MooseObject *moose_object)
 
 GeometricSearchInterface (const GeometricSearchInterface &object, const Moose::Kokkos::FunctorCopy &key)
 Special constructor used for Kokkos functor copy during parallel dispatch. More...
 
PenetrationLocatorgetPenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order)
 Retrieve the PenetrationLocator associated with the two sides. More...
 
PenetrationLocatorgetQuadraturePenetrationLocator (const BoundaryName &primary, const BoundaryName &secondary, Order order)
 Retrieve the Quadrature PenetrationLocator associated with the two sides. More...
 
NearestNodeLocatorgetNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary)
 Retrieve the PenetrationLocator associated with the two sides. More...
 
NearestNodeLocatorgetQuadratureNearestNodeLocator (const BoundaryName &primary, const BoundaryName &secondary)
 Retrieve a Quadrature NearestNodeLocator associated with the two sides. More...
 
bool requiresGeometricSearch () const
 Whether any of this interface's methods have been called, e.g. More...
 

Static Public Member Functions

static InputParameters validParams ()
 

Protected Attributes

GeometricSearchData_geometric_search_data
 
bool _requires_geometric_search
 Whether any of this interface's methods have been called, e.g. More...
 

Detailed Description

Definition at line 23 of file GeometricSearchInterface.h.

Constructor & Destructor Documentation

◆ GeometricSearchInterface() [1/2]

GeometricSearchInterface::GeometricSearchInterface ( const MooseObject moose_object)

Definition at line 47 of file GeometricSearchInterface.C.

48  : _geometric_search_data(moose_object->parameters()
49  .getCheckedPointerParam<SubProblem *>("_subproblem")
50  ->geomSearchData()),
52 {
53  if (moose_object->getParam<MooseEnum>("search_method") == "all_proximate_sides")
55 }
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
Definition: MooseBase.h:388
GeometricSearchData & _geometric_search_data
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
T getCheckedPointerParam(const std::string &name, const std::string &error_string="") const
Verifies that the requested parameter exists and is not NULL and returns it to the caller...
bool _requires_geometric_search
Whether any of this interface&#39;s methods have been called, e.g.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:33
void setSearchUsingPointLocator(bool state)
Generic class for solving transient nonlinear problems.
Definition: SubProblem.h:78

◆ GeometricSearchInterface() [2/2]

GeometricSearchInterface::GeometricSearchInterface ( const GeometricSearchInterface object,
const Moose::Kokkos::FunctorCopy key 
)

Special constructor used for Kokkos functor copy during parallel dispatch.

Definition at line 58 of file GeometricSearchInterface.C.

62 {
63 }
GeometricSearchData & _geometric_search_data
bool _requires_geometric_search
Whether any of this interface&#39;s methods have been called, e.g.

Member Function Documentation

◆ getNearestNodeLocator()

NearestNodeLocator & GeometricSearchInterface::getNearestNodeLocator ( const BoundaryName &  primary,
const BoundaryName &  secondary 
)

Retrieve the PenetrationLocator associated with the two sides.

Definition at line 85 of file GeometricSearchInterface.C.

87 {
89  return _geometric_search_data.getNearestNodeLocator(primary, secondary);
90 }
GeometricSearchData & _geometric_search_data
NearestNodeLocator & getNearestNodeLocator(const BoundaryName &primary, const BoundaryName &secondary)
bool _requires_geometric_search
Whether any of this interface&#39;s methods have been called, e.g.

◆ getPenetrationLocator()

PenetrationLocator & GeometricSearchInterface::getPenetrationLocator ( const BoundaryName &  primary,
const BoundaryName &  secondary,
Order  order 
)

Retrieve the PenetrationLocator associated with the two sides.

Definition at line 67 of file GeometricSearchInterface.C.

70 {
72  return _geometric_search_data.getPenetrationLocator(primary, secondary, order);
73 }
GeometricSearchData & _geometric_search_data
bool _requires_geometric_search
Whether any of this interface&#39;s methods have been called, e.g.
PenetrationLocator & getPenetrationLocator(const BoundaryName &primary, const BoundaryName &secondary, libMesh::Order order=libMesh::FIRST)

◆ getQuadratureNearestNodeLocator()

NearestNodeLocator & GeometricSearchInterface::getQuadratureNearestNodeLocator ( const BoundaryName &  primary,
const BoundaryName &  secondary 
)

Retrieve a Quadrature NearestNodeLocator associated with the two sides.

A "Quadrature" version means that it's going to find the nearest nodes to each quadrature point on this boundary

Definition at line 93 of file GeometricSearchInterface.C.

95 {
98 }
GeometricSearchData & _geometric_search_data
bool _requires_geometric_search
Whether any of this interface&#39;s methods have been called, e.g.
NearestNodeLocator & getQuadratureNearestNodeLocator(const BoundaryName &primary, const BoundaryName &secondary)

◆ getQuadraturePenetrationLocator()

PenetrationLocator & GeometricSearchInterface::getQuadraturePenetrationLocator ( const BoundaryName &  primary,
const BoundaryName &  secondary,
Order  order 
)

Retrieve the Quadrature PenetrationLocator associated with the two sides.

A "Quadrature" version means that it's going to find the penetration of each quadrature point on this boundary

Definition at line 76 of file GeometricSearchInterface.C.

79 {
81  return _geometric_search_data.getQuadraturePenetrationLocator(primary, secondary, order);
82 }
GeometricSearchData & _geometric_search_data
bool _requires_geometric_search
Whether any of this interface&#39;s methods have been called, e.g.
PenetrationLocator & getQuadraturePenetrationLocator(const BoundaryName &primary, const BoundaryName &secondary, libMesh::Order order=libMesh::FIRST)

◆ requiresGeometricSearch()

bool GeometricSearchInterface::requiresGeometricSearch ( ) const
inline

Whether any of this interface's methods have been called, e.g.

whether the object that this interface is for requires geometric search data

Definition at line 73 of file GeometricSearchInterface.h.

bool _requires_geometric_search
Whether any of this interface&#39;s methods have been called, e.g.

◆ validParams()

InputParameters GeometricSearchInterface::validParams ( )
static

Definition at line 21 of file GeometricSearchInterface.C.

Referenced by Constraint::validParams(), KernelBase::validParams(), DiracKernelBase::validParams(), BoundaryCondition::validParams(), NodalKernelBase::validParams(), LinearFVBoundaryCondition::validParams(), FVInterfaceKernel::validParams(), FVBoundaryCondition::validParams(), AuxKernelTempl< Real >::validParams(), and MaterialBase::validParams().

22 {
24 
25  MooseEnum search_methods("nearest_node_connected_sides all_proximate_sides",
26  "nearest_node_connected_sides");
27 
28  params.addParam<MooseEnum>(
29  "search_method",
30  search_methods,
31  "Choice of search algorithm. All options begin by finding the nearest node in the "
32  "primary boundary to a query point in the secondary boundary. In the default "
33  "nearest_node_connected_sides algorithm, primary boundary elements are searched iff "
34  "that nearest node is one of their nodes. This is fast to determine via a "
35  "pregenerated node-to-elem map and is robust on conforming meshes. In the optional "
36  "all_proximate_sides algorithm, primary boundary elements are searched iff they touch "
37  "that nearest node, even if they are not topologically connected to it. This is "
38  "more CPU-intensive but is necessary for robustness on any boundary surfaces which "
39  "has disconnections (such as Flex IGA meshes) or non-conformity (such as hanging nodes "
40  "in adaptively h-refined meshes).");
41 
42  params.addParamNamesToGroup("search_method", "Advanced");
43 
44  return params;
45 }
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
InputParameters emptyInputParameters()
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:33
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 addParamNamesToGroup(const std::string &space_delim_names, const std::string group_name)
This method takes a space delimited list of parameter names and adds them to the specified group name...

Member Data Documentation

◆ _geometric_search_data

GeometricSearchData& GeometricSearchInterface::_geometric_search_data
protected

◆ _requires_geometric_search

bool GeometricSearchInterface::_requires_geometric_search
protected

Whether any of this interface's methods have been called, e.g.

whether the object that this interface is for requires geometric search data

Definition at line 80 of file GeometricSearchInterface.h.

Referenced by getNearestNodeLocator(), getPenetrationLocator(), getQuadratureNearestNodeLocator(), getQuadraturePenetrationLocator(), and requiresGeometricSearch().


The documentation for this class was generated from the following files: