| FEAT 3
    Finite Element Analysis Toolbox | 
Oldroyd-B operator assembly class. More...
#include <oldroyd_assembler.hpp>
| Static Public Member Functions | |
| template<typename DT_ , typename IT_ , typename SpaceV_ , typename SpaceS_ , int dim_, int nsc_> | |
| static void | assemble_matrix (LAFEM::SparseMatrixBCSR< DT_, IT_, nsc_, nsc_ > &matrix, const LAFEM::DenseVectorBlocked< DT_, IT_, dim_ > &convect, const SpaceV_ &space_v, const SpaceS_ &space_s, const Cubature::DynamicFactory &cubature_factory, const DT_ lambda, const DT_ gamma=DT_(1), const DT_ zeta=DT_(1)) | 
| Assembles the Oldroyd operator onto a stress matrix.  More... | |
| Static Protected Member Functions | |
| template<typename DT_ > | |
| static void | core_eval (Tiny::Matrix< DT_, 3, 3, 3, 3 > &M, const Tiny::Matrix< DT_, 2, 2, 2, 2 > &G, const DT_ omega) | 
| Auxiliary evaluation function: symmetric 2D version.  More... | |
| template<typename DT_ > | |
| static void | core_eval (Tiny::Matrix< DT_, 4, 4, 4, 4 > &M, const Tiny::Matrix< DT_, 2, 2, 2, 2 > &G, const DT_ omega) | 
| Auxiliary evaluation function: unsymmetric 2D version.  More... | |
Oldroyd-B operator assembly class.
This class is responsible for assembling the upper convected time derivative operator
\[ \lambda\sigma + \gamma v\cdot\nabla\sigma - \zeta(\nabla v\cdot\sigma + \sigma\cdot\nabla v^\top)\]
which is used in the Oldroyd-B model for the stress tensor \(\sigma\) in a 3-field Stokes formulation.
This class can assemble the above mentioned operator for both symmetric and unsymmetric representations of \(\sigma\), where stress tensor is encoded as a block vector in the following fashion:
Definition at line 36 of file oldroyd_assembler.hpp.
| 
 | inlinestatic | 
Assembles the Oldroyd operator onto a stress matrix.
| [in,out] | matrix | The transient matrix to be assembled. | 
| [in] | convect | The transient velocity field vector v. | 
| [in] | space_v | The transient velocity space. | 
| [in] | space_s | The transient stress space. | 
| [in] | cubature_factory | The cubature factory to be used for integration. | 
| [in] | lambda | The scaling factor \(\lambda\) for the reactive term \(\sigma\). | 
| [in] | gamma | The scaling factor \(\gamma\) for the convective term \(v\cdot\nabla\sigma\) | 
| [in] | zeta | The scaling factor \(\zeta\) for the complicated term \(\nabla v\cdot\sigma + \sigma\cdot\nabla v^\top\). | 
Definition at line 67 of file oldroyd_assembler.hpp.
References FEAT::Tiny::Matrix< T_, m_, n_, sm_, sn_ >::add_outer_product(), FEAT::Tiny::Matrix< T_, m_, n_, sm_, sn_ >::add_scalar_main_diag(), FEAT::Tiny::Vector< T_, n_, s_ >::axpy(), FEAT::LAFEM::SparseMatrixBCSR< DT_, IT_, BlockHeight_, BlockWidth_ >::columns(), core_eval(), FEAT::Tiny::dot(), FEAT::Tiny::Vector< T_, n_, s_ >::format(), FEAT::Tiny::Matrix< T_, m_, n_, sm_, sn_ >::format(), FEAT::grad, FEAT::jac_det, FEAT::LAFEM::SparseMatrixBCSR< DT_, IT_, BlockHeight_, BlockWidth_ >::rows(), FEAT::LAFEM::DenseVectorBlocked< DT_, IT_, BlockSize_ >::size(), FEAT::value, and XASSERTM.
| 
 | inlinestaticprotected | 
Auxiliary evaluation function: symmetric 2D version.
This function evaluates the 2D version of the term \(\nabla v\cdot\sigma + \sigma\cdot\nabla v^\top\) while exploiting the symmetry of the stress tensor, thus resulting in a (reduced) 3x3 matrix.
The components of the stress tensor are assumed to be ordered as (sigma_11, sigma_22, sigma_12).
Definition at line 305 of file oldroyd_assembler.hpp.
| 
 | inlinestaticprotected | 
Auxiliary evaluation function: unsymmetric 2D version.
This function evaluates the 2D version of the term \(\nabla v\cdot\sigma + \sigma\cdot\nabla v^\top\) without exploiting the symmetry of the stress tensor, thus resulting in a 4x4 matrix.
The components of the stress tensor are assumed to be ordered as (sigma_11, sigma_12, sigma_21, sigma_22).
Definition at line 241 of file oldroyd_assembler.hpp.
Referenced by assemble_matrix().