G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsL2Projection.h
Go to the documentation of this file.
1 
15 #pragma once
16 
18 
19 namespace gismo {
20 
26 template <class T>
28 {
29 
30 protected:
31  typedef gsExprAssembler<>::geometryMap geometryMap;
33  typedef gsExprAssembler<>::solution solution;
34  typedef gsExprAssembler<>::element element;
35 
36 public:
47  static T projectGeometry( const gsBasis<T> & basis,
48  const gsGeometry<T> & geometry,
49  gsMatrix<T> & result);
50 
61  static T projectGeometry( const gsMultiBasis<T> & basis,
62  const gsFunctionSet<T> & geometry,
63  gsMatrix<T> & result);
64 
75  static T projectGeometry( const gsMultiBasis<T> & basis,
76  const gsFunctionSet<T> & geometry,
77  gsMultiPatch<T> & result);
78 
90  static T projectGeometry( const gsMultiBasis<T> & intbasis,
91  const gsMappedBasis<2,T> & basis,
92  const gsFunctionSet<T> & geometry,
93  gsMatrix<T> & result);
94 
105  static T projectFunction( const gsMultiBasis<T> & basis,
106  const gsFunctionSet<T> & source,
107  const gsMultiPatch<T> & geometry,
108  gsMatrix<T> & result);
109 
120  static T projectFunction( const gsMultiBasis<T> & basis,
121  const gsFunctionSet<T> & source,
122  const gsMultiPatch<T> & geometry,
123  gsMultiPatch<T> & result);
124 
136  static T projectFunction( const gsMultiBasis<T> & intbasis,
137  const gsMappedBasis<2,T>& basis,
138  const gsFunctionSet<T> & source,
139  const gsMultiPatch<T> & geometry,
140  gsMatrix<T> & result);
141 
152  static T projectGeometryBoundaries( const gsMultiBasis<T> & basis,
153  const gsMultiPatch<T> & geometry,
154  gsMultiPatch<T> & result);
155 
156 
168  static T projectGeometryPenalty( const gsMultiBasis<T> & basis,
169  const gsMultiPatch<T> & geometry,
170  gsMultiPatch<T> & result,
171  T penalty = 1e3);
172 
173 
174 }; //struct
175 
176 } // gismo
177 
178 #ifndef GISMO_BUILD_LIB
179 #include GISMO_HPP_HEADER(gsL2Projection.hpp)
180 #endif
Abstract base class representing a geometry map.
Definition: gsGeometry.h:92
gsExprHelper< T >::geometryMap geometryMap
Geometry map type.
Definition: gsExprAssembler.h:58
static T projectGeometryPenalty(const gsMultiBasis< T > &basis, const gsMultiPatch< T > &geometry, gsMultiPatch< T > &result, T penalty=1e3)
Projects a source geometry onto basis and returns it in result. Penalizes interfaces and boundaries...
Definition: gsL2Projection.hpp:279
static T projectGeometry(const gsBasis< T > &basis, const gsGeometry< T > &geometry, gsMatrix< T > &result)
Projects a source geometry onto basis and returns it in result.
Definition: gsL2Projection.hpp:23
static T projectGeometryBoundaries(const gsMultiBasis< T > &basis, const gsMultiPatch< T > &geometry, gsMultiPatch< T > &result)
Projects a source geometry onto basis and returns it in result. Fixes the boundaries.
Definition: gsL2Projection.hpp:235
Holds a set of patch-wise bases and their topology information.
Definition: gsMultiBasis.h:36
Definition: gsDirichletValues.h:23
Interface for the set of functions defined on a domain (the total number of functions in the set equa...
Definition: gsFuncData.h:23
Container class for a set of geometry patches and their topology, that is, the interface connections ...
Definition: gsMultiPatch.h:33
Class that performs an L2 projection.
Definition: gsL2Projection.h:27
gsExprHelper< T >::element element
Current element.
Definition: gsExprAssembler.h:57
expr::gsFeSolution< T > solution
Solution type.
Definition: gsExprAssembler.h:61
Generic expressions matrix assembly.
static T projectFunction(const gsMultiBasis< T > &basis, const gsFunctionSet< T > &source, const gsMultiPatch< T > &geometry, gsMatrix< T > &result)
Projects a function on a basis.
Definition: gsL2Projection.hpp:178
A basis represents a family of scalar basis functions defined over a common parameter domain...
Definition: gsBasis.h:78