HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
Public Types | Public Member Functions | List of all members
HArDCore3D::Stokes Struct Reference

Assemble a Stokes problem. More...

#include <ddr-stokes.hpp>

Public Types

typedef Eigen::SparseMatrix< double > SystemMatrixType
 
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> ForcingTermType
 
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> VelocityType
 
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> VorticityType
 
typedef std::function< double(const Eigen::Vector3d &)> PressureType
 
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> PressureGradientType
 
typedef IntegralWeight ViscosityType
 
typedef Eigen::SparseMatrix< double > SystemMatrixType
 
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> ForcingTermType
 
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> VelocityType
 
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> VorticityType
 
typedef std::function< double(const Eigen::Vector3d &)> PressureType
 
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> PressureGradientType
 
typedef IntegralWeight ViscosityType
 
typedef Eigen::SparseMatrix< double > SystemMatrixType
 
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> ForcingTermType
 
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> VelocityType
 
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> VorticityType
 
typedef std::function< double(const Eigen::Vector3d &)> PressureType
 
typedef std::function< Eigen::Vector3d(const Eigen::Vector3d &)> PressureGradientType
 
typedef IntegralWeight ViscosityType
 

Public Member Functions

 Stokes (const DDRCore &ddrcore, bool use_threads, std::ostream &output=std::cout)
 Constructor. More...
 
void assembleLinearSystem (const ForcingTermType &f, const VelocityType &u, const VorticityType &omega, const ViscosityType &nu)
 Assemble the global system
More...
 
size_t dimension () const
 Returns the global problem dimension (without Lagrange multiplier, just velocity & pressure) More...
 
size_t nbSCDOFs_u () const
 Returns the number of statically condensed DOFs (velocity) More...
 
size_t nbSCDOFs_p () const
 Returns the number of statically condensed DOFs (pressure) More...
 
size_t nbSCDOFs () const
 Returns the number of statically condensed DOFs (both velocity and pressure) More...
 
size_t sizeSystem () const
 Returns the size of the statically condensed system (with Lagrange multiplier) More...
 
const XGrad & xGrad () const
 Returns the space XGrad. More...
 
const XCurl & xCurl () const
 Returns the space XCurl. More...
 
const XDiv & xDiv () const
 Returns the space XDiv. More...
 
const SystemMatrixType & systemMatrix () const
 Returns the linear system matrix. More...
 
SystemMatrixType & systemMatrix ()
 Returns the linear system matrix. More...
 
const Eigen::VectorXd & systemVector () const
 Returns the linear system right-hand side vector. More...
 
Eigen::VectorXd & systemVector ()
 Returns the linear system right-hand side vector. More...
 
const SystemMatrixType & scMatrix () const
 Returns the static condensation recovery operator. More...
 
Eigen::VectorXd & scVector ()
 Returns the static condensation rhs. More...
 
const double & stabilizationParameter () const
 Returns the stabilization parameter. More...
 
double & stabilizationParameter ()
 Returns the stabilization parameter. More...
 
std::vector< StokesNorms > computeStokesNorms (const std::vector< Eigen::VectorXd > &list_dofs) const
 Compute the discrete L2 norms, for a family of Eigen::VectorXd representing velocities & pressures, of u, curl u, p and grad p. More...
 
std::pair< StokesNorms, StokesNorms > computeContinuousErrorsNorms (const Eigen::VectorXd &v, const VelocityType &u, const VorticityType &curl_u, const PressureType &p, const PressureGradientType &grad_p) const
 Compute the continuous Hcurl errors in u and Hgrad error in p (1st component), and same with continuous norms (second component) More...
 
double evaluateDefectCommutationGradInterp (const PressureType &p, const PressureGradientType &grad_p, const size_t deg_quad_interpolate) const
 Evaluate the defect of commutation G_h (Igrad p) = Icurl (grad p) by computing the norm of the difference (which should be 0). More...
 
 Stokes (const DDRCore &ddrcore, bool use_threads, std::ostream &output=std::cout)
 Constructor. More...
 
void assembleLinearSystem (const ForcingTermType &f, const VelocityType &u, const VorticityType &omega, const ViscosityType &nu)
 Assemble the global system
More...
 
size_t dimensionSpace () const
 Returns the global problem dimension (without Lagrange multiplier, just velocity & pressure) More...
 
size_t nbSCDOFs_u () const
 Returns the number of statically condensed DOFs (velocity) More...
 
size_t nbSCDOFs_p () const
 Returns the number of statically condensed DOFs (pressure) More...
 
size_t nbSCDOFs () const
 Returns the number of statically condensed DOFs (both velocity and pressure) More...
 
size_t sizeSystem () const
 Returns the size of the statically condensed system (with Lagrange multiplier) More...
 
const SXGrad & sxGrad () const
 Returns the space SXGrad. More...
 
const SXCurl & sxCurl () const
 Returns the space SXCurl. More...
 
const SXDiv & sxDiv () const
 Returns the space XDiv. More...
 
const SystemMatrixType & systemMatrix () const
 Returns the linear system matrix. More...
 
SystemMatrixType & systemMatrix ()
 Returns the linear system matrix. More...
 
const Eigen::VectorXd & systemVector () const
 Returns the linear system right-hand side vector. More...
 
Eigen::VectorXd & systemVector ()
 Returns the linear system right-hand side vector. More...
 
const SystemMatrixType & scMatrix () const
 Returns the static condensation recovery operator. More...
 
Eigen::VectorXd & scVector ()
 Returns the static condensation rhs. More...
 
const double & stabilizationParameter () const
 Returns the stabilization parameter. More...
 
double & stabilizationParameter ()
 Returns the stabilization parameter. More...
 
std::vector< StokesNorms > computeStokesNorms (const std::vector< Eigen::VectorXd > &list_dofs) const
 Compute the discrete L2 norms, for a family of Eigen::VectorXd representing velocities & pressures, of u, curl u, p and grad p. More...
 
std::pair< StokesNorms, StokesNorms > computeContinuousErrorsNorms (const Eigen::VectorXd &v, const VelocityType &u, const VorticityType &curl_u, const PressureType &p, const PressureGradientType &grad_p) const
 Compute the continuous Hcurl errors in u and Hgrad error in p (1st component), and same with continuous norms (second component) More...
 
 Stokes (const VEMCore &vemcore, bool use_threads, std::ostream &output=std::cout)
 Constructor. More...
 
void assembleLinearSystem (const ForcingTermType &f, const ForcingTermType &curl_f, const VelocityType &u, const VorticityType &omega, const ViscosityType &nu)
 Assemble the global system
More...
 
size_t dimension () const
 Returns the global problem dimension (without Lagrange multiplier, just velocity & pressure) More...
 
size_t nbSCDOFs_u () const
 Returns the number of statically condensed DOFs (velocity) More...
 
size_t nbSCDOFs_p () const
 Returns the number of statically condensed DOFs (pressure) More...
 
size_t nbSCDOFs () const
 Returns the number of statically condensed DOFs (both velocity and pressure) More...
 
size_t sizeSystem () const
 Returns the size of the statically condensed system (with Lagrange multiplier) More...
 
const VGrad & vGrad () const
 Returns the space VGrad. More...
 
const VCurl & vCurl () const
 Returns the space VCurl. More...
 
const VDiv & vDiv () const
 Returns the space VDiv. More...
 
const SystemMatrixType & systemMatrix () const
 Returns the linear system matrix. More...
 
SystemMatrixType & systemMatrix ()
 Returns the linear system matrix. More...
 
const Eigen::VectorXd & systemVector () const
 Returns the linear system right-hand side vector. More...
 
Eigen::VectorXd & systemVector ()
 Returns the linear system right-hand side vector. More...
 
const SystemMatrixType & scMatrix () const
 Returns the static condensation recovery operator. More...
 
Eigen::VectorXd & scVector ()
 Returns the static condensation rhs. More...
 
const double & stabilizationParameter () const
 Returns the stabilization parameter. More...
 
double & stabilizationParameter ()
 Returns the stabilization parameter. More...
 
std::vector< StokesNorms > computeStokesNorms (const std::vector< Eigen::VectorXd > &list_dofs) const
 Compute the discrete L2 norms, for a family of Eigen::VectorXd representing velocities & pressures, of u, curl u, p and grad p. More...
 
std::pair< StokesNorms, StokesNorms > computeContinuousErrorsNorms (const Eigen::VectorXd &v, const VelocityType &u, const VorticityType &curl_u, const PressureType &p, const PressureGradientType &grad_p) const
 Compute the continuous Hcurl errors in u and Hgrad error in p (1st component), and same with continuous norms (second component) More...
 

Detailed Description

Assemble a Stokes problem.


The documentation for this struct was generated from the following files: