G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsApproxC1Spline.h
Go to the documentation of this file.
1 
14 #pragma once
15 
16 #include<gsIO/gsOptionList.h>
17 
20 
21 //#include <gsUnstructuredSplines/src/gsApproxC1Utils.h>
22 
23 namespace gismo
24 {
25 
32 template<short_t d,class T>
33 class gsApproxC1Spline : public gsContainerBasisBase<d,T>
34 {
35 public:
36 
37  // gsContainerBasisBase:
38  // - Interior space: [0] : inner,
39  // - Edge spaces: [1] : west, [2] : east, [3] : south, [4] : north,
40  // - Vertex spaces: [5] : southwest, [6] : southeast, [7] : northwest, [8] : northeast
41  using Base = gsContainerBasisBase<d,T>;
42 
50  :
51  Base(patches, multiBasis)
52  {
53  this->defaultOptions();
54  };
55 
56 public:
57  // To be overwritten in inheriting classes
58 
60  void init();
61 
63  void compute();
64 
70  void update(gsMappedBasis<d,T> & bb2)
71  {
72  this->init();
73  this->compute();
74 
75  m_matrix = m_matrix.transpose();
76  gsMultiBasis<T> dbasis_temp;
77  this->getMultiBasis(dbasis_temp);
78 
79  bb2.init(dbasis_temp,m_matrix);
80  }
81 
83  void defaultOptions();
84 
85 private:
86  // Helper functions
87 
88 
89 protected:
90  // Data members
91  index_t p_tilde, r_tilde;
92 
93  // Put here the members of the shared functions
94  using Base::m_patches;
95  using Base::m_multiBasis;
96  using Base::m_options;
97  using Base::m_matrix;
98  using Base::m_bases;
99 };
100 
101 }
102 
103 #ifndef GISMO_BUILD_LIB
104 #include GISMO_HPP_HEADER(gsApproxC1Spline.hpp)
105 #endif
void init()
Initializes the method.
Definition: gsApproxC1Spline.hpp:62
Provides declaration of Basis abstract interface.
gsApproxC1Spline(gsMultiPatch< T > &patches, gsMultiBasis< T > &multiBasis)
Constructs a new instance of the approximate basis.
Definition: gsApproxC1Spline.h:49
void compute()
Computes the basis.
Definition: gsApproxC1Spline.hpp:273
void defaultOptions()
Sets the default options.
Definition: gsApproxC1Spline.hpp:25
#define index_t
Definition: gsConfig.h:32
Provides a list of labeled parameters/options that can be set and accessed easily.
Holds a set of patch-wise bases and their topology information.
Definition: gsMultiBasis.h:36
Provides declaration of Basis abstract interface.
void update(gsMappedBasis< d, T > &bb2)
Updates the basis bb2 with the right basis and mapping matrix.
Definition: gsApproxC1Spline.h:70
Class describing the approximate spline.
Definition: gsApproxC1Spline.h:33
Container class for a set of geometry patches and their topology, that is, the interface connections ...
Definition: gsMultiPatch.h:33