Amandus: Simulations based on multilevel Schwarz methods
Public Member Functions | Private Attributes | List of all members
StokesIntegrators::PolynomialError< dim > Class Template Reference

#include <polynomial.h>

Inheritance diagram for StokesIntegrators::PolynomialError< dim >:
Inheritance graph
[legend]
Collaboration diagram for StokesIntegrators::PolynomialError< dim >:
Collaboration graph
[legend]

Public Member Functions

 PolynomialError (const Polynomials::Polynomial< double > curl_potential_1d, const Polynomials::Polynomial< double > grad_potential_1d)
 
virtual void cell (DoFInfo< dim > &dinfo, IntegrationInfo< dim > &info) const
 
virtual void boundary (DoFInfo< dim > &dinfo, IntegrationInfo< dim > &info) const
 
virtual void face (DoFInfo< dim > &dinfo1, DoFInfo< dim > &dinfo2, IntegrationInfo< dim > &info1, IntegrationInfo< dim > &info2) const
 
- Public Member Functions inherited from AmandusIntegrator< dim >
 AmandusIntegrator ()
 
virtual void extract_data (const dealii::AnyData &data)
 Extract data independent of the cell. More...
 
unsigned int n_errors () const
 
unsigned int error_type (unsigned int i) const
 
std::string error_name (unsigned int i) const
 
dealii::UpdateFlags update_flags () const
 Returns the update flags to be used. More...
 
dealii::UpdateFlags update_flags_face () const
 Returns the update flags to be used on boundary and interior faces. More...
 
void add_flags (const dealii::UpdateFlags flags)
 Add update flags on all objects. More...
 
void add_flags_face (const dealii::UpdateFlags flags)
 Add update flags on boundary and internal faces. More...
 

Private Attributes

Polynomials::Polynomial< double > curl_potential_1d
 
Polynomials::Polynomial< double > grad_potential_1d
 

Additional Inherited Members

- Public Attributes inherited from AmandusIntegrator< dim >
double timestep
 Current timestep if applicable. More...
 
dealii::SmartPointer< dealii::Quadrature< dim > > cell_quadrature
 Quadrature rule used on cells. More...
 
dealii::SmartPointer< dealii::Quadrature< dim-1 > > boundary_quadrature
 Quadrature rule used on boundary faces. More...
 
dealii::SmartPointer< dealii::Quadrature< dim-1 > > face_quadrature
 Quadrature rule used on faces. More...
 
- Protected Attributes inherited from AmandusIntegrator< dim >
std::vector< unsigned int > error_types
 
std::vector< std::string > error_names
 

Detailed Description

template<int dim>
class StokesIntegrators::PolynomialError< dim >

Computes the error between a numerical solution and a known exact polynomial solution of a Stokes problem.

For two dimensions, the two constructor arguments are two one-dimensional polynomials \(\psi(t)\) and \(\phi(t)\). The solution to such the Stokes problem is then determined as

\begin{alignat*}{2} \mathbf u &= \nabla\times \Psi \qquad\qquad & \Psi((x_1,\ldots,x_d) &= \prod \psi(x_i) \\ p &= \Phi & \Phi((x_1,\ldots,x_d) &= \prod \phi(x_i) \end{alignat*}

The according right hand sides of the Stokes equations and the residuals are integrated by the functions of the classes PolynomialRHS and PolynomialResidual.

If computing on a square, say \([-1,1]^2\), the boundary conditions of the Stokes problem are determined as follows: if \(\psi(-1)=\psi(1)=0\), the velocity has the boundary condition \(\mathbf u\cdot \mathbf n=0\) (slip). If in addition \(\psi'(-1)=\psi'(1)=0\), then there holds on the boundary \(\mathbf u=0\) (no-slip).

Note
No reasonable iplementation for three dimensions is provided.
Author
Guido Kanschat
Date
2014

Constructor & Destructor Documentation

template<int dim>
StokesIntegrators::PolynomialError< dim >::PolynomialError ( const Polynomials::Polynomial< double >  curl_potential_1d,
const Polynomials::Polynomial< double >  grad_potential_1d 
)

Member Function Documentation

template<int dim>
void StokesIntegrators::PolynomialError< dim >::boundary ( DoFInfo< dim > &  dinfo,
IntegrationInfo< dim > &  info 
) const
virtual
template<int dim>
void StokesIntegrators::PolynomialError< dim >::cell ( DoFInfo< dim > &  dinfo,
IntegrationInfo< dim > &  info 
) const
virtual

Here is the call graph for this function:

template<int dim>
void StokesIntegrators::PolynomialError< dim >::face ( DoFInfo< dim > &  dinfo1,
DoFInfo< dim > &  dinfo2,
IntegrationInfo< dim > &  info1,
IntegrationInfo< dim > &  info2 
) const
virtual

Member Data Documentation

template<int dim>
Polynomials::Polynomial<double> StokesIntegrators::PolynomialError< dim >::curl_potential_1d
private
template<int dim>
Polynomials::Polynomial<double> StokesIntegrators::PolynomialError< dim >::grad_potential_1d
private

The documentation for this class was generated from the following file: