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

#include <polynomial.h>

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

Public Member Functions

 PolynomialError (const Parameters &par, const std::vector< Polynomials::Polynomial< double >> potentials_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

dealii::SmartPointer< const Parameters, class Residual< dim > > parameters
 
std::vector< Polynomials::Polynomial< double > > potentials_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 Elasticity::PolynomialError< dim >

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

Since we are planning to use this even in the nearly incompressible case, we use Helmholtz decomposition and represent the solution as the sum of the gradient of one polynomial and the curl of either one (id 2D) or three (in 3D) polynomials. These are in the vector of polynomials $$ given to the constructor, such that the gradient potential is first.

\begin{alignat*}{2} \mathbf u &= \nabla \phi_0 + \nabla\times \phi_1 & \text{2D} \\ \mathbf u &= \nabla \phi_0 + \nabla\times (\phi_1,\dots,\phi_3)^T & \text{3D} \\ \end{alignat*}

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

Here, we use the formulas

\begin{gather*} 2 \nabla \cdot \epsilon(u) = 2 \nabla \cdot \begin{pmatrix} \partial_1 u_1 & \tfrac{\partial_2 u_1 + \partial_1 u_2}{2}\\ \tfrac{\partial_2 u_1 + \partial_1 u_2}{2} & \partial_2 u_2 \end{pmatrix} = \begin{pmatrix} 2 \partial_{11} u_1 + \partial_{22} u_1 + \partial_{12} u_2 \\ 2 \partial_{22} u_2 + \partial_{11} u_2 + \partial_{12} u_1 \end{pmatrix} \end{gather*}

Author
Guido Kanschat
Date
2014

Constructor & Destructor Documentation

template<int dim>
Elasticity::PolynomialError< dim >::PolynomialError ( const Parameters &  par,
const std::vector< Polynomials::Polynomial< double >>  potentials_1d 
)

Member Function Documentation

template<int dim>
void Elasticity::PolynomialError< dim >::boundary ( DoFInfo< dim > &  dinfo,
IntegrationInfo< dim > &  info 
) const
virtual
template<int dim>
void Elasticity::PolynomialError< dim >::cell ( DoFInfo< dim > &  dinfo,
IntegrationInfo< dim > &  info 
) const
virtual
template<int dim>
void Elasticity::PolynomialError< dim >::face ( DoFInfo< dim > &  dinfo1,
DoFInfo< dim > &  dinfo2,
IntegrationInfo< dim > &  info1,
IntegrationInfo< dim > &  info2 
) const
virtual

Member Data Documentation

template<int dim>
dealii::SmartPointer<const Parameters, class Residual<dim> > Elasticity::PolynomialError< dim >::parameters
private
template<int dim>
std::vector<Polynomials::Polynomial<double> > Elasticity::PolynomialError< dim >::potentials_1d
private

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