13 #include "libmesh/elem.h" 25 secondary_elem(nullptr),
31 : xi1_a(x1a), xi1_b(x1b), xi2_a(x2a), xi2_b(x2b), secondary_elem(nullptr), primary_elem(nullptr)
38 Moose::out <<
"xi^(1)_a=" <<
xi1_a <<
", xi^(1)_b=" <<
xi1_b << std::endl;
39 Moose::out <<
"xi^(2)_a=" <<
xi2_a <<
", xi^(2)_b=" <<
xi2_b << std::endl;
55 bool xi2_set = !xi2a_unset && !xi2b_unset;
69 mooseError(
"xi^(1) values too close together.");
81 if ((xi2a_unset && !xi2b_unset) || (!xi2a_unset && xi2b_unset))
83 mooseError(
"One xi^(2) value was set, the other was not set.");
90 mooseError(
"Both xi^(2) are unset, therefore primary_elem should be NULL.");
97 mooseError(
"Both xi^(2) are set, the primary_elem cannot be NULL.");
113 mooseError(
"xi^(2) are set, but they are not in the range [-1,1].");
MetaPhysicL::DualNumber< V, D, asd > abs(const MetaPhysicL::DualNumber< V, D, asd > &a)
void mooseError(Args &&... args)
Emit an error message with the given stringified, concatenated args and terminate the application...
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.
const Elem * secondary_elem
MortarSegmentInfo()
Constructor.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real