24#ifndef DUMUX_FV_GRID_VARIABLES_HH
25#define DUMUX_FV_GRID_VARIABLES_HH
40template<
class GG,
class GVV,
class GFVC>
57 using Scalar = std::decay_t<decltype(std::declval<PrimaryVariables>()[0])>;
62 template<
class Problem>
66 , curGridVolVars_(*problem)
67 , prevGridVolVars_(*problem)
68 , gridFluxVarsCache_(*problem)
72 template<
class SolutionVector>
73 void init(
const SolutionVector& curSol)
79 gridFluxVarsCache_.update(*
gridGeometry_, curGridVolVars_, curSol,
true);
85 prevGridVolVars_ = curGridVolVars_;
89 template<
class SolutionVector>
90 [[deprecated(
"Use init(sol) instead. The class now works without modification for stationary and instationary cases.")]]
91 void init(
const SolutionVector& curSol,
const SolutionVector& initSol)
98 template<
class SolutionVector>
99 void update(
const SolutionVector& curSol,
bool forceFluxCacheUpdate =
false)
105 gridFluxVarsCache_.update(*
gridGeometry_, curGridVolVars_, curSol, forceFluxCacheUpdate);
109 template<
class SolutionVector>
117 prevGridVolVars_ = curGridVolVars_;
126 prevGridVolVars_ = curGridVolVars_;
130 template<
class SolutionVector>
134 curGridVolVars_ = prevGridVolVars_;
137 gridFluxVarsCache_.update(*
gridGeometry_, curGridVolVars_, solution);
142 {
return gridFluxVarsCache_; }
146 {
return gridFluxVarsCache_; }
150 {
return curGridVolVars_; }
154 {
return curGridVolVars_; }
158 {
return prevGridVolVars_; }
162 {
return prevGridVolVars_; }
165 [[deprecated(
"Use gridGeometry() instead. fvGridGeometry() will be removed after 3.1!")]]
make the local view function available whenever we use the grid geometry
Definition: adapt.hh:29
The grid variable class for finite volume schemes storing variables on scv and scvf (volume and flux ...
Definition: discretization/fvgridvariables.hh:42
GridVolumeVariables & curGridVolVars()
return the current volume variables
Definition: discretization/fvgridvariables.hh:153
const GridFluxVariablesCache & gridFluxVarsCache() const
return the flux variables cache
Definition: discretization/fvgridvariables.hh:141
GG GridGeometry
export type of the finite volume grid geometry
Definition: discretization/fvgridvariables.hh:45
typename VolumeVariables::PrimaryVariables PrimaryVariables
export primary variable type
Definition: discretization/fvgridvariables.hh:54
std::shared_ptr< const GridGeometry > gridGeometry_
pointer to the constant grid geometry
Definition: discretization/fvgridvariables.hh:175
const GridVolumeVariables & curGridVolVars() const
return the current volume variables
Definition: discretization/fvgridvariables.hh:149
void advanceTimeStep()
Sets the current state as the previous for next time step.
Definition: discretization/fvgridvariables.hh:124
GVV GridVolumeVariables
export type of the finite volume grid geometry
Definition: discretization/fvgridvariables.hh:48
GridFluxVariablesCache & gridFluxVarsCache()
return the flux variables cache
Definition: discretization/fvgridvariables.hh:145
void init(const SolutionVector &curSol)
initialize all variables (stationary case)
Definition: discretization/fvgridvariables.hh:73
const GridVolumeVariables & prevGridVolVars() const
return the volume variables of the previous time step (for instationary problems)
Definition: discretization/fvgridvariables.hh:157
const GridGeometry & fvGridGeometry() const
return the finite volume grid geometry
Definition: discretization/fvgridvariables.hh:166
const GridGeometry & gridGeometry() const
return the finite volume grid geometry
Definition: discretization/fvgridvariables.hh:170
void init(const SolutionVector &curSol, const SolutionVector &initSol)
initialize all variables (instationary case)
Definition: discretization/fvgridvariables.hh:91
GridVolumeVariables & prevGridVolVars()
return the volume variables of the previous time step (for instationary problems)
Definition: discretization/fvgridvariables.hh:161
typename GridVolumeVariables::VolumeVariables VolumeVariables
export type of the volume variables
Definition: discretization/fvgridvariables.hh:51
GFVC GridFluxVariablesCache
export type of the finite volume grid geometry
Definition: discretization/fvgridvariables.hh:60
void updateAfterGridAdaption(const SolutionVector &curSol)
update all variables after grid adaption
Definition: discretization/fvgridvariables.hh:110
void resetTimeStep(const SolutionVector &solution)
resets state to the one before time integration
Definition: discretization/fvgridvariables.hh:131
FVGridVariables(std::shared_ptr< Problem > problem, std::shared_ptr< const GridGeometry > gridGeometry)
Definition: discretization/fvgridvariables.hh:63
std::decay_t< decltype(std::declval< PrimaryVariables >()[0])> Scalar
export scalar type (TODO get it directly from the volvars)
Definition: discretization/fvgridvariables.hh:57
void update(const SolutionVector &curSol, bool forceFluxCacheUpdate=false)
update all variables
Definition: discretization/fvgridvariables.hh:99