Galeri::FiniteElements::SUPGVariational< T > Class Template Reference

SUPG discretization of an advection-diffusion PDE. More...

#include <Galeri_SUPGVariational.h>

Inheritance diagram for Galeri::FiniteElements::SUPGVariational< T >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 SUPGVariational (const int NumQuadratureNodes, double(*diff)(const double &, const double &, const double &), double(*bx)(const double &, const double &, const double &), double(*by)(const double &, const double &, const double &), double(*bz)(const double &, const double &, const double &), double(*source)(const double &, const double &, const double &), double(*force)(const double &, const double &, const double &), double(*bc)(const double &, const double &, const double &, const int &), int(*bc_type)(const int &))
 Constructor.
 ~SUPGVariational ()
 Destructor.
double diff (const double x, const double y, const double z) const
 Evaluates the diffusion coefficient at point (x, y, z).
double source (const double x, const double y, const double z) const
 Evaluates the source term at point (x, y, z).
double force (const double x, const double y, const double z) const
 Evaluates the force term at point (x, y, z).
double conv_x (const double x, const double y, const double z) const
 Evaluates the x-component of the convective term at point (x, y, z).
double conv_y (const double x, const double y, const double z) const
 Evaluates the y-component of the convective term at point (x, y, z).
double conv_z (const double x, const double y, const double z) const
 Evaluates the z-component of the convective term at point (x, y, z).
virtual int IntegrateOverElement (const AbstractVariational &Variational, const double *x, const double *y, const double *z, const double *data, double *ElementMatrix, double *ElementRHS) const
 Integrates the bilinear form and the right-hand side over the element.
virtual int ElementNorm (const double *LocalSol, const double *x, const double *y, const double *z, double *Norm) const
 Computes the norm of the computed solution over the element.
virtual int ElementNorm (int(*ExactSolution)(double, double, double, double *), const double *x, const double *y, const double *z, double *Norm) const
 Computed the norm of the exact solution over the element.
virtual int ElementNorm (const double *LocalSol, int(*ExactSolution)(double, double, double, double *), const double *x, const double *y, const double *z, double *Norm) const
 Computed the norm of the computed and exact solution over the element.
double LHS (const double Phi, const double Psi, const double PhiX, const double PsiX, const double PhiY, const double PsiY, const double PhiZ, const double PsiZ, const double x, const double y, const double z) const
 Evaluates the bilinear form (without integral) at point (x,y,z).
double RHS (const double Psi, const double PsiX, const double PsiY, const double PsiZ, const double x, const double y, const double z) const
 Returns the value of the right-hand side (without integral) at point (x, y, z).
int BC (const int PatchID) const
 Returns an integer identifying the boundary condition assigned to the specified patch.
double BC (const double x, const double y, const double z, const int Patch) const
 Returns the value of the boundary condition at point (x, y, z).

Private Member Functions

double ConvNorm (const double x, const double y, const double z) const
 Computes the norm of the convective term a point (x, y, z).

Private Attributes

double(* diff_ )(const double &x, const double &y, const double &z)
double(* source_ )(const double &x, const double &y, const double &z)
double(* conv_x_ )(const double &x, const double &y, const double &z)
double(* conv_y_ )(const double &x, const double &y, const double &z)
double(* conv_z_ )(const double &x, const double &y, const double &z)
double(* force_ )(const double &x, const double &y, const double &z)
double(* bc_ )(const double &x, const double &y, const double &z, const int &Patch)
int(* bc_type_ )(const int &Patch)
double tau_

Detailed Description

template<class T>
class Galeri::FiniteElements::SUPGVariational< T >

SUPG discretization of an advection-diffusion PDE.

This class performs the finite element discretization of a scalar, advection-diffusion PDE, using the SUPG stabilization and the coth formula for the definition of tau. This class works only with triangles and tetrahedra.

Author:
Marzio Sala, SNL 9214.
Date:
Last updated on Apr-05.

Definition at line 59 of file Galeri_SUPGVariational.h.


Constructor & Destructor Documentation

template<class T >
Galeri::FiniteElements::SUPGVariational< T >::SUPGVariational ( const int  NumQuadratureNodes,
double(*)(const double &, const double &, const double &)  diff,
double(*)(const double &, const double &, const double &)  bx,
double(*)(const double &, const double &, const double &)  by,
double(*)(const double &, const double &, const double &)  bz,
double(*)(const double &, const double &, const double &)  source,
double(*)(const double &, const double &, const double &)  force,
double(*)(const double &, const double &, const double &, const int &)  bc,
int(*)(const int &)  bc_type 
) [inline]

Constructor.

Definition at line 64 of file Galeri_SUPGVariational.h.

template<class T >
Galeri::FiniteElements::SUPGVariational< T >::~SUPGVariational (  )  [inline]

Destructor.

Definition at line 85 of file Galeri_SUPGVariational.h.


Member Function Documentation

template<class T >
double Galeri::FiniteElements::SUPGVariational< T >::diff ( const double  x,
const double  y,
const double  z 
) const [inline]

Evaluates the diffusion coefficient at point (x, y, z).

Definition at line 88 of file Galeri_SUPGVariational.h.

template<class T >
double Galeri::FiniteElements::SUPGVariational< T >::source ( const double  x,
const double  y,
const double  z 
) const [inline]

Evaluates the source term at point (x, y, z).

Definition at line 94 of file Galeri_SUPGVariational.h.

template<class T >
double Galeri::FiniteElements::SUPGVariational< T >::force ( const double  x,
const double  y,
const double  z 
) const [inline]

Evaluates the force term at point (x, y, z).

Definition at line 100 of file Galeri_SUPGVariational.h.

template<class T >
double Galeri::FiniteElements::SUPGVariational< T >::conv_x ( const double  x,
const double  y,
const double  z 
) const [inline]

Evaluates the x-component of the convective term at point (x, y, z).

Definition at line 106 of file Galeri_SUPGVariational.h.

template<class T >
double Galeri::FiniteElements::SUPGVariational< T >::conv_y ( const double  x,
const double  y,
const double  z 
) const [inline]

Evaluates the y-component of the convective term at point (x, y, z).

Definition at line 112 of file Galeri_SUPGVariational.h.

template<class T >
double Galeri::FiniteElements::SUPGVariational< T >::conv_z ( const double  x,
const double  y,
const double  z 
) const [inline]

Evaluates the z-component of the convective term at point (x, y, z).

Definition at line 118 of file Galeri_SUPGVariational.h.

template<class T >
virtual int Galeri::FiniteElements::SUPGVariational< T >::IntegrateOverElement ( const AbstractVariational Variational,
const double *  x,
const double *  y,
const double *  z,
const double *  data,
double *  ElementMatrix,
double *  ElementRHS 
) const [inline, virtual]

Integrates the bilinear form and the right-hand side over the element.

Implements Galeri::FiniteElements::AbstractVariational.

Definition at line 123 of file Galeri_SUPGVariational.h.

template<class T >
virtual int Galeri::FiniteElements::SUPGVariational< T >::ElementNorm ( const double *  LocalSol,
const double *  x,
const double *  y,
const double *  z,
double *  Norm 
) const [inline, virtual]

Computes the norm of the computed solution over the element.

Implements Galeri::FiniteElements::AbstractVariational.

Definition at line 173 of file Galeri_SUPGVariational.h.

template<class T >
virtual int Galeri::FiniteElements::SUPGVariational< T >::ElementNorm ( int(*)(double, double, double, double *)  ExactSolution,
const double *  x,
const double *  y,
const double *  z,
double *  Norm 
) const [inline, virtual]

Computed the norm of the exact solution over the element.

Implements Galeri::FiniteElements::AbstractVariational.

Definition at line 206 of file Galeri_SUPGVariational.h.

template<class T >
virtual int Galeri::FiniteElements::SUPGVariational< T >::ElementNorm ( const double *  LocalSol,
int(*)(double, double, double, double *)  ExactSolution,
const double *  x,
const double *  y,
const double *  z,
double *  Norm 
) const [inline, virtual]

Computed the norm of the computed and exact solution over the element.

Implements Galeri::FiniteElements::AbstractVariational.

Definition at line 232 of file Galeri_SUPGVariational.h.

template<class T >
double Galeri::FiniteElements::SUPGVariational< T >::LHS ( const double  Phi,
const double  Psi,
const double  PhiX,
const double  PsiX,
const double  PhiY,
const double  PsiY,
const double  PhiZ,
const double  PsiZ,
const double  x,
const double  y,
const double  z 
) const [inline, virtual]

Evaluates the bilinear form (without integral) at point (x,y,z).

Implements Galeri::FiniteElements::AbstractVariational.

Definition at line 273 of file Galeri_SUPGVariational.h.

template<class T >
double Galeri::FiniteElements::SUPGVariational< T >::RHS ( const double  Psi,
const double  PsiX,
const double  PsiY,
const double  PsiZ,
const double  x,
const double  y,
const double  z 
) const [inline, virtual]

Returns the value of the right-hand side (without integral) at point (x, y, z).

Implements Galeri::FiniteElements::AbstractVariational.

Definition at line 298 of file Galeri_SUPGVariational.h.

template<class T >
int Galeri::FiniteElements::SUPGVariational< T >::BC ( const int  PatchID  )  const [inline, virtual]

Returns an integer identifying the boundary condition assigned to the specified patch.

Implements Galeri::FiniteElements::AbstractVariational.

Definition at line 312 of file Galeri_SUPGVariational.h.

template<class T >
double Galeri::FiniteElements::SUPGVariational< T >::BC ( const double  x,
const double  y,
const double  z,
const int  PatchID 
) const [inline, virtual]

Returns the value of the boundary condition at point (x, y, z).

Implements Galeri::FiniteElements::AbstractVariational.

Definition at line 317 of file Galeri_SUPGVariational.h.

template<class T >
double Galeri::FiniteElements::SUPGVariational< T >::ConvNorm ( const double  x,
const double  y,
const double  z 
) const [inline, private]

Computes the norm of the convective term a point (x, y, z).

Definition at line 324 of file Galeri_SUPGVariational.h.


Member Data Documentation

template<class T >
double(* Galeri::FiniteElements::SUPGVariational< T >::diff_)(const double &x, const double &y, const double &z) [private]

Definition at line 332 of file Galeri_SUPGVariational.h.

template<class T >
double(* Galeri::FiniteElements::SUPGVariational< T >::source_)(const double &x, const double &y, const double &z) [private]

Definition at line 333 of file Galeri_SUPGVariational.h.

template<class T >
double(* Galeri::FiniteElements::SUPGVariational< T >::conv_x_)(const double &x, const double &y, const double &z) [private]

Definition at line 334 of file Galeri_SUPGVariational.h.

template<class T >
double(* Galeri::FiniteElements::SUPGVariational< T >::conv_y_)(const double &x, const double &y, const double &z) [private]

Definition at line 335 of file Galeri_SUPGVariational.h.

template<class T >
double(* Galeri::FiniteElements::SUPGVariational< T >::conv_z_)(const double &x, const double &y, const double &z) [private]

Definition at line 336 of file Galeri_SUPGVariational.h.

template<class T >
double(* Galeri::FiniteElements::SUPGVariational< T >::force_)(const double &x, const double &y, const double &z) [private]

Definition at line 337 of file Galeri_SUPGVariational.h.

template<class T >
double(* Galeri::FiniteElements::SUPGVariational< T >::bc_)(const double &x, const double &y, const double &z, const int &Patch) [private]

Definition at line 338 of file Galeri_SUPGVariational.h.

template<class T >
int(* Galeri::FiniteElements::SUPGVariational< T >::bc_type_)(const int &Patch) [private]

Definition at line 339 of file Galeri_SUPGVariational.h.

template<class T >
double Galeri::FiniteElements::SUPGVariational< T >::tau_ [mutable, private]

Definition at line 340 of file Galeri_SUPGVariational.h.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Defines
Generated on Wed Apr 13 10:08:41 2011 for Galeri Package Browser (Single Doxygen Collection) by  doxygen 1.6.3