/usr/include/libmesh/cell_tet.h is in libmesh-dev 0.7.1-2ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | // $Id: cell_tet.h 4279 2011-03-21 17:01:31Z roystgnr $
// The libMesh Finite Element Library.
// Copyright (C) 2002-2008 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
// This library is free software; you can redistribute it and/or
// modify it under the terms of the GNU Lesser General Public
// License as published by the Free Software Foundation; either
// version 2.1 of the License, or (at your option) any later version.
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#ifndef __cell_tet_h__
#define __cell_tet_h__
// C++ includes
// Local includes
#include "cell.h"
namespace libMesh
{
/**
* The \p Tet is an element in 3D composed of 4 sides.
*/
// ------------------------------------------------------------
// Tet class definition
class Tet : public Cell
{
public:
/**
* Default tetrahedral element, takes number of nodes and
* parent. Derived classes implement 'true' elements.
*/
Tet (const unsigned int nn, Elem* p);
/**
* @returns 4
*/
unsigned int n_sides() const { return 4; }
/**
* @returns 4. All tetrahedrals have 4 vertices.
*/
unsigned int n_vertices() const { return 4; }
/**
* @returns 6. All tetrahedrals have 6 edges.
*/
unsigned int n_edges() const { return 6; }
/**
* @returns 4. All tetrahedrals have 4 faces.
*/
unsigned int n_faces() const { return 4; }
/**
* @returns 8
*/
unsigned int n_children() const { return 8; }
/*
* @returns true iff the specified child is on the
* specified side
*/
virtual bool is_child_on_side(const unsigned int c,
const unsigned int s) const;
/**
* @returns an id associated with the \p s side of this element.
* The id is not necessariy unique, but should be close. This is
* particularly useful in the \p MeshBase::find_neighbors() routine.
*/
unsigned int key (const unsigned int s) const;
/**
* @returns a primitive (3-noded) triangle for
* face i.
*/
AutoPtr<Elem> side (const unsigned int i) const;
/**
* Based on the quality metric q specified by the user,
* returns a quantitative assessment of element quality.
*/
Real quality (const ElemQuality q) const;
/**
* Returns the suggested quality bounds for
* the hex based on quality measure q. These are
* the values suggested by the CUBIT User's Manual.
*/
std::pair<Real, Real> qual_bounds (const ElemQuality q) const;
};
// ------------------------------------------------------------
// Tet class member functions
inline
Tet::Tet(const unsigned int nn, Elem* p) :
Cell(nn, Tet::n_sides(), p)
{
}
} // namespace libMesh
#endif
|