https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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#include "MooseEnum.h"
13
14// Forward declarations
15namespace libMesh
16{
17class Elem;
18}
19
20// libMesh includes
21#include "libmesh/libmesh_common.h" // not possible to forward declare typedef Real.
22
23// C++ includes
24#include <utility>
25
26enum class MortarSegmentTriangulationMode : unsigned char
27{
31 Vertex
32};
33
34CreateMooseEnumClass(Mortar3DQuadraturePointMapping,
35 NORMAL_PROJECTION = 0,
36 REFERENCE_INTERPOLATION = 1);
37
42{
50
54 MortarSegmentInfo(Real x1a, Real x1b, Real x2a, Real x2b);
55
56 // MortarSegmentInfo(const MortarSegmentInfo &) = default;
57
61 void print() const;
62
68 bool isValid() const;
69
70 Real xi1_a, xi1_b;
71 Real xi2_a, xi2_b;
72 const Elem * secondary_elem;
73 const Elem * primary_elem;
74
75 // A magic number to let us determine when xi values have not been
76 // initialized yet.
77 static const Real invalid_xi;
78};
CreateMooseEnumClass(Mortar3DQuadraturePointMapping, NORMAL_PROJECTION=0, REFERENCE_INTERPOLATION=1)
MortarSegmentTriangulationMode
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
Holds xi^(1), xi^(2), and other data for a given mortar segment.
const Elem * primary_elem
void print() const
Prints xi values and secondary/primary Elem ids.
bool isValid() const
Returns true if the current segment is valid, false otherwise.
static const Real invalid_xi
MortarSegmentInfo()
Constructor.
const Elem * secondary_elem