version 3.9-dev
Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod > Class Template Reference

A linear system assembler (residual and Jacobian) for finite volume schemes (box, tpfa, mpfa, ...) More...

#include <dumux/experimental/assembly/multistagefvassembler.hh>

Description

template<class TypeTag, DiffMethod diffMethod>
class Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >
Template Parameters
TypeTagThe TypeTag
diffMethodThe differentiation method to residual compute derivatives

Public Types

using Scalar = GetPropType< TypeTag, Properties::Scalar >
 
using StageParams = Experimental::MultiStageParams< Scalar >
 
using JacobianMatrix = GetPropType< TypeTag, Properties::JacobianMatrix >
 
using SolutionVector = GetPropType< TypeTag, Properties::SolutionVector >
 
using ResidualType = typename Dumux::Detail::NativeDuneVectorType< SolutionVector >::type
 
using GridVariables = GetPropType< TypeTag, Properties::GridVariables >
 
using GridGeometry = GridGeo
 
using Problem = GetPropType< TypeTag, Properties::Problem >
 

Public Member Functions

 MultiStageFVAssembler (std::shared_ptr< const Problem > problem, std::shared_ptr< const GridGeometry > gridGeometry, std::shared_ptr< GridVariables > gridVariables, std::shared_ptr< const Experimental::MultiStageMethod< Scalar > > msMethod, const SolutionVector &prevSol)
 The constructor for instationary problems. More...
 
template<class PartialReassembler = DefaultPartialReassembler>
void assembleJacobianAndResidual (const SolutionVector &curSol, const PartialReassembler *partialReassembler=nullptr)
 Assembles the global Jacobian of the residual and the residual for the current solution. More...
 
void assembleResidual (const SolutionVector &curSol)
 compute the residuals using the internal residual More...
 
void setLinearSystem ()
 The version without arguments uses the default constructor to create the jacobian and residual objects in this assembler if you don't need them outside this class. More...
 
void updateAfterGridAdaption ()
 Resizes jacobian and residual and recomputes colors. More...
 
std::size_t numDofs () const
 Returns the number of degrees of freedom. More...
 
const Problemproblem () const
 The problem. More...
 
const GridGeometrygridGeometry () const
 The global finite volume geometry. More...
 
const GridView & gridView () const
 The gridview. More...
 
GridVariablesgridVariables ()
 The global grid variables. More...
 
const GridVariablesgridVariables () const
 The global grid variables. More...
 
JacobianMatrixjacobian ()
 The jacobian matrix. More...
 
ResidualTyperesidual ()
 The residual vector (rhs) More...
 
const SolutionVectorprevSol () const
 The solution of the previous time step. More...
 
MultiStageFVLocalOperator< LocalResidual > localResidual () const
 Create a local residual object (used by the local assembler) More...
 
void updateGridVariables (const SolutionVector &cursol)
 Update the grid variables. More...
 
void resetTimeStep (const SolutionVector &cursol)
 Reset the gridVariables. More...
 
void clearStages ()
 
template<class StageParams >
void prepareStage (SolutionVector &x, StageParams params)
 
bool isStationaryProblem () const
 TODO get rid of this (called by Newton but shouldn't be necessary) More...
 
bool isImplicit () const
 

Member Typedef Documentation

◆ GridGeometry

template<class TypeTag , DiffMethod diffMethod>
using Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::GridGeometry = GridGeo

◆ GridVariables

template<class TypeTag , DiffMethod diffMethod>
using Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::GridVariables = GetPropType<TypeTag, Properties::GridVariables>

◆ JacobianMatrix

template<class TypeTag , DiffMethod diffMethod>
using Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::JacobianMatrix = GetPropType<TypeTag, Properties::JacobianMatrix>

◆ Problem

template<class TypeTag , DiffMethod diffMethod>
using Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::Problem = GetPropType<TypeTag, Properties::Problem>

◆ ResidualType

template<class TypeTag , DiffMethod diffMethod>
using Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::ResidualType = typename Dumux::Detail::NativeDuneVectorType<SolutionVector>::type

◆ Scalar

template<class TypeTag , DiffMethod diffMethod>
using Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::Scalar = GetPropType<TypeTag, Properties::Scalar>

◆ SolutionVector

template<class TypeTag , DiffMethod diffMethod>
using Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::SolutionVector = GetPropType<TypeTag, Properties::SolutionVector>

◆ StageParams

template<class TypeTag , DiffMethod diffMethod>
using Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::StageParams = Experimental::MultiStageParams<Scalar>

Constructor & Destructor Documentation

◆ MultiStageFVAssembler()

template<class TypeTag , DiffMethod diffMethod>
Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::MultiStageFVAssembler ( std::shared_ptr< const Problem problem,
std::shared_ptr< const GridGeometry gridGeometry,
std::shared_ptr< GridVariables gridVariables,
std::shared_ptr< const Experimental::MultiStageMethod< Scalar > >  msMethod,
const SolutionVector prevSol 
)
inline
Note
the grid variables might be temporarily changed during assembly (if caching is enabled) it is however guaranteed that the state after assembly will be the same as before

Member Function Documentation

◆ assembleJacobianAndResidual()

template<class TypeTag , DiffMethod diffMethod>
template<class PartialReassembler = DefaultPartialReassembler>
void Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::assembleJacobianAndResidual ( const SolutionVector curSol,
const PartialReassembler partialReassembler = nullptr 
)
inline

◆ assembleResidual()

template<class TypeTag , DiffMethod diffMethod>
void Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::assembleResidual ( const SolutionVector curSol)
inline

◆ clearStages()

template<class TypeTag , DiffMethod diffMethod>
void Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::clearStages ( )
inline

◆ gridGeometry()

template<class TypeTag , DiffMethod diffMethod>
const GridGeometry & Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::gridGeometry ( ) const
inline

◆ gridVariables() [1/2]

template<class TypeTag , DiffMethod diffMethod>
GridVariables & Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::gridVariables ( )
inline

◆ gridVariables() [2/2]

template<class TypeTag , DiffMethod diffMethod>
const GridVariables & Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::gridVariables ( ) const
inline

◆ gridView()

template<class TypeTag , DiffMethod diffMethod>
const GridView & Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::gridView ( ) const
inline

◆ isImplicit()

template<class TypeTag , DiffMethod diffMethod>
bool Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::isImplicit ( ) const
inline

◆ isStationaryProblem()

template<class TypeTag , DiffMethod diffMethod>
bool Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::isStationaryProblem ( ) const
inline

◆ jacobian()

template<class TypeTag , DiffMethod diffMethod>
JacobianMatrix & Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::jacobian ( )
inline

◆ localResidual()

template<class TypeTag , DiffMethod diffMethod>
MultiStageFVLocalOperator< LocalResidual > Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::localResidual ( ) const
inline

◆ numDofs()

template<class TypeTag , DiffMethod diffMethod>
std::size_t Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::numDofs ( ) const
inline

◆ prepareStage()

template<class TypeTag , DiffMethod diffMethod>
template<class StageParams >
void Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::prepareStage ( SolutionVector x,
StageParams  params 
)
inline

◆ prevSol()

template<class TypeTag , DiffMethod diffMethod>
const SolutionVector & Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::prevSol ( ) const
inline

◆ problem()

template<class TypeTag , DiffMethod diffMethod>
const Problem & Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::problem ( ) const
inline

◆ resetTimeStep()

template<class TypeTag , DiffMethod diffMethod>
void Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::resetTimeStep ( const SolutionVector cursol)
inline

◆ residual()

template<class TypeTag , DiffMethod diffMethod>
ResidualType & Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::residual ( )
inline

◆ setLinearSystem()

template<class TypeTag , DiffMethod diffMethod>
void Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::setLinearSystem ( )
inline

◆ updateAfterGridAdaption()

template<class TypeTag , DiffMethod diffMethod>
void Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::updateAfterGridAdaption ( )
inline

◆ updateGridVariables()

template<class TypeTag , DiffMethod diffMethod>
void Dumux::Experimental::MultiStageFVAssembler< TypeTag, diffMethod >::updateGridVariables ( const SolutionVector cursol)
inline

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