Galeri Development
|
SUPG discretization of an advection-diffusion PDE. More...
#include <Galeri_SUPGVariational.h>
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). | |
![]() | |
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. | |
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.
|
inlinevirtual |
Returns the value of the boundary condition at point (x, y, z).
Implements Galeri::FiniteElements::AbstractVariational.
|
inlinevirtual |
Returns an integer identifying the boundary condition assigned to the specified patch.
Implements Galeri::FiniteElements::AbstractVariational.
|
inlinevirtual |
Computes the norm of the computed solution over the element.
Implements Galeri::FiniteElements::AbstractVariational.
|
inlinevirtual |
Computed the norm of the computed and exact solution over the element.
Implements Galeri::FiniteElements::AbstractVariational.
References Galeri::FiniteElements::SUPGVariational< T >::diff().
|
inlinevirtual |
Computed the norm of the exact solution over the element.
Implements Galeri::FiniteElements::AbstractVariational.
|
inlinevirtual |
Integrates the bilinear form and the right-hand side over the element.
Implements Galeri::FiniteElements::AbstractVariational.
References Galeri::FiniteElements::SUPGVariational< T >::diff(), Galeri::FiniteElements::AbstractVariational::LHS(), and Galeri::FiniteElements::AbstractVariational::RHS().
|
inlinevirtual |
Evaluates the bilinear form (without integral) at point (x,y,z).
Implements Galeri::FiniteElements::AbstractVariational.
References Galeri::FiniteElements::SUPGVariational< T >::conv_x(), Galeri::FiniteElements::SUPGVariational< T >::conv_y(), Galeri::FiniteElements::SUPGVariational< T >::conv_z(), Galeri::FiniteElements::SUPGVariational< T >::diff(), and Galeri::FiniteElements::SUPGVariational< T >::source().
|
inlinevirtual |
Returns the value of the right-hand side (without integral) at point (x, y, z).
Implements Galeri::FiniteElements::AbstractVariational.
References Galeri::FiniteElements::SUPGVariational< T >::conv_x(), Galeri::FiniteElements::SUPGVariational< T >::conv_y(), Galeri::FiniteElements::SUPGVariational< T >::conv_z(), and Galeri::FiniteElements::SUPGVariational< T >::force().