G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsBiharmonicAssembler.h
1 
15 #pragma once
16 
18 
19 namespace gismo
20 {
21 
22 template <class T>
23 class gsBiharmonicAssembler : public gsBaseAssembler<T>
24 {
25 public:
26  typedef gsBaseAssembler<T> Base;
27 
29  gsBiharmonicAssembler(const gsMultiPatch<T> & patches,
30  const gsMultiBasis<T> & basis,
31  const gsBoundaryConditions<T> & bconditions,
32  const gsFunction<T> & body_force);
33 
35  static gsOptionList defaultOptions();
36 
38  virtual void refresh();
39 
41  virtual void assemble(bool saveEliminationMatrix = false);
42 
43  virtual bool assemble(const gsMatrix<T> & solutionVector,
44  const std::vector<gsMatrix<T> > & fixedDDoFs)
45  {assemble(); return true;}
46 
47  //--------------------- SOLUTION CONSTRUCTION ----------------------------------//
48 
50  virtual void constructSolution(const gsMatrix<T> & solVector,
51  const std::vector<gsMatrix<T> > & fixedDoFs,
52  gsMultiPatch<T> & solution) const;
53 
55  virtual void constructSolutionAux(const gsMatrix<T> & solVector,
56  const std::vector<gsMatrix<T> > & fixedDoFs,
57  gsMultiPatch<T> & solutionAux) const;
58 
60  virtual void constructSolution(const gsMatrix<T> & solVector,
61  const std::vector<gsMatrix<T> > & fixedDoFs,
62  gsMultiPatch<T> & solutionMain, gsMultiPatch<T> & solutionAux) const;
63 
64 protected:
66  virtual void reserve();
67 
68 protected:
69  using Base::m_pde_ptr;
70  using Base::m_bases;
71  using Base::m_options;
72  using Base::m_system;
73  using Base::m_ddof;
74  using Base::eliminationMatrix;
75 };
76 
77 } // namespace gismo ends
78 
79 #ifndef GISMO_BUILD_LIB
80 #include GISMO_HPP_HEADER(gsElMassAssembler.hpp)
81 #endif
82 
memory::shared_ptr< gsPde< T > > m_pde_ptr
Definition: gsAssembler.h:276
gsOptionList m_options
Options.
Definition: gsAssembler.h:285
std::vector< gsMultiBasis< T > > m_bases
Definition: gsAssembler.h:282
void refresh()
Creates the mappers and setups the sparse system. to be implemented in derived classes, see scalarProblemGalerkinRefresh() for a possible implementation.
Definition: gsBiharmonicAssembler.hpp:23
static gsOptionList defaultOptions()
Returns the list of default options for assembly.
Definition: gsBiharmonicAssembler.hpp:39
virtual void constructSolution(const gsMatrix< T > &solVector, const std::vector< gsMatrix< T > > &fixedDoFs, gsMultiPatch< T > &solution) const
construct the solution of the equation
Definition: gsBiharmonicAssembler.hpp:107
const gsMultiPatch< T > & patches() const
Return the multipatch.
Definition: gsAssembler.h:601
gsBiharmonicAssembler(gsMultiPatch< T > const &patches, gsMultiBasis< T > const &bases, gsBoundaryConditions< T > const &bconditions, gsBoundaryConditions< T > const &bconditions2, const gsFunction< T > &rhs, dirichlet::strategy dirStrategy, iFace::strategy intStrategy=iFace::glue)
Constructor of the assembler object.
Definition: gsBiharmonicAssembler.h:56
void assemble()
Main assemble routine, to be implemented in derived classes.
Definition: gsBiharmonicAssembler.hpp:31
virtual void constructSolutionAux(const gsMatrix< T > &solVector, const std::vector< gsMatrix< T > > &fixedDoFs, gsMultiPatch< T > &solutionAux) const
construct the Laplacian of the solution
Definition: gsBiharmonicAssembler.hpp:115
Base class for assemblers of gsElasticity.
Container class for a set of geometry patches and their topology, that is, the interface connections ...
Definition: gsMultiPatch.h:33
gsSparseSystem< T > m_system
Global sparse linear system.
Definition: gsAssembler.h:290
std::vector< gsMatrix< T > > m_ddof
Definition: gsAssembler.h:295
virtual bool assemble(const gsMatrix< T > &solutionVector, const std::vector< gsMatrix< T > > &fixedDDoFs)
Definition: gsBiharmonicAssembler.h:43
virtual void reserve()
a custom reserve function to allocate memory for the sparse matrix
Definition: gsBiharmonicAssembler.hpp:61