Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)

Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | Static Private Attributes
concepts::Karniadakis< type, mode > Class Template Reference

Part of the multidimensional expansion bases for the shape functions of Karniadakis and Sherwin. More...

#include <karniadakis.hh>

Inheritance diagram for concepts::Karniadakis< type, mode >:
Inheritance graph
[legend]
Collaboration diagram for concepts::Karniadakis< type, mode >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 Karniadakis (const int P, const Real *xP, const int NxP, const int Q=0, const int R=0, const bool cache=true)
 Constructor.
 Karniadakis (const Karniadakis< type, mode > &arg)
 Copy constructor.
uint n () const
 Returns the number of shape functions.
uint nP () const
 Returns the number of abscissas (in which the shape functions are evaluated)
const Realvalues () const
 Returns the values of the shape functions.
 ~Karniadakis ()

Static Public Member Functions

static void clearCache ()

Protected Member Functions

virtual std::ostream & info (std::ostream &os) const
 Returns information in an output stream.

Protected Attributes

Realvalues_
 Values of the shape functions.

Private Attributes

bool cache_
 Cache the results of the computations in principal_H if set to true.
Orders< type > orders_
 Combines polynomial degrees and number of quadrature points.

Static Private Attributes

static __gnu_cxx::hash_map
< Orders< type >, Real
*, __gnu_cxx::hash< Orders
< type >
>, __gnu_cxx::OrdersEqual
< type > > 
principal_H
 Hash of the already computed values of the principal function of this type.

Detailed Description

template<int type, int mode>
class concepts::Karniadakis< type, mode >

Part of the multidimensional expansion bases for the shape functions of Karniadakis and Sherwin.

Computes one of principal functions $\psi^a_i(z)$, $\psi^b_{ij}(z)$ or $\psi^c_{ijk}(z)$ for given polynomial degrees and a set of points.

The constructor computes the values if necessary: they are stored in static hashes and can be reused if requested a second time. There is a method to get a pointer into the array of the computed values, use this at initialization time of the element to get a pointer to the values. The index of the points in which the shape functions are evaluated runs fastest, k is second and i is slowest.

Parameters:
typeTemplate parameter: type of the principal function. Can take the values
  • 1 -- The principal function $\psi^a_i(z)$ is computed in the constructor.
  • 2 -- The principal function $\psi^b_{ij}(z)$ is computed in the constructor.
  • 3 -- The principal function $\psi^c_{ijk}(z)$ is computed in the constructor.
modeTemplate parameter: normal, derivatives, divided form. Can take the values
  • 0 -- normal
  • 1 -- derivatives. The derivatives of principal function are computed in the constructor, ie. ${\psi^a_i}'(z)$, ${\psi^b_{ij}}'(z)$ and ${\psi^c_{ijk}}'(z)$ respectively, depending on the type of the principal function
  • 2 -- divided form. The principal function is divided by $1-z$: $\frac{\psi^b_{ij}(z)}{1-z}$ is computed in the constructor. This is only possible for the principal function $\psi^b_{ij}(z)$.
Test:
test::KarniadakisTest
Author:
Philipp Frauenfelder, 2000

Definition at line 176 of file karniadakis.hh.


Constructor & Destructor Documentation

template<int type, int mode>
concepts::Karniadakis< type, mode >::Karniadakis ( const int  P,
const Real xP,
const int  NxP,
const int  Q = 0,
const int  R = 0,
const bool  cache = true 
)

Constructor.

Computes the values of the principal function of the given order and in the given points.

(P+1)*(Q+1)*(R+1) is the number of shape functions which have to be computed in NxP points.

Parameters:
POrder of the principal function in $\eta_1$
xPPoints
NxPNumber of points
QOrder of the principal function in $\eta_2$
ROrder of the principal function in $\eta_3$
cacheControls if the computed values should be taken from and stored in the cache
template<int type, int mode>
concepts::Karniadakis< type, mode >::Karniadakis ( const Karniadakis< type, mode > &  arg)

Copy constructor.

template<int type, int mode>
concepts::Karniadakis< type, mode >::~Karniadakis ( )

Member Function Documentation

template<int type, int mode>
static void concepts::Karniadakis< type, mode >::clearCache ( ) [inline, static]

Definition at line 197 of file karniadakis.hh.

template<int type, int mode>
virtual std::ostream& concepts::Karniadakis< type, mode >::info ( std::ostream &  os) const [protected, virtual]

Returns information in an output stream.

Implements concepts::ShapeFunction1D< Real >.

uint concepts::ShapeFunction1D< Real >::n ( ) const [inline, inherited]

Returns the number of shape functions.

Definition at line 33 of file shapefunction.hh.

uint concepts::ShapeFunction1D< Real >::nP ( ) const [inline, inherited]

Returns the number of abscissas (in which the shape functions are evaluated)

Definition at line 36 of file shapefunction.hh.

const Real * concepts::ShapeFunction1D< Real >::values ( ) const [inline, inherited]

Returns the values of the shape functions.

Definition at line 38 of file shapefunction.hh.


Member Data Documentation

template<int type, int mode>
bool concepts::Karniadakis< type, mode >::cache_ [private]

Cache the results of the computations in principal_H if set to true.

Definition at line 215 of file karniadakis.hh.

template<int type, int mode>
Orders<type> concepts::Karniadakis< type, mode >::orders_ [private]

Combines polynomial degrees and number of quadrature points.

Definition at line 204 of file karniadakis.hh.

template<int type, int mode>
__gnu_cxx::hash_map<Orders<type>, Real*, __gnu_cxx::hash<Orders<type> >, __gnu_cxx::OrdersEqual<type> > concepts::Karniadakis< type, mode >::principal_H [static, private]

Hash of the already computed values of the principal function of this type.

The hash is static, ie. the data is available to all instances of this class.

Definition at line 212 of file karniadakis.hh.

Real * concepts::ShapeFunction1D< Real >::values_ [protected, inherited]

Values of the shape functions.

Definition at line 43 of file shapefunction.hh.


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

Home | Doxygen Documentation | Tutorials | Developer Tools (restricted)