18 #include "libmesh/vector_value.h" 19 #include "libmesh/point.h" 20 #include "libmesh/fe_base.h" 34 const unsigned int primary_id,
35 const unsigned int secondary_id,
61 Point & closest_point,
64 int intersect2D_Segments(Point S1P0, Point S1P1, Point S2P0, Point S2P1, Point * I0, Point * I1);
65 int inSegment(Point P, Point SP0, Point SP1);
74 std::vector<std::vector<libMesh::FEBase *>>
_fe;
81 std::set<dof_id_type> &
111 dataLoad(std::istream & stream, std::map<dof_id_type, PenetrationInfo *> & m,
void * context)
113 std::map<dof_id_type, PenetrationInfo *>::iterator it = m.begin();
114 std::map<dof_id_type, PenetrationInfo *>::iterator end = m.end();
116 for (; it != end; ++it)
122 unsigned int size = 0;
123 stream.read((
char *)&size,
sizeof(size));
125 for (
unsigned int i = 0; i < size; i++)
const Moose::PatchUpdateType _patch_update_strategy
bool _do_normal_smoothing
A class for creating restricted objects.
BoundaryID _secondary_boundary
RealVectorValue penetrationNormal(dof_id_type node_id)
void setNormalSmoothingDistance(Real normal_smoothing_distance)
Finds the nearest node to each node in boundary1 to each node in boundary2 and the other way around...
Real getTangentialTolerance()
Real _tangential_tolerance
Real normDistance(const Elem &elem, const Elem &side, const Node &p0, Point &closest_point, RealVectorValue &normal)
std::map< dof_id_type, PenetrationInfo * > & _penetration_info
Data structure of nodes and their associated penetration information.
void setTangentialTolerance(Real tangential_tolerance)
Real _normal_smoothing_distance
bool _check_whether_reasonable
Check whether found candidates are reasonable.
boundary_id_type BoundaryID
int inSegment(Point P, Point SP0, Point SP1)
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Interface for objects interacting with the PerfGraph.
void setUpdate(bool update)
void dataLoad(std::istream &stream, std::map< dof_id_type, PenetrationInfo *> &m, void *context)
We have to have a specialization for this map because the PenetrationInfo objects MUST get deleted be...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
PenetrationLocator(SubProblem &subproblem, GeometricSearchData &geom_search_data, MooseMesh &mesh, const unsigned int primary_id, const unsigned int secondary_id, Order order, NearestNodeLocator &nearest_node)
Generic class for solving transient nonlinear problems.
PatchUpdateType
Type of patch update strategy for modeling node-face constraints or contact.
Real penetrationDistance(dof_id_type node_id)
void setNormalSmoothingMethod(std::string nsmString)
void reinit()
Completely redo the search from scratch.
void loadHelper(std::istream &stream, P &data, void *context)
Scalar helper routine.
std::set< dof_id_type > & _has_penetrated
void setCheckWhetherReasonable(bool state)
BoundaryID _primary_boundary
NORMAL_SMOOTHING_METHOD _normal_smoothing_method
int intersect2D_Segments(Point S1P0, Point S1P1, Point S2P0, Point S2P1, Point *I0, Point *I1)
NearestNodeLocator & _nearest_node
std::vector< std::vector< libMesh::FEBase * > > _fe