26 class gsBaseAssembler :
public gsAssembler<T>
29 typedef memory::shared_ptr<gsBaseAssembler> Ptr;
30 typedef memory::unique_ptr<gsBaseAssembler> uPtr;
35 virtual bool assemble(
const gsMatrix<T> & solutionVector,
36 const std::vector<gsMatrix<T> > & fixedDDoFs) = 0;
39 virtual void assemble(
bool saveEliminationMatrix =
false) {};
63 virtual void setFixedDofs(
index_t patch, boxSide side,
const gsMatrix<T> & ddofs,
bool oneUnk =
false);
66 virtual void setFixedDofs(
const std::vector<gsMatrix<T> > & ddofs);
87 using gsAssembler<T>::m_pde_ptr;
88 using gsAssembler<T>::m_bases;
89 using gsAssembler<T>::m_system;
90 using gsAssembler<T>::m_ddof;
92 gsSparseMatrix<T> eliminationMatrix;
93 gsMatrix<T> rhsWithZeroDDofs;
98 #ifndef GISMO_BUILD_LIB
99 #include GISMO_HPP_HEADER(gsBaseAssembler.hpp)
Provides generic assembler routines.
virtual void constructSolution(const gsMatrix< T > &solVector, const std::vector< gsMatrix< T > > &fixedDDofs, gsMultiPatch< T > &result, const gsVector< index_t > &unknowns) const
Constructs solution as a gsMultiPatch object from the solution vector and fixed DoFs.
Definition: gsBaseAssembler.hpp:23
virtual void assemble(bool saveEliminationMatrix=false)
assembly procedure for linear problems
Definition: gsBaseAssembler.h:39
const gsMatrix< T > & rhs() const
Returns the left-hand side vector(s) ( multiple right hand sides possible )
Definition: gsAssembler.h:618
#define index_t
Definition: gsConfig.h:32
virtual void setFixedDofs(index_t patch, boxSide side, const gsMatrix< T > &ddofs, bool oneUnk=false)
Set Dirichet degrees of freedom on a given side of a given patch from a given matrix.
Definition: gsBaseAssembler.hpp:61
virtual void eliminateFixedDofs()
Eliminates new Dirichelt degrees of fredom.
Definition: gsBaseAssembler.hpp:151
index_t numDofs() const
Returns the number of (free) degrees of freedom.
Definition: gsAssembler.h:633
const gsSparseMatrix< T > & matrix() const
Access the system Matrix.
Definition: gsSparseSystem.h:394
virtual void getFixedDofs(index_t patch, boxSide side, gsMatrix< T > &ddofs) const
Definition: gsBaseAssembler.hpp:113
virtual int numDofs() const
Returns number of free degrees of freedom.
Definition: gsBaseAssembler.h:42
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
virtual index_t numFixedDofs() const
get the size of the Dirichlet vector for elimination
Definition: gsBaseAssembler.hpp:142
const gsMatrix< T > & rhs() const
Access the right hand side.
Definition: gsSparseSystem.h:402
virtual void assemble()
Main assemble routine, to be implemented in derived classes.
Definition: gsAssembler.hpp:51
const gsSparseMatrix< T > & matrix() const
Returns the left-hand global matrix.
Definition: gsAssembler.h:614