version 3.10-dev
Dumux::TwoPNCPrimaryVariableSwitch Class Reference

The primary variable switch controlling the phase presence state variable.

#include <dumux/porousmediumflow/2pnc/primaryvariableswitch.hh>

Inheritance diagram for Dumux::TwoPNCPrimaryVariableSwitch:

Public Member Functions

bool wasSwitched (std::size_t dofIdxGlobal) const
 If the primary variables were recently switched. More...
 
void reset (const std::size_t numDofs)
 Reset all flags. More...
 
bool update (SolutionVector &curSol, GridVariables &gridVariables, const Problem &problem, const typename GridVariables::GridGeometry &gridGeometry)
 Updates the variable switch / phase presence. More...
 
void updateSwitchedVolVars (const Problem &problem, const typename GridVariables::GridGeometry::GridView::template Codim< 0 >::Entity &element, const typename GridVariables::GridGeometry &gridGeometry, GridVariables &gridVariables, const SolutionVector &sol)
 Updates the volume variables whose primary variables were switched. More...
 
void updateSwitchedFluxVarsCache (const Problem &problem, const typename GridVariables::GridGeometry::GridView::template Codim< 0 >::Entity &element, const typename GridVariables::GridGeometry &gridGeometry, GridVariables &gridVariables, const SolutionVector &sol)
 Updates the fluxVars cache for dof whose primary variables were switched. More...
 
void updateDirichletConstraints (const Problem &problem, const typename GridVariables::GridGeometry &gridGeometry, GridVariables &gridVariables, SolutionVector &sol)
 Updates the the primary variables state at the boundary. More...
 
int verbosity () const
 The verbosity level. More...
 

Protected Member Functions

template<class VolumeVariables , class IndexType , class GlobalPosition >
bool update_ (typename VolumeVariables::PrimaryVariables &priVars, const VolumeVariables &volVars, IndexType dofIdxGlobal, const GlobalPosition &globalPos)
 
TwoPNCPrimaryVariableSwitchasImp_ ()
 Return actual implementation (static polymorphism) More...
 
const TwoPNCPrimaryVariableSwitchasImp_ () const
 Return actual implementation (static polymorphism) More...
 
bool update_ (typename VolumeVariables::PrimaryVariables &priVars, const VolumeVariables &volVars, std::size_t dofIdxGlobal, const GlobalPosition &globalPos)
 
bool skipDof_ (const typename Geometry::GridGeometry::GridView::template Codim< 0 >::Entity &element, const Geometry &fvGeometry, const typename Geometry::SubControlVolume &scv, const Problem &problem)
 
bool isConstrainedDof_ (const typename Geometry::GridGeometry::GridView::template Codim< 0 >::Entity &element, const Geometry &fvGeometry, const typename Geometry::SubControlVolume &scv, const Problem &problem)
 
bool handleDirichletBoundaryCondition_ (const Problem &problem, const Element &element, const SubControlVolume &scv, SolutionVector &sol)
 
bool handleInternalDirichletConstraint_ (const Problem &problem, const Element &element, const SubControlVolume &scv, SolutionVector &sol)
 

Protected Attributes

std::vector< bool > wasSwitched_
 
std::vector< bool > visited_
 

Member Function Documentation

◆ asImp_() [1/2]

◆ asImp_() [2/2]

const TwoPNCPrimaryVariableSwitch & Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::asImp_ ( ) const
inlineprotectedinherited

◆ handleDirichletBoundaryCondition_()

bool Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::handleDirichletBoundaryCondition_ ( const Problem &  problem,
const Element &  element,
const SubControlVolume &  scv,
SolutionVector &  sol 
)
inlineprotectedinherited

◆ handleInternalDirichletConstraint_()

bool Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::handleInternalDirichletConstraint_ ( const Problem &  problem,
const Element &  element,
const SubControlVolume &  scv,
SolutionVector &  sol 
)
inlineprotectedinherited

◆ isConstrainedDof_()

bool Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::isConstrainedDof_ ( const typename Geometry::GridGeometry::GridView::template Codim< 0 >::Entity &  element,
const Geometry &  fvGeometry,
const typename Geometry::SubControlVolume &  scv,
const Problem &  problem 
)
inlineprotectedinherited

◆ reset()

void Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::reset ( const std::size_t  numDofs)
inlineinherited

◆ skipDof_()

bool Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::skipDof_ ( const typename Geometry::GridGeometry::GridView::template Codim< 0 >::Entity &  element,
const Geometry &  fvGeometry,
const typename Geometry::SubControlVolume &  scv,
const Problem &  problem 
)
inlineprotectedinherited

◆ update()

bool Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::update ( SolutionVector &  curSol,
GridVariables &  gridVariables,
const Problem &  problem,
const typename GridVariables::GridGeometry &  gridGeometry 
)
inlineinherited
Parameters
curSolThe current solution to be updated / modified
gridVariablesThe secondary variables on the grid
problemThe problem
gridGeometryThe finite-volume grid geometry

◆ update_() [1/2]

template<class VolumeVariables , class IndexType , class GlobalPosition >
bool Dumux::TwoPNCPrimaryVariableSwitch::update_ ( typename VolumeVariables::PrimaryVariables &  priVars,
const VolumeVariables &  volVars,
IndexType  dofIdxGlobal,
const GlobalPosition &  globalPos 
)
inlineprotected

◆ update_() [2/2]

bool Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::update_ ( typename VolumeVariables::PrimaryVariables &  priVars,
const VolumeVariables &  volVars,
std::size_t  dofIdxGlobal,
const GlobalPosition &  globalPos 
)
inlineprotectedinherited

◆ updateDirichletConstraints()

void Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::updateDirichletConstraints ( const Problem &  problem,
const typename GridVariables::GridGeometry &  gridGeometry,
GridVariables &  gridVariables,
SolutionVector &  sol 
)
inlineinherited

Required when a Dirichlet constraint (at a boundary or internal) differs from the initial condition.

◆ updateSwitchedFluxVarsCache()

void Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::updateSwitchedFluxVarsCache ( const Problem &  problem,
const typename GridVariables::GridGeometry::GridView::template Codim< 0 >::Entity &  element,
const typename GridVariables::GridGeometry &  gridGeometry,
GridVariables &  gridVariables,
const SolutionVector &  sol 
)
inlineinherited

Required when flux variables are cached globally (not for box method).

◆ updateSwitchedVolVars()

void Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::updateSwitchedVolVars ( const Problem &  problem,
const typename GridVariables::GridGeometry::GridView::template Codim< 0 >::Entity &  element,
const typename GridVariables::GridGeometry &  gridGeometry,
GridVariables &  gridVariables,
const SolutionVector &  sol 
)
inlineinherited

Required when volume variables are cached globally.

◆ verbosity()

int Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::verbosity ( ) const
inlineinherited

◆ wasSwitched()

bool Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::wasSwitched ( std::size_t  dofIdxGlobal) const
inlineinherited

Member Data Documentation

◆ visited_

std::vector<bool> Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::visited_
protectedinherited

◆ wasSwitched_

std::vector<bool> Dumux::PrimaryVariableSwitch< TwoPNCPrimaryVariableSwitch >::wasSwitched_
protectedinherited

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