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
26// Using statements
27using libMesh::Elem;
28using libMesh::Real;
29
30enum class MortarSegmentTriangulationMode : unsigned char
31{
35 Vertex
36};
37
38CreateMooseEnumClass(Mortar3DQuadraturePointMapping,
39 NORMAL_PROJECTION = 0,
40 REFERENCE_INTERPOLATION = 1);
41
46{
54
58 MortarSegmentInfo(Real x1a, Real x1b, Real x2a, Real x2b);
59
60 // MortarSegmentInfo(const MortarSegmentInfo &) = default;
61
65 void print() const;
66
72 bool isValid() const;
73
74 Real xi1_a, xi1_b;
75 Real xi2_a, xi2_b;
78
79 // A magic number to let us determine when xi values have not been
80 // initialized yet.
81 static const Real invalid_xi;
82};
CreateMooseEnumClass(Mortar3DQuadraturePointMapping, NORMAL_PROJECTION=0, REFERENCE_INTERPOLATION=1)
MortarSegmentTriangulationMode
The following methods are specializations for using the libMesh::Parallel::packed_range_* routines fo...
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
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