libMesh
Loading...
Searching...
No Matches
cell_inf.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_CELL_INF_H
21#define LIBMESH_CELL_INF_H
22
23#include "libmesh/libmesh_config.h"
24
25#ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS
26
27// Local includes
28#include "libmesh/elem.h"
29
30namespace libMesh
31{
32
42class InfCell : public Elem
43{
44public:
45
49 InfCell (const unsigned int nn,
50 const unsigned int ns,
51 Elem * p,
52 Elem ** elemlinkdata,
53 Node ** nodelinkdata) :
54 Elem (nn, ns, p, elemlinkdata, nodelinkdata)
55 {}
56
57 InfCell (InfCell &&) = delete;
58 InfCell (const InfCell &) = delete;
59 InfCell & operator= (const InfCell &) = delete;
60 InfCell & operator= (InfCell &&) = delete;
61 virtual ~InfCell() = default;
62
66 virtual unsigned short dim () const override { return 3; }
67
72 virtual bool infinite () const override { return true; }
73
77 virtual Point origin () const override
78 {
79 return (this->point(0)*2 - this->point(this->n_vertices()/2));
80 }
81};
82
83} // namespace libMesh
84
85#endif // ifdef LIBMESH_ENABLE_INFINITE_ELEMENTS
86
87#endif // LIBMESH_CELL_INF_H
This is the base class from which all geometric element types are derived.
Definition elem.h:96
virtual unsigned int n_vertices() const =0
const Point & point(const unsigned int i) const
Definition elem.h:2462
The InfCell is an abstract element type that lives in three dimensions.
Definition cell_inf.h:43
InfCell(const unsigned int nn, const unsigned int ns, Elem *p, Elem **elemlinkdata, Node **nodelinkdata)
Constructor.
Definition cell_inf.h:49
InfCell & operator=(const InfCell &)=delete
InfCell(InfCell &&)=delete
virtual ~InfCell()=default
virtual Point origin() const override
Definition cell_inf.h:77
InfCell(const InfCell &)=delete
virtual bool infinite() const override
Definition cell_inf.h:72
virtual unsigned short dim() const override
Definition cell_inf.h:66
A Node is like a Point, but with more information.
Definition node.h:55
A Point defines a location in LIBMESH_DIM dimensional Real space.
Definition point.h:40
The libMesh namespace provides an interface to certain functionality in the library.