BELFEM 0.9.0
Berkeley Lab Finite Element Framework
Loading...
Searching...
No Matches
cl_EF_LINE3.hpp
Go to the documentation of this file.
1//
2// Created by christian on 8/11/22.
3//
4
5#ifndef BELFEM_CL_EF_LINE3_HPP
6#define BELFEM_CL_EF_LINE3_HPP
7
9#include "cl_FEM_Element.hpp"
10#include "fn_polyval.hpp"
11#include "fn_dot.hpp"
12#include "fn_norm.hpp"
13
14namespace belfem
15{
16 namespace fem
17 {
18 class Element;
19
23 class EF_LINE3 : public EdgeFunction
24 {
25 // coordinates of edge
28
29 // coordinates of edge dofs
31
32 // scaling parameters
35
36 // coefficients for edge function on dof 0
37 Vector< real > mC0 ;
38
39 // coefficients for edge function on dof 1
40 Vector< real > mC1 ;
41
42 // shape function of volume element
43 InterpolationFunction * mVolumeLagrange = nullptr ;
44 Cell< Matrix< real > > mVolumeNxi ;
45
46//------------------------------------------------------------------------------
47 public:
48//------------------------------------------------------------------------------
49
53 EF_LINE3();
54
55//------------------------------------------------------------------------------
56
60 ~EF_LINE3() override;
61
62//------------------------------------------------------------------------------
63
67 void
68 precompute( const Matrix< real > & aXi ) override ;
69
70//------------------------------------------------------------------------------
71
76 void
77 link( Element * aElement ) override;
78
79//------------------------------------------------------------------------------
80
84 const Matrix< real > &
85 E( const uint aIndex ) override;
86//------------------------------------------------------------------------------
87
91 const Matrix< real > &
92 C( const uint aIndex = 0 ) override;
93
94//------------------------------------------------------------------------------
95
101 const Matrix< real > &
102 G( const uint aIndex = 0 ) override ;
103
104//------------------------------------------------------------------------------
105 private:
106//------------------------------------------------------------------------------
107
108 real
109 compute_det_J( const uint aIndex );
110
111//------------------------------------------------------------------------------
112 };
113
114//------------------------------------------------------------------------------
115
116 inline const Matrix< real > &
117 EF_LINE3::E( const uint aIndex )
118 {
119 mAbsDetJ = this->compute_det_J( aIndex );
120 return mE( aIndex );
121 }
122
123//--------------------------------------------------------------------------
124 }
125}
126#endif //BELFEM_CL_EF_LINE3_HPP
Cell is a wrapper around the standard vector.
Definition cl_Cell.hpp:42
const Matrix< real > & G(const uint aIndex=0) override
gradient operator for h-field ( hard-fail stub, real implementation pending Step C; layout contract i...
Definition cl_EF_LINE3.cpp:187
void link(Element *aElement) override
connect function with element ( here, we don't care about the switches )
Definition cl_EF_LINE3.cpp:146
void precompute(const Matrix< real > &aXi) override
Definition cl_EF_LINE3.cpp:41
const Matrix< real > & C(const uint aIndex=0) override
curl operator for h-field
Definition cl_EF_LINE3.cpp:178
EF_LINE3()
constructor
Definition cl_EF_LINE3.cpp:16
const Matrix< real > & E(const uint aIndex) override
interpolation operator for h-field
Definition cl_EF_LINE3.hpp:117
real mAbsDetJ
the absolute value determinant of the Geometry Jacobian
Definition cl_EF_EdgeFunction.hpp:47
EdgeFunction()=default
trivial constructor
Definition cl_FEM_Element.hpp:41
the shape function base class
Definition cl_IF_InterpolationFunction.hpp:24
Inner products of vectors and matrices.
Euclidean length of a vector.
Evaluates a polynomial.
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