HArD::Core3D
Hybrid Arbitrary Degree::Core 3D - Library to implement 3D schemes with vertex, edge, face and cell polynomials as unknowns
Loading...
Searching...
No Matches
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< doubleSystemMatrixType
 
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< doubleSystemMatrixType
 
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< doubleSystemMatrixType
 
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.
 
void assembleLinearSystem (const ForcingTermType &f, const VelocityType &u, const VorticityType &omega, const ViscosityType &nu)
 Assemble the global system

 
size_t dimension () const
 Returns the global problem dimension (without Lagrange multiplier, just velocity & pressure)
 
size_t nbSCDOFs_u () const
 Returns the number of statically condensed DOFs (velocity)
 
size_t nbSCDOFs_p () const
 Returns the number of statically condensed DOFs (pressure)
 
size_t nbSCDOFs () const
 Returns the number of statically condensed DOFs (both velocity and pressure)
 
size_t sizeSystem () const
 Returns the size of the statically condensed system (with Lagrange multiplier)
 
const XGradxGrad () const
 Returns the space XGrad.
 
const XCurlxCurl () const
 Returns the space XCurl.
 
const XDivxDiv () const
 Returns the space XDiv.
 
const SystemMatrixTypesystemMatrix () const
 Returns the linear system matrix.
 
SystemMatrixTypesystemMatrix ()
 Returns the linear system matrix.
 
const Eigen::VectorXd & systemVector () const
 Returns the linear system right-hand side vector.
 
Eigen::VectorXd & systemVector ()
 Returns the linear system right-hand side vector.
 
const SystemMatrixTypescMatrix () const
 Returns the static condensation recovery operator.
 
Eigen::VectorXd & scVector ()
 Returns the static condensation rhs.
 
const doublestabilizationParameter () const
 Returns the stabilization parameter.
 
doublestabilizationParameter ()
 Returns the stabilization parameter.
 
std::vector< StokesNormscomputeStokesNorms (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.
 
std::pair< StokesNorms, StokesNormscomputeContinuousErrorsNorms (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)
 
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).
 
 Stokes (const DDRCore &ddrcore, bool use_threads, std::ostream &output=std::cout)
 Constructor.
 
void assembleLinearSystem (const ForcingTermType &f, const VelocityType &u, const VorticityType &omega, const ViscosityType &nu)
 Assemble the global system

 
size_t dimensionSpace () const
 Returns the global problem dimension (without Lagrange multiplier, just velocity & pressure)
 
size_t nbSCDOFs_u () const
 Returns the number of statically condensed DOFs (velocity)
 
size_t nbSCDOFs_p () const
 Returns the number of statically condensed DOFs (pressure)
 
size_t nbSCDOFs () const
 Returns the number of statically condensed DOFs (both velocity and pressure)
 
size_t sizeSystem () const
 Returns the size of the statically condensed system (with Lagrange multiplier)
 
const SXGradsxGrad () const
 Returns the space SXGrad.
 
const SXCurlsxCurl () const
 Returns the space SXCurl.
 
const SXDivsxDiv () const
 Returns the space XDiv.
 
const SystemMatrixTypesystemMatrix () const
 Returns the linear system matrix.
 
SystemMatrixTypesystemMatrix ()
 Returns the linear system matrix.
 
const Eigen::VectorXd & systemVector () const
 Returns the linear system right-hand side vector.
 
Eigen::VectorXd & systemVector ()
 Returns the linear system right-hand side vector.
 
const SystemMatrixTypescMatrix () const
 Returns the static condensation recovery operator.
 
Eigen::VectorXd & scVector ()
 Returns the static condensation rhs.
 
const doublestabilizationParameter () const
 Returns the stabilization parameter.
 
doublestabilizationParameter ()
 Returns the stabilization parameter.
 
std::vector< StokesNormscomputeStokesNorms (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.
 
std::pair< StokesNorms, StokesNormscomputeContinuousErrorsNorms (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)
 
 Stokes (const VEMCore &vemcore, bool use_threads, std::ostream &output=std::cout)
 Constructor.
 
void assembleLinearSystem (const ForcingTermType &f, const ForcingTermType &curl_f, const VelocityType &u, const VorticityType &omega, const ViscosityType &nu)
 Assemble the global system

 
size_t dimension () const
 Returns the global problem dimension (without Lagrange multiplier, just velocity & pressure)
 
size_t nbSCDOFs_u () const
 Returns the number of statically condensed DOFs (velocity)
 
size_t nbSCDOFs_p () const
 Returns the number of statically condensed DOFs (pressure)
 
size_t nbSCDOFs () const
 Returns the number of statically condensed DOFs (both velocity and pressure)
 
size_t sizeSystem () const
 Returns the size of the statically condensed system (with Lagrange multiplier)
 
const VGradvGrad () const
 Returns the space VGrad.
 
const VCurlvCurl () const
 Returns the space VCurl.
 
const VDivvDiv () const
 Returns the space VDiv.
 
const SystemMatrixTypesystemMatrix () const
 Returns the linear system matrix.
 
SystemMatrixTypesystemMatrix ()
 Returns the linear system matrix.
 
const Eigen::VectorXd & systemVector () const
 Returns the linear system right-hand side vector.
 
Eigen::VectorXd & systemVector ()
 Returns the linear system right-hand side vector.
 
const SystemMatrixTypescMatrix () const
 Returns the static condensation recovery operator.
 
Eigen::VectorXd & scVector ()
 Returns the static condensation rhs.
 
const doublestabilizationParameter () const
 Returns the stabilization parameter.
 
doublestabilizationParameter ()
 Returns the stabilization parameter.
 
std::vector< StokesNormscomputeStokesNorms (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.
 
std::pair< StokesNorms, StokesNormscomputeContinuousErrorsNorms (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)
 

Detailed Description

Assemble a Stokes problem.


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