G+Smo  25.01.0
Geometry + Simulation Modules
 
Loading...
Searching...
No Matches
gsFlowVisitor< T, MatOrder > Class Template Reference

Detailed Description

template<class T, int MatOrder>
class gismo::gsFlowVisitor< T, MatOrder >

Base class for incompressible flow visitors.

Template Parameters
Treal number type
MatOrdersparse matrix storage order (ColMajor/RowMajor)

Inherited by gsFlowVisitorVectorValued< T, MatOrder >, gsINSVisitorPP< T, MatOrder >, gsINSVisitorRhsP< T, MatOrder >, gsINSVisitorRhsU< T, MatOrder >, and gsINSVisitorUU< T, MatOrder >.

+ Collaboration diagram for gsFlowVisitor< T, MatOrder >:

Public Member Functions

virtual void assemble ()
 Assemble the local matrix.
 
void evaluate (const gsDomainIterator< T > *domIt)
 Evaluate basis data on the current element (used for element-by-element assembly).
 
void evaluate (index_t testFunID)
 Evaluate basis data on the support of a given test function (used for row-by-row assembly).
 
void initialize ()
 Initialize the visitor.
 
void initOnPatch (index_t patchID)
 Initialize the visitor on the given patch.
 
virtual void localToGlobal (const std::vector< gsMatrix< T > > &eliminatedDofs, gsSparseMatrix< T, MatOrder > &globalMat, gsMatrix< T > &globalRhs)
 Map local matrix to the global matrix.
 
virtual void localToGlobal (gsMatrix< T > &globalRhs)
 Map local rhs vector to the global rhs vector.
 
void setCurrentSolution (gsField< T > &solution)
 Set the current solution field.
 
void setCurrentSolution (std::vector< gsField< T > > &solutions)
 Set all needed current solution fields.
 
void updateDofMappers (const std::vector< gsDofMapper > &mappers)
 Update DoF mappers.
 

Protected Member Functions

virtual void defineTerms ()
 Define terms to be evaluated according to visitor type and given parameters.
 
virtual void defineTestShapeBases ()
 Set pointers to test and shape basis.
 
virtual void defineTestShapeUnknowns ()
 Set test and shape basis unknown IDs according to visitor type.
 
void evalBasisData (const unsigned &basisFlags, const gsBasis< T > *basisPtr, gsMatrix< index_t > &activesUnique, std::vector< gsMatrix< T > > &basisData)
 Evaluate required data for the given basis.
 
void evalSingleFunData (const unsigned &basisFlags, const gsBasis< T > *basisPtr, const index_t funID, std::vector< gsMatrix< T > > &basisData)
 Evaluate required data for the given basis function.
 
void gatherEvalFlags ()
 Gather evaluation flags from all terms.
 
virtual void setupQuadrature ()
 Setup the quadrature rule.
 

Member Function Documentation

◆ evalBasisData()

template<class T , int MatOrder>
void evalBasisData ( const unsigned &  basisFlags,
const gsBasis< T > *  basisPtr,
gsMatrix< index_t > &  activesUnique,
std::vector< gsMatrix< T > > &  basisData 
)
protected

Evaluate required data for the given basis.

Parameters
[in]basisFlagsevaluation flags
[in]basisPtrthe given basis
[out]activesUniquevector of indices of basis functions that are nonzero in any of quNodes
[out]basisDataresulting data

◆ evalSingleFunData()

template<class T , int MatOrder>
void evalSingleFunData ( const unsigned &  basisFlags,
const gsBasis< T > *  basisPtr,
const index_t  funID,
std::vector< gsMatrix< T > > &  basisData 
)
protected

Evaluate required data for the given basis function.

Parameters
[in]basisFlagsevaluation flags
[in]basisPtrthe given basis
[in]funIDindex of the function to be evaluated
[out]basisDataresulting data

◆ evaluate() [1/2]

template<class T , int MatOrder>
void evaluate ( const gsDomainIterator< T > *  domIt)

Evaluate basis data on the current element (used for element-by-element assembly).

Parameters
[in]domItdomain iterator pointing to the current element

◆ evaluate() [2/2]

template<class T , int MatOrder>
void evaluate ( index_t  testFunID)

Evaluate basis data on the support of a given test function (used for row-by-row assembly).

Parameters
[in]testFunIDthe local test function index on the current patch

◆ initOnPatch()

template<class T , int MatOrder>
void initOnPatch ( index_t  patchID)

Initialize the visitor on the given patch.

Parameters
[in]patchIDthe patch number

◆ localToGlobal() [1/2]

template<class T , int MatOrder>
virtual void localToGlobal ( const std::vector< gsMatrix< T > > &  eliminatedDofs,
gsSparseMatrix< T, MatOrder > &  globalMat,
gsMatrix< T > &  globalRhs 
)
inlinevirtual

Map local matrix to the global matrix.

Parameters
[in]eliminatedDofscoefficients of the eliminated Dirichlet DoFs
[out]globalMatresulting global matrix
[out]globalRhsresulting global rhs

◆ localToGlobal() [2/2]

template<class T , int MatOrder>
virtual void localToGlobal ( gsMatrix< T > &  globalRhs)
inlinevirtual

Map local rhs vector to the global rhs vector.

Parameters
[out]globalRhsresulting global rhs

◆ setCurrentSolution() [1/2]

template<class T , int MatOrder>
void setCurrentSolution ( gsField< T > &  solution)

Set the current solution field.

Parameters
[in]solutionnew solution field

◆ setCurrentSolution() [2/2]

template<class T , int MatOrder>
void setCurrentSolution ( std::vector< gsField< T > > &  solutions)

Set all needed current solution fields.

Parameters
[in]solutionsvector of new solution fields

◆ updateDofMappers()

template<class T , int MatOrder>
void updateDofMappers ( const std::vector< gsDofMapper > &  mappers)
inline

Update DoF mappers.

Parameters
[in]mappersnew mappers