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 #include <gsPde/gsBiharmonicPde.h>
19 
20 
21 namespace gismo
22 {
23 
24 // Forward declaration
25 template <class T> class gsVisitorBiharmonic;
26 
35 template <class T, class bhVisitor = gsVisitorBiharmonic<T> >
37 {
38 public:
39  typedef gsAssembler<T> Base;
40 
41 public:
57  gsMultiBasis<T> const & bases,
58  gsBoundaryConditions<T> const & bconditions,
59  gsBoundaryConditions<T> const & bconditions2,
60  const gsFunction<T> & rhs,
61  dirichlet::strategy dirStrategy,
62  iFace::strategy intStrategy = iFace::glue)
63  : m_ppde(patches,bconditions,bconditions2,rhs)
64  {
65  m_options.setInt("DirichletStrategy", dirStrategy);
66  m_options.setInt("InterfaceStrategy", intStrategy);
67 
68  Base::initialize(m_ppde, bases, m_options);
69  }
70 
71  void refresh();
72 
73  void assemble();
74 
75 protected:
76 
77  // fixme: add constructor and remove this
78  gsBiharmonicPde<T> m_ppde;
79 
80  // Members from gsAssembler
81  using Base::m_pde_ptr;
82  using Base::m_bases;
83  using Base::m_ddof;
84  using Base::m_options;
85  using Base::m_system;
86 };
87 
88 } // namespace gismo
89 
90 
91 #ifndef GISMO_BUILD_LIB
92 #include GISMO_HPP_HEADER(gsBiharmonicAssembler.hpp)
93 #endif
94 
memory::shared_ptr< gsPde< T > > m_pde_ptr
Definition: gsAssembler.h:276
Provides generic assembler routines.
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
Describes a Poisson PDE.
const gsMatrix< T > & rhs() const
Returns the left-hand side vector(s) ( multiple right hand sides possible )
Definition: gsAssembler.h:618
A function from a n-dimensional domain to an m-dimensional image.
Definition: gsFunction.h:59
Visitor for the biharmonic equation.
Definition: gsBiharmonicAssembler.h:25
const gsMultiPatch< T > & patches() const
Return the multipatch.
Definition: gsAssembler.h:601
void setInt(const std::string &label, const index_t &value)
Sets an existing option label to be equal to value.
Definition: gsOptionList.cpp:158
Holds a set of patch-wise bases and their topology information.
Definition: gsMultiBasis.h:36
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
void initialize(const gsPde< T > &pde, const gsStdVectorRef< gsMultiBasis< T > > &bases, const gsOptionList &opt=defaultOptions())
Intitialize function for, sets data fields using the pde, a vector of multi-basis and assembler optio...
Definition: gsAssembler.h:317
Implementation of a homogeneous Biharmonic Assembler.
Definition: gsBiharmonicAssembler.h:36
A Biharmonic PDE.
Definition: gsBiharmonicPde.h:47
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
Class containing a set of boundary conditions.
Definition: gsBoundaryConditions.h:341
The assembler class provides generic routines for volume and boundary integrals that are used for for...
Definition: gsAssembler.h:265