template<class T, int MatOrder>
class gismo::gsINSAssembler< T, MatOrder >
A base class for incompressible Navier-Stokes assemblers.
- Template Parameters
-
T | real number type |
MatOrder | sparse matrix storage order (ColMajor/RowMajor) |
|
T | computeFlowRate (index_t patch, boxSide side, gsMatrix< T > solution) const |
| Compute flow rate through a side of a given patch.
|
|
virtual gsField< T > | constructSolution (const gsMatrix< T > &solVector, index_t unk) const |
| Construct solution from computed solution vector for unknown unk.
|
|
virtual void | fillStokesSystem (gsSparseMatrix< T, MatOrder > &stokesMat, gsMatrix< T > &stokesRhs) |
| Fill the matrix and right-hand side for the Stokes problem.
|
|
gsAssemblerOptions | getAssemblerOptions () const |
| Returns the assembler options.
|
|
std::vector< gsMultiBasis< T > > & | getBases () |
| Returns a reference to the discretization bases.
|
|
const gsBoundaryConditions< T > & | getBCs () const |
| Returns a const reference to the boundary conditions.
|
|
gsSparseMatrix< T, MatOrder > | getBlockPU () const |
| Returns the pressure-velocity block of the linear system.
|
|
virtual gsSparseMatrix< T, MatOrder > | getBlockPUcomp (index_t i) const |
| Returns part of pressure-velocity block for i-th velocity component.
|
|
const gsSparseMatrix< T, MatOrder > & | getBlockUP () const |
| Returns the velocity-pressure block of the linear system.
|
|
virtual gsSparseMatrix< T, MatOrder > | getBlockUPcomp (index_t i) const |
| Returns the part of velocity-pressure block for i-th velocity component.
|
|
virtual gsSparseMatrix< T, MatOrder > | getBlockUU (bool linPartOnly=false) |
| Returns the velocity-velocity block of the linear system.
|
|
virtual gsSparseMatrix< T, MatOrder > | getBlockUUcompDiag (index_t i=0) |
| Returns the diagonal block of velocity-velocity block for i-th component.
|
|
const std::vector< gsMatrix< T > > & | getDirichletDofs () const |
| Returns a const reference to the vectors of coefficients at the Dirichlet boundaries.
|
|
const std::vector< gsDofMapper > & | getMappers () const |
| Returns a const reference to the DOF mappers.
|
|
virtual gsSparseMatrix< T, MatOrder > & | getMassMatrix (index_t unkID) |
| Returns the mass matrix for unknown with index unk. There is also a const version.
|
|
const gsMultiPatch< T > & | getPatches () const |
| Returns a const reference to the multipatch representing the computational domain.
|
|
index_t | getPdofs () const |
| Returns the number of pressure DOFs.
|
|
index_t | getPshift () const |
| Returns the DOF shift of pressure (i.e. the total number of velocity DOFs).
|
|
const gsFunction< T > * | getRhsFcn () const |
| Returns a pointer to the right-hand-side function.
|
|
gsMatrix< T > | getRhsP () const |
| Returns the pressure part of the right-hand side.
|
|
virtual gsMatrix< T > | getRhsU () const |
| ///
|
|
virtual gsMatrix< T > | getRhsUcomp (index_t i) const |
| ///
|
|
const gsMatrix< T > & | getSolution () const |
| Returns a const reference to the current computed solution.
|
|
short_t | getTarDim () const |
| Returns the target dimension.
|
|
index_t | getUdofs () const |
| Returns the number of velocity DOFs (one velocity component).
|
|
T | getViscosity () const |
| Returns the viscosity value.
|
|
virtual void | initialize () |
| Initialize the assembler.
|
|
bool | isInitialized () |
| Returns true if the assembler has been initialized.
|
|
virtual void | markDofsAsEliminatedZeros (const std::vector< gsMatrix< index_t > > &boundaryDofs, const index_t unk) |
| Eliminate given DOFs as homogeneous Dirichlet boundary.
|
|
virtual const gsSparseMatrix< T, MatOrder > & | matrix () const |
| Returns the assembled matrix.
|
|
virtual const gsSparseMatrix< T, MatOrder > & | matrix (index_t unk) const |
| Returns the assembled matrix for unknown with index unk (e.g. from two-equation turbulence models).
|
|
index_t | numDofs () const |
| Returns the number of degrees of freedom (DOFs).
|
|
index_t | numDofsUnk (index_t i) |
| Returns the number of DOFs for the i-th unknown.
|
|
gsOptionList | options () const |
| Returns the flow solver option list.
|
|
virtual const gsMatrix< T > & | rhs () const |
| Returns the assembled right-hand side.
|
|
virtual const gsMatrix< T > & | rhs (index_t unk) const |
| Returns the assembled right-hand side for unknown with index unk (e.g. from two-equation turbulence models).
|
|
virtual void | update (const gsMatrix< T > &solVector, bool updateSol=true) |
|
|
void | assembleBlock (gsFlowVisitor< T, MatOrder > &visitor, index_t testBasisID, gsSparseMatrix< T, MatOrder > &block, gsMatrix< T > &blockRhs) |
| Assemble a matrix block.
|
|
virtual void | assembleLinearPart () |
| Assemble the linear part of the problem.
|
|
virtual void | assembleNonlinearPart () |
| Assemble the linear part of the problem.
|
|
void | assembleRhs (gsFlowVisitor< T, MatOrder > &visitor, index_t testBasisID, gsMatrix< T > &rhs) |
| Assemble the right-hand side.
|
|
void | computeDirichletDofs (const index_t unk, const index_t basisID, gsMatrix< T > &ddofVector) |
| Compute the coefficients of the basis functions at the Dirichlet boundaries.
|
|
void | computeDirichletDofsIntpl (const index_t unk, const gsDofMapper &mapper, const gsMultiBasis< T > &mbasis, gsMatrix< T > &ddofVector) |
| Compute the coefficients of the basis functions at the Dirichlet boundaries using interpolation.
|
|
void | computeDirichletDofsL2Proj (const index_t unk, const gsDofMapper &mapper, const gsMultiBasis< T > &mbasis, gsMatrix< T > &ddofVector) |
| Compute the coefficients of the basis functions at the Dirichlet boundaries using L2-projection.
|
|
virtual void | fillBaseSystem () |
| Fill the linear part of the global matrix and right-hand side.
|
|
void | fillGlobalMat_PP (gsSparseMatrix< T, MatOrder > &globalMat, const gsSparseMatrix< T, MatOrder > &sourceMat) |
| Fill the pressure-pressure block into the global saddle-point matrix.
|
|
void | fillGlobalMat_PU (gsSparseMatrix< T, MatOrder > &globalMat, const gsSparseMatrix< T, MatOrder > &sourceMat) |
| Fill the pressure-velocity block into the global saddle-point matrix.
|
|
void | fillGlobalMat_UP (gsSparseMatrix< T, MatOrder > &globalMat, const gsSparseMatrix< T, MatOrder > &sourceMat) |
| Fill the velocity-pressure block into the global saddle-point matrix.
|
|
void | fillGlobalMat_UU (gsSparseMatrix< T, MatOrder > &globalMat, const gsSparseMatrix< T, MatOrder > &sourceMat) |
| Fill the velocity-velocity block into the global saddle-point matrix.
|
|
virtual void | fillSystem () |
| Add the nonlinear part to the given matrix and right-hand side.
|
|
void | initMembers () |
| Initialize the class members.
|
|
virtual void | updateAssembly () |
| Assemble all that needs to be updated in each nonlinear iteration.
|
|
virtual void | updateCurrentSolField (const gsMatrix< T > &solVector, bool updateSol) |
| Update the current solution field stored in the assembler (used as convection coefficient).
|
|
virtual void | updateDofMappers () |
| Update the DOF mappers in all visitors (when DOF numbers change, e.g. after markDofsAsEliminatedZeros()).
|
|
virtual void | updateSizes () |
| Update sizes of members (when DOF numbers change, e.g. after markDofsAsEliminatedZeros()).
|
|