Loading...
Searching...
No Matches
Opm::BaseAuxiliaryModule< TypeTag > Class Template Referenceabstract

Base class for specifying auxiliary equations. More...

`#include <baseauxiliarymodule.hh>`

Inheritance diagram for Opm::BaseAuxiliaryModule< TypeTag >:

## Public Member Functions

virtual unsigned | numDofs () const =0
| Returns the number of additional degrees of freedom required for the auxiliary module.
void | setDofOffset (int value)
| Set the offset in the global system of equations for the first degree of freedom of this auxiliary module.
int | dofOffset ()
| Return the offset in the global system of equations for the first degree of freedom of this auxiliary module.
int | localToGlobalDof (unsigned localDofIdx) const
| Given a degree of freedom relative to the current auxiliary equation, return the corresponding index in the global system of equations.
virtual void | addNeighbors (std::vector< NeighborSet > &neighbors) const =0
| Specify the additional neighboring correlations caused by the auxiliary module.
virtual void | applyInitial ()=0
| Set the initial condition of the auxiliary module in the solution vector.
virtual void | linearize (SparseMatrixAdapter &matrix, GlobalEqVector &residual)=0
| Linearize the auxiliary equation.
virtual void | postSolve (GlobalEqVector &)
| This method is called after the linear solver has been called but before the solution is updated for the next iteration.

## Protected Types

using | NeighborSet = std::set<unsigned>

## Detailed Description

template<class TypeTag>
class Opm::BaseAuxiliaryModule< TypeTag >

Base class for specifying auxiliary equations.

For example, these equations can be wells, non-neighboring connections, interfaces between model domains, etc.

## Member Function Documentation

## addNeighbors()

template<class TypeTag>

virtual void Opm::BaseAuxiliaryModule< TypeTag >::addNeighbors | ( | std::vector< NeighborSet > & | neighbors | ) | const

pure virtual

Specify the additional neighboring correlations caused by the auxiliary module.

Implemented in Opm::WellConnectionAuxiliaryModule< TypeTag, Model >, and Opm::WellConnectionAuxiliaryModule< TypeTag, BlackoilWellModel< TypeTag > >.

## applyInitial()

template<class TypeTag>

virtual void Opm::BaseAuxiliaryModule< TypeTag >::applyInitial | ( |  | ) |

pure virtual

Set the initial condition of the auxiliary module in the solution vector.

Implemented in Opm::WellConnectionAuxiliaryModule< TypeTag, Model >, and Opm::WellConnectionAuxiliaryModule< TypeTag, BlackoilWellModel< TypeTag > >.

## linearize()

template<class TypeTag>

virtual void Opm::BaseAuxiliaryModule< TypeTag >::linearize | ( | SparseMatrixAdapter & | matrix,
|  | GlobalEqVector & | residual )

pure virtual

Linearize the auxiliary equation.

Implemented in Opm::WellConnectionAuxiliaryModule< TypeTag, Model >, and Opm::WellConnectionAuxiliaryModule< TypeTag, BlackoilWellModel< TypeTag > >.

## numDofs()

template<class TypeTag>

virtual unsigned Opm::BaseAuxiliaryModule< TypeTag >::numDofs | ( |  | ) | const

pure virtual

Returns the number of additional degrees of freedom required for the auxiliary module.

Implemented in Opm::WellConnectionAuxiliaryModule< TypeTag, Model >, and Opm::WellConnectionAuxiliaryModule< TypeTag, BlackoilWellModel< TypeTag > >.

## postSolve()

template<class TypeTag>

virtual void Opm::BaseAuxiliaryModule< TypeTag >::postSolve | ( | GlobalEqVector & |  | ) |

inline virtual

This method is called after the linear solver has been called but before the solution is updated for the next iteration.

It is intended to implement stuff like Schur complements.

Reimplemented in Opm::WellConnectionAuxiliaryModule< TypeTag, Model >, and Opm::WellConnectionAuxiliaryModule< TypeTag, BlackoilWellModel< TypeTag > >.

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

- opm/models/discretization/common/baseauxiliarymodule.hh