Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
amdis
amdis-core
Commits
57d16f50
Commit
57d16f50
authored
Dec 16, 2019
by
Praetorius, Simon
Browse files
removed some forward declarations from GlobalIdSet
parent
bb558927
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/amdis/functions/GlobalIdSet.hpp
View file @
57d16f50
...
...
@@ -13,6 +13,7 @@
#include
<amdis/Output.hpp>
#include
<amdis/common/Apply.hpp>
#include
<amdis/common/ConceptsBase.hpp>
#include
<amdis/common/ForEach.hpp>
#include
<amdis/common/TupleUtility.hpp>
#include
<amdis/functions/Nodes.hpp>
...
...
@@ -23,15 +24,6 @@ namespace Dune
namespace
Functions
{
// forward declarations...
template
<
class
RB
,
class
TP
>
class
SubspaceBasis
;
template
<
class
MI
,
class
IMS
,
class
...
SPB
>
class
CompositePreBasis
;
template
<
class
MI
,
class
IMS
,
class
SPB
,
std
::
size_t
C
>
class
PowerPreBasis
;
template
<
class
GV
,
int
k
,
class
MI
>
class
LagrangeDGPreBasis
;
...
...
@@ -44,7 +36,7 @@ namespace Dune
namespace
AMDiS
{
// forward declaration
template
<
class
PreBasis
,
class
TP
>
template
<
class
PreBasis
,
class
TP
,
class
=
void
>
class
NodeIdSet
;
/// \brief Provide global ids for all DOFs in a global basis
...
...
@@ -68,7 +60,7 @@ namespace AMDiS
* ```
*
**/
template
<
class
GB
>
template
<
class
GB
,
class
=
void
>
class
GlobalBasisIdSet
{
public:
...
...
@@ -180,18 +172,19 @@ namespace AMDiS
};
template
<
class
RB
,
class
TP
>
class
GlobalBasisIdSet
<
Dune
::
Functions
::
SubspaceBasis
<
RB
,
TP
>>
:
public
GlobalBasisIdSet
<
RB
>
// Specialization for SubspaceBasis
template
<
class
Basis
>
class
GlobalBasisIdSet
<
Basis
,
void_t
<
typename
Basis
::
RootBasis
>>
:
public
GlobalBasisIdSet
<
typename
Basis
::
RootBasis
>
{
public:
GlobalBasisIdSet
(
Dune
::
Functions
::
SubspaceBasis
<
RB
,
TP
>
const
&
basis
)
:
GlobalBasisIdSet
<
RB
>
(
basis
.
rootBasis
())
GlobalBasisIdSet
(
Basis
const
&
basis
)
:
GlobalBasisIdSet
<
typename
Basis
::
RootBasis
>
(
basis
.
rootBasis
())
{}
};
template
<
class
PB
,
class
TP
>
template
<
class
PB
,
class
TP
,
class
>
class
NodeIdSet
{
public:
...
...
@@ -240,10 +233,10 @@ namespace AMDiS
}
/// \brief Maps from subtree index set [0..size-1] to a globally unique id in global basis
// [[expects: node_ != nullptr]]
template
<
class
Twist
,
class
It
>
It
fillIn
(
Twist
const
&
twist
,
It
it
,
size_type
shift
=
0
)
const
{
assert
(
node_
!=
nullptr
);
const
auto
&
gridIdSet
=
gridView_
.
grid
().
globalIdSet
();
for
(
size_type
i
=
0
;
i
<
size_
;
++
i
,
++
it
)
{
...
...
@@ -271,11 +264,11 @@ namespace AMDiS
};
template
<
class
MI
,
class
IMS
,
class
SPB
,
std
::
size_t
C
,
class
TP
>
class
NodeIdSet
<
Dune
::
Functions
::
PowerPreBasis
<
MI
,
IMS
,
SPB
,
C
>
,
TP
>
// Specialization for PowerBasis
template
<
class
PreBasis
,
class
TP
>
class
NodeIdSet
<
PreBasis
,
TP
,
void_t
<
typename
PreBasis
::
SubPreBasis
>>
{
public:
using
PreBasis
=
Dune
::
Functions
::
PowerPreBasis
<
MI
,
IMS
,
SPB
,
C
>
;
using
Node
=
Node_t
<
PreBasis
,
TP
>
;
using
GridView
=
typename
PreBasis
::
GridView
;
using
size_type
=
std
::
size_t
;
...
...
@@ -284,7 +277,7 @@ namespace AMDiS
using
SubPreBasis
=
typename
PreBasis
::
SubPreBasis
;
using
SubTreePath
=
decltype
(
Dune
::
TypeTree
::
push_back
(
std
::
declval
<
TP
>
(),
std
::
size_t
(
0
)));
using
SubNodeIdSet
=
NodeIdSet
<
SubPreBasis
,
SubTreePath
>
;
static
const
std
::
size_t
children
=
C
;
static
const
std
::
size_t
children
=
Node
::
CHILDREN
;
public:
NodeIdSet
(
GridView
const
&
gridView
)
...
...
@@ -312,10 +305,10 @@ namespace AMDiS
}
/// \brief Maps from subtree index set [0..size-1] to a globally unique id in global basis
// [[expects: node_ != nullptr]]
template
<
class
Twist
,
class
It
>
It
fillIn
(
Twist
const
&
twist
,
It
it
,
size_type
shift
=
0
)
const
{
assert
(
node_
!=
nullptr
);
for
(
std
::
size_t
child
=
0
;
child
<
children
;
++
child
)
{
size_type
subTreeSize
=
subIds_
.
size
();
...
...
@@ -331,17 +324,17 @@ namespace AMDiS
};
template
<
class
MI
,
class
IMS
,
class
...
SPB
,
class
TP
>
class
NodeIdSet
<
Dune
::
Functions
::
CompositePreBasis
<
MI
,
IMS
,
SPB
...
>
,
TP
>
// Specialization for CompositePreBasis
template
<
class
PreBasis
,
class
TP
>
class
NodeIdSet
<
PreBasis
,
TP
,
void_t
<
typename
PreBasis
::
SubPreBases
>>
{
public:
using
PreBasis
=
Dune
::
Functions
::
CompositePreBasis
<
MI
,
IMS
,
SPB
...
>
;
using
Node
=
Node_t
<
PreBasis
,
TP
>
;
using
GridView
=
typename
PreBasis
::
GridView
;
using
size_type
=
std
::
size_t
;
protected:
static
const
std
::
size_t
children
=
sizeof
...(
SPB
)
;
static
const
std
::
size_t
children
=
Node
::
CHILDREN
;
using
ChildIndices
=
std
::
make_index_sequence
<
children
>
;
// The I'th SubPreBasis
...
...
@@ -389,10 +382,10 @@ namespace AMDiS
}
/// \brief Maps from subtree index set [0..size-1] to a globally unique id in global basis
// [[expects: node_ != nullptr]]
template
<
class
Twist
,
class
It
>
It
fillIn
(
Twist
const
&
twist
,
It
it
,
size_type
shift
=
0
)
const
{
assert
(
node_
!=
nullptr
);
Tools
::
for_each
(
idsTuple_
,
[
&
](
auto
const
&
ids
)
{
size_type
subTreeSize
=
ids
.
size
();
...
...
@@ -462,10 +455,10 @@ namespace AMDiS
}
/// \brief Maps from subtree index set [0..size-1] to a globally unique id in global basis
// [[expects: node_ != nullptr]]
template
<
class
Twist
,
class
It
>
It
fillIn
(
Twist
const
&
twist
,
It
it
,
size_type
shift
=
0
)
const
{
assert
(
node_
!=
nullptr
);
for
(
int
child
=
0
;
child
<
dow
;
++
child
)
{
size_type
subTreeSize
=
pq2NodeIdSet_
.
size
();
it
=
pq2NodeIdSet_
.
fillIn
(
twist
,
it
,
shift
);
...
...
@@ -515,10 +508,10 @@ namespace AMDiS
}
/// \brief Maps from subtree index set [0..size-1] to a globally unique id in global basis
// [[expects: node_ != nullptr]]
template
<
class
Twist
,
class
It
>
It
fillIn
(
Twist
const
&
/*twist*/
,
It
it
,
size_type
shift
=
0
)
const
{
assert
(
node_
!=
nullptr
);
const
auto
&
gridIdSet
=
gridView_
.
grid
().
globalIdSet
();
auto
elementId
=
gridIdSet
.
id
(
node_
->
element
());
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment