29 typedef memory::shared_ptr<gsBaseAssembler> Ptr;
30 typedef memory::unique_ptr<gsBaseAssembler> uPtr;
103 gsSparseMatrix<T> eliminationMatrix;
104 gsMatrix<T> rhsWithZeroDDofs;
109#ifndef GISMO_BUILD_LIB
110#include GISMO_HPP_HEADER(gsBaseAssembler.hpp)
Struct which represents a certain side of a box.
Definition gsBoundary.h:85
The assembler class provides generic routines for volume and boundary integrals that are used for for...
Definition gsAssembler.h:266
index_t numDofs() const
Returns the number of (free) degrees of freedom.
Definition gsAssembler.h:633
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
memory::shared_ptr< gsPde< T > > m_pde_ptr
Definition gsAssembler.h:276
std::vector< gsMatrix< T > > m_ddof
Definition gsAssembler.h:295
const gsSparseMatrix< T > & matrix() const
Returns the left-hand global matrix.
Definition gsAssembler.h:614
Extends the gsAssembler class by adding functionality necessary for a general nonlinear solver....
Definition gsBaseAssembler.h:27
virtual void assemble(bool)
assembly procedure for linear problems
Definition gsBaseAssembler.h:39
virtual void constructSolution(const gsMatrix< T > &, gsMultiPatch< T > &, short_t=0) const
Construct solution from computed solution vector for a single unknows.
Definition gsBaseAssembler.h:53
virtual void assemble()
Main assemble routine, to be implemented in derived classes.
Definition gsBaseAssembler.h:40
virtual void assemble(const gsMultiPatch< T > &)
Main non-linear assemble routine with input from current solution.
Definition gsBaseAssembler.h:41
virtual void getFixedDofs(index_t patch, boxSide side, gsMatrix< T > &ddofs) const
Definition gsBaseAssembler.hpp:113
virtual bool assemble(const gsMatrix< T > &solutionVector, const std::vector< gsMatrix< T > > &fixedDDoFs)=0
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
virtual void constructSolution(const gsMatrix< T > &, gsMultiPatch< T > &, const gsVector< index_t > &) const
Construct solution from computed solution vector for a set of unknowns. The result is a vectorfield,...
Definition gsBaseAssembler.h:56
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 index_t numFixedDofs() const
get the size of the Dirichlet vector for elimination
Definition gsBaseAssembler.hpp:142
virtual int numDofs() const
Returns number of free degrees of freedom.
Definition gsBaseAssembler.h:45
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
Sparse matrix class, based on gsEigen::SparseMatrix.
Definition gsSparseMatrix.h:139
const gsMatrix< T > & rhs() const
Access the right hand side.
Definition gsSparseSystem.h:402
const gsSparseMatrix< T > & matrix() const
Access the system Matrix.
Definition gsSparseSystem.h:394
A vector with arbitrary coefficient type and fixed or dynamic size.
Definition gsVector.h:37
Provides generic assembler routines.
#define short_t
Definition gsConfig.h:35
#define index_t
Definition gsConfig.h:32
#define GISMO_NO_IMPLEMENTATION
Definition gsDebug.h:129
The G+Smo namespace, containing all definitions for the library.