G+Smo  25.01.0
Geometry + Simulation Modules
 
Loading...
Searching...
No Matches
gsBiharmonicAssembler.h
Go to the documentation of this file.
1
15#pragma once
16
18
19namespace gismo
20{
21
22template <class T>
23class gsBiharmonicAssembler : public gsBaseAssembler<T>
24{
25public:
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
42 virtual void assemble(bool saveEliminationMatrix);
43
44 virtual void assemble() { assemble(false); };
45
46 using Base::assemble;
47 virtual bool assemble(const gsMatrix<T> & /* solutionVector */,
48 const std::vector<gsMatrix<T> > & /* fixedDDoFs */)
49 {assemble(); return true;}
51
52 //--------------------- SOLUTION CONSTRUCTION ----------------------------------//
53
55 virtual void constructSolution(const gsMatrix<T> & solVector,
56 const std::vector<gsMatrix<T> > & fixedDoFs,
57 gsMultiPatch<T> & solution) const;
58
60 virtual void constructSolutionAux(const gsMatrix<T> & solVector,
61 const std::vector<gsMatrix<T> > & fixedDoFs,
62 gsMultiPatch<T> & solutionAux) const;
63
65 virtual void constructSolution(const gsMatrix<T> & solVector,
66 const std::vector<gsMatrix<T> > & fixedDoFs,
67 gsMultiPatch<T> & solutionMain, gsMultiPatch<T> & solutionAux) const;
68
70
71protected:
73 virtual void reserve();
74
75protected:
76 using Base::m_pde_ptr;
77 using Base::m_bases;
78 using Base::m_options;
79 using Base::m_system;
80 using Base::m_ddof;
81 using Base::eliminationMatrix;
82};
83
84} // namespace gismo ends
85
86#ifndef GISMO_BUILD_LIB
87#include GISMO_HPP_HEADER(gsElMassAssembler.hpp)
88#endif
89
gsSparseSystem< T > m_system
Global sparse linear system.
Definition gsAssembler.h:290
virtual void constructSolution(const gsMatrix< T > &solVector, gsMultiPatch< T > &result, short_t unk=0) const
Construct solution from computed solution vector for a single unknows.
Definition gsAssembler.hpp:537
std::vector< gsMultiBasis< T > > m_bases
Definition gsAssembler.h:282
gsOptionList m_options
Options.
Definition gsAssembler.h:285
virtual void assemble()
Main assemble routine, to be implemented in derived classes.
Definition gsAssembler.hpp:51
memory::shared_ptr< gsPde< T > > m_pde_ptr
Definition gsAssembler.h:276
std::vector< gsMatrix< T > > m_ddof
Definition gsAssembler.h:295
const gsMultiPatch< T > & patches() const
Return the multipatch.
Definition gsAssembler.h:601
virtual void reserve()
a custom reserve function to allocate memory for the sparse matrix
Definition gsBiharmonicAssembler.hpp:61
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
virtual void assemble()
Main assemble routine, to be implemented in derived classes.
Definition gsBiharmonicAssembler.h:44
virtual bool assemble(const gsMatrix< T > &, const std::vector< gsMatrix< T > > &)
Definition gsBiharmonicAssembler.h:47
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
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
virtual void refresh()
Refresh routine to set dof-mappers.
A matrix with arbitrary coefficient type and fixed or dynamic size.
Definition gsMatrix.h:41
Container class for a set of geometry patches and their topology, that is, the interface connections ...
Definition gsMultiPatch.h:100
Base class for assemblers of gsElasticity.
The G+Smo namespace, containing all definitions for the library.