BELFEM
0.9.3
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
cl_EF_QUAD4TS.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_QUAD4TS_HPP
13
#define BELFEM_CL_EF_QUAD4TS_HPP
14
15
#include "
nedelec/cl_EF_EdgeFunction.hpp
"
16
#include "
cl_FEM_Element.hpp
"
17
18
namespace
belfem
19
{
20
namespace
fem
21
{
22
class
Element
;
23
24
class
EF_QUAD4TS
:
public
EdgeFunction
25
{
26
// edge directions
27
real
mS[ 2 ];
28
29
// derivatives for line element
30
real
mNablaXi[ 2 ];
31
real
mNablaEta[ 2 ];
32
33
// normal to the line (in 2D space)
34
real
mN[ 2 ];
35
real
mDetGram ;
36
real
mThickness ;
37
real
mLength ;
38
39
// coefficients for shape function
40
Matrix< real >
mF ;
41
Matrix< real >
mG ;
42
43
// pseudo inverse (1D jacobian for line)
44
Matrix< real >
mPseudoInvJ ;
45
46
// gram matrix (1x1 for line)
47
Matrix< real >
mGram ;
48
49
// coefficient matrix
50
Matrix< real >
mCoeffs ;
51
52
// parameter matrix for curl
53
Cell< Matrix< real >
> mCurlPars ;
54
55
//------------------------------------------------------------------------------
56
public
:
57
//------------------------------------------------------------------------------
58
62
EF_QUAD4TS
();
63
64
//------------------------------------------------------------------------------
65
69
~EF_QUAD4TS
()
override
=
default
;
70
71
//------------------------------------------------------------------------------
72
73
void
74
precompute
(
const
Matrix< real >
& aXi )
override
;
75
76
//------------------------------------------------------------------------------
77
81
void
82
link
(
Element
* aElement )
override
;
83
84
//------------------------------------------------------------------------------
85
89
const
Matrix< real >
&
90
E
(
const
uint
aIndex )
override
;
91
92
//------------------------------------------------------------------------------
93
97
const
Matrix< real >
&
98
C
(
const
uint
aIndex = 0 )
override
;
99
100
//------------------------------------------------------------------------------
101
107
const
Matrix< real >
&
108
G
(
const
uint
aIndex = 0 )
override
;
109
110
//------------------------------------------------------------------------------
111
};
112
113
//------------------------------------------------------------------------------
114
115
inline
const
Matrix< real >
&
116
EF_QUAD4TS::G
(
const
uint
aIndex )
117
{
118
return
mGrad
;
119
}
120
121
//------------------------------------------------------------------------------
122
}
/* end namespace fem */
123
}
/* end namespace belfem */
124
125
#endif
//BELFEM_CL_EF_QUAD4TS_HPP
cl_EF_EdgeFunction.hpp
cl_FEM_Element.hpp
belfem::Cell
A bounds-checked wrapper around std::vector.
Definition
cl_Cell.hpp:45
belfem::Matrix< real >
belfem::fem::EF_QUAD4TS::precompute
void precompute(const Matrix< real > &aXi) override
only needed for higher order elements
Definition
cl_EF_QUAD4TS.cpp:144
belfem::fem::EF_QUAD4TS::G
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_QUAD4TS.hpp:116
belfem::fem::EF_QUAD4TS::~EF_QUAD4TS
~EF_QUAD4TS() override=default
trivial destructor
belfem::fem::EF_QUAD4TS::E
const Matrix< real > & E(const uint aIndex) override
interpolation operator for h-field
Definition
cl_EF_QUAD4TS.cpp:174
belfem::fem::EF_QUAD4TS::EF_QUAD4TS
EF_QUAD4TS()
constructor
Definition
cl_EF_QUAD4TS.cpp:24
belfem::fem::EF_QUAD4TS::link
void link(Element *aElement) override
connect function with element
Definition
cl_EF_QUAD4TS.cpp:42
belfem::fem::EF_QUAD4TS::C
const Matrix< real > & C(const uint aIndex=0) override
curl operator for h-field
Definition
cl_EF_QUAD4TS.cpp:196
belfem::fem::EdgeFunction::mGrad
Matrix< real > mGrad
Definition
cl_EF_EdgeFunction.hpp:97
belfem::fem::EdgeFunction::EdgeFunction
EdgeFunction()=default
trivial constructor
belfem::fem::Element
Definition
cl_FEM_Element.hpp:41
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_QUAD4TS.hpp
Generated by
1.18.0