libMesh
Loading...
Searching...
No Matches
Classes | Functions | Variables
mesh_input.C File Reference

Go to the source code of this file.

Classes

class  MeshInputTest
 

Functions

Number six_x_plus_sixty_y (const Point &p, const Parameters &, const std::string &, const std::string &)
 
Number sin_x_plus_cos_y (const Point &p, const Parameters &, const std::string &, const std::string &)
 
Number designed_for_side_elems (const Point &p, const Parameters &param, const std::string &, const std::string &)
 
 CPPUNIT_TEST_SUITE_REGISTRATION (MeshInputTest)
 

Variables

constexpr int added_sides_nxyz [] = {2,2,2}
 

Function Documentation

◆ CPPUNIT_TEST_SUITE_REGISTRATION()

CPPUNIT_TEST_SUITE_REGISTRATION ( MeshInputTest  )

◆ designed_for_side_elems()

Number designed_for_side_elems ( const Point p,
const Parameters param,
const std::string &  ,
const std::string &   
)

Definition at line 55 of file mesh_input.C.

59{
60 const Real & x = p(0);
61 const Real & y = p(1);
62 const Real & z = p(2);
63
64 short facedim = param.have_parameter<short>("face") ?
65 param.get<short>("face") : -1;
66
67 // What face are we on?
68 auto is_on_face = [facedim](Real r, short rdim) {
69 if (facedim == rdim)
70 return true;
71 if (facedim >= 0)
72 return false;
73 const Real numerator = r * added_sides_nxyz[rdim];
74 return (std::abs(numerator - std::round(numerator)) <
76 };
77
78
79
80 // x/y/z components of a div-free flux,
81 // curl([x^2yz, xy^2z, xyz])
82 if (is_on_face(x, 0))
83 {
84 libmesh_assert(!is_on_face(y, 1));
85 libmesh_assert(!is_on_face(z, 2));
86 return (x*z-x*y*y);
87 }
88 if (is_on_face(y, 1))
89 {
90 libmesh_assert(!is_on_face(z, 2));
91 return (x*x*y-y*z);
92 }
93
94 libmesh_assert(is_on_face(z, 2));
95 return (y*y*z-x*x*z);
96}
bool have_parameter(std::string_view) const
Definition parameters.h:420
const T & get(std::string_view) const
Definition parameters.h:451
constexpr int added_sides_nxyz[]
Definition mesh_input.C:53
libmesh_assert(ctx)
static constexpr Real TOLERANCE
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real

References added_sides_nxyz, libMesh::Parameters::get(), libMesh::Parameters::have_parameter(), libMesh::libmesh_assert(), libMesh::Real, and libMesh::TOLERANCE.

Referenced by MeshInputTest::testExodusDiscWriteAddedSidesEdgeDisc(), MeshInputTest::testExodusDiscWriteAddedSidesHexDisc(), MeshInputTest::testExodusDiscWriteAddedSidesQuadDisc(), MeshInputTest::testExodusDiscWriteAddedSidesTetDisc(), MeshInputTest::testExodusDiscWriteAddedSidesTriDisc(), MeshInputTest::testExodusWriteAddedSidesEdgeDisc(), MeshInputTest::testExodusWriteAddedSidesHexDisc(), MeshInputTest::testExodusWriteAddedSidesQuadDisc(), MeshInputTest::testExodusWriteAddedSidesTetDisc(), and MeshInputTest::testExodusWriteAddedSidesTriDisc().

◆ sin_x_plus_cos_y()

Number sin_x_plus_cos_y ( const Point p,
const Parameters ,
const std::string &  ,
const std::string &   
)

Definition at line 42 of file mesh_input.C.

46{
47 const Real & x = p(0);
48 const Real & y = p(1);
49
50 return sin(x) + cos(y);
51}

References libMesh::Real.

Referenced by MeshInputTest::testCopyElementVectorImpl(), and MeshInputTest::testProjectionRegression().

◆ six_x_plus_sixty_y()

Number six_x_plus_sixty_y ( const Point p,
const Parameters ,
const std::string &  ,
const std::string &   
)

Variable Documentation

◆ added_sides_nxyz

constexpr int added_sides_nxyz[] = {2,2,2}
constexpr

Definition at line 53 of file mesh_input.C.

53{2,2,2};

Referenced by designed_for_side_elems().