https://mooseframework.inl.gov
FindContactPoint.h
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 #pragma once
11 // Moose
12 #include "Moose.h"
13 #include "MooseTypes.h"
14 
15 // Forward declarations
16 class PenetrationInfo;
17 namespace libMesh
18 {
19 template <typename>
20 class FEGenericBase;
22 class FEType;
23 class Elem;
24 class Node;
25 class Point;
26 }
27 
28 namespace Moose
29 {
30 
31 void findContactPoint(PenetrationInfo & p_info,
32  libMesh::FEBase * fe_elem,
33  libMesh::FEBase * fe_side,
34  libMesh::FEType & fe_side_type,
35  const libMesh::Point & secondary_point,
36  bool start_with_centroid,
37  const Real tangential_tolerance,
38  bool & contact_point_on_side,
39  bool & search_succeeded);
40 
42  const libMesh::Elem * side,
43  std::vector<const libMesh::Node *> & off_edge_nodes);
44 }
Data structure used to hold penetration information.
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
void findContactPoint(PenetrationInfo &p_info, libMesh::FEBase *fe_elem, libMesh::FEBase *fe_side, libMesh::FEType &fe_side_type, const libMesh::Point &secondary_point, bool start_with_centroid, const Real tangential_tolerance, bool &contact_point_on_side, bool &search_succeeded)
Finds the closest point (called the contact point) on the primary_elem on side "side" to the secondar...
FEGenericBase< Real > FEBase
void restrictPointToFace(libMesh::Point &p, const libMesh::Elem *side, std::vector< const libMesh::Node *> &off_edge_nodes)
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...
template class LIBMESH_EXPORT FEGenericBase< Real >