IFEM  90A354
BasisFunctionVals.h
Go to the documentation of this file.
1 // $Id$
2 //==============================================================================
12 //==============================================================================
13 
14 #ifndef _BASIS_FUNCTION_VALS_H
15 #define _BASIS_FUNCTION_VALS_H
16 
17 #include "MatVec.h"
18 
19 
25 {
30 };
31 
32 
34 using BasisValuesPtrs = std::vector<const BasisFunctionVals*>;
35 
36 
45 class BasisValues : public std::vector<BasisFunctionVals>
46 {
47 public:
49  explicit BasisValues(size_t size) : std::vector<BasisFunctionVals>(size)
50  {
51  pointers.reserve(this->size());
52  for (const BasisFunctionVals& val : *this)
53  pointers.push_back(&val);
54  }
55 
59  {
60  this->clear();
61  }
62 
64  void clear() noexcept
65  {
66  this->std::vector<BasisFunctionVals>::clear();
67  pointers.clear();
68  }
69 
72  {
73  this->std::vector<BasisFunctionVals>::push_back(v);
74  pointers.push_back(&this->back());
75  }
76 
79  {
80  this->std::vector<BasisFunctionVals>::push_back(v);
81  pointers.push_back(&this->back());
82  }
83 
85  operator const BasisValuesPtrs& () const { return pointers; }
86 
87 private:
89 };
90 
91 #endif
std::vector< const BasisFunctionVals * > BasisValuesPtrs
Convenience type alias.
Definition: BasisFunctionVals.h:34
Global algebraic operations on index 1-based matrices and vectors.
Utility class holding a vector of basis function values.
Definition: BasisFunctionVals.h:46
BasisValuesPtrs pointers
Vector of pointers to our values.
Definition: BasisFunctionVals.h:88
void push_back(BasisFunctionVals &&v)
Push back for r-reference.
Definition: BasisFunctionVals.h:78
~BasisValues()
Destructor.
Definition: BasisFunctionVals.h:58
void clear() noexcept
Clears the container.
Definition: BasisFunctionVals.h:64
void push_back(const BasisFunctionVals &v)
Push back for reference.
Definition: BasisFunctionVals.h:71
BasisValues(size_t size)
Constructor resizing to a given size.
Definition: BasisFunctionVals.h:49
A vector class with some added algebraic operations.
Definition: matrix.h:64
Struct holding basis function values and derivatives.
Definition: BasisFunctionVals.h:25
Matrix dNdu
Basis function derivatives.
Definition: BasisFunctionVals.h:27
Vector N
Basis function values.
Definition: BasisFunctionVals.h:26
Matrix4D d3Ndu3
Third order derivatives of basis functions.
Definition: BasisFunctionVals.h:29
Matrix3D d2Ndu2
Second order derivatives of basis functions.
Definition: BasisFunctionVals.h:28