BELFEM
0.9.0
Berkeley Lab Finite Element Framework
Toggle main menu visibility
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
8
#include "
nedelec/cl_EF_EdgeFunction.hpp
"
9
#include "
cl_FEM_Element.hpp
"
10
11
namespace
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
28
class
EF_PENTA6TS
:
public
EdgeFunction
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
50
Matrix< real >
mF ;
51
Matrix< real >
mG ;
52
Matrix< real >
mH ;
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
68
const
Matrix< real >
&
maxwell::side_connector_edge_function
(
69
Calculator
* aCalc,
const
real
xi,
const
real
eta,
const
real
zeta );
70
71
//------------------------------------------------------------------------------
72
public
:
73
//------------------------------------------------------------------------------
74
78
EF_PENTA6TS
();
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
cl_EF_EdgeFunction.hpp
cl_FEM_Element.hpp
belfem::Cell
Cell is a wrapper around the standard vector.
Definition
cl_Cell.hpp:42
belfem::Matrix< real >
belfem::fem::Calculator
Definition
cl_FEM_Calculator.hpp:600
belfem::fem::EF_PENTA6TS::C
const Matrix< real > & C(const uint aIndex=0) override
curl operator for h-field
Definition
cl_EF_PENTA6TS.cpp:329
belfem::fem::EF_PENTA6TS::precompute
void precompute(const Matrix< real > &aXi) override
only needed for higher order elements
Definition
cl_EF_PENTA6TS.cpp:208
belfem::fem::EF_PENTA6TS::EF_PENTA6TS
EF_PENTA6TS()
constructor
Definition
cl_EF_PENTA6TS.cpp:22
belfem::fem::EF_PENTA6TS::~EF_PENTA6TS
~EF_PENTA6TS() override=default
trivial destructor
belfem::fem::EF_PENTA6TS::link
void link(Element *aElement) override
connect function with element
Definition
cl_EF_PENTA6TS.cpp:42
belfem::fem::EF_PENTA6TS::G
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
belfem::fem::EF_PENTA6TS::E
const Matrix< real > & E(const uint aIndex) override
interpolation operator for h-field
Definition
cl_EF_PENTA6TS.cpp:280
belfem::fem::EdgeFunction::EdgeFunction
EdgeFunction()=default
trivial constructor
belfem::fem::Element
Definition
cl_FEM_Element.hpp:41
belfem::fem::maxwell
Definition
cl_EF_PENTA6TS.hpp:23
belfem::fem::maxwell::side_connector_edge_function
const Matrix< real > & side_connector_edge_function(Calculator *aCalc, const real xi, const real eta, const real zeta)
Definition
cl_FEM_Calculator.cpp:752
belfem::fem
Definition
cl_IFB_LINE3.hpp:21
belfem
USER GUIDES:
Definition
cl_Capacitor.cpp:16
belfem::uint
unsigned int uint
Definition
typedefs.hpp:30
belfem::real
double real
Definition
typedefs.hpp:36
src
fem
interpolation
nedelec
cl_EF_PENTA6TS.hpp
Generated by
1.18.0