Galeri Development
Loading...
Searching...
No Matches
Public Member Functions | List of all members
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]
Collaboration diagram for Galeri::FiniteElements::SUPGVariational< T >:
Collaboration graph
[legend]

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).
 
- Public Member Functions inherited from Galeri::FiniteElements::AbstractVariational
virtual ~AbstractVariational ()
 Destructor.
 
virtual 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 =0
 Evaluates the bilinear form (without integral) at point (x,y,z).
 
virtual double RHS (const double Psi, const double PsiX, const double PsiY, const double PsiZ, const double x, const double y, const double z) const =0
 Returns the value of the right-hand side (without integral) at point (x, y, z).
 
virtual int BC (const int PatchID) const =0
 Returns an integer identifying the boundary condition assigned to the specified patch.
 
virtual double BC (const double x, const double y, const double z, const int PatchID) const =0
 Returns the value of the boundary condition 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 =0
 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 =0
 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 =0
 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 =0
 Computed the norm of the computed and exact solution over the element.
 

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.

Member Function Documentation

◆ BC() [1/2]

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

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

Implements Galeri::FiniteElements::AbstractVariational.

◆ BC() [2/2]

template<class T >
int Galeri::FiniteElements::SUPGVariational< T >::BC ( const int  PatchID) const
inlinevirtual

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

Implements Galeri::FiniteElements::AbstractVariational.

◆ ElementNorm() [1/3]

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
inlinevirtual

Computes the norm of the computed solution over the element.

Implements Galeri::FiniteElements::AbstractVariational.

◆ ElementNorm() [2/3]

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
inlinevirtual

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

Implements Galeri::FiniteElements::AbstractVariational.

References Galeri::FiniteElements::SUPGVariational< T >::diff().

◆ ElementNorm() [3/3]

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
inlinevirtual

Computed the norm of the exact solution over the element.

Implements Galeri::FiniteElements::AbstractVariational.

◆ IntegrateOverElement()

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
inlinevirtual

◆ LHS()

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
inlinevirtual

◆ RHS()

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
inlinevirtual

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