www.mooseframework.org
FindContactPoint.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
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 
14 // Forward declarations
15 class PenetrationInfo;
16 namespace libMesh
17 {
18 template <typename>
19 class FEGenericBase;
21 class FEType;
22 class Elem;
23 class Node;
24 class Point;
25 }
26 
27 namespace Moose
28 {
29 
30 void findContactPoint(PenetrationInfo & p_info,
31  FEBase * fe_elem,
32  FEBase * fe_side,
33  FEType & fe_side_type,
34  const Point & secondary_point,
35  bool start_with_centroid,
36  const Real tangential_tolerance,
37  bool & contact_point_on_side);
38 
39 void restrictPointToFace(Point & p, const Elem * side, std::vector<const Node *> & off_edge_nodes);
40 }
Data structure used to hold penetration information.
void restrictPointToFace(Point &p, const Elem *side, std::vector< const Node *> &off_edge_nodes)
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
void findContactPoint(PenetrationInfo &p_info, FEBase *fe_elem, FEBase *fe_side, FEType &fe_side_type, const Point &secondary_point, bool start_with_centroid, const Real tangential_tolerance, bool &contact_point_on_side)
Finds the closest point (called the contact point) on the primary_elem on side "side" to the secondar...
FEGenericBase< Real > FEBase
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 >