https://mooseframework.inl.gov
MortarSegmentInfo.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 // Forward declarations
13 namespace libMesh
14 {
15 class Elem;
16 }
17 
18 // libMesh includes
19 #include "libmesh/libmesh_common.h" // not possible to forward declare typedef Real.
20 
21 // C++ includes
22 #include <utility>
23 
24 // Using statements
25 using libMesh::Elem;
26 using libMesh::Real;
27 
32 {
40 
44  MortarSegmentInfo(Real x1a, Real x1b, Real x2a, Real x2b);
45 
46  // MortarSegmentInfo(const MortarSegmentInfo &) = default;
47 
51  void print() const;
52 
58  bool isValid() const;
59 
63  bool hasPrimary() const;
64 
68  const Elem * primary_elem;
69 
70  // A magic number to let us determine when xi values have not been
71  // initialized yet.
72  static const Real invalid_xi;
73 };
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
static const Real invalid_xi
bool isValid() const
Returns true if the current segment is valid, false otherwise.
const Elem * primary_elem
void print() const
Prints xi values and secondary/primary Elem ids.
bool hasPrimary() const
Returns true if this segment has a valid primary, false otherwise.
const Elem * secondary_elem
MortarSegmentInfo()
Constructor.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
Holds xi^(1), xi^(2), and other data for a given mortar segment.