#include <DiscretizationType.hpp>
Public Types | |
| enum | Family { fem, spectral, unknown } |
| typedef std::vector < ConstReferenceCounting < ScalarDiscretizationTypeBase > > | ScalarDiscretizationTypeList |
Public Member Functions | |
| Family | getFamily () const |
| size_t | number () const |
| const ScalarDiscretizationTypeBase & | operator[] (const size_t &i) const |
| void | add (ConstReferenceCounting< ScalarDiscretizationTypeBase > type) |
| DiscretizationType () | |
| DiscretizationType (const DiscretizationType &d) | |
| ~DiscretizationType () | |
Private Member Functions | |
| Family | __componentFamily (const size_t &i) const |
Private Attributes | |
| ScalarDiscretizationTypeList | __types |
Friends | |
| std::ostream & | operator<< (std::ostream &os, const DiscretizationType &discretization) |
Definition at line 37 of file DiscretizationType.hpp.
| typedef std::vector<ConstReferenceCounting<ScalarDiscretizationTypeBase> > DiscretizationType::ScalarDiscretizationTypeList |
Definition at line 47 of file DiscretizationType.hpp.
| DiscretizationType::DiscretizationType | ( | ) | [inline] |
| DiscretizationType::DiscretizationType | ( | const DiscretizationType & | d | ) | [inline] |
Copy constructor
| d | originale discretization type |
Definition at line 150 of file DiscretizationType.hpp.
| DiscretizationType::~DiscretizationType | ( | ) | [inline] |
| Family DiscretizationType::__componentFamily | ( | const size_t & | i | ) | const [inline, private] |
Definition at line 62 of file DiscretizationType.hpp.
References __types, ASSERT, fem, ScalarDiscretizationTypeBase::functionLike, ScalarDiscretizationTypeBase::lagrangianFEM0, ScalarDiscretizationTypeBase::lagrangianFEM1, ScalarDiscretizationTypeBase::lagrangianFEM2, spectral, ScalarDiscretizationTypeBase::spectralLegendre, ScalarDiscretizationTypeBase::undefined, and unknown.
Referenced by getFamily().
00063 { 00064 ASSERT(i<__types.size()); 00065 00066 switch(__types[i]->type()) { 00067 case ScalarDiscretizationTypeBase::lagrangianFEM0: 00068 case ScalarDiscretizationTypeBase::lagrangianFEM1: 00069 case ScalarDiscretizationTypeBase::lagrangianFEM2: { 00070 return fem; 00071 } 00072 case ScalarDiscretizationTypeBase::spectralLegendre: { 00073 return spectral; 00074 } 00075 case ScalarDiscretizationTypeBase::undefined: 00076 case ScalarDiscretizationTypeBase::functionLike: 00077 default: { 00078 return unknown; 00079 } 00080 } 00081 }
| Family DiscretizationType::getFamily | ( | ) | const [inline] |
Returns the family of the discretization type
Definition at line 90 of file DiscretizationType.hpp.
References __componentFamily(), __types, and unknown.
Referenced by SolverExpression::execute().
00091 { 00092 Family family = this->__componentFamily(0); 00093 00094 for (size_t i=1; i<__types.size(); ++i) { 00095 if (family != this->__componentFamily(i)) { 00096 return unknown; 00097 } 00098 } 00099 00100 return family; 00101 }

| size_t DiscretizationType::number | ( | ) | const [inline] |
Gets the number of discretizations in the list
Definition at line 108 of file DiscretizationType.hpp.
References __types.
Referenced by SpectralLegendreDiscretizationNonConform::_getQuadratureDegree(), DegreeOfFreedomSetBuilder::DegreeOfFreedomSetBuilder(), and SolverExpression::execute().
00109 { 00110 return __types.size(); 00111 }
| const ScalarDiscretizationTypeBase& DiscretizationType::operator[] | ( | const size_t & | i | ) | const [inline] |
| void DiscretizationType::add | ( | ConstReferenceCounting< ScalarDiscretizationTypeBase > | type | ) | [inline] |
Adds a type to the list of types
| type | type to add |
Definition at line 131 of file DiscretizationType.hpp.
References __types.
Referenced by SpectralFEMPreconditioner::Internal::__solveFEM(), and SolverExpression::execute().
00132 { 00133 __types.push_back(type); 00134 }
| std::ostream& operator<< | ( | std::ostream & | os, | |
| const DiscretizationType & | discretization | |||
| ) | [friend] |
Definition at line 52 of file DiscretizationType.hpp.
00054 { 00055 os << ScalarDiscretizationTypeBase::name(discretization.__types[0]->type()); 00056 for (size_t i=1; i<discretization.__types.size(); ++i) { 00057 os << ',' << ScalarDiscretizationTypeBase::name(discretization.__types[i]->type()); 00058 } 00059 return os; 00060 }
Types of discretization
Definition at line 50 of file DiscretizationType.hpp.
Referenced by __componentFamily(), add(), getFamily(), number(), and operator[]().
1.5.6