BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_EF_QUAD4TS.hpp
Go to the documentation of this file.
1//
2// Created by claude on 1/11/25.
3//
4
5#ifndef BELFEM_CL_EF_QUAD4TS_HPP
6#define BELFEM_CL_EF_QUAD4TS_HPP
7
9#include "cl_FEM_Element.hpp"
10
11namespace belfem
12{
13 namespace fem
14 {
15 class Element;
16
17 class EF_QUAD4TS : public EdgeFunction
18 {
19 // edge directions
20 real mS[ 2 ];
21
22 // derivatives for line element
23 real mNablaXi[ 2 ];
24 real mNablaEta[ 2 ];
25
26 // normal to the line (in 2D space)
27 real mN[ 2 ];
28 real mDetGram ;
29 real mThickness ;
30 real mLength ;
31
32 // coefficients for shape function
35
36 // pseudo inverse (1D jacobian for line)
37 Matrix< real > mPseudoInvJ ;
38
39 // gram matrix (1x1 for line)
40 Matrix< real > mGram ;
41
42 // coefficient matrix
43 Matrix< real > mCoeffs ;
44
45 // parameter matrix for curl
46 Cell< Matrix< real > > mCurlPars ;
47
48//------------------------------------------------------------------------------
49 public:
50//------------------------------------------------------------------------------
51
55 EF_QUAD4TS();
56
57//------------------------------------------------------------------------------
58
62 ~EF_QUAD4TS() override = default;
63
64//------------------------------------------------------------------------------
65
66 void
67 precompute( const Matrix< real > & aXi ) override ;
68
69//------------------------------------------------------------------------------
70
74 void
75 link( Element * aElement ) override ;
76
77//------------------------------------------------------------------------------
78
82 const Matrix< real > &
83 E( const uint aIndex ) override ;
84
85//------------------------------------------------------------------------------
86
90 const Matrix< real > &
91 C( const uint aIndex = 0 ) override ;
92
93//------------------------------------------------------------------------------
94
100 const Matrix< real > &
101 G( const uint aIndex = 0 ) override ;
102
103//------------------------------------------------------------------------------
104 };
105
106//------------------------------------------------------------------------------
107
108 inline const Matrix< real > &
109 EF_QUAD4TS::G( const uint aIndex )
110 {
111 return mGrad ;
112 }
113
114//------------------------------------------------------------------------------
115 } /* end namespace fem */
116} /* end namespace belfem */
117
118#endif //BELFEM_CL_EF_QUAD4TS_HPP
Cell is a wrapper around the standard vector.
Definition cl_Cell.hpp:42
void precompute(const Matrix< real > &aXi) override
only needed for higher order elements
Definition cl_EF_QUAD4TS.cpp:137
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:109
~EF_QUAD4TS() override=default
trivial destructor
const Matrix< real > & E(const uint aIndex) override
interpolation operator for h-field
Definition cl_EF_QUAD4TS.cpp:167
EF_QUAD4TS()
constructor
Definition cl_EF_QUAD4TS.cpp:17
void link(Element *aElement) override
connect function with element
Definition cl_EF_QUAD4TS.cpp:35
const Matrix< real > & C(const uint aIndex=0) override
curl operator for h-field
Definition cl_EF_QUAD4TS.cpp:189
Matrix< real > mGrad
Definition cl_EF_EdgeFunction.hpp:90
EdgeFunction()=default
trivial constructor
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