3.5-git
DUNE for Multi-{Phase, Component, Scale, Physics, ...} flow and transport in porous media
Public Types | Public Member Functions | List of all members
Dumux::MultiDomainFVProblem< MDTraits > Class Template Reference

A multidomain wrapper for multiple problems. More...

#include <dumux/multidomain/fvproblem.hh>

Description

template<class MDTraits>
class Dumux::MultiDomainFVProblem< MDTraits >

A multidomain wrapper for multiple problems.

Template Parameters
MDTraitsThe multidomain traits

Public Types

template<std::size_t i>
using Type = typename MDTraits::template SubDomain< i >::Problem
 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

 MultiDomainFVProblem ()=default
 The default constructor. More...
 
 MultiDomainFVProblem (MultiDomainFVGridGeometry< MDTraits > gridGeometries)
 Contruct the problem. More...
 
 MultiDomainFVProblem (TupleType problemTuple)
 Construct wrapper from a tuple of problems. More...
 
void applyInitialSolution (SolutionVector &sol) const
 Applies the initial solution for all degrees of freedom of the grid. More...
 
template<std::size_t i>
const Type< i > & operator[] (Dune::index_constant< i > id) const
 return the problem for domain with index i More...
 
template<std::size_t i>
Type< i > & operator[] (Dune::index_constant< i > id)
 return the problem 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 problem ptr 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 problem ptr 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...
 
TupleTypeasTuple ()
 Access the underlying tuple representation. More...
 
const TupleTypeasTuple () const
 Access the underlying tuple representation. More...
 

Member Typedef Documentation

◆ PtrType

template<class MDTraits >
template<std::size_t i>
using Dumux::MultiDomainFVProblem< MDTraits >::PtrType = std::shared_ptr<Type<i> >

export pointer types the stored type

◆ TupleType

template<class MDTraits >
using Dumux::MultiDomainFVProblem< MDTraits >::TupleType = typename MDTraits::template Tuple<PtrType>

export type of tuple of pointers

◆ Type

template<class MDTraits >
template<std::size_t i>
using Dumux::MultiDomainFVProblem< MDTraits >::Type = typename MDTraits::template SubDomain<i>::Problem

export base types of the stored type

Constructor & Destructor Documentation

◆ MultiDomainFVProblem() [1/3]

template<class MDTraits >
Dumux::MultiDomainFVProblem< MDTraits >::MultiDomainFVProblem ( )
default

The default constructor.

◆ MultiDomainFVProblem() [2/3]

template<class MDTraits >
Dumux::MultiDomainFVProblem< MDTraits >::MultiDomainFVProblem ( MultiDomainFVGridGeometry< MDTraits >  gridGeometries)
inline

Contruct the problem.

Parameters
gridGeometriesa tuple of grid geometry shared pointers

◆ MultiDomainFVProblem() [3/3]

template<class MDTraits >
Dumux::MultiDomainFVProblem< MDTraits >::MultiDomainFVProblem ( TupleType  problemTuple)
inline

Construct wrapper from a tuple of problems.

Parameters
problemTuplea tuple of shared_ptrs to the problems

Member Function Documentation

◆ applyInitialSolution()

template<class MDTraits >
void Dumux::MultiDomainFVProblem< MDTraits >::applyInitialSolution ( SolutionVector &  sol) const
inline

Applies the initial solution for all degrees of freedom of the grid.

Parameters
solthe initial solution vector

◆ asTuple() [1/2]

template<class MDTraits >
TupleType & Dumux::MultiDomainFVProblem< MDTraits >::asTuple ( )
inline

Access the underlying tuple representation.

◆ asTuple() [2/2]

template<class MDTraits >
const TupleType & Dumux::MultiDomainFVProblem< MDTraits >::asTuple ( ) const
inline

Access the underlying tuple representation.

◆ get() [1/2]

template<class MDTraits >
template<std::size_t i>
PtrType< i > & Dumux::MultiDomainFVProblem< MDTraits >::get ( Dune::index_constant< i >  id = Dune::index_constant<i>{})
inline

access the problem ptr for domain with index i

◆ get() [2/2]

template<class MDTraits >
template<std::size_t i>
const PtrType< i > & Dumux::MultiDomainFVProblem< MDTraits >::get ( Dune::index_constant< i >  id = Dune::index_constant<i>{}) const
inline

access the problem ptr for domain with index i

◆ getTuple()

template<class MDTraits >
TupleType Dumux::MultiDomainFVProblem< MDTraits >::getTuple ( )
inline

return the grid variables tuple we are wrapping

Note
the copy is not expensive since it is a tuple of shared pointers

◆ operator[]() [1/2]

template<class MDTraits >
template<std::size_t i>
Type< i > & Dumux::MultiDomainFVProblem< MDTraits >::operator[] ( Dune::index_constant< i >  id)
inline

return the problem for domain with index i

◆ operator[]() [2/2]

template<class MDTraits >
template<std::size_t i>
const Type< i > & Dumux::MultiDomainFVProblem< MDTraits >::operator[] ( Dune::index_constant< i >  id) const
inline

return the problem for domain with index i

◆ set()

template<class MDTraits >
template<std::size_t i>
void Dumux::MultiDomainFVProblem< MDTraits >::set ( PtrType< i >  p,
Dune::index_constant< i >  id = Dune::index_constant<i>{} 
)
inline

set the pointer for sub domain i


The documentation for this class was generated from the following file: