A multidomain wrapper for multiple grid geometries. More...
#include <dumux/multidomain/fvgridgeometry.hh>
A multidomain wrapper for multiple grid geometries.
MDTraits | The multidomain traits |
Public Types | |
template<std::size_t i> | |
using | Type = typename MDTraits::template SubDomain< i >::GridGeometry |
export base types of the stored type More... | |
template<std::size_t i> | |
using | PtrType = std::shared_ptr< Type< i > > |
export pointer types the stored type More... | |
using | TupleType = typename MDTraits::template Tuple< PtrType > |
export type of tuple of pointers More... | |
Public Member Functions | |
MultiDomainFVGridGeometry ()=default | |
The default constructor. More... | |
template<typename... Args> | |
MultiDomainFVGridGeometry (Args &&... args) | |
Construct grid geometries for all subdomains. More... | |
MultiDomainFVGridGeometry (TupleType ggTuple) | |
Construct wrapper from a tuple of grid geometries. More... | |
MultiDomainFVGridGeometry (GVTuple gvTuple) | |
Construct wrapper from a tuple of grid views. More... | |
template<typename... Args> | |
void | update (Args &&... args) |
Update all grid geometries (do this e.g. after grid adaption) More... | |
void | update () |
Update all grid geometries (do this again after grid adaption) More... | |
template<std::size_t i> | |
const Type< i > & | operator[] (Dune::index_constant< i >) const |
return the grid geometry for domain with index i More... | |
template<std::size_t i> | |
Type< i > & | operator[] (Dune::index_constant< i >) |
return the grid geometry for domain with index i More... | |
template<std::size_t i> | |
const PtrType< i > & | get (Dune::index_constant< i > id=Dune::index_constant< i >{}) const |
! access the grid geometry pointer for domain with index i More... | |
template<std::size_t i> | |
PtrType< i > & | get (Dune::index_constant< i > id=Dune::index_constant< i >{}) |
! access the the grid geometry pointer for domain with index i More... | |
template<std::size_t i> | |
void | set (PtrType< i > p, Dune::index_constant< i > id=Dune::index_constant< i >{}) |
set the pointer for sub domain i More... | |
TupleType | getTuple () |
return the grid variables tuple we are wrapping More... | |
TupleType & | asTuple () |
Access the underlying tuple representation. More... | |
const TupleType & | asTuple () const |
Access the underlying tuple representation. More... | |
using Dumux::MultiDomainFVGridGeometry< MDTraits >::PtrType = std::shared_ptr<Type<i> > |
export pointer types the stored type
using Dumux::MultiDomainFVGridGeometry< MDTraits >::TupleType = typename MDTraits::template Tuple<PtrType> |
export type of tuple of pointers
using Dumux::MultiDomainFVGridGeometry< MDTraits >::Type = typename MDTraits::template SubDomain<i>::GridGeometry |
export base types of the stored type
|
default |
The default constructor.
|
inline |
Construct grid geometries for all subdomains.
args | a list of arguments to pass to the constructors |
The number of arguments has to match the number of subdomains. In case a constructor needs multiple arguments, they have to be wrapped in a std::tuple. Use std::make_tuple and possible wrap arguments using std::ref / std::cref or use std::forward_as_tuple. If an argument is a tuple, it will be unpacked and its members will be passed to the constructor. In the corner case where you need to pass a tuple to the constructor, you therefore need to additionally wrap the tuple in a tuple before passing.
|
inline |
Construct wrapper from a tuple of grid geometries.
ggTuple | a tuple of shared_ptrs to the grid geometries |
|
inline |
Construct wrapper from a tuple of grid views.
|
inline |
Access the underlying tuple representation.
|
inline |
Access the underlying tuple representation.
|
inline |
! access the the grid geometry pointer for domain with index i
|
inline |
! access the grid geometry pointer for domain with index i
|
inline |
return the grid variables tuple we are wrapping
|
inline |
return the grid geometry for domain with index i
|
inline |
return the grid geometry for domain with index i
|
inline |
set the pointer for sub domain i
|
inline |
Update all grid geometries (do this again after grid adaption)
|
inline |
Update all grid geometries (do this e.g. after grid adaption)
args | a list of arguments to pass to the update functions |
The number of arguments has to match the number of subdomains. In case the update function needs multiple arguments, they have to be wrapped in a std::tuple. Use std::make_tuple and possible wrap arguments using std::ref / std::cref or use std::forward_as_tuple. If an argument is a tuple, it will be unpacked and its members will be passed to the constructor. In the corner case where you need to pass a tuple to the constructor, you therefore need to additionally wrap the tuple in a tuple before passing.