ShapesEvaluated.h DG++. More...
#include <ShapesEvaluated.h>
Public Member Functions | |
const std::vector< double > & | getShapes () const |
Shape functions at quadrature points getShapes()[q*getBasisDimension()+a] gives the value of shape function a at quadrature point q. | |
const std::vector< double > & | getDShapes () const |
Derivatives of shape functions at quadrature points getDShapes()[q*getBasisDimension()*getNumberOfDerivativesPerFunction()+ +a*getNumberOfDerivativesPerFunction()+i] gives the derivative in the i-th direction of degree of freedom a at quadrature point q. | |
const std::vector< double > & | getIntegrationWeights () const |
const std::vector< double > & | getQuadraturePointCoordinates () const |
Coordinates of quadrature points in the real configuration getQuadraturePointCoordinates() q*ElementGeometrygetEmbeddingDimension()+i] returns the i-th coordinate in real space of quadrature point q. | |
size_t | getBasisDimension () const |
returns the number of shape functions provided | |
size_t | getNumberOfDerivativesPerFunction () const |
returns the number of directional derivative for each shape function | |
size_t | getSpatialDimensions () const |
returns the number of number of coordinates for each Gauss point | |
Protected Member Functions | |
ShapesEvaluated () | |
virtual | ~ShapesEvaluated () |
ShapesEvaluated (const ShapesEvaluated &SEI) | |
virtual const Shape & | accessShape () const =0 |
Returns the specific Shape objects in derived classes. | |
virtual const Quadrature & | accessQuadrature () const =0 |
Quadrature type Returns the specific Quadrature objects in derived classes. | |
void | createObject (const ElementGeometry &eg) |
Since it is not possible to have a virtual constructor, one is emulated below only accessible from derived classes The virtual aspect are the calls to accessShape and accessQuadrature. | |
Private Attributes | |
std::vector< double > | LocalShapes |
std::vector< double > | LocalDShapes |
std::vector< double > | LocalWeights |
std::vector< double > | LocalCoordinates |
ShapesEvaluated.h DG++.
Created by Adrian Lew on 9/7/06.
Copyright (c) 2006 Adrian Lew
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ShapesEvaluated: Evaluation of the shape functions and derivatives at the quadrature points. Abstract class.
ShapesEvaluated is the class that takes the element geometry, a quadrature rule and shape functions on the reference element, and computes the values of the shape functions and their derivatives at the quadrature points. As opposed to Shapes, there will be one or more ShapesEvaluated objects per element in the mesh. Each different interpolation needed in an element will have a different ShapesEvaluated object.
This class provides all functionality for the templated derived classes ShapesEvaluated__. Only two abstract functions are left to be defined by derived classes, accessShape and accessQuadrature.
Objects in this class should only be constructed by derived classes.
ShapesEvaluated evaluates ElementGeometry::(D)map at the quadrature point (map)Coordinates using Quadrature::getQuadraturePoint().
ShapesEvaluated evaluates Shape functions at the quadrature point (Shape)Coordinates using Quadrature::getQuadraturePointShape().
ShapesEvaluated::ShapesEvaluated | ( | ) | [inline, protected] |
virtual ShapesEvaluated::~ShapesEvaluated | ( | ) | [inline, protected, virtual] |
ShapesEvaluated::ShapesEvaluated | ( | const ShapesEvaluated & | SEI | ) | [protected] |
virtual const Quadrature& ShapesEvaluated::accessQuadrature | ( | ) | const [protected, pure virtual] |
Quadrature type Returns the specific Quadrature objects in derived classes.
Implemented in ShapesEvaluated__< ShapeObj, QuadObj >.
virtual const Shape& ShapesEvaluated::accessShape | ( | ) | const [protected, pure virtual] |
Returns the specific Shape objects in derived classes.
Implemented in ShapesEvaluated__< ShapeObj, QuadObj >.
void ShapesEvaluated::createObject | ( | const ElementGeometry & | eg | ) | [protected] |
Since it is not possible to have a virtual constructor, one is emulated below only accessible from derived classes The virtual aspect are the calls to accessShape and accessQuadrature.
size_t ShapesEvaluated::getBasisDimension | ( | ) | const [inline, virtual] |
returns the number of shape functions provided
Implements BasisFunctions.
const std::vector<double>& ShapesEvaluated::getDShapes | ( | ) | const [inline, virtual] |
Derivatives of shape functions at quadrature points getDShapes()[q*getBasisDimension()*getNumberOfDerivativesPerFunction()+ +a*getNumberOfDerivativesPerFunction()+i] gives the derivative in the i-th direction of degree of freedom a at quadrature point q.
getDShapes returns an empty vector if no derivatives are available
Implements BasisFunctions.
const std::vector<double>& ShapesEvaluated::getIntegrationWeights | ( | ) | const [inline, virtual] |
Implements BasisFunctions.
size_t ShapesEvaluated::getNumberOfDerivativesPerFunction | ( | ) | const [inline, virtual] |
returns the number of directional derivative for each shape function
Implements BasisFunctions.
const std::vector<double>& ShapesEvaluated::getQuadraturePointCoordinates | ( | ) | const [inline, virtual] |
Coordinates of quadrature points in the real configuration getQuadraturePointCoordinates() q*ElementGeometrygetEmbeddingDimension()+i] returns the i-th coordinate in real space of quadrature point q.
Implements BasisFunctions.
const std::vector<double>& ShapesEvaluated::getShapes | ( | ) | const [inline, virtual] |
Shape functions at quadrature points getShapes()[q*getBasisDimension()+a] gives the value of shape function a at quadrature point q.
getShapes returns an empty vector if no shape functions are available
Implements BasisFunctions.
size_t ShapesEvaluated::getSpatialDimensions | ( | ) | const [inline, virtual] |
returns the number of number of coordinates for each Gauss point
Implements BasisFunctions.
std::vector<double> ShapesEvaluated::LocalCoordinates [private] |
std::vector<double> ShapesEvaluated::LocalDShapes [private] |
std::vector<double> ShapesEvaluated::LocalShapes [private] |
std::vector<double> ShapesEvaluated::LocalWeights [private] |