Home
About Us
Publications
Developers
Installation
Examples
Documentation
SomeWebsiteLogo
Home
About Us
Publications
Developers
Installation
Examples
Documentation
src
fe
fe_transformation_base.C
Go to the documentation of this file.
1
// The libMesh Finite Element Library.
2
// Copyright (C) 2002-2018 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
#include "
libmesh/fe_transformation_base.h
"
19
#include "
libmesh/h1_fe_transformation.h
"
20
#include "
libmesh/hcurl_fe_transformation.h
"
21
#include "
libmesh/fe_type.h
"
22
#include "
libmesh/auto_ptr.h
"
// libmesh_make_unique
23
24
namespace
libMesh
25
{
26
27
template
<
typename
OutputShape>
28
std::unique_ptr<FETransformationBase<OutputShape>>
FETransformationBase<OutputShape>::build
(
const
FEType
& fe_type )
29
{
30
switch
(fe_type.
family
)
31
{
32
// H1 Conforming Elements
33
case
LAGRANGE
:
34
case
HIERARCHIC
:
35
case
BERNSTEIN
:
36
case
SZABAB
:
37
case
CLOUGH
:
// PB: Really H2
38
case
HERMITE
:
// PB: Really H2
39
case
SUBDIVISION
:
40
case
LAGRANGE_VEC
:
41
case
MONOMIAL
:
// PB: Shouldn't this be L2 conforming?
42
case
XYZ
:
// PB: Shouldn't this be L2 conforming?
43
case
L2_HIERARCHIC
:
// PB: Shouldn't this be L2 conforming?
44
case
L2_LAGRANGE
:
// PB: Shouldn't this be L2 conforming?
45
case
JACOBI_20_00
:
// PB: For infinite elements...
46
case
JACOBI_30_00
:
// PB: For infinite elements...
47
return
libmesh_make_unique<H1FETransformation<OutputShape>>();
48
49
// HCurl Conforming Elements
50
case
NEDELEC_ONE
:
51
return
libmesh_make_unique<HCurlFETransformation<OutputShape>>();
52
53
// HDiv Conforming Elements
54
// L2 Conforming Elements
55
56
// Other...
57
case
SCALAR
:
58
// Should never need this for SCALARs
59
return
libmesh_make_unique<H1FETransformation<OutputShape>>();
60
61
default
:
62
libmesh_error_msg(
"Unknown family = "
<< fe_type.
family
);
63
}
64
}
65
66
template
class
FETransformationBase<Real>
;
67
template
class
FETransformationBase<RealGradient>
;
68
69
}
// namespace libMesh
libMesh::L2_HIERARCHIC
Definition:
enum_fe_family.h:40
libMesh::FEType
Manages the family, order, etc. parameters for a given FE.
Definition:
fe_type.h:179
libMesh::LAGRANGE
Definition:
enum_fe_family.h:36
libMesh::FEType::family
FEFamily family
Definition:
fe_type.h:204
libMesh::CLOUGH
Definition:
enum_fe_family.h:53
libMesh::JACOBI_20_00
Definition:
enum_fe_family.h:49
libMesh::XYZ
Definition:
enum_fe_family.h:46
libMesh::LAGRANGE_VEC
Definition:
enum_fe_family.h:60
libMesh::SCALAR
Definition:
enum_fe_family.h:58
libMesh::HERMITE
Definition:
enum_fe_family.h:54
hcurl_fe_transformation.h
libMesh::SZABAB
Definition:
enum_fe_family.h:44
libMesh
Definition:
default_coupling.C:31
libMesh::HIERARCHIC
Definition:
enum_fe_family.h:37
libMesh::FETransformationBase::build
static std::unique_ptr< FETransformationBase< OutputShape > > build(const FEType &type)
Definition:
fe_transformation_base.C:28
libMesh::BERNSTEIN
Definition:
enum_fe_family.h:43
h1_fe_transformation.h
libMesh::JACOBI_30_00
Definition:
enum_fe_family.h:50
libMesh::MONOMIAL
Definition:
enum_fe_family.h:39
fe_transformation_base.h
libMesh::L2_LAGRANGE
Definition:
enum_fe_family.h:41
libMesh::FETransformationBase
Definition:
fe_base.h:54
libMesh::NEDELEC_ONE
Definition:
enum_fe_family.h:61
fe_type.h
libMesh::SUBDIVISION
Definition:
enum_fe_family.h:55
auto_ptr.h
generated by