BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_EF_PENTA6TS.hpp
Go to the documentation of this file.
1//
2// Created by christian on 8/20/25.
3//
4
5#ifndef BELFEM_CL_EF_PENTA6TS_HPP
6#define BELFEM_CL_EF_PENTA6TS_HPP
7
9#include "cl_FEM_Element.hpp"
10
11namespace belfem
12{
13 namespace fem
14 {
15 class Element;
16
17 // the friend below takes a Calculator; today the declaration arrives
18 // through cl_FEM_Element.hpp's include chain, but this header must
19 // not depend on an include order it does not control
20 class Calculator ;
21
22 namespace maxwell
23 {
24 const Matrix< real > &
25 side_connector_edge_function( Calculator * aCalc, const real xi, const real eta, const real zeta );
26 }
27
29 {
30 // edge directions
31 real mS[ 6 ];
32
33 // derivatives
34 real mNablaXi[ 3 ];
35 real mNablaEta[ 3 ];
36 real mNablaZeta[ 3 ];
37
38 // constant in-plane gradient tensor for G(), layout i + 3*j
39 // ( W = nXi (x) nEta - nEta (x) nXi; identical for all three
40 // edge pairs because nZeta = -nXi - nEta ); filled in link()
41 real mGradW[ 9 ];
42
43 // normal
44 real mN[ 3 ];
45 real mDetGram ;
46 real mThickness ;
47 real mSurface ;
48
49 // coefficients for shape function
53
54 // pseudo inverse
55 Matrix< real > mPseudoInvJ ;
56
57 // gram matrix
58 Matrix< real > mGram ;
59 Matrix< real > mInvGram ;
60
61 // coefficient matrix
62 Matrix< real > mCoeffs ;
63
64 // parameter matrix for curl
65 Cell< Matrix< real > > mCurlPars ;
66
67 friend
69 Calculator * aCalc, const real xi, const real eta, const real zeta );
70
71//------------------------------------------------------------------------------
72 public:
73//------------------------------------------------------------------------------
74
79
80//------------------------------------------------------------------------------
81
85 ~EF_PENTA6TS() override = default ;
86
87//------------------------------------------------------------------------------
88
89 void
90 precompute( const Matrix< real > & aXi ) override ;
91
92//------------------------------------------------------------------------------
93
97 void
98 link( Element * aElement ) override ;
99
100//------------------------------------------------------------------------------
101
105 const Matrix< real > &
106 E( const uint aIndex ) override ;
107
108//------------------------------------------------------------------------------
109
113 const Matrix< real > &
114 C( const uint aIndex = 0 ) override;
115
116//------------------------------------------------------------------------------
117
123 const Matrix< real > &
124 G( const uint aIndex = 0 ) override ;
125
126//------------------------------------------------------------------------------
127 };
128
129
130//------------------------------------------------------------------------------
131 } /* end namespace fem */
132} /* end namespace belfem */
133
134#endif //BELFEM_CL_EF_PENTA6TS_HPP
Cell is a wrapper around the standard vector.
Definition cl_Cell.hpp:42
Definition cl_FEM_Calculator.hpp:600
const Matrix< real > & C(const uint aIndex=0) override
curl operator for h-field
Definition cl_EF_PENTA6TS.cpp:329
void precompute(const Matrix< real > &aXi) override
only needed for higher order elements
Definition cl_EF_PENTA6TS.cpp:208
EF_PENTA6TS()
constructor
Definition cl_EF_PENTA6TS.cpp:22
~EF_PENTA6TS() override=default
trivial destructor
void link(Element *aElement) override
connect function with element
Definition cl_EF_PENTA6TS.cpp:42
const Matrix< real > & G(const uint aIndex=0) override
gradient operator for h-field ( point-dependent, computed per integration point; layout contract in E...
Definition cl_EF_PENTA6TS.cpp:348
const Matrix< real > & E(const uint aIndex) override
interpolation operator for h-field
Definition cl_EF_PENTA6TS.cpp:280
EdgeFunction()=default
trivial constructor
Definition cl_FEM_Element.hpp:41
Definition cl_EF_PENTA6TS.hpp:23
const Matrix< real > & side_connector_edge_function(Calculator *aCalc, const real xi, const real eta, const real zeta)
Definition cl_FEM_Calculator.cpp:752
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