GemaCoreLib
The GeMA Core library
Loading...
Searching...
No Matches
gmShapeInterpolatorObject.h
Go to the documentation of this file.
1/************************************************************************
2**
3** Copyright (C) 2014 by Carlos Augusto Teixera Mendes
4** All rights reserved.
5**
6** This file is part of the "GeMA" software. It's use should respect
7** the terms in the license agreement that can be found together
8** with this source code.
9** It is provided AS IS, with NO WARRANTY OF ANY KIND,
10** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR
11** A PARTICULAR PURPOSE.
12**
13************************************************************************/
14
24#ifndef _GEMA_SHAPE_INTERPOLATOR_OBJECT_H_
25#define _GEMA_SHAPE_INTERPOLATOR_OBJECT_H_
26
27#include "gmInterpolator.h"
28
31{
32public:
33 // See comments on the base class
35
36 // See comments on the base class
38 {
40 }
41
42 // See comments on the base class
43 virtual bool requiresElement() const { return true; }
44
45 // See comments on the base class
46 virtual bool requiresNaturalCoordinates() const { return true; }
47
48 virtual bool interpolationWeights(GmInterpolatorCoordinateSetBinding* pointSet, const GmVector& coord,
49 const QVariant& typeParam, GmVector& weights) const;
50
51 // See comments on the base class
52 virtual const GmMatrix& gaussToNodesExtrapolationMatrix(GmInterpolatorGaussCoordinateSetBinding* pointSet, const QVariant& typeParam, GmMatrix& weights) const;
53
54protected:
55 friend class GmInterpolator;
56
59 : _linear(linear) {}
60
61 const bool _linear;
62};
63
64
65#endif
Basic interface for a set storing point cartesian coordinates. This set can be filled with points fro...
Definition gmInterpolatorCoordinateBindings.h:75
Interface for a coordinate set that stores Gauss point coordinates. Besides returning coordinates,...
Definition gmInterpolatorCoordinateBindings.h:176
Interpolator class used for managing available interpolator algorithms and providing basic support fu...
Definition gmInterpolator.h:245
Interface class for the implementation of each of the possible interpolation algorithms available in ...
Definition gmInterpolator.h:156
virtual bool interpolationWeights(GmInterpolatorCoordinateSetBinding *pointSet, const GmVector &coord, const QVariant &typeParam, GmVector &weights) const
Basic function for calculating the interpolation weights that should be associated with each point (c...
Definition gmInterpolator.cpp:416
virtual const GmMatrix & gaussToNodesExtrapolationMatrix(GmInterpolatorGaussCoordinateSetBinding *pointSet, const QVariant &typeParam, GmMatrix &weights) const
Basic function for returning the extrapolation matrix used by the GM_GAUSS_TO_NODE_INTERPOLATOR inter...
Definition gmInterpolator.h:226
Implements the Shape function and linear shape function interpolation methods.
Definition gmShapeInterpolatorObject.h:31
GmShapeInterpolatorObject(bool linear)
Constructor.
Definition gmShapeInterpolatorObject.h:58
virtual bool supportsInterpolatorKind(GmInterpolatorKind kind) const
Returns whether this interpolator object supports the given interpolator kind or not.
Definition gmShapeInterpolatorObject.h:37
virtual GmInterpolatorType type() const
Returns the interpolator object type.
Definition gmShapeInterpolatorObject.h:34
virtual bool requiresNaturalCoordinates() const
Does this interpolator object requires that the coordinate passed as parameter to interpolationWeight...
Definition gmShapeInterpolatorObject.h:46
virtual bool requiresElement() const
Does this interpolator object requires that the coordinate set provided to interpolationWeights() con...
Definition gmShapeInterpolatorObject.h:43
const bool _linear
Should we use a linear shape function instead of the original one?
Definition gmShapeInterpolatorObject.h:61
#define GMC_API_EXPORT
Macro for controlling if the class is being exported (GEMA_CORE_LIB defined) or imported (GEMA_CORE_L...
Definition gmCoreConfig.h:35
Declaration of the GmInterpolator and GmInterpolatorObject classes.
GmInterpolatorType
Available interpolation methods. Not every method is suitable for every kind of interpolator class....
Definition gmInterpolator.h:64
@ GM_SHAPE_INTERPOLATOR
Interpolated value is found by using the elements shape function.
Definition gmInterpolator.h:113
@ GM_LSHAPE_INTERPOLATOR
Interpolated value is found by using the elements equivalent linear shape function....
Definition gmInterpolator.h:124
GmInterpolatorKind
Enum identifying the types of available interpolation classes.
Definition gmInterpolator.h:49
@ GM_GAUSS_TO_NODE_INTERPOLATOR
Classes for interpolating values in Gauss points to element nodes.
Definition gmInterpolator.h:51
@ GM_NODE_TO_POINT_INTERPOLATOR
Classes for interpolating values in cell nodes to points inside the cell.
Definition gmInterpolator.h:50
arma::mat GmMatrix
The basic type for a GeMA matrix object. Currently based on an Armadillo matrix.
Definition gmMatrix.h:38
arma::vec GmVector
The basic type for a GeMA vector object. Currently based on an Armadillo vector.
Definition gmVector.h:34