libMesh
Loading...
Searching...
No Matches
face_tri3_subdivision.h
Go to the documentation of this file.
1// The libMesh Finite Element Library.
2// Copyright (C) 2002-2026 Benjamin S. Kirk, John W. Peterson, Roy H. Stogner
3
4// This library is free software; you can redistribute it and/or
5// modify it under the terms of the GNU Lesser General Public
6// License as published by the Free Software Foundation; either
7// version 2.1 of the License, or (at your option) any later version.
8
9// This library is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12// Lesser General Public License for more details.
13
14// You should have received a copy of the GNU Lesser General Public
15// License along with this library; if not, write to the Free Software
16// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17
18
19
20#ifndef LIBMESH_FACE_TRI3_SUBDIVISION_H
21#define LIBMESH_FACE_TRI3_SUBDIVISION_H
22
23
24// Local includes
25#include "libmesh/face_tri3.h"
26
27namespace libMesh
28{
29
40class Tri3Subdivision final : public Tri3
41{
42public:
43
49
54
56 Tri3Subdivision (const Tri3Subdivision &) = delete;
59 virtual ~Tri3Subdivision() = default;
60
64 virtual ElemType type () const override { return TRI3SUBDIVISION; }
65
70 virtual bool has_affine_map () const override { return false; }
71
76 virtual bool is_linear () const override { return false; }
77
81 virtual Order default_order() const override;
82
89
95
99 Node * get_ordered_node(unsigned int node_id) const;
100
105 unsigned int get_ordered_valence(unsigned int node_id) const;
106
111 unsigned int local_node_number(unsigned int node_id) const;
112
116 bool is_ghost() const { return _is_ghost; }
117
121 void set_ghost(bool ghosted) { _is_ghost = ghosted; }
122
123private:
124
130
136
142};
143
144
145} // namespace libMesh
146
147#endif // LIBMESH_FACE_TRI3_SUBDIVISION_H
This is the base class from which all geometric element types are derived.
Definition elem.h:96
dof_id_type node_id(const unsigned int i) const
Definition elem.h:2484
A Node is like a Point, but with more information.
Definition node.h:55
The Tri3Subdivision element is a three-noded subdivision surface shell element used in mechanics calc...
unsigned int get_ordered_valence(unsigned int node_id) const
virtual ElemType type() const override
bool _subdivision_updated
true if the subdivision element is ready for use, i.e.
Tri3Subdivision(const Tri3Subdivision &)=delete
virtual ~Tri3Subdivision()=default
Tri3Subdivision & operator=(const Tri3Subdivision &)=delete
virtual Order default_order() const override
Node * _ordered_nodes[3]
A list containing the ordered nodes such that the irregular node (valence != 6), if there is one,...
bool _is_ghost
true if the element is a ghost element (e.g.
Tri3Subdivision(Tri3Subdivision &&)=delete
void prepare_subdivision_properties()
Prepares the element for use by reordering the nodes such that the irregular node (valence !...
void set_ghost(bool ghosted)
Sets the boolean flag identifying ghost elements.
Tri3Subdivision()
Constructor without parent specification.
Node * get_ordered_node(unsigned int node_id) const
virtual bool has_affine_map() const override
unsigned int local_node_number(unsigned int node_id) const
virtual bool is_linear() const override
The Tri3 is an element in 2D composed of 3 nodes.
Definition face_tri3.h:62
The libMesh namespace provides an interface to certain functionality in the library.
ElemType
Defines an enum for geometric element types.