Skip to content
Snippets Groups Projects
Commit 7535e1b2 authored by Adrian Burri's avatar Adrian Burri
Browse files

Simplified typedef structure

[[Imported from SVN: r2717]]
parent 7295db67
No related branches found
No related tags found
No related merge requests found
......@@ -43,9 +43,9 @@ namespace Dune {
}
//- CombinedBaseFunctionSet
template <class BaseFunctionSetImp, int N, DofStoragePolicy policy>
template <class DiscreteFunctionSpaceImp, int N, DofStoragePolicy policy>
template <int diffOrd>
void CombinedBaseFunctionSet<BaseFunctionSetImp, N, policy>::
void CombinedBaseFunctionSet<DiscreteFunctionSpaceImp, N, policy>::
evaluate(int baseFunct,
const FieldVector<deriType, diffOrd> &diffVariable,
const DomainType & x, RangeType & phi) const
......@@ -55,9 +55,9 @@ namespace Dune {
expand(baseFunct, containedResult_, phi);
}
template <class BaseFunctionSetImp, int N, DofStoragePolicy policy>
template <class DiscreteFunctionSpaceImp, int N, DofStoragePolicy policy>
template <int diffOrd, class QuadratureType>
void CombinedBaseFunctionSet<BaseFunctionSetImp, N, policy>::
void CombinedBaseFunctionSet<DiscreteFunctionSpaceImp, N, policy>::
evaluate(int baseFunct,
const FieldVector<deriType, diffOrd> &diffVariable,
QuadratureType & quad,
......@@ -68,24 +68,24 @@ namespace Dune {
expand(baseFunct, containedResult_, phi);
}
template <class BaseFunctionSetImp, int N, DofStoragePolicy policy>
inline int CombinedBaseFunctionSet<BaseFunctionSetImp, N, policy>::
template <class DiscreteFunctionSpaceImp, int N, DofStoragePolicy policy>
inline int CombinedBaseFunctionSet<DiscreteFunctionSpaceImp, N, policy>::
containedDof(int combinedBaseNumber) const
{
//return global%N;
return combinedBaseNumber/N;
}
template <class BaseFunctionSetImp, int N, DofStoragePolicy policy>
inline int CombinedBaseFunctionSet<BaseFunctionSetImp, N, policy>::
template <class DiscreteFunctionSpaceImp, int N, DofStoragePolicy policy>
inline int CombinedBaseFunctionSet<DiscreteFunctionSpaceImp, N, policy>::
component(int combinedBaseNumber) const
{
//return global%N;
return combinedBaseNumber%N;
}
template <class BaseFunctionSetImp, int N, DofStoragePolicy policy>
void CombinedBaseFunctionSet<BaseFunctionSetImp, N, policy>::
template <class DiscreteFunctionSpaceImp, int N, DofStoragePolicy policy>
void CombinedBaseFunctionSet<DiscreteFunctionSpaceImp, N, policy>::
expand(int baseFunct, const ContainedRangeType& arg, RangeType& dest) const
{
dest = 0.0;
......@@ -93,8 +93,8 @@ namespace Dune {
dest[component(baseFunct)] = arg[0];
}
template <class BaseFunctionSetImp, int N, DofStoragePolicy policy>
void CombinedBaseFunctionSet<BaseFunctionSetImp, N, policy>::
template <class DiscreteFunctionSpaceImp, int N, DofStoragePolicy policy>
void CombinedBaseFunctionSet<DiscreteFunctionSpaceImp, N, policy>::
evaluateContained(int baseFunct,
const DomainType& x,
ContainedRangeType& phi) const
......@@ -104,8 +104,8 @@ namespace Dune {
baseFunctionSet_.eval(baseFunct, x, phi);
}
template <class BaseFunctionSetImp, int N, DofStoragePolicy policy>
void CombinedBaseFunctionSet<BaseFunctionSetImp, N, policy>::
template <class DiscreteFunctionSpaceImp, int N, DofStoragePolicy policy>
void CombinedBaseFunctionSet<DiscreteFunctionSpaceImp, N, policy>::
jacobianContained(int baseFunct,
const DomainType& x,
ContainedJacobianRangeType& phi) const
......
......@@ -58,13 +58,14 @@ namespace Dune {
struct CombinedSpaceTraits {
private:
typedef DiscreteFunctionSpaceImp ContainedDiscreteFunctionSpaceType;
// typedef ContainedDiscreteFunctionSpaceType::MapperType ContainedMapperType;
typedef typename ContainedDiscreteFunctionSpaceType::Traits
ContainedTraits;
typedef typename ContainedTraits::FunctionSpaceType
ContainedSpaceTraits;
typedef typename ContainedSpaceTraits::FunctionSpaceType
ContainedFunctionSpaceType;
typedef typename ContainedTraits::BaseFunctionSetType
typedef typename ContainedSpaceTraits::BaseFunctionSetType
ContainedBaseFunctionSetType;
typedef typename ContainedSpaceTraits::MapperType ContainedMapperType;
enum { ContainedDimRange = ContainedFunctionSpaceType::DimRange,
ContainedDimDomain = ContainedFunctionSpaceType::DimDomain };
......@@ -80,21 +81,27 @@ namespace Dune {
typedef CombinedSpace<
DiscreteFunctionSpaceImp, N, policy> DiscreteFunctionSpaceType;
typedef FunctionSpace<DomainFieldType, RangeFieldType, ContainedDimDomain,
ContainedDimRange*N> FunctionSpaceType;
typedef FunctionSpace<
DomainFieldType, RangeFieldType,
ContainedDimDomain, ContainedDimRange*N> FunctionSpaceType;
typedef CombinedBaseFunctionSet<
ContainedBaseFunctionSetType, N, policy> BaseFunctionSetType;
DiscreteFunctionSpaceImp, N, policy> BaseFunctionSetType;
typedef CombinedMapper<DiscreteFunctionSpaceImp, N, policy> MapperType;
typedef typename FunctionSpaceType::RangeType RangeType;
typedef typename FunctionSpaceType::DomainType DomainType;
typedef typename FunctionSpaceType::RangeFieldType RangeFieldType;
typedef typename FunctionSpaceType::DomainFieldType DomainFieldType;
typedef typename FunctionSpaceType::JacobianRangeType JacobianRangeType;
typedef typename ContainedTraits::GridType GridType;
typedef typename ContainedTraits::IteratorType IteratorType;
typedef typename ContainedSpaceTraits::GridType GridType;
typedef typename ContainedSpaceTraits::IteratorType IteratorType;
enum { DimRange = FunctionSpaceType::DimRange,
DimDomain = FunctionSpaceType::DimDomain };
public:
//- Friends
friend class DiscreteFunctionSpaceType;
friend class BaseFunctionSetType;
friend class MapperType;
};
//! Class to combine N scalar spaces
......@@ -197,54 +204,25 @@ namespace Dune {
static const int spaceId_;
}; // end class CombinedSpace
//! Traits class for CombinedBaseFunctionSet
template <class BaseFunctionSetImp, int N, DofStoragePolicy policy>
struct CombinedBaseFunctionSetTraits {
private:
typedef typename BaseFunctionSetImp::DiscreteFunctionSpaceType
ContainedFunctionSpaceType;
public:
typedef CombinedBaseFunctionSet<BaseFunctionSetImp, N, policy>
BaseFunctionSetType;
typedef CombinedSpace<ContainedFunctionSpaceType, N, policy>
DiscreteFunctionSpaceType;
typedef typename DiscreteFunctionSpaceType::RangeType RangeType;
typedef typename DiscreteFunctionSpaceType::DomainType DomainType;
typedef typename DiscreteFunctionSpaceType::JacobianRangeType
JacobianRangeType;
typedef typename DiscreteFunctionSpaceType::HessianRangeType
HessianRangeType;
typedef typename DiscreteFunctionSpaceType::ContainedRangeType
ContainedRangeType;
typedef typename DiscreteFunctionSpaceType::ContainedJacobianRangeType
ContainedJacobianRangeType;
enum { DimDomain = DiscreteFunctionSpaceType::DimDomain };
enum { DimRange = DiscreteFunctionSpaceType::DimRange };
};
//! Wrapper class for base function sets. This class is used within
//! CombinedSpace
template <class BaseFunctionSetImp, int N, DofStoragePolicy policy>
template <class DiscreteFunctionSpaceImp, int N, DofStoragePolicy policy>
class CombinedBaseFunctionSet :
public BaseFunctionSetDefault<
CombinedBaseFunctionSetTraits<BaseFunctionSetImp, N, policy>
CombinedSpaceTraits<DiscreteFunctionSpaceImp, N, policy>
>
{
private:
//- Private typedefs
typedef BaseFunctionSetImp ContainedBaseFunctionSetType;
typedef ContainedBaseFunctionSetType::RangeType ContainedRangeType;
public:
//- Typedefs and enums
enum { numComponents = N };
typedef CombinedBaseFunctionSet<BaseFunctionSetImp, N, policy> ThisType;
typedef CombinedBaseFunctionSet<
DiscreteFunctionSpaceImp, N, policy> ThisType;
typedef CombinedSpaceTraits<
DiscreteFunctionSpaceImp, N, policy> Traits;
typedef CombinedBaseFunctionSetTraits<BaseFunctionSetImp, N, policy> Traits;
typedef typename Traits::DiscreteFunctionSpaceType DiscreteFunctionSpaceType;
typedef typename Traits::DiscreteFunctionSpaceType
DiscreteFunctionSpaceType;
typedef typename Traits::ContainedBaseFunctionSetType ContainedBaseFunctionSetType;
typedef typename Traits::RangeType RangeType;
typedef typename Traits::DomainType DomainType;
typedef typename Traits::ContainedRangeType ContainedRangeType;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment