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
19
20
21namespace gismo
22{
23
24// Forward declaration
25template <class T> class gsVisitorBiharmonic;
26
35template <class T, class bhVisitor = gsVisitorBiharmonic<T> >
37{
38public:
39 typedef gsAssembler<T> Base;
40
41public:
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 using Base::assemble;
74 void assemble();
75
76protected:
77
78 // fixme: add constructor and remove this
79 gsBiharmonicPde<T> m_ppde;
80
81 // Members from gsAssembler
82 using Base::m_pde_ptr;
83 using Base::m_bases;
84 using Base::m_ddof;
85 using Base::m_options;
86 using Base::m_system;
87};
88
89} // namespace gismo
90
91
92#ifndef GISMO_BUILD_LIB
93#include GISMO_HPP_HEADER(gsBiharmonicAssembler.hpp)
94#endif
95
The assembler class provides generic routines for volume and boundary integrals that are used for for...
Definition gsAssembler.h:266
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
const gsMatrix< T > & rhs() const
Returns the left-hand side vector(s) ( multiple right hand sides possible )
Definition gsAssembler.h:618
gsSparseSystem< T > m_system
Global sparse linear system.
Definition gsAssembler.h:290
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
Implementation of a homogeneous Biharmonic Assembler.
Definition gsBiharmonicAssembler.h:37
void refresh()
Creates the mappers and setups the sparse system. to be implemented in derived classes,...
Definition gsBiharmonicAssembler.hpp:23
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
gsOptionList m_options
Options.
Definition gsAssembler.h:285
void assemble()
Main assemble routine, to be implemented in derived classes.
Definition gsBiharmonicAssembler.hpp:31
A Biharmonic PDE.
Definition gsBiharmonicPde.h:48
Class containing a set of boundary conditions.
Definition gsBoundaryConditions.h:342
A function from a n-dimensional domain to an m-dimensional image.
Definition gsFunction.h:60
Holds a set of patch-wise bases and their topology information.
Definition gsMultiBasis.h:37
Container class for a set of geometry patches and their topology, that is, the interface connections ...
Definition gsMultiPatch.h:100
void setInt(const std::string &label, const index_t &value)
Sets an existing option label to be equal to value.
Definition gsOptionList.cpp:158
Provides generic assembler routines.
Describes a Poisson PDE.
The G+Smo namespace, containing all definitions for the library.