Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
dune-subgrid
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Iterations
Wiki
Requirements
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Locked files
Build
Pipelines
Jobs
Pipeline schedules
Test cases
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Code review analytics
Issue analytics
Insights
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
agnumpde
dune-subgrid
Commits
99230a4c
Commit
99230a4c
authored
5 years ago
by
oliver.sander_at_tu-dresden.de
Browse files
Options
Downloads
Plain Diff
Merge branch 'feature/fix-deprecation-warnings' into 'master'
Feature/fix deprecation warnings See merge request
!16
parents
2103a363
2c5aec00
No related branches found
No related tags found
1 merge request
!16
Feature/fix deprecation warnings
Pipeline
#27943
failed
5 years ago
Stage: test
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
dune/subgrid/subgrid.hh
+6
-0
6 additions, 0 deletions
dune/subgrid/subgrid.hh
dune/subgrid/subgrid/subgridgeometry.hh
+55
-1
55 additions, 1 deletion
dune/subgrid/subgrid/subgridgeometry.hh
dune/subgrid/test/common.hh
+4
-2
4 additions, 2 deletions
dune/subgrid/test/common.hh
with
65 additions
and
3 deletions
dune/subgrid/subgrid.hh
+
6
−
0
View file @
99230a4c
...
...
@@ -12,7 +12,13 @@
#include
<vector>
#include
<type_traits>
#include
<dune/common/version.hh>
#if DUNE_VERSION_LT(DUNE_COMMON,2,7)
#include
<dune/common/parallel/collectivecommunication.hh>
#else
#include
<dune/common/parallel/communication.hh>
#endif
#include
<dune/grid/common/backuprestore.hh>
#include
<dune/grid/common/capabilities.hh>
#include
<dune/grid/common/grid.hh>
...
...
This diff is collapsed.
Click to expand it.
dune/subgrid/subgrid/subgridgeometry.hh
+
55
−
1
View file @
99230a4c
...
...
@@ -5,7 +5,13 @@
* \brief The SubGridGeometry class and its specializations
*/
#include
<type_traits>
#include
<dune/common/version.hh>
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
#include
<dune/common/std/variant.hh>
#else
#include
<variant>
#endif
#include
<dune/common/fmatrix.hh>
#include
<dune/common/typetraits.hh>
...
...
@@ -147,7 +153,11 @@ class SubGridLocalGeometry
using
MultiLinGeometry
=
MultiLinearGeometry
<
ctype
,
mydim
,
coorddim
>
;
// use a variant to store either a HostGridLocalGeometry or a MultiLinearGeometry
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
using
GeometryContainer
=
Std
::
variant
<
HostGridLocalGeometry
,
MultiLinGeometry
>
;
#else
using
GeometryContainer
=
std
::
variant
<
HostGridLocalGeometry
,
MultiLinGeometry
>
;
#endif
public:
...
...
@@ -177,45 +187,77 @@ class SubGridLocalGeometry
/** \brief Return the element type identifier
*/
GeometryType
type
()
const
{
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
return
Std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
type
();},
localGeometry_
);
#else
return
std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
type
();},
localGeometry_
);
#endif
}
/** \brief Return true if the geometry mapping is affine and false otherwise */
bool
affine
()
const
{
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
return
Std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
affine
();},
localGeometry_
);
#else
return
std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
affine
();},
localGeometry_
);
#endif
}
//! return the number of corners of this element. Corners are numbered 0...n-1
int
corners
()
const
{
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
return
Std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
corners
();},
localGeometry_
);
#else
return
std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
corners
();},
localGeometry_
);
#endif
}
//! access to coordinates of corners. Index is the number of the corner
FieldVector
<
ctype
,
coorddim
>
corner
(
int
i
)
const
{
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
return
Std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
corner
(
i
);},
localGeometry_
);
#else
return
std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
corner
(
i
);},
localGeometry_
);
#endif
}
/** \brief Maps a local coordinate within reference element to
* global coordinate in element */
FieldVector
<
ctype
,
coorddim
>
global
(
const
FieldVector
<
ctype
,
mydim
>&
local
)
const
{
FieldVector
<
ctype
,
coorddim
>
global
(
const
FieldVector
<
ctype
,
mydim
>&
local
)
const
{
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
return
Std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
global
(
local
);},
localGeometry_
);
#else
return
std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
global
(
local
);},
localGeometry_
);
#endif
}
/** \brief Maps a global coordinate within the element to a
* local coordinate in its reference element */
FieldVector
<
ctype
,
mydim
>
local
(
const
FieldVector
<
ctype
,
coorddim
>&
global
)
const
{
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
return
Std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
local
(
global
);},
localGeometry_
);
#else
return
std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
local
(
global
);},
localGeometry_
);
#endif
}
/**
*/
ctype
integrationElement
(
const
FieldVector
<
ctype
,
mydim
>&
local
)
const
{
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
return
Std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
integrationElement
(
local
);},
localGeometry_
);
#else
return
std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
integrationElement
(
local
);},
localGeometry_
);
#endif
}
/** \brief return volume of geometry */
ctype
volume
()
const
{
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
return
Std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
volume
();},
localGeometry_
);
#else
return
std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
volume
();},
localGeometry_
);
#endif
}
/** \brief return center of geometry
...
...
@@ -228,17 +270,29 @@ class SubGridLocalGeometry
* find reasonably efficient ways to implement it properly.
*/
FieldVector
<
ctype
,
coorddim
>
center
()
const
{
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
return
Std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
center
();},
localGeometry_
);
#else
return
std
::
visit
([
&
](
auto
&&
geom
)
{
return
geom
.
center
();},
localGeometry_
);
#endif
}
//! The Jacobian matrix of the mapping from the reference element to this element
const
JacobianTransposed
jacobianTransposed
(
const
FieldVector
<
ctype
,
mydim
>&
local
)
const
{
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
return
Std
::
visit
([
&
](
auto
&&
geom
)
{
return
static_cast
<
JacobianTransposed
>
(
geom
.
jacobianTransposed
(
local
));},
localGeometry_
);
#else
return
std
::
visit
([
&
](
auto
&&
geom
)
{
return
static_cast
<
JacobianTransposed
>
(
geom
.
jacobianTransposed
(
local
));},
localGeometry_
);
#endif
}
//! The inverse of the Jacobian matrix of the mapping from the reference element to this element
const
JacobianInverseTransposed
jacobianInverseTransposed
(
const
FieldVector
<
ctype
,
mydim
>&
local
)
const
{
#if DUNE_VERSION_LT(DUNE_COMMON,2,8)
return
Std
::
visit
([
&
](
auto
&&
geom
)
{
return
static_cast
<
JacobianInverseTransposed
>
(
geom
.
jacobianInverseTransposed
(
local
));},
localGeometry_
);
#else
return
std
::
visit
([
&
](
auto
&&
geom
)
{
return
static_cast
<
JacobianInverseTransposed
>
(
geom
.
jacobianInverseTransposed
(
local
));},
localGeometry_
);
#endif
}
private
:
...
...
This diff is collapsed.
Click to expand it.
dune/subgrid/test/common.hh
+
4
−
2
View file @
99230a4c
...
...
@@ -2,6 +2,8 @@
#define DISABLE_DEPRECATED_METHOD_CHECK 1
#include
<memory>
#include
<dune/common/exceptions.hh>
#include
<dune/grid/utility/structuredgridfactory.hh>
...
...
@@ -24,7 +26,7 @@ enum EltGeometryType {SIMPLEX, CUBE, NA};
template
<
class
GridType
,
EltGeometryType
EGT
>
struct
CoarseGridConstructor
{
static
Dune
::
shared_ptr
<
GridType
>
constructCoarseGrid
(
size_t
ncells
=
1
)
static
std
::
shared_ptr
<
GridType
>
constructCoarseGrid
(
size_t
ncells
=
1
)
{
DUNE_THROW
(
Dune
::
NotImplemented
,
"not implemented for this Element geometry"
);
}
...
...
@@ -45,7 +47,7 @@ struct CoarseGridConstructor<GridType, SIMPLEX>
template
<
class
GridType
>
struct
CoarseGridConstructor
<
GridType
,
CUBE
>
{
static
Dune
::
shared_ptr
<
GridType
>
constructCoarseGrid
(
size_t
ncells
=
1
)
static
std
::
shared_ptr
<
GridType
>
constructCoarseGrid
(
size_t
ncells
=
1
)
{
const
int
dim
=
GridType
::
dimension
;
std
::
array
<
unsigned
int
,
dim
>
elts
;
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
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!
Save comment
Cancel
Please
register
or
sign in
to comment