BELFEM
0.9.0
Berkeley Lab Finite Element Framework
Toggle main menu visibility
Loading...
Searching...
No Matches
cl_EF_HEX8TS.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, through
4
* 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_HEX8TS_HPP
13
#define BELFEM_CL_EF_HEX8TS_HPP
14
15
16
#include "
nedelec/cl_EF_EdgeFunction.hpp
"
17
#include "
cl_FEM_Element.hpp
"
18
19
namespace
belfem
20
{
21
namespace
fem
22
{
23
class
Element
;
24
25
class
EF_HEX8TS
:
public
EdgeFunction
26
{
27
Matrix< real >
mX ;
// node coordinates
28
InterpolationFunction
* mQuad4 =
nullptr
;
29
30
Cell< Vector< real >
> mF ;
31
Cell< Matrix< real >
> mFxi ;
32
33
Cell< Matrix< real >
> mHex8Nxi ;
34
Cell< Matrix< real >
> mQuad4Nxi ;
35
36
Matrix< real >
mEx ;
37
Matrix< real >
mEy ;
38
Matrix< real >
mEz ;
39
40
Matrix< real >
mNx ;
41
Matrix< real >
mG ;
42
Matrix< real >
mInvG ;
43
Matrix< real >
mJ2 ;
44
45
// edge directions
46
real
mS[ 8 ];
47
48
// help vectors
49
Vector< real >
mU ;
50
Vector< real >
mV ;
51
Vector< real >
mW ;
52
53
real
mSurface =
BELFEM_QUIET_NAN
;
54
real
mThickness =
BELFEM_QUIET_NAN
;
55
real
mVolume =
BELFEM_QUIET_NAN
;
56
57
uint
mLastIndex =
BELFEM_UINT_MAX
;
58
59
//------------------------------------------------------------------------------
60
public
:
61
//------------------------------------------------------------------------------
62
66
EF_HEX8TS
();
67
71
~EF_HEX8TS
()
override
;
72
73
//------------------------------------------------------------------------------
74
78
void
79
link
(
Element
*aElement )
override
;
80
81
//------------------------------------------------------------------------------
82
83
void
84
precompute
(
const
Matrix< real >
& aXi )
override
;
85
86
//------------------------------------------------------------------------------
87
88
const
Matrix <real> &
89
E
(
const
uint
aIndex )
override
;
90
91
//------------------------------------------------------------------------------
92
93
const
Matrix <real> &
94
C
(
const
uint
aIndex )
override
;
95
96
//------------------------------------------------------------------------------
97
117
const
Matrix< real >
&
118
G
(
const
uint
aIndex )
override
;
119
120
//------------------------------------------------------------------------------
121
private
:
122
//------------------------------------------------------------------------------
123
124
void
125
update_nabla(
const
uint
aIndex )
override
;
126
127
//------------------------------------------------------------------------------
128
};
129
}
130
}
131
132
#endif
//BELFEM_CL_EF_HEX8TS_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::Vector< real >
belfem::fem::EF_HEX8TS::EF_HEX8TS
EF_HEX8TS()
constructor
Definition
cl_EF_HEX8TS.cpp:30
belfem::fem::EF_HEX8TS::C
const Matrix< real > & C(const uint aIndex) override
Definition
cl_EF_HEX8TS.cpp:227
belfem::fem::EF_HEX8TS::E
const Matrix< real > & E(const uint aIndex) override
Definition
cl_EF_HEX8TS.cpp:183
belfem::fem::EF_HEX8TS::link
void link(Element *aElement) override
connect function with element
Definition
cl_EF_HEX8TS.cpp:77
belfem::fem::EF_HEX8TS::G
const Matrix< real > & G(const uint aIndex) override
gradient operator for h-field, layout contract in EdgeFunction::mGrad.
Definition
cl_EF_HEX8TS.cpp:392
belfem::fem::EF_HEX8TS::precompute
void precompute(const Matrix< real > &aXi) override
only needed for higher order elements
Definition
cl_EF_HEX8TS.cpp:113
belfem::fem::EdgeFunction::EdgeFunction
EdgeFunction()=default
trivial constructor
belfem::fem::Element
Definition
cl_FEM_Element.hpp:41
belfem::fem::InterpolationFunction
the shape function base class
Definition
cl_IF_InterpolationFunction.hpp:24
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
BELFEM_UINT_MAX
#define BELFEM_UINT_MAX
Definition
typedefs.hpp:80
BELFEM_QUIET_NAN
#define BELFEM_QUIET_NAN
Definition
typedefs.hpp:87
src
fem
interpolation
nedelec
cl_EF_HEX8TS.hpp
Generated by
1.18.0