template<class MDTraits>
class Dumux::PoreNetwork::PNMHeatTransferCouplingManager< MDTraits >
- Note
- Concept and algorithms described in Koch et al (2021) https://doi.org/10.1007/s11242-021-01602-5
|
template<class HostGridView , class HostGridData , class VoidGridView , class SolidGridView > |
void | init (std::shared_ptr< Problem< solidDomainIdx > > solidProblem, std::shared_ptr< Problem< voidDomainIdx > > voidProblem, const HostGridView &hostGridView, const HostGridData &hostGridData, const VoidGridView &voidGridView, const SolidGridView &solidGridView, const SolutionVector &curSol) |
| Methods to be accessed by main. More...
|
|
template<std::size_t i, std::size_t j> |
const CouplingStencil & | couplingStencil (Dune::index_constant< i > domainI, const Element< i > &element, Dune::index_constant< j > domainJ) const |
| Methods to be accessed by the assembly. More...
|
|
template<std::size_t i> |
bool | isCoupledPore (Dune::index_constant< i > domainI, const std::size_t dofIdx) const |
| Returns whether a given solid grain/void pore body is coupled to the other domain. More...
|
|
template<std::size_t i> |
Scalar | conductionSource (Dune::index_constant< i > domainI, const Element< i > &element, const FVElementGeometry< i > &fvGeometry, const ElementVolumeVariables< i > &elemVolVars, const SubControlVolume< i > &scv) const |
| Returns summed conductive flux between void and solid for one void pore body or one solid grain. More...
|
|
template<class Connection , class Context > |
Scalar | convectiveHeatFluxForOneConnection (const Connection &connection, const Context &context) const |
|
template<std::size_t i> |
Scalar | convectionSource (Dune::index_constant< i > domainI, const Element< i > &element, const FVElementGeometry< i > &fvGeometry, const ElementVolumeVariables< i > &elemVolVars, const SubControlVolume< i > &scv) const |
| Returns summed conductive heat fluxes for one void pore body coupled to solid grains (or the other way around) that occur due to convection in void throats. More...
|
|
template<std::size_t i, std::size_t j> |
Scalar | sourceWithFixedTransmissibility (Dune::index_constant< i > domainI, const Element< i > &element, const FVElementGeometry< i > &fvGeometry, const ElementVolumeVariables< i > &elemVolVars, const SubControlVolume< i > &scv, Dune::index_constant< j > domainJ) const |
|
template<std::size_t i, class Connection > |
Scalar | getConnectionTransmissiblity (Dune::index_constant< i > domainI, const Connection &connection, const ElementVolumeVariables< i > &elemVolVars, const SubControlVolume< i > &scv) const |
|
template<std::size_t i> |
VolumeVariables< i > | volVars (Dune::index_constant< i > domainI, const Element< i > &element, const SubControlVolume< i > &scv) const |
| Return the volume variables of domain i for a given element and scv. More...
|
|
template<std::size_t i, std::size_t j, class LocalAssemblerI > |
decltype(auto) | evalCouplingResidual (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) |
|
template<std::size_t i, class Assembler = int> |
void | bindCouplingContext (Dune::index_constant< i > domainI, const Element< i > &element, const Assembler &assembler=0) const |
| Bind the coupling context for a low dim element TODO remove Assembler. More...
|
|
template<std::size_t i, class LocalAssemblerI , std::size_t j, class PriVars > |
void | updateCouplingContext (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, const std::size_t dofIdxGlobalJ, const PriVars &priVars, int pvIdxJ) |
| Update the coupling context. More...
|
|
const auto & | couplingContext () const |
|
template<std::size_t i> |
const auto & | gridGeometry (Dune::index_constant< i > domainI) const |
|
const CouplingMapper & | couplingMapper () const |
|
void | setGridVariables (GridVariablesTuple &&gridVariables) |
| set the pointers to the grid variables More...
|
|
template<class GridVariables , std::size_t i> |
void | setGridVariables (std::shared_ptr< GridVariables > gridVariables, Dune::index_constant< i > domainIdx) |
| set a pointer to one of the grid variables More...
|
|
template<std::size_t i> |
const GridVariables< i > & | gridVariables (Dune::index_constant< i > domainIdx) const |
| Return a reference to the grid variables of a sub problem. More...
|
|
template<std::size_t id, class JacobianPattern > |
void | extendJacobianPattern (Dune::index_constant< id > domainI, JacobianPattern &pattern) const |
| extend the jacobian pattern of the diagonal block of domain i by those entries that are not already in the uncoupled pattern More...
|
|
template<std::size_t i, class LocalAssemblerI , class JacobianMatrixDiagBlock , class GridVariables > |
void | evalAdditionalDomainDerivatives (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, const typename LocalAssemblerI::LocalResidual::ElementResidualVector &, JacobianMatrixDiagBlock &A, GridVariables &gridVariables) |
| evaluate additional derivatives of the element residual of a domain with respect to dofs in the same domain that are not in the regular stencil (per default this is not the case) More...
|
|
std::vector< std::size_t > & | emptyStencil () |
| Return a reference to an empty stencil. More...
|
|
template<std::size_t i> |
const std::vector< std::size_t > & | emptyStencil (Dune::index_constant< i > domainI) const |
| Return a reference to an empty stencil. More...
|
|
template<std::size_t i> |
const auto & | gridView (Dune::index_constant< i > domainI) const |
|
void | setupExtendedStencil () |
|
|
void | bindCouplingContext (Dune::index_constant< i > domainI, const Element< i > &elementI, const Assembler &assembler) |
| prepares all data and variables that are necessary to evaluate the residual of the element of domain i More...
|
|
void | updateCouplingContext (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ, const PrimaryVariables< j > &priVarsJ, int pvIdxJ) |
| updates all data and variables that are necessary to evaluate the residual of the element of domain i this is called whenever one of the primary variables that the element residual depends on changes in domain j More...
|
|
void | updateCoupledVariables (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, UpdatableElementVolVars &elemVolVars, UpdatableFluxVarCache &elemFluxVarsCache) |
| update variables of domain i that depend on variables in domain j after the coupling context has been updated More...
|
|
void | updateSolution (const SolutionVector &curSol) |
| Updates the entire solution vector, e.g. before assembly or after grid adaption Overload might want to overload function if the solution vector is stored outside this class to make sure updates don't happen more than once. More...
|
|
decltype(auto) | evalCouplingResidual (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, Dune::index_constant< j > domainJ, std::size_t dofIdxGlobalJ) const |
| evaluates the element residual of a coupled element of domain i which depends on the variables at the degree of freedom with index dofIdxGlobalJ of domain j More...
|
|
void | evalAdditionalDomainDerivatives (Dune::index_constant< i > domainI, const LocalAssemblerI &localAssemblerI, const typename LocalAssemblerI::LocalResidual::ElementResidualVector &origResiduals, JacobianMatrixDiagBlock &A, GridVariables &gridVariables) |
| evaluate additional derivatives of the element residual of a domain with respect to dofs in the same domain that are not in the regular stencil (see CouplingManager::extendJacobianPattern) More...
|
|
decltype(auto) | numericEpsilon (Dune::index_constant< i >, const std::string ¶mGroup) const |
| return the numeric epsilon used for deflecting primary variables of coupled domain i More...
|
|
void | setSubProblems (const std::tuple< std::shared_ptr< SubProblems >... > &problems) |
| set the pointers to the sub problems More...
|
|
void | setSubProblem (std::shared_ptr< SubProblem > problem, Dune::index_constant< i > domainIdx) |
| set a pointer to one of the sub problems More...
|
|
const Problem< i > & | problem (Dune::index_constant< i > domainIdx) const |
| Return a reference to the sub problem. More...
|
|
void | attachSolution (SolutionVectorStorage &curSol) |
| Attach a solution vector stored outside of this class. More...
|
|
SubSolutionVector< i > & | curSol (Dune::index_constant< i > domainIdx) |
| the solution vector of the subproblem More...
|
|
const SubSolutionVector< i > & | curSol (Dune::index_constant< i > domainIdx) const |
| the solution vector of the subproblem More...
|
|