ScalarDiscretizationTypeBase Class Reference

#include <ScalarDiscretizationTypeBase.hpp>

Inheritance diagram for ScalarDiscretizationTypeBase:

Inheritance graph
[legend]

List of all members.

Public Types

enum  Type {
  undefined = -1, functionLike = 0, lagrangianFEM0 = 10, lagrangianFEM1 = 11,
  lagrangianFEM2 = 12, DGFEM0 = 20, DGFEM1 = 21, DGFEM2 = 22,
  spectralLegendre = 50
}

Public Member Functions

const
ScalarDiscretizationTypeBase
operator= (const ScalarDiscretizationTypeBase::Type &type)
const Typetype () const
 ScalarDiscretizationTypeBase (const ScalarDiscretizationTypeBase::Type &type)
 ScalarDiscretizationTypeBase (const ScalarDiscretizationTypeBase &d)
virtual ~ScalarDiscretizationTypeBase ()

Static Public Member Functions

static Type getDefault (const Type &type)
static std::string name (const ScalarDiscretizationTypeBase::Type &type)
static std::string name (const ScalarDiscretizationTypeBase &discretization)

Private Member Functions

virtual void __instanciable () const =0

Private Attributes

Type __type


Detailed Description

Definition at line 35 of file ScalarDiscretizationTypeBase.hpp.


Member Enumeration Documentation

Enumerator:
undefined  not defined
functionLike  keeps function type if possible
lagrangianFEM0  Lagrangian finite element of degree 0
lagrangianFEM1  Lagrangian finite element of degree 1
lagrangianFEM2  Lagrangian finite element of degree 2
DGFEM0  discontinuous finite element of degree 0
DGFEM1  discontinuous finite element of degree 1
DGFEM2  discontinuous finite element of degree 2
spectralLegendre  Lagrange spectral method

Definition at line 38 of file ScalarDiscretizationTypeBase.hpp.

00038             {
00039     undefined       =-1,        
00040     functionLike    = 0,        
00042     // finite element-like discretizations
00043     lagrangianFEM0  =10,        
00044     lagrangianFEM1  =11,        
00045     lagrangianFEM2  =12,        
00047     // finite element-like discretizations
00048     DGFEM0          =20,        
00049     DGFEM1          =21,        
00050     DGFEM2          =22,        
00052     // Spectral-like discretizations
00053     spectralLegendre=50         
00054   };


Constructor & Destructor Documentation

ScalarDiscretizationTypeBase::ScalarDiscretizationTypeBase ( const ScalarDiscretizationTypeBase::Type type  )  [inline, explicit]

Constructor

Parameters:
type type of discretization

Definition at line 129 of file ScalarDiscretizationTypeBase.hpp.

00130     : __type(type)
00131   {
00132     ;
00133   }

ScalarDiscretizationTypeBase::ScalarDiscretizationTypeBase ( const ScalarDiscretizationTypeBase d  )  [inline, explicit]

Copy constructor

Parameters:
d originale discretization type

Definition at line 140 of file ScalarDiscretizationTypeBase.hpp.

00141     : __type(d.__type)
00142   {
00143     ;
00144   }

virtual ScalarDiscretizationTypeBase::~ScalarDiscretizationTypeBase (  )  [inline, virtual]

Destructor

Definition at line 150 of file ScalarDiscretizationTypeBase.hpp.

00151   {
00152     ;
00153   }


Member Function Documentation

virtual void ScalarDiscretizationTypeBase::__instanciable (  )  const [private, pure virtual]

This function prevents to instanciate this class

Implemented in ScalarDiscretizationTypeDG, ScalarDiscretizationTypeFEM, and ScalarDiscretizationTypeSpectral.

static Type ScalarDiscretizationTypeBase::getDefault ( const Type type  )  [inline, static]

Definition at line 65 of file ScalarDiscretizationTypeBase.hpp.

References lagrangianFEM1, and undefined.

Referenced by SolverExpression::execute().

00066   {
00067     return (type==undefined)?lagrangianFEM1:type;
00068   }

const ScalarDiscretizationTypeBase& ScalarDiscretizationTypeBase::operator= ( const ScalarDiscretizationTypeBase::Type type  )  [inline]

Definition at line 71 of file ScalarDiscretizationTypeBase.hpp.

References __type.

00072   {
00073     __type=type;
00074     return *this;
00075   }

static std::string ScalarDiscretizationTypeBase::name ( const ScalarDiscretizationTypeBase::Type type  )  [inline, static]

convertes type in its name

Parameters:
type type of discretization
Returns:
name of the type

Definition at line 84 of file ScalarDiscretizationTypeBase.hpp.

References DGFEM0, DGFEM1, DGFEM2, functionLike, lagrangianFEM0, lagrangianFEM1, lagrangianFEM2, spectralLegendre, undefined, and ErrorHandler::unexpected.

Referenced by ScalarDegreeOfFreedomPositionsSet::Builder::__build(), FunctionExpressionDG::__DGTypeFromFEMType(), FEMFunctionBase::__put(), DGFunctionBase::__put(), BoundaryConditionDiscretizationSpectralConform::BoundaryConditionDiscretizationSpectralConform(), DegreeOfFreedomSetManager::Internal::getDOFPositionsSet(), name(), UnknownListExpressionSet::put(), UnknownExpression::put(), and SpectralLegendreDiscretizer::SpectralLegendreDiscretizer().

00085   {
00086     switch (type) {
00087     case lagrangianFEM0:  return "FEM-P0";
00088     case lagrangianFEM1:  return "FEM-P1";
00089     case lagrangianFEM2:  return "FEM-P2";
00090     case DGFEM0:          return "DG-P0";
00091     case DGFEM1:          return "DG-P1";
00092     case DGFEM2:          return "DG-P2";
00093     case spectralLegendre:return "Legendre";
00094     case undefined:       return "undefined";
00095     case functionLike:    return "function-like";
00096     }
00097     throw ErrorHandler(__FILE__,__LINE__,
00098                        "unknown Discretization type",
00099                        ErrorHandler::unexpected);
00100   }

static std::string ScalarDiscretizationTypeBase::name ( const ScalarDiscretizationTypeBase discretization  )  [inline, static]

convertes type in its name

Parameters:
discretization type of discretization
Returns:
name of the type

Definition at line 109 of file ScalarDiscretizationTypeBase.hpp.

References name(), and type().

00110   {
00111     return ScalarDiscretizationTypeBase::name(discretization.type());
00112   }

Here is the call graph for this function:

const Type& ScalarDiscretizationTypeBase::type (  )  const [inline]


Member Data Documentation

Type of discretization

Definition at line 57 of file ScalarDiscretizationTypeBase.hpp.

Referenced by operator=(), and type().


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

Generated on Wed Nov 19 00:12:46 2008 for FreeFEM3D (aka ff3d) by  doxygen 1.5.6