BELFEM 0.9.3
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_EF_TET4.hpp
Go to the documentation of this file.
1/*
2 * BELFEM -- The Berkeley Lab Finite Element Framework
3 * Copyright (c) 2026, The Regents of the University of California,
4 * through Lawrence Berkeley National Laboratory (subject to receipt of any required
5 * approvals from the U.S. Dept. of Energy). All rights reserved.
6 *
7 * Developers: Christian Messe, Gregory Giard
8 *
9 * See the top-level LICENSE file for the complete license and disclaimer.
10 */
11
12#ifndef BELFEM_CL_EF_TET4_HPP
13#define BELFEM_CL_EF_TET4_HPP
14
15
17#include "cl_FEM_Element.hpp"
18
19namespace belfem
20{
21 namespace fem
22 {
23 class Element;
24
25 class EF_TET4 : public EdgeFunction
26 {
27 real mNablaXi[ 3 ];
28 real mNablaEta[ 3 ];
29 real mNablaZeta[ 3 ];
30 real mNablaTau[ 3 ];
31 real mS[ 6 ];
32
35
36//------------------------------------------------------------------------------
37 public:
38//------------------------------------------------------------------------------
39
43 EF_TET4();
44
45//------------------------------------------------------------------------------
46
50 ~EF_TET4() override = default;
51
52//------------------------------------------------------------------------------
53
58 void
59 link( Element * aElement ) override ;
60
61//------------------------------------------------------------------------------
62
63 void
64 precompute( const Matrix< real > & aXi ) override ;
65
66//------------------------------------------------------------------------------
67
68 // compute the edge function
69 const Matrix< real > &
70 E( const uint aIndex ) override ;
71
72//------------------------------------------------------------------------------
73
74 // compute the curl function
75 const Matrix< real > &
76 C( const uint aIndex = 0 ) override ;
77
78//------------------------------------------------------------------------------
79
85 const Matrix< real > &
86 G( const uint aIndex = 0 ) override ;
87
88//------------------------------------------------------------------------------
89 } ;
90
91//------------------------------------------------------------------------------
92
93 inline const Matrix< real > &
94 EF_TET4::C( const uint aIndex )
95 {
96 return mC ;
97 }
98
99//------------------------------------------------------------------------------
100
101 inline const Matrix< real > &
102 EF_TET4::G( const uint aIndex )
103 {
104 return mGrad ;
105 }
106
107//------------------------------------------------------------------------------
108 } /* end namespace fem */
109} /* end namespace belfem */
110#endif //BELFEM_CL_EF_TET4_HPP
const Matrix< real > & C(const uint aIndex=0) override
Definition cl_EF_TET4.hpp:94
const Matrix< real > & E(const uint aIndex) override
Definition cl_EF_TET4.cpp:211
EF_TET4()
constructor
Definition cl_EF_TET4.cpp:22
void precompute(const Matrix< real > &aXi) override
only needed for higher order elements
Definition cl_EF_TET4.cpp:178
void link(Element *aElement) override
links the shape function with the element and precomputes data
Definition cl_EF_TET4.cpp:37
const Matrix< real > & G(const uint aIndex=0) override
gradient operator for h-field ( constant for this element, filled in link(); layout contract in EdgeF...
Definition cl_EF_TET4.hpp:102
~EF_TET4() override=default
trivial destructor
Matrix< real > mGrad
Definition cl_EF_EdgeFunction.hpp:97
EdgeFunction()=default
trivial constructor
Matrix< real > mC
matrix containing the curl for the H-Function
Definition cl_EF_EdgeFunction.hpp:60
Definition cl_FEM_Element.hpp:41
Definition cl_IFB_LINE3.hpp:21
USER GUIDES:
Definition cl_Capacitor.cpp:16
unsigned int uint
Definition typedefs.hpp:30
double real
Definition typedefs.hpp:36