BELFEM 0.9.3
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_EF_TRI3.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_TRI3_HPP
13#define BELFEM_CL_EF_TRI3_HPP
14
16#include "cl_FEM_Element.hpp"
17
18namespace belfem
19{
20 namespace fem
21 {
22 class Element;
23
24 class EF_TRI3 : public EdgeFunction
25 {
26 // edge directions
27 real mS[ 3 ];
28
29 // derivatives
30 real mNablaXi[ 2 ];
31 real mNablaEta[ 2 ];
32 real mNablaZeta[ 2 ];
33
34 // coefficients for shape function
37
38//------------------------------------------------------------------------------
39 public:
40//------------------------------------------------------------------------------
41
45 EF_TRI3();
46
47//------------------------------------------------------------------------------
48
52 ~EF_TRI3() override = default;
53
54//------------------------------------------------------------------------------
55
56 void
57 precompute( const Matrix< real > & aXi ) override;
58
59//------------------------------------------------------------------------------
60
64 void
65 link( Element * aElement ) override;
66
67//------------------------------------------------------------------------------
68
72 const Matrix< real > &
73 E( const uint aIndex ) override;
74
75//------------------------------------------------------------------------------
76
80 const Matrix< real > &
81 C( const uint aIndex = 0 ) override;
82
83//------------------------------------------------------------------------------
84
90 const Matrix< real > &
91 G( const uint aIndex = 0 ) override ;
92
93//------------------------------------------------------------------------------
94 };
95
96//------------------------------------------------------------------------------
97
98 inline const Matrix <real> &
99 EF_TRI3::C( const uint aIndex )
100 {
101 return mC ;
102 }
103
104//------------------------------------------------------------------------------
105
106 inline const Matrix <real> &
107 EF_TRI3::G( const uint aIndex )
108 {
109 return mGrad ;
110 }
111
112//------------------------------------------------------------------------------
113 } /* end namespace fem */
114} /* end namespace belfem */
115
116#endif //BELFEM_CL_EF_TRI3_HPP
EF_TRI3()
constructor
Definition cl_EF_TRI3.cpp:24
const Matrix< real > & E(const uint aIndex) override
interpolation operator for h-field
Definition cl_EF_TRI3.cpp:129
const Matrix< real > & C(const uint aIndex=0) override
curl operator for h-field
Definition cl_EF_TRI3.hpp:99
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_TRI3.hpp:107
void precompute(const Matrix< real > &aXi) override
only needed for higher order elements
Definition cl_EF_TRI3.cpp:102
void link(Element *aElement) override
connect function with element
Definition cl_EF_TRI3.cpp:39
~EF_TRI3() 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