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 
12 // Moose
13 #include "Moose.h"
14 #include "MooseTypes.h"
15 
16 // Forward declarations
17 class PenetrationInfo;
18 namespace libMesh
19 {
20 template <typename>
21 class FEGenericBase;
23 class FEType;
24 class Elem;
25 class Node;
26 class Point;
27 }
28 
29 namespace Moose
30 {
31 
32 void findContactPoint(PenetrationInfo & p_info,
33  libMesh::FEBase * fe_elem,
34  libMesh::FEBase * fe_side,
35  libMesh::FEType & fe_side_type,
36  const libMesh::Point & secondary_point,
37  bool start_with_centroid,
38  const Real tangential_tolerance,
39  bool & contact_point_on_side,
40  bool & search_succeeded);
41 
43  const libMesh::Elem * side,
44  std::vector<const libMesh::Node *> & off_edge_nodes);
45 }
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 >